fungsi glColorTableEXT

Fungsi glColorTableEXT menentukan format dan ukuran palet untuk tekstur palet yang ditargetkan.

Sintaks

void WINAPI glColorTableEXT(
         GLenum  target,
         GLenum  internalFormat,
         GLsizei width,
         GLenum  format,
         GLenum  type,
   const GLvoid  *data
);

Parameter

target

Tekstur target yang mengubah paletnya. Harus TEXTURE_1D, TEXTURE_2D, PROXY_TEXTURE_1D, atau PROXY_TEXTURE_2D.

internalFormat

Format internal dan resolusi palet. Parameter ini dapat mengasumsikan salah satu nilai simbolis berikut.

Terus-menerus Format Dasar Bit R G Bit Bit B Bit
GL_R3_G3_B2 GL_RGB 3 3 2
GL_RGB4 GL_RGB 4 4 4
GL_RGB5 GL_RGB 5 5 5
GL_RGB8 GL_RGB 8 8 8
GL_RGB10 GL_RGB 10 10 10
GL_RGB12 GL_RGB 12 12 12
GL_RGB16 GL_RGB 16 16 16
GL_RGBA2 GL_RGBA 2 2 2 2
GL_RGBA4 GL_RGBA 4 4 4 4
GL_RGB5_A1 GL_RGBA 5 5 5 1
GL_RGBA8 GL_RGBA 8 8 8 8
GL_RG10_A2 GL_RGBA 10 10 10 2
GL_RGB12 GL_RGBA 12 12 12 12
GL_RGBA16 GL_RGBA 16 16 16 16

width

Ukuran palet. Harus 2n = 1 untuk beberapa bilangan bulat n.

format

Format data piksel. Konstanta simbolis berikut diterima.

Nilai Makna
GL_RGBA
Setiap piksel adalah sekelompok empat komponen dalam urutan ini: merah, hijau, biru, alfa. Format RGBA ditentukan dengan cara ini:
  1. Fungsi glColorTableEXT mengonversi nilai floating-point langsung ke format internal dengan presisi yang tidak ditentukan. Nilai bilangan bulat yang ditandatangani dipetakan secara linier ke format internal sehingga nilai bilangan bulat yang paling positif dapat diwakili memetakan ke 1,0, dan peta nilai bilangan bulat yang paling negatif yang dapat diwakili ke -1,0. Data bilangan bulat yang tidak ditandatangani dipetakan juga: peta nilai bilangan bulat terbesar ke 1,0, dan peta nol ke 0,0.
  2. Fungsi glColorTableEXT mengalikan nilai warna yang dihasilkan dengan GL_c_SCALE dan menambahkannya ke GL_c_BIAS, di mana c adalah RED, GREEN, BLUE, dan ALPHA untuk komponen warna masing-masing. Hasilnya dijepit ke rentang [0,1].
  3. Jika GL_MAP_COLOR TRUE, glColorTableEXT menskalakan setiap komponen warna dengan ukuran tabel pencarian GL_PIXEL_MAP_c_TO_c, lalu mengganti komponen dengan nilai yang dirujuknya dalam tabel tersebut; c adalah R, G, B, atau A, masing-masing.
  4. Fungsi glColorTableEXT mengonversi warna RGBA yang dihasilkan menjadi fragmen dengan melampirkan koordinat z-coordinate posisi raster saat ini dan koordinat tekstur ke setiap piksel, lalu menetapkan koordinat jendela x dan y ke fragmen ke-nsehinggax? = xr + nlebar mod
    Y? = yr +n / lebar
    di mana (xr , yr ) adalah posisi raster saat ini.
  5. Fragmen piksel ini kemudian diperlakukan seperti fragmen yang dihasilkan oleh titik rasterisasi, garis, atau poligon. Fungsi glColorTableEXT menerapkan pemetaan tekstur, kabut, dan semua operasi fragmen sebelum menulis fragmen ke framebuffer.
GL_RED
Setiap piksel adalah komponen merah tunggal.
Fungsi glColorTableEXT mengonversi komponen ini ke format internal dengan cara yang sama seperti komponen merah piksel RGBA, lalu mengonversinya menjadi piksel RGBA dengan hijau dan biru diatur ke 0,0, dan alfa diatur ke 1,0. Setelah konversi ini, piksel diperlakukan seolah-olah telah dibaca sebagai piksel RGBA.
GL_GREEN
Setiap piksel adalah komponen hijau tunggal.
Fungsi glColorTableEXT mengonversi komponen ini ke format internal dengan cara yang sama seperti komponen hijau piksel RGBA, lalu mengonversinya menjadi piksel RGBA dengan merah dan biru diatur ke 0,0, dan alfa diatur ke 1,0. Setelah konversi ini, piksel diperlakukan seolah-olah telah dibaca sebagai piksel RGBA.
GL_BLUE
Setiap piksel adalah komponen biru tunggal.
Fungsi glColorTableEXT mengonversi komponen ini ke format internal dengan cara yang sama seperti komponen biru piksel RGBA, lalu mengonversinya menjadi piksel RGBA dengan merah dan hijau diatur ke 0,0, dan alfa diatur ke 1,0. Setelah konversi ini, piksel diperlakukan seolah-olah telah dibaca sebagai piksel RGBA.
GL_ALPHA
Setiap piksel adalah komponen alfa tunggal.
Fungsi glColorTableEXT mengonversi komponen ini ke format internal dengan cara yang sama seperti komponen alfa piksel RGBA, lalu mengonversinya menjadi piksel RGBA dengan merah, hijau, dan biru diatur ke 0,0. Setelah konversi ini, piksel diperlakukan seolah-olah telah dibaca sebagai piksel RGBA.
GL_RGB
Setiap piksel adalah sekelompok tiga komponen dalam urutan ini: merah, hijau, biru.
Fungsi glColorTableEXT mengonversi setiap komponen ke format internal dengan cara yang sama seperti komponen merah, hijau, dan biru dari piksel RGBA. Tiga warna dikonversi menjadi piksel RGBA dengan alfa diatur ke 1.0. Setelah konversi ini, piksel diperlakukan seolah-olah telah dibaca sebagai piksel RGBA.
GL_BGR_EXT
Setiap piksel adalah sekelompok tiga komponen dalam urutan ini: biru, hijau, merah.
GL_BGR_EXT menyediakan format yang cocok dengan tata letak memori bitmap independen perangkat Windows (DIB). Dengan demikian aplikasi Anda dapat menggunakan data yang sama dengan panggilan fungsi Windows dan panggilan fungsi piksel OpenGL.
GL_BGRA_EXT
Setiap piksel adalah sekelompok empat komponen dalam urutan ini: biru, hijau, merah, alfa.
GL_BGRA_EXT menyediakan format yang cocok dengan tata letak memori bitmap independen perangkat Windows (DIB). Dengan demikian aplikasi Anda dapat menggunakan data yang sama dengan panggilan fungsi Windows dan panggilan fungsi piksel OpenGL.

jenis

Jenis data untuk data. Konstanta simbolis berikut diterima: GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, dan GL_FLOAT.

Tabel berikut ini meringkas arti konstanta yang valid untuk parameter jenis .

Nilai Makna
GL_UNSIGNED_BYTE
Integer 8-bit yang tidak ditandai
GL_BYTE
Integer 8-bit yang ditandai
GL_UNSIGNED_SHORT
Integer 16-bit yang tidak ditandai
GL_SHORT
Integer 16-bit yang ditandai
GL_UNSIGNED_INT
Integer 32-bit yang tidak ditandai
GL_INT
bilangan bulat 32-bit
GL_FLOAT
Nilai floating-point presisi tunggal

data

Penunjuk ke data tekstur palet. Data diperlakukan sebagai piksel tunggal dari entri palet tekstur 1-D untuk entri palet.

Nilai kembali

Fungsi ini tidak mengembalikan nilai.

Kode kesalahan

Kode kesalahan berikut dapat diambil oleh fungsi glGetError .

Nama Makna
GL_INVALID_VALUE
lebar bilangan bulat tidak valid.
GL_INVALID_ENUM
target, internalFormat, format, atau jenis bukan nilai yang diterima.
GL_INVALID_OPERATION
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd.

Keterangan

Tekstur palet didefinisikan dengan palet warna dan sekumpulan data gambar yang terdiri dari indeks untuk entri warna palet (tabel warna).

Fungsi glColorTableEXT menentukan palet tekstur tekstur tekstur yang ditargetkan. Dibutuhkan data dari memori dan mengonversi data seolah-olah setiap entri palet adalah satu piksel tekstur 1-D. Fungsi glColorTableEXT membongkar dan mengonversi data dan menerjemahkannya ke dalam format internal yang cocok dengan format yang diberikan sedekat mungkin.

Jika lebar palet lebih besar dari rentang indeks warna dalam data tekstur, beberapa entri palet tidak digunakan. Jika lebar palet kurang dari rentang indeks warna dalam data tekstur, bit data tekstur yang paling signifikan diabaikan dan hanya jumlah bit yang sesuai dalam indeks yang digunakan saat mengakses palet. Saat Anda menentukan target proksi menggunakan PROXY_TEXTURE_1D atau PROXY_TEXTURE_2D, palet tekstur proksi diubah ukurannya dan parameternya diatur tetapi tidak ada data yang ditransfer atau diakses.

Ketika parameter target GL_PROXY_TEXTURE_1D atau GL_PROXY_TEXTURE_2D, dan implementasi tidak mendukung nilai yang ditentukan untuk format atau lebar, glColorTableEXT dapat gagal membuat tabel warna yang diminta. Dalam hal ini, tabel warna kosong dan semua parameter yang diambil akan menjadi nol. Anda dapat menentukan apakah OpenGL mendukung format dan ukuran tabel warna tertentu dengan memanggil glColorTableEXT dengan target proksi, lalu memanggil glGetColorTableParameterivEXT atau glGetColorTableParameterfvEXT untuk menentukan apakah parameter lebar cocok dengan yang ditetapkan oleh glColorTableEXT. Jika lebar yang diambil adalah nol, permintaan tabel warna oleh glColorTable gagal. Jika lebar yang diambil bukan nol, Anda dapat memanggil glColorTable dengan target nyata dengan TEXTURE_1D atau TEXTURE_2D untuk mengatur tabel warna.

Catatan

Fungsi glColorTableEXT adalah fungsi ekstensi yang bukan bagian dari pustaka OpenGL standar tetapi merupakan bagian dari ekstensi GL_EXT_paletted_texture. Untuk memeriksa apakah implementasi OpenGL Anda mendukung glColorTableEXT, panggil glGetString(GL_EXTENSIONS). Jika mengembalikan GL_EXT_paletted_texture, glColorTableEXT didukung. Untuk mendapatkan alamat fungsi fungsi ekstensi, panggil wglGetProcAddress.

Untuk mengambil data tabel warna aktual yang ditentukan oleh fungsi glColorTableEXT , panggil glGetColorTableEXT. Untuk mengambil parameter, seperti lebar dan format, tabel warna yang ditentukan oleh fungsi glColorTableEXT , panggil fungsi glGetColorTableParameterivEXT atau glGetColorTableParameterfvEXT .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung
Windows 2000 Server [hanya aplikasi desktop]
Header
Gl.h

Lihat juga

glBegin

glColorSubTableEXT

glEnd

glGetColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

wglGetProcAddress