Bagikan melalui


Dukungan GDI untuk Palet

GDI dapat melakukan sebagian besar pekerjaan sehubungan dengan manajemen palet. Ketika GDI memanggil fungsi DrvEnablePDEV , driver mengembalikan palet defaultnya ke GDI sebagai bagian dari struktur DEVINFO . Driver harus membuat palet ini menggunakan fungsi EngCreatePalette .

Palet secara efektif memetakan indeks warna 32-bit ke dalam nilai warna RGB 24-bit, yang merupakan cara GDI menggunakan palet. Driver menentukan paletnya sehingga GDI dapat menentukan bagaimana indeks warna yang berbeda muncul pada perangkat.

Driver tidak perlu menangani sebagian besar operasi dan perhitungan palet selama menggunakan XLATEOBJ yang disediakan oleh GDI.

Jika perangkat mendukung palet yang dapat dimodifikasi, perangkat harus mengimplementasikan fungsi DrvSetPalette. GDI memanggil DrvSetPalette ketika aplikasi mengubah palet untuk perangkat dan meneruskan palet baru yang dihasilkan ke driver. Driver harus mengatur palet perangkat keras internalnya agar sesuai dengan palet baru sedekat mungkin.

Palet dapat ditentukan untuk GDI dalam salah satu dari dua format berbeda yang tercantum dalam tabel berikut.

Format Palet Deskripsi
Diindeks Indeks warna adalah indeks ke dalam array nilai RGB. Array bisa kecil, berisi, misalnya, 16 indeks warna, atau besar, berisi, misalnya, indeks warna 4096 atau lebih.
Bidang Bit Bidang bit dalam indeks warna menentukan warna dalam hal jumlah R, G, dan B di setiap warna. Misalnya, 5 bit dapat digunakan untuk masing-masing, memberikan nilai antara 0 dan 31 untuk setiap warna. Nilai 5-bit akan ditingkatkan untuk mencakup rentang 0 hingga 255 untuk setiap komponen saat mengonversi ke RGB. (Representasi RGB biasa itu sendiri didefinisikan oleh bitfields.)

GDI biasanya menggunakan pemetaan palet secara terbalik. Artinya, aplikasi menentukan warna RGB untuk gambar dan GDI harus menemukan indeks warna yang menyebabkan perangkat menampilkan warna tersebut. Seperti yang ditunjukkan dalam tabel berikutnya, GDI menyediakan dua fungsi layanan palet utama untuk membuat dan menghapus palet, serta beberapa fungsi layanan yang terkait dengan PALOBJ dan XLATEOBJ yang digunakan untuk menerjemahkan indeks warna di antara dua palet.

Fungsi Deskripsi
EngCreatePalette Membuat palet. Driver mengaitkan palet dengan perangkat dengan mengembalikan handel ke palet dalam struktur DEVINFO .
EngDeletePalette Menghapus palet yang diberikan.
EngDitherColor Mengembalikan dither 8x8 standar yang mempertanyakan warna RGB yang ditentukan.
EngQueryPalette Mengkueri palet untuk atributnya.
PALOBJ_cGetColors Memungkinkan driver mengunduh warna RGB dari palet terindeks. Dipanggil oleh driver tampilan dalam fungsi DrvSetPalette .
XLATEOBJ_cGetPalette Mengambil warna RGB 24-bit atau format bitfield untuk warna dalam palet sumber terindeks. Driver dapat menggunakan fungsi ini untuk mendapatkan informasi dari palet untuk melakukan perpaduan warna.
XLATEOBJ_hGetColorTransform Mengembalikan transformasi warna untuk objek terjemahan yang ditentukan.
XLATEOBJ_iXlate Menerjemahkan indeks warna sumber tunggal ke indeks warna tujuan.
XLATEOBJ_piVector Mengambil vektor terjemahan dari palet sumber terindeks. Driver dapat menggunakan vektor ini untuk melakukan terjemahan sendiri dari indeks sumber ke indeks tujuan.