Fungsi EngBitBlt (winddi.h)
Fungsi EngBitBlt menyediakan kemampuan transfer blok bit umum baik antara permukaan yang dikelola perangkat, atau antara permukaan yang dikelola perangkat dan bitmap format standar yang dikelola GDI.
Sintaks
ENGAPI BOOL EngBitBlt(
SURFOBJ *psoTrg,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
RECTL *prclTrg,
POINTL *pptlSrc,
POINTL *pptlMask,
BRUSHOBJ *pbo,
POINTL *pptlBrush,
[in] ROP4 rop4
);
Parameter
psoTrg
Arahkan ke struktur SURFOBJ yang mengidentifikasi permukaan untuk menggambar.
psoSrc
Jika rop4 memerlukannya, arahkan ke struktur SURFOBJ yang menentukan sumber untuk operasi transfer blok bit.
psoMask
Pointer ke struktur SURFOBJ yang mendefinisikan permukaan yang akan digunakan sebagai masker. Masker didefinisikan sebagai bitmap dengan 1 bit per piksel. Biasanya, masker membatasi area yang akan dimodifikasi di permukaan tujuan. Masking dipilih oleh rop4 dengan nilai 0xAACC. Permukaan tujuan tidak terpengaruh ketika masker nol.
Masker cukup besar untuk menutupi persegi tujuan.
Jika nilai parameter ini adalah NULL dan masker diperlukan oleh rop4, maka masker implisit dalam kuas digunakan. Jika masker diperlukan, maka psoMask mengambil alih masker implisit di kuas.
pco
Penunjuk ke struktur CLIPOBJ . Rutinitas layanan CLIPOBJ_Xxx disediakan untuk menghitung wilayah klip sebagai satu set persegi panjang. Enumerasi ini membatasi area tujuan yang akan dimodifikasi. Jika memungkinkan, GDI menyederhanakan kliping yang terlibat; misalnya, fungsi ini tidak pernah dipanggil dengan satu persegi panjang kliping. GDI mengklip persegi tujuan sebelum memanggil fungsi ini, membuat kliping tambahan tidak perlu.
pxlo
Penunjuk ke struktur XLATEOBJ yang memberi tahu bagaimana indeks warna harus diterjemahkan antara permukaan sumber dan target.
prclTrg
Penunjuk ke struktur RECTL dalam sistem koordinat permukaan tujuan yang menentukan area yang akan dimodifikasi. Persegi panjang didefinisikan oleh dua titik; kiri atas dan kanan bawah. Tepi bawah dan kanan persegi ini bukan bagian dari transfer blok bit, yang berarti persegi panjang eksklusif kanan bawah.
EngBitBlt tidak pernah dipanggil dengan persegi tujuan kosong. Dua titik yang menentukan persegi panjang selalu diurutkan dengan baik.
pptlSrc
Penunjuk ke struktur POINTL yang menentukan sudut kiri atas persegi panjang sumber, jika ada sumber. Jika tidak ada sumber, driver harus mengabaikan parameter ini.
pptlMask
Penunjuk ke struktur POINTL yang menentukan piksel mana dalam masker yang sesuai dengan sudut kiri atas persegi panjang tujuan. Jika tidak ada masker yang ditentukan dalam psoMask , driver harus mengabaikan parameter ini.
pbo
Arahkan ke struktur BRUSHOBJ yang akan digunakan untuk menentukan pola transfer blok bit. Rutinitas layanan BRUSHOBJ_pvGetRbrush GDI mengambil realisasi perangkat dari kuas. Driver dapat mengabaikan parameter ini jika parameter rop4 tidak memerlukan pola.
pptlBrush
Pointer ke struktur POINTL yang mendefinisikan asal kuas di permukaan tujuan. Piksel kiri atas kuas selaras pada saat ini dan kuas diulang sesuai dengan dimensinya. Abaikan parameter ini jika parameter rop4 tidak memerlukan pola.
[in] rop4
Mewakili operasi raster yang menentukan bagaimana piksel masker, pola, sumber, dan tujuan digabungkan untuk menulis piksel output ke permukaan tujuan.
Ini adalah operasi raster kuaterner, yang merupakan ekstensi alami dari operasi Rop3 terner biasa. Rop4 memiliki 16 bit yang relevan, yang mirip dengan 8 bit yang menentukan Rop3. (Bit redundan lainnya dari Rop3 diabaikan.) Cara paling sederhana untuk mengimplementasikan Rop4 adalah dengan mempertimbangkan 2 byte secara terpisah. Byte yang lebih rendah menentukan Rop3 yang harus dihitung di mana pun masker adalah 1. Byte tinggi menentukan Rop3 yang dapat dihitung dan diterapkan di mana pun masker adalah 0.
Mengembalikan nilai
Nilai yang dikembalikan adalah TRUE jika fungsi berhasil. Jika tidak, itu FALSE, dan kode kesalahan dicatat.
Keterangan
Jika permukaan perangkat diatur sebagai bitmap format standar, driver dapat meminta GDI melakukan transfer blok bit dengan memanggil EngBitBlt. Driver mungkin melakukan ini jika memiliki perangkat keras khusus untuk menangani transfer sederhana dengan cepat, tetapi tidak ingin menangani panggilan dengan transfer yang rumit.
Lihat dokumentasi Microsoft Windows SDK untuk informasi selengkapnya tentang operasi raster.
Persyaratan
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 |