Bagikan melalui


Fungsi EngPlgBlt (winddi.h)

Fungsi EngPlgBlt menyebabkan GDI melakukan transfer blok bit putar.

Sintaks

ENGAPI BOOL EngPlgBlt(
       SURFOBJ         *psoTrg,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMsk,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
       COLORADJUSTMENT *pca,
       POINTL          *pptlBrushOrg,
       POINTFIX        *pptfx,
       RECTL           *prcl,
       POINTL          *pptl,
  [in] ULONG           iMode
);

Parameter

psoTrg

Arahkan ke struktur SURFOBJ yang menggambarkan permukaan untuk menggambar.

psoSrc

Pointer ke struktur SURFOBJ yang menjelaskan permukaan sumber untuk operasi transfer blok bit.

psoMsk

Arahkan ke struktur SURFOBJ opsional yang mewakili masker untuk sumbernya. Ini didefinisikan oleh peta logika, yang merupakan bitmap dengan satu bit per piksel.

Masker ini membatasi area sumber yang disalin. Masker memiliki rop4 implisit 0xCCAA, yang berarti sumber harus disalin di mana pun masker adalah 1, tetapi tujuannya harus dibiarkan sendiri di mana pun masker nol.

Jika parameter ini NULL, ada rop4 implisit 0xCCCC, yang berarti sumber harus disalin di mana-mana dalam persegi sumber.

Masker akan selalu cukup besar untuk berisi sumber yang relevan; petak peta tidak perlu.

pco

Penunjuk ke struktur CLIPOBJ yang membatasi area tujuan yang akan dimodifikasi. Fungsi GDI menghitung wilayah klip sebagai sekumpulan persegi panjang.

Jika memungkinkan, GDI menyederhanakan kliping yang terlibat. Tidak seperti fungsi DrvBitBlt , EngPlgBlt dapat dipanggil dengan satu persegi panjang kliping. Ini mencegah kesalahan pembulatan dalam mengklip output.

pxlo

Penunjuk ke struktur XLATEOBJ yang menentukan bagaimana indeks warna diterjemahkan antara permukaan sumber dan target. Struktur XLATEOBJ ini dapat dikueri untuk menemukan warna RGB untuk indeks sumber apa pun.

Transfer bit-block putar berkualitas tinggi diperlukan untuk menginterpolasi warna.

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.

pptlBrushOrg

Pointer ke struktur POINTL yang menentukan asal sikat halftone. Driver yang menggunakan kuas halftone harus menyelaraskan piksel kiri atas pola kuas dengan titik ini pada permukaan perangkat.

pptfx

Arahkan ke tiga struktur POINTFIX yang menentukan parallelogram di permukaan tujuan. Verteks keempat, implisit, diberikan sebagai: D = B + C − A. Untuk deskripsi jenis data ini, lihat Jenis Data GDI.

EngPlgBlt tidak pernah dipanggil dengan collinear A, B, dan C.

prcl

Penunjuk ke struktur RECTL yang menentukan, dalam sistem koordinat permukaan sumber, area yang akan disalin. Titik-titik persegi panjang sumber diurutkan dengan baik. EngPlgBlt tidak akan pernah diberi persegi sumber kosong.

pptl

Penunjuk ke struktur POINTL yang menentukan piksel mana dalam masker yang diberikan sesuai dengan piksel kiri atas di persegi sumber. Abaikan parameter ini jika psoMsk adalah NULL.

[in] iMode

Menentukan bagaimana piksel sumber digabungkan untuk mendapatkan piksel output. Parameter ini bisa menjadi salah satu nilai berikut:

Nilai Makna
BLACKONWHITE Pada transfer bit-block yang menyusut, piksel harus dikombinasikan dengan operasi AND. Pada piksel transfer blok bit yang membentang harus direplikasi.
COLORONCOLOR Pada transfer bit-block yang menyusut, piksel yang cukup harus diabaikan sehingga piksel tidak perlu digabungkan. Pada transfer blok bit yang membentang, piksel harus direplikasi.
HALFTONE Driver dapat menggunakan sekelompok piksel di permukaan output untuk perkiraan terbaik warna atau tingkat abu-abu input.
WHITEONBLACK Pada transfer bit-block yang menyusut, piksel harus dikombinasikan dengan operasi OR. Pada transfer blok peregangan, piksel harus direplikasi.
 

Metode WHITEONBLACK, BLACKONWHITE, dan COLORONCOLOR sederhana dan memberikan kompatibilitas untuk aplikasi lama, tetapi tidak menghasilkan hasil yang paling terlihat untuk permukaan warna.

Nilai kembali

Nilai yang dikembalikan adalah TRUE jika fungsi berhasil. Jika tidak, kode tersebut FALSE dan kode kesalahan dilaporkan.

Keterangan

EngPlgBlt hanya melakukan jenis rotasi tertentu.

Fungsi ini melakukan transfer bit-block dari persegi panjang yang ditentukan oleh prcl ke parallelogram apa pun. Parallelogram didefinisikan oleh pptfx, yang menunjuk ke array tiga poin.

Persegi panjang sumber di prcl dianggap sebagai persegi panjang geometris yang sudutnya dipindahkan oleh (-0,5,-0,5) dari koordinat bilangan bulat yang diberikan. Ini sama persis dengan persegi panjang sumber untuk EngStretchBlt. Persegi panjang sumber selalu diurutkan dengan baik.

Sudut kiri atas persegi panjang sumber dipetakan ke titik pertama, A. Sudut kanan atas persegi panjang sumber dipetakan ke titik kedua, B. Sudut kiri bawah persegi panjang sumber dipetakan ke titik ketiga, C. Sudut kanan bawah persegi panjang sumber dipetakan ke titik implisit dalam parallelogram yang ditentukan dengan memperlakukan tiga titik tertentu sebagai vektor dan komputasi:

D = B + C - A

Perhatikan bahwa blit peregangan dapat diekspresikan persis sebagai blit parallelogram, tetapi koordinat yang diberikan untuk tujuan akan dibagi dengan lima.

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

DrvAlphaBlend

DrvBitBlt

DrvPlgBlt

DrvStretchBlt

DrvStretchBltROP

DrvTransparentBlt

EngAlphaBlend

EngBitBlt

EngStretchBlt

EngStretchBltROP

EngTransparentBlt