Bagikan melalui


Antarmuka ID2D1Layer (d2d1.h)

Mewakili penyimpanan cadangan yang diperlukan untuk merender lapisan.

Warisan

Antarmuka ID2D1Layer mewarisi dari ID2D1Resource. ID2D1Layer juga memiliki jenis anggota berikut:

Metode

Antarmuka ID2D1Layer memiliki metode ini.

 
ID2D1Layer::GetSize

Mendapatkan ukuran lapisan dalam piksel independen perangkat.

Keterangan

Untuk membuat lapisan, panggil metode CreateLayer dari target render tempat lapisan akan digunakan. Untuk menggambar ke lapisan, dorong lapisan ke tumpukan target render dengan memanggil metode PushLayer . Setelah Anda selesai menggambar ke lapisan, panggil metode PopLayer .

Antara panggilan PushLayer dan PopLayer , lapisan sedang digunakan dan tidak dapat digunakan oleh target render lain.

Jika ukuran lapisan tidak ditentukan, panggilan PushLayer yang sesuai menentukan ukuran lapisan minimum, berdasarkan batas konten lapisan dan masker geometris. Sumber daya lapisan dapat lebih besar dari ukuran yang diperlukan oleh PushLayer tanpa artefak penyajian apa pun.

Jika ukuran lapisan ditentukan, atau jika lapisan telah digunakan dan ukuran penyimpanan backing yang diperlukan seperti yang dihitung selama PushLayer lebih besar dari lapisan, maka sumber daya lapisan diperluas pada setiap sumbu secara monoton untuk memastikan bahwa itu cukup besar. Sumber daya lapisan tidak pernah menyusut dalam ukuran.

Membuat Objek ID2D1Layer

Untuk membuat lapisan, panggil metode CreateLayer dari target render tempat lapisan akan digunakan.

Lapisan adalah sumber daya yang bergantung pada perangkat: aplikasi Anda harus membuat lapisan setelah menginisialisasi target render yang lapisannya akan digunakan, dan membuat ulang lapisan setiap kali target render perlu dibuat ulang. (Untuk informasi selengkapnya tentang sumber daya, lihat Gambaran Umum Sumber Daya.)

Contoh

Contoh berikut menggunakan lapisan untuk mengklip gambar 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

   
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

Lihat juga

ID2D1RenderTarget

ID2D1Resource

Gambaran Umum Lapisan