Fungsi EngPlgBlt (winddi.h)
Fungsi EngPlgBlt menyebabkan GDI melakukan transfer blok bit putar.
Sintaks
ENGAPI BOOL EngPlgBlt(
SURFOBJ *psoTrg,
SURFOBJ *psoSrc,
SURFOBJ *psoMsk,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlBrushOrg,
POINTFIX *pptfx,
RECTL *prcl,
POINTL *pptl,
[in] ULONG iMode
);
Parameter
psoTrg
Arahkan ke struktur SURFOBJ yang menggambarkan permukaan untuk menggambar.
psoSrc
Pointer ke struktur SURFOBJ yang menjelaskan permukaan sumber untuk operasi transfer blok bit.
psoMsk
Arahkan ke struktur SURFOBJ opsional yang mewakili masker untuk sumbernya. Ini didefinisikan oleh peta logika, yang merupakan bitmap dengan satu bit per piksel.
Masker ini membatasi area sumber yang disalin. Masker memiliki rop4 implisit 0xCCAA, yang berarti sumber harus disalin di mana pun masker adalah 1, tetapi tujuannya harus dibiarkan sendiri di mana pun masker nol.
Jika parameter ini NULL, ada rop4 implisit 0xCCCC, yang berarti sumber harus disalin di mana-mana dalam persegi sumber.
Masker akan selalu cukup besar untuk berisi sumber yang relevan; petak peta tidak perlu.
pco
Penunjuk ke struktur CLIPOBJ yang membatasi area tujuan yang akan dimodifikasi. Fungsi GDI menghitung wilayah klip sebagai sekumpulan persegi panjang.
Jika memungkinkan, GDI menyederhanakan kliping yang terlibat. Tidak seperti fungsi DrvBitBlt , EngPlgBlt dapat dipanggil dengan satu persegi panjang kliping. Ini mencegah kesalahan pembulatan dalam mengklip output.
pxlo
Penunjuk ke struktur XLATEOBJ yang menentukan bagaimana indeks warna diterjemahkan antara permukaan sumber dan target. Struktur XLATEOBJ ini dapat dikueri untuk menemukan warna RGB untuk indeks sumber apa pun.
Transfer bit-block putar berkualitas tinggi diperlukan untuk menginterpolasi warna.
pca
Penunjuk ke struktur COLORADJUSTMENT yang menentukan nilai penyesuaian warna yang akan diterapkan ke bitmap sumber sebelum meregangkan bit. Untuk informasi selengkapnya, lihat dokumentasi Microsoft Windows SDK.
pptlBrushOrg
Pointer ke struktur POINTL yang menentukan asal sikat halftone. Driver yang menggunakan kuas halftone harus menyelaraskan piksel kiri atas pola kuas dengan titik ini pada permukaan perangkat.
pptfx
Arahkan ke tiga struktur POINTFIX yang menentukan parallelogram di permukaan tujuan. Verteks keempat, implisit, diberikan sebagai: D = B + C − A. Untuk deskripsi jenis data ini, lihat Jenis Data GDI.
EngPlgBlt tidak pernah dipanggil dengan collinear A, B, dan C.
prcl
Penunjuk ke struktur RECTL yang menentukan, dalam sistem koordinat permukaan sumber, area yang akan disalin. Titik-titik persegi panjang sumber diurutkan dengan baik. EngPlgBlt tidak akan pernah diberi persegi sumber kosong.
pptl
Penunjuk ke struktur POINTL yang menentukan piksel mana dalam masker yang diberikan sesuai dengan piksel kiri atas di persegi sumber. Abaikan parameter ini jika psoMsk adalah NULL.
[in] iMode
Menentukan bagaimana piksel sumber digabungkan untuk mendapatkan piksel output. Parameter ini bisa menjadi salah satu nilai berikut:
Nilai | Makna |
---|---|
BLACKONWHITE | Pada transfer bit-block yang menyusut, piksel harus dikombinasikan dengan operasi AND. Pada piksel transfer blok bit yang membentang harus direplikasi. |
COLORONCOLOR | Pada transfer bit-block yang menyusut, piksel yang cukup harus diabaikan sehingga piksel tidak perlu digabungkan. Pada transfer blok bit yang membentang, piksel harus direplikasi. |
HALFTONE | Driver dapat menggunakan sekelompok piksel di permukaan output untuk perkiraan terbaik warna atau tingkat abu-abu input. |
WHITEONBLACK | Pada transfer bit-block yang menyusut, piksel harus dikombinasikan dengan operasi OR. Pada transfer blok peregangan, piksel harus direplikasi. |
Metode WHITEONBLACK, BLACKONWHITE, dan COLORONCOLOR sederhana dan memberikan kompatibilitas untuk aplikasi lama, tetapi tidak menghasilkan hasil yang paling terlihat untuk permukaan warna.
Nilai kembali
Nilai yang dikembalikan adalah TRUE jika fungsi berhasil. Jika tidak, kode tersebut FALSE dan kode kesalahan dilaporkan.
Keterangan
EngPlgBlt hanya melakukan jenis rotasi tertentu.
Fungsi ini melakukan transfer bit-block dari persegi panjang yang ditentukan oleh prcl ke parallelogram apa pun. Parallelogram didefinisikan oleh pptfx, yang menunjuk ke array tiga poin.
Persegi panjang sumber di prcl dianggap sebagai persegi panjang geometris yang sudutnya dipindahkan oleh (-0,5,-0,5) dari koordinat bilangan bulat yang diberikan. Ini sama persis dengan persegi panjang sumber untuk EngStretchBlt. Persegi panjang sumber selalu diurutkan dengan baik.
Sudut kiri atas persegi panjang sumber dipetakan ke titik pertama, A. Sudut kanan atas persegi panjang sumber dipetakan ke titik kedua, B. Sudut kiri bawah persegi panjang sumber dipetakan ke titik ketiga, C. Sudut kanan bawah persegi panjang sumber dipetakan ke titik implisit dalam parallelogram yang ditentukan dengan memperlakukan tiga titik tertentu sebagai vektor dan komputasi:
D = B + C - A
Perhatikan bahwa blit peregangan dapat diekspresikan persis sebagai blit parallelogram, tetapi koordinat yang diberikan untuk tujuan akan dibagi dengan lima.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows 2000 dan versi yang lebih baru dari sistem operasi Windows. |
Target Platform | Universal |
Header | winddi.h (termasuk Winddi.h) |
Pustaka | Win32k.lib |
DLL | Win32k.sys |