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

Lihat juga

CLIPOBJ

DrvBitBlt

DrvStretchBlt

SURFOBJ

XLATEOBJ