Fungsi EngStretchBltROP (winddi.h)
Fungsi EngStretchBltROP melakukan transfer blok bit yang meregangkan menggunakan ROP.
Sintaks
ENGAPI BOOL EngStretchBltROP(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlHTOrg,
[in] RECTL *prclDest,
[in] RECTL *prclSrc,
POINTL *pptlMask,
[in] ULONG iMode,
BRUSHOBJ *pbo,
[in] DWORD rop4
);
Parameter
psoDest
Penunjuk ke struktur SURFOBJ yang menggambarkan permukaan untuk menggambar.
psoSrc
Penunjuk ke struktur SURFOBJ yang menjelaskan permukaan sumber untuk transfer blok bit.
psoMask
Penunjuk ke struktur SURFOBJ yang mendefinisikan masker untuk permukaan sumber. Masker didefinisikan oleh peta logika, yang merupakan bitmap dengan 1 bit per piksel. Biasanya, masker membatasi area yang akan dimodifikasi di permukaan tujuan. Masker ini harus selalu berukuran sama dengan permukaan sumber.
pco
Penunjuk ke struktur CLIPOBJ yang membatasi area yang akan dimodifikasi di tujuan. Rutinitas layanan CLIPOBJ_Xxx disediakan untuk menghitung wilayah klip sebagai satu set persegi panjang.
Jika memungkinkan, GDI menyederhanakan kliping yang terlibat. Namun, tidak seperti EngBitBlt, EngStretchBltROP dapat dipanggil dengan satu persegi panjang kliping. Ini mencegah kesalahan pembulatan dalam mengklip output.
pxlo
Penunjuk ke struktur XLATEOBJ yang menentukan bagaimana indeks warna akan diterjemahkan antara permukaan sumber dan target.
Struktur XLATEOBJ ini juga dapat dikueri untuk menemukan warna RGB untuk indeks sumber apa pun. Transfer blok bit peregangan berkualitas tinggi perlu menginterpolasi warna dalam beberapa kasus.
pca
Penunjuk ke struktur COLORADJUSTMENT yang menentukan nilai penyesuaian warna yang akan diterapkan ke bitmap sumber sebelum meregangkan bit. Untuk informasi selengkapnya, lihat dokumentasi Windows SDK.
pptlHTOrg
Penunjuk ke struktur POINTL yang mendefinisikan asal sikat halftone pada permukaan tujuan. Saat menggunakan kuas halftone, GDI menyelaraskan piksel kiri atas pola kuas pada titik ini dan mengulangi kuas sesuai dengan dimensinya. GDI mengabaikan parameter ini jika parameter rop4 tidak memerlukan pola.
[in] prclDest
Penunjuk ke struktur RECTL yang menentukan area persegi panjang yang akan dimodifikasi. Persegi panjang ini ditentukan dalam sistem koordinat permukaan tujuan dan didefinisikan oleh dua titik: kiri atas dan kanan bawah. Dua titik yang menentukan persegi panjang tidak selalu diurutkan dengan baik, yang berarti koordinat titik kedua tidak selalu lebih besar dari titik pertama. Jika persegi panjang tujuan tidak dipesan dengan baik, GDI membuatnya demikian.
Persegi panjang eksklusif kanan bawah; artinya, tepi bawah dan kanannya bukan bagian dari salinan.
EngStretchBltROP tidak boleh dipanggil dengan persegi panjang tujuan kosong.
[in] prclSrc
Penunjuk ke struktur RECTL yang menentukan area yang akan disalin. Persegi panjang ini ditentukan dalam sistem koordinat permukaan sumber dan didefinisikan oleh dua titik: kiri atas dan kanan bawah. Dua titik yang menentukan persegi panjang selalu diurutkan dengan baik.
Persegi panjang eksklusif kanan bawah; artinya, tepi bawah dan kanannya bukan bagian dari salinan.
Persegi panjang ini memetakan ke persegi panjang tempat titik prclDest .
EngStretchBltROP tidak boleh dipanggil dengan persegi panjang sumber kosong.
pptlMask
Penunjuk ke struktur POINTL yang menentukan piksel dalam masker tempat prclMask menunjuk . Piksel ini sesuai dengan piksel kiri atas dalam persegi panjang sumber tempat prclSrc menunjuk. Parameter ini diabaikan jika tidak ada masker yang ditentukan; artinya, GDI mengabaikan pptlMask ketika prclMask adalah NULL.
[in] iMode
Menentukan bagaimana piksel sumber digabungkan untuk mendapatkan piksel output. Mode HALFTONE lebih lambat daripada mode lainnya, tetapi menghasilkan gambar berkualitas lebih tinggi. Parameter ini bisa menjadi salah satu nilai berikut:
Nilai | Makna |
---|---|
BLACKONWHITE | Pada transfer blok bit yang menyusut, GDI menggabungkan piksel dengan operasi Boolean AND. Pada transfer blok bit peregangan, piksel direplikasi. |
COLORONCOLOR | Pada transfer blok bit yang menyusut, GDI mengabaikan piksel yang cukup sehingga piksel tidak perlu digabungkan. Pada transfer blok bit peregangan, piksel direplikasi. |
HALFTONE | GDI menggunakan grup piksel di permukaan output untuk perkiraan terbaik warna atau tingkat abu-abu input. |
WHITEONBLACK | Pada transfer blok bit yang menyusut, piksel harus dikombinasikan dengan operasi Boolean OR. Pada transfer blok bit peregangan, piksel harus direplikasi. |
pbo
Penunjuk ke struktur BRUSHOBJ yang akan digunakan untuk menentukan pola transfer blok bit. Rutinitas layanan BRUSHOBJ_pvGetRbrush GDI mengambil realisasi perangkat dari kuas. GDI mengabaikan parameter ini jika parameter rop4 tidak memerlukan pola.
[in] rop4
Mewakili operasi raster yang menentukan bagaimana piksel mask, pola, sumber, dan tujuan digabungkan untuk menulis piksel output ke permukaan tujuan.
Ini adalah operasi raster kuaterner, yang merupakan perpanjangan alami dari operasi Rop3 ternary 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 tempat titik psoMask adalah 1. Byte tinggi menentukan Rop3 yang dapat dihitung dan diterapkan di mana pun masker nol.
Mengembalikan nilai
EngStretchBltROP mengembalikan TRUE setelah berhasil. Jika tidak, ia melaporkan kesalahan dan mengembalikan FALSE.
Keterangan
Driver harus memanggil EngStretchBltROP jika telah menghubungkan DrvStretchBltROP tetapi tidak dapat mendukung semua operasi.
Pemetaan didefinisikan oleh prclSrc dan prclDest. Titik yang ditentukan dalam prclDest dan prclSrc terletak pada koordinat bilangan bulat yang sesuai dengan pusat piksel. Persegi panjang yang ditentukan oleh dua titik tersebut dianggap sebagai persegi panjang geometris dengan dua simpul yang koordinatnya adalah titik yang diberikan, tetapi dengan 0,5 dikurangi dari setiap koordinat. (Struktur POINTL adalah notasi singkat untuk menentukan simpul koordinat pecahan ini.)
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 |