Bagikan melalui


Metode ID2D1RenderTarget::P ushLayer(constD2D1_LAYER_PARAMETERS&,ID2D1Layer*) (d2d1.h)

Menambahkan lapisan yang ditentukan ke target render sehingga menerima semua operasi gambar berikutnya hingga PopLayer dipanggil.

Sintaks

void PushLayer(
  [ref] const D2D1_LAYER_PARAMETERS & layerParameters,
  [in]  ID2D1Layer                    *layer
);

Parameter

[ref] layerParameters

Jenis: const D2D1_LAYER_PARAMETERS

Batas konten, masker geometris, opasitas, masker opasitas, dan opsi antialias untuk lapisan.

[in] layer

Jenis: ID2D1Layer*

Lapisan yang menerima operasi gambar berikutnya.

Catatan Dimulai dengan Windows 8, parameter ini bersifat opsional. Jika lapisan tidak ditentukan, Direct2D mengelola sumber daya lapisan secara otomatis.
 

Mengembalikan nilai

Tidak ada

Keterangan

Metode PushLayer memungkinkan penelepon untuk mulai mengalihkan penyajian ke lapisan. Semua operasi penyajian valid dalam lapisan. Lokasi lapisan dipengaruhi oleh transformasi dunia yang ditetapkan pada target render.

Setiap PushLayer harus memiliki panggilan PopLayer yang cocok. Jika ada lebih banyak panggilan PopLayer daripada panggilan PushLayer , target render ditempatkan ke dalam status kesalahan. Jika Flush dipanggil sebelum semua lapisan yang luar biasa muncul, target render ditempatkan ke dalam status kesalahan, dan kesalahan dikembalikan. Status kesalahan dapat dibersihkan dengan panggilan ke EndDraw.

Sumber daya ID2D1Layer tertentu hanya dapat aktif pada satu waktu. Dengan kata lain, Anda tidak dapat memanggil metode PushLayer , dan kemudian segera mengikuti dengan metode PushLayer lain dengan sumber daya lapisan yang sama. Sebagai gantinya, Anda harus memanggil metode PushLayer kedua dengan sumber daya lapisan yang berbeda.

Metode ini tidak mengembalikan kode kesalahan jika gagal. Untuk menentukan apakah operasi menggambar (seperti PushLayer) gagal, periksa hasil yang dikembalikan oleh metode ID2D1RenderTarget::EndDraw atau ID2D1RenderTarget::Flush .

Contoh

Contoh berikut menggunakan lapisan untuk mengklip bitmap ke masker geometris. Untuk contoh lengkapnya, lihat Cara Membuat Klip ke Masker Geometris.

HRESULT DemoApp::RenderWithLayer(ID2D1RenderTarget *pRT)
{
    HRESULT hr = S_OK;

    // Create a layer.
    ID2D1Layer *pLayer = NULL;
    hr = pRT->CreateLayer(NULL, &pLayer);

    if (SUCCEEDED(hr))
    {
        pRT->SetTransform(D2D1::Matrix3x2F::Translation(350, 50));

        // Push the layer with the geometric mask.
        pRT->PushLayer(
            D2D1::LayerParameters(D2D1::InfiniteRect(), m_pPathGeometry),
            pLayer
            );
            
  
        pRT->DrawBitmap(m_pOrigBitmap, D2D1::RectF(0, 0, 200, 133));
        pRT->FillRectangle(D2D1::RectF(0.f, 0.f, 25.f, 25.f), m_pSolidColorBrush);  
        pRT->FillRectangle(D2D1::RectF(25.f, 25.f, 50.f, 50.f), m_pSolidColorBrush);
        pRT->FillRectangle(D2D1::RectF(50.f, 50.f, 75.f, 75.f), m_pSolidColorBrush); 
        pRT->FillRectangle(D2D1::RectF(75.f, 75.f, 100.f, 100.f), m_pSolidColorBrush);    
        pRT->FillRectangle(D2D1::RectF(100.f, 100.f, 125.f, 125.f), m_pSolidColorBrush); 
        pRT->FillRectangle(D2D1::RectF(125.f, 125.f, 150.f, 150.f), m_pSolidColorBrush);    
        

        pRT->PopLayer();
    }

    SafeRelease(&pLayer);

    return hr;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header d2d1.h
Pustaka D2d1.lib
DLL D2d1.dll

Lihat juga

ID2D1RenderTarget

Gambaran Umum Lapisan

PopLayer