Bagikan melalui


HT_Get8BPPMaskPalette (winddi.h)

Fungsi HT_Get8BPPMaskPalette mengembalikan palet masker untuk jenis perangkat 8-bit per piksel.

Sintaks

LONG HT_Get8BPPMaskPalette(
  [in, out] LPPALETTEENTRY pPaletteEntry,
  [in]      BOOL           Use8BPPMaskPal,
  [in]      BYTE           CMYMask,
  [in]      USHORT         RedGamma,
  [in]      USHORT         GreenGamma,
  [in]      USHORT         BlueGamma
);

Parameter

[in, out] pPaletteEntry

Penunjuk ke array struktur PALETTEENTRY (dijelaskan dalam dokumentasi Windows SDK) untuk diisi. GDI mengasumsikan bahwa itu menunjuk ke ruang memori yang valid di mana GDI dapat menempatkan seluruh palet halftone 8-bit-per-piksel.

Untuk driver yang berjalan pada Windows XP dan versi sistem operasi yang lebih baru, GDI memeriksa pPaletteEntry[0] untuk menentukan cara mengembalikan palet CMY yang terdiri. Jika pPaletteEntry[0] diatur ke 'RGB0', palet akan berada di salah satu mode CMY_INVERTED dan akan membuat indeksnya terbalik. Artinya, indeks 0 di palet berwarna hitam, dan indeks 255 berwarna putih. Jika pPaletteEntry[0] tidak diatur ke 'RGB0', palet adalah palet CMY normal, dengan indeks 0 berwarna putih dan indeks 255 berwarna hitam. Lihat Menggunakan Mode Masker CMY GDI 8-Bit-Per-Pixel untuk persyaratan dan detail baru tentang cara menggunakan parameter ini.

Windows 2000 mengabaikan nilai apa pun yang diletakkan driver di pPaletteEntry[0]. Untuk alasan ini, jika driver Anda dimaksudkan untuk berjalan pada Windows 2000 dan pada Windows XP atau versi yang lebih baru, dan driver Anda mengatur pPaletteEntry[0] ke 'RGB0', bitmap yang diterima driver Anda dari Windows XP dan kemudian mungkin memiliki warna mereka terbalik, relatif terhadap yang diterima dari Windows 2000. Oleh karena itu, driver seperti itu harus memeriksa palet sebelum mengunduh bitmap.

[in] Use8BPPMaskPal

Menunjukkan jenis palet mana yang harus dikembalikan. Ketika Use8BPPMaskPalTRUE, HT_Get8BPPMaskPalette mengatur parameter pPaletteEntry dengan alamat palet CMY (array struktur PALETTEENTRY) yang dijelaskan oleh bitmask yang ditentukan dalam CMYMask. Ketika Use8BPPMaskPaladalah FALSE, fungsi mengatur pPaletteEntry dengan alamat palet halftone RGB 8-bit-per-piksel standar.

[in] CMYMask

Menentukan informasi tentang array struktur PALETTEENTRY yang ditujukkan oleh pPaletteEntry. Parameter ini dapat memiliki salah satu nilai berikut:

Nilai Makna
0 Skala abu-abu dengan 256 tingkat
1 Masing-masing lima tingkat sian, magenta, dan kuning (masing-masing berkisar antara 0 hingga 4), dengan total 125 warna
2 Enam level masing-masing sian, magenta, dan kuning (masing-masing berkisar antara 0 hingga 5), dengan total 216 warna
3 hingga 255 Bitmask yang menentukan jumlah maksimum tingkat sian, magenta, dan kuning.
 

Driver yang berjalan pada Windows 2000 harus dibatasi hingga monokrom 8-bit per piksel. Artinya, nilai CMYMask yang digunakan harus 0.

Untuk Windows XP dan versi sistem operasi yang lebih baru, dan untuk semua nilai CMYMask, nilai dalam pPaletteEntry[0] menentukan apakah palet yang mengikuti pPaletteEntry[0] adalah palet CMY normal, atau salah satu palet mode CMY_INVERTED. Untuk informasi selengkapnya, lihat deskripsi parameter pPaletteEntry .

Untuk nilai CMYMask dari 3 hingga 255, inklusif, nilainya adalah bitmask di mana grup bit memiliki arti berikut:

  • Tiga bit tertinggi (bit 7,6,5) menentukan jumlah tingkat sian. Paling banyak, tujuh tingkat sian (level 1 hingga 7) dimungkinkan.
  • Tiga bit tengah (bit 4,3,2) menentukan jumlah tingkat magenta. Paling banyak, tujuh tingkat magenta (level 1 hingga 7) dimungkinkan.
  • Dua bit terendah (bit 1,0) menentukan jumlah tingkat kuning. Paling banyak, tiga tingkat kuning (level 1 hingga 3) dimungkinkan.
Untuk nilai CMYMask mulai dari 3 hingga 255, kombinasi bitmask apa pun di mana bit tingkat sian, magenta, atau kuning nol tidak valid. Dalam kasus seperti itu, HT_Get8BPPMaskPalette mengembalikan jumlah palet nol. Lihat Menggunakan Mode Masker CMY GDI 8-Bit-Per-Pixel untuk informasi selengkapnya.

[in] RedGamma

Jika Use8BPPMaskPalTRUE, nilai parameter ini tidak digunakan. Dalam hal ini, nilai gamma akan ditentukan dalam anggota ciDevice dari struktur GDIINFO .

Jika Use8BPPMaskPaladalah FALSE, nilai parameter ini menentukan nilai gamma merah, dari nilai gamma merah, hijau, dan biru yang akan digunakan GDI untuk memperbaiki palet. Nilai USHORT ditafsirkan sebagai angka riil yang empat digit paling tidak signifikan berada di sebelah kanan koma desimal. Misalnya, nilai gamma 10000 menunjukkan angka riil 1.0000, dan 12345 mewakili 1,2345. Nilai gamma minimum yang diizinkan adalah 0,0000, dan nilai maksimum yang diizinkan adalah 6,5535.

[in] GreenGamma

Jika Use8BPPMaskPalTRUE, nilai parameter ini tidak digunakan. Dalam hal ini, nilai gamma akan ditentukan dalam anggota ciDevice dari struktur GDIINFO .

Jika Use8BPPMaskPaladalah FALSE, nilai parameter ini menentukan nilai gamma hijau, dari nilai gamma merah, hijau, dan biru yang akan digunakan GDI untuk memperbaiki palet. Nilai USHORT ditafsirkan sebagai angka riil yang empat digit paling tidak signifikan berada di sebelah kanan koma desimal. Misalnya, nilai gamma 10000 menunjukkan angka riil 1.0000, dan 12345 mewakili 1,2345. Nilai gamma minimum yang diizinkan adalah 0,0000, dan nilai maksimum yang diizinkan adalah 6,5535.

[in] BlueGamma

Jika Use8BPPMaskPalTRUE, nilai parameter ini tidak digunakan. Dalam hal ini, nilai gamma akan ditentukan dalam anggota ciDevice dari struktur GDIINFO .

Jika Use8BPPMaskPaladalah FALSE, nilai parameter ini menentukan nilai gamma biru, dari nilai gamma merah, hijau, dan biru yang akan digunakan GDI untuk mengoreksi palet. Nilai USHORT ditafsirkan sebagai angka riil yang empat digit paling tidak signifikan berada di sebelah kanan koma desimal. Misalnya, nilai gamma 10000 menunjukkan angka riil 1.0000, dan 12345 mewakili 1,2345. Nilai gamma minimum yang diizinkan adalah 0,0000, dan nilai maksimum yang diizinkan adalah 6,5535.

Nilai kembali

Jika pPaletteEntry bukan NULL, HT_Get8BPPMaskPalette mengembalikan jumlah struktur PALETTEENTRY yang diisi GDI dalam array tempat pPaletteEntry menunjuk. Jika pPaletteEntryadalah NULL, nilai yang dikembalikan adalah jumlah total struktur PALETTEENTRY yang diperlukan untuk menyimpan palet halftone.

Jika nilai ilegal dari parameter CMYMask digunakan dalam panggilan ke fungsi ini, HT_Get8BPPMaskPalette mengembalikan nilai nol.

Keterangan

Struktur PALETTEENTRY didokumenkan dalam dokumentasi Windows SDK.

Memanggil HT_Get8BPPMaskPalette dengan Set Use8BPPMaskPalFALSE set setingan dengan memanggil HT_Get8BPPFormatPalette.

Lihat Menggunakan Mode Masker CMY GDI 8-Bit-Per-Pixel untuk informasi selengkapnya tentang fungsi ini dan bagaimana parameternya digunakan.

Persyaratan

   
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

HT_Get8BPPFormatPalette