Fungsi DrvGradientFill (winddi.h)
Fungsi DrvGradientFill menaungi primitif yang ditentukan.
Sintaks
BOOL DrvGradientFill(
[in, out] SURFOBJ *psoDest,
[in] CLIPOBJ *pco,
[in, optional] XLATEOBJ *pxlo,
[in] TRIVERTEX *pVertex,
[in] ULONG nVertex,
[in] PVOID pMesh,
[in] ULONG nMesh,
[in] RECTL *prclExtents,
[in] POINTL *pptlDitherOrg,
[in] ULONG ulMode
);
Parameter
[in, out] psoDest
Arahkan ke struktur SURFOBJ yang mengidentifikasi permukaan untuk menggambar.
[in] 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 dimodifikasi. Jika memungkinkan, GDI menyederhanakan kliping yang terlibat.
[in, optional] pxlo
Penunjuk ke struktur XLATEOBJ . Parameter ini harus diabaikan oleh driver.
[in] pVertex
Arahkan ke array struktur TRIVERTEX, dengan setiap entri berisi informasi posisi dan warna. Struktur TRIVERTEX dijelaskan dalam dokumentasi Microsoft Windows SDK.
[in] nVertex
Menentukan jumlah struktur TRIVERTEX dalam array tempat pVertex menunjuk .
[in] pMesh
Arahkan ke array struktur yang menentukan konektivitas elemen TRIVERTEX tempat pVertex menunjuk.
Ketika persegi panjang sedang digambar, pMesh menunjuk ke array struktur GRADIENT_RECT, yang masing-masing menentukan dua elemen TRIVERTEX yang menentukan persegi panjang. Elemen TRIVERTEX dapat mewakili sepasang simpul persegi panjang yang berlawanan secara diagonal. Gambar persegi panjang bersifat eksklusif kanan bawah. TRIVERTEX dan GRADIENT_RECT didefinisikan dalam dokumentasi Windows SDK.
Ketika segitiga digambar, pMesh menunjuk ke array struktur GRADIENT_TRIANGLE, yang masing-masing menentukan tiga elemen TRIVERTEX yang menentukan segitiga. Gambar segitiga bersifat eksklusif kanan bawah. GRADIENT_TRIANGLE ditentukan dalam dokumentasi Windows SDK.
[in] nMesh
Menentukan jumlah elemen dalam array tempat pMesh menunjuk.
[in] prclExtents
Penunjuk ke struktur RECTL yang menentukan area tempat gambar gradien terjadi. Titik ditentukan dalam sistem koordinat permukaan tujuan. Parameter ini berguna dalam memperkirakan ukuran operasi gambar.
[in] pptlDitherOrg
Pointer ke struktur POINTL yang menentukan asal pada permukaan untuk dithering. Piksel kiri atas pola dither selaras dengan titik ini.
[in] ulMode
Menentukan mode gambar saat ini dan cara menginterpretasikan array yang menunjuk pMesh . Parameter ini bisa menjadi salah satu nilai berikut:
GRADIENT_FILL_RECT_H
Parameter pMesh menunjuk ke array struktur GRADIENT_RECT. Setiap persegi panjang akan dibayangi dari kiri ke kanan. Secara khusus, piksel kiri atas dan kiri bawah berwarna sama, seperti halnya piksel kanan atas dan kanan bawah.
GRADIENT_FILL_RECT_V
Parameter pMesh menunjuk ke array struktur GRADIENT_RECT. Setiap persegi panjang harus dibayangi dari atas ke bawah. Secara khusus, piksel kiri atas dan kanan atas berwarna sama, seperti halnya piksel kiri bawah dan kanan bawah.
GRADIENT_FILL_TRIANGLE
Parameter pMesh menunjuk ke array struktur GRADIENT_TRIANGLE.
Perhitungan isian gradien untuk setiap mode didokumenkan di bagian Keterangan.
Nilai kembali
DrvGradientFill mengembalikan TRUE setelah berhasil. Jika tidak, ia mengembalikan FALSE dan melaporkan kesalahan dengan memanggil EngSetLastError.
Keterangan
DrvGradientFill dapat diimplementasikan secara opsional dalam driver grafis. GDI tidak pernah memanggil fungsi ini untuk permukaan palet.
Driver menghubungkan DrvGradientFill dengan mengatur bendera HOOK_GRADIENTFILL saat memanggil EngAssociateSurface atau EngModifySurface. Jika driver telah menghubungkan DrvGradientFill dan dipanggil untuk melakukan operasi yang tidak didukungnya, driver harus memiliki GDI yang menangani operasi dengan menyatukan data dalam panggilan ke EngGradientFill.
GDI tidak akan memanggil DrvGradientFill untuk permukaan tujuan 8bpp.
Rumus untuk menghitung nilai warna pada setiap piksel primitif bergantung pada ulMode sebagai berikut:
Total kesalahan yang terakumulasi di ketiga saluran warna tidak boleh lebih dari delapan (8). Untuk informasi selengkapnya tentang kesalahan yang diizinkan, lihat Efek Khusus dalam Driver Tampilan.
Driver harus mengabaikan nilai alfa simpul, membiarkan saluran alfa tidak berubah untuk permukaan yang mendukung pencambahan alfa.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | winddi.h (termasuk Winddi.h) |