Metode ID2D1RenderTarget::CreateLayer(constD2D1_SIZE_F*,ID2D1Layer**) (d2d1.h)

Membuat sumber daya lapisan yang dapat digunakan dengan target render ini dan target render yang kompatibel.

Sintaks

HRESULT CreateLayer(
  const D2D1_SIZE_F *size,
  ID2D1Layer        **layer
);

Parameter

size

Jenis: [in] const D2D1_SIZE_F*

Jika (0, 0) ditentukan, tidak ada penyimpanan cadangan yang dibuat di belakang sumber daya lapisan. Sumber daya lapisan dialokasikan ke ukuran minimum saat PushLayer dipanggil.

layer

Jenis: [out] ID2D1Layer**

Saat metode kembali, berisi penunjuk ke penunjuk ke lapisan baru. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan nilai

Jenis: HRESULT

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Lapisan secara otomatis mengubah ukuran dirinya sendiri, sesuai kebutuhan.

Contoh

Contoh berikut menggunakan lapisan untuk mengklip bitmap ke masker geometris. Untuk contoh lengkapnya, lihat Cara 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
Target Platform Windows
Header d2d1.h
Pustaka D2d1.lib
DLL D2d1.dll

Lihat juga

ID2D1RenderTarget

Gambaran Umum Lapisan