Bagikan melalui


Metode ID2D1RenderTarget::P ushAxisAlignedClip(constD2D1_RECT_F&,D2D1_ANTIALIAS_MODE) (d2d1.h)

Menentukan persegi panjang tempat semua operasi gambar berikutnya dipotong.

Sintaks

void PushAxisAlignedClip(
  const D2D1_RECT_F & clipRect,
  D2D1_ANTIALIAS_MODE antialiasMode
);

Parameter

clipRect

Jenis: [in] const D2D1_RECT_F &

Ukuran dan posisi area kliping, dalam piksel independen perangkat.

antialiasMode

Jenis: [in] D2D1_ANTIALIAS_MODE

Mode antialias yang digunakan untuk menggambar tepi klip rect yang memiliki batas subpiksel, dan untuk memadukan klip dengan konten adegan. Blending dilakukan sekali ketika metode PopAxisAlignedClip dipanggil , dan tidak berlaku untuk setiap primitif dalam lapisan.

Nilai kembali

Tidak ada

Keterangan

ClipRect diubah oleh transformasi dunia saat ini yang ditetapkan pada target render. Setelah transformasi diterapkan ke clipRect yang diteruskan, kotak batas rata sumbu untuk clipRect dihitung. Untuk efisiensi, konten dipotong ke kotak batas rata sumbu ini dan bukan ke clipRect asli yang diteruskan.

Diagram berikut menunjukkan bagaimana transformasi rotasi diterapkan ke target render, clipRect yang dihasilkan, dan kotak batas rata sumbu terhitung.

  1. Asumsikan persegi panjang dalam ilustrasi berikut adalah target render yang selaras dengan piksel layar. Ilustrasi persegi panjang (target render)
  2. Terapkan transformasi rotasi ke target render. Dalam ilustrasi berikut, persegi panjang hitam mewakili target render asli dan persegi panjang putus-putus merah mewakili target render yang diubah. Ilustrasi persegi panjang yang diputar (target render yang diubah)
  3. Setelah memanggil PushAxisAlignedClip, transformasi rotasi diterapkan ke clipRect. Dalam ilustrasi berikut, persegi panjang biru mewakili clipRect yang diubah. Ilustrasi persegi panjang biru kecil (clipRect yang diubah) di dalam persegi panjang yang diputar
  4. Kotak batas rata sumbu dihitung. Persegi panjang putus-putus hijau mewakili kotak pembatas dalam ilustrasi berikut. Semua isi dipotong ke kotak pembatas rata sumbu ini. Ilustrasi kotak pembatas hijau di sekitar persegi panjang biru kecil di dalam persegi panjang yang diputar
Catatan Jika operasi penyajian gagal atau jika PopAxisAlignedClip tidak dipanggil, clip rects dapat menyebabkan beberapa artefak pada target render. PopAxisAlignedClip dapat dianggap sebagai operasi menggambar yang dirancang untuk memperbaiki batas wilayah kliping. Tanpa panggilan ini, batas area terpotong mungkin tidak diantisipasi atau dikoreksi.
 
PushAxisAlignedClip dan PopAxisAlignedClip harus cocok. Jika tidak, status kesalahan diatur. Agar target render terus menerima perintah baru, Anda dapat memanggil Flush untuk menghapus kesalahan.

Pasangan PushAxisAlignedClip dan PopAxisAlignedClip dapat terjadi di sekitar atau dalam PushLayer dan PopLayer, tetapi tidak dapat tumpang tindih. Misalnya, urutan PushAxisAlignedClip, PushLayer, PopLayer, PopAxisAlignedClip valid, tetapi urutan PushAxisAlignedClip, PushLayer, PopAxisAlignedClip, PopLayer tidak valid.

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

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
Pustaka D2d1.lib
DLL D2d1.dll

Lihat juga

ID2D1RenderTarget