Bagikan melalui


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

Lihat juga

BRUSHOBJ

BRUSHOBJ_pvGetRbrush

CLIPOBJ

DrvBitBlt

EngAssociateSurface

SURFOBJ

XLATEOBJ