Fungsi EngStretchBlt (winddi.h)
Fungsi EngStretchBlt menyebabkan GDI melakukan transfer blok bit yang meregang.
Sintaks
ENGAPI BOOL EngStretchBlt(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
[in] COLORADJUSTMENT *pca,
[in] POINTL *pptlHTOrg,
[in] RECTL *prclDest,
[in] RECTL *prclSrc,
POINTL *pptlMask,
[in] ULONG iMode
);
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 sumbernya. Masker didefinisikan oleh peta logika, yang merupakan bitmap dengan satu bit per piksel.
Masker membatasi area sumber yang disalin. Jika parameter ini ditentukan, parameter ini memiliki rop4 implisit 0xCCAA, yang berarti sumber harus disalin di mana pun masker adalah 1, tetapi tujuannya harus dibiarkan sendirian di mana pun masker adalah 0.
Jika parameter ini NULL, rop4 secara implisit 0xCCCC, yang berarti sumber harus disalin di mana-mana di persegi panjang sumber.
pco
Penunjuk ke struktur CLIPOBJ yang membatasi area yang akan dimodifikasi di tujuan. Layanan GDI disediakan untuk menghitung wilayah klip sebagai satu set persegi panjang.
Jika memungkinkan, GDI menyederhanakan kliping yang terlibat. Namun, tidak seperti DrvBitBlt, EngStretchBlt 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.
[in] 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.
[in] pptlHTOrg
Penunjuk ke struktur POINTL yang mendefinisikan asal sikat halftone. Driver yang menggunakan kuas halftone harus menyelaraskan piksel kiri atas pola kuas dengan titik ini pada permukaan perangkat.
[in] prclDest
Penunjuk ke struktur RECTL yang menentukan area yang akan dimodifikasi dalam sistem koordinat permukaan tujuan. Persegi panjang ini didefinisikan oleh dua titik yang tidak diurutkan dengan baik, yang berarti koordinat titik kedua belum tentu lebih besar dari titik pertama. Persegi panjang yang dijelaskan tidak menyertakan tepi bawah dan kanan. Fungsi ini tidak pernah dipanggil dengan persegi tujuan kosong.
Jika persegi panjang tujuan tidak dipesan dengan baik, EngStretchBlt membuatnya dipesan dengan baik.
[in] prclSrc
Penunjuk ke struktur RECTL yang menentukan area yang akan disalin, dalam sistem koordinat permukaan sumber. Persegi panjang akan memetakan ke persegi panjang yang ditentukan oleh prclDest. Fungsi ini tidak pernah diberi persegi panjang sumber kosong, dan titik-titik persegi panjang sumber selalu diurutkan dengan baik.
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.)
Tepi persegi panjang apa pun tidak pernah bersinggungan piksel, tetapi mengelilingi sekumpulan piksel. Piksel yang berada di dalam persegi panjang adalah piksel yang diharapkan untuk persegi panjang eksklusif kanan bawah. EngStretchBlt memetakan persegi panjang sumber geometris tepat ke persegi panjang tujuan geometris.
pptlMask
Penunjuk ke struktur POINTL yang menentukan piksel dalam masker tertentu yang sesuai dengan piksel kiri atas di persegi panjang sumber. Parameter ini diabaikan jika tidak ada masker yang ditentukan.
[in] iMode
Menentukan bagaimana piksel sumber digabungkan untuk mendapatkan piksel output. Mode HALFTONE lebih lambat daripada mode lainnya, tetapi menghasilkan gambar berkualitas lebih tinggi.
Nilai | Makna |
---|---|
BLACKONWHITE | Pada transfer blok bit yang menyusut, piksel harus dikombinasikan dengan operasi Boolean AND. Pada transfer blok bit peregangan, piksel harus direplikasi. |
COLORONCOLOR | Pada transfer blok bit yang menyusut, piksel yang cukup harus diabaikan sehingga piksel tidak perlu digabungkan. Pada transfer blok bit peregangan, piksel harus direplikasi. |
HALFTONE | Driver dapat 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. |
Nilai kembali
Nilai yang dikembalikan adalah TRUE jika fungsi berhasil. Jika tidak, itu adalah FALSE dan kode kesalahan dilaporkan.
Keterangan
Fungsi ini memungkinkan algoritma halftoning yang sama diterapkan ke bitmap GDI dan permukaan perangkat.
Driver harus memanggil EngStretchBlt jika telah mengaitkan DrvStretchBlt dan dipanggil untuk melakukan sesuatu yang tidak didukung driver.
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 |