fungsi glPixelStorei
Mengatur mode penyimpanan piksel.
Sintaks
void WINAPI glPixelStorei(
GLenum pname,
GLint param
);
Parameter
-
pname
-
Nama simbolis parameter yang akan diatur. Enam parameter penyimpanan memengaruhi bagaimana data piksel dikembalikan ke memori klien, dan karenanya hanya signifikan untuk perintah glReadPixels . Mereka adalah sebagai berikut.
Parameter Penyimpanan Deskripsi GL_PACK_SWAP_BYTES Jika true, pengurutan byte untuk komponen warna multibyte, komponen kedalaman, indeks warna, atau indeks stensil dibalik. Artinya, jika komponen empat byte terdiri dari byte b0 , b1 , b2 , b3 , komponen disimpan dalam memori sebagai b3 , b2 , b1 , b0 jika GL_PACK_SWAP_BYTES benar. GL_PACK_SWAP_BYTES tidak berpengaruh pada urutan memori komponen dalam satu piksel, hanya pada urutan byte dalam komponen atau indeks. Misalnya, tiga komponen piksel format GL_RGB selalu disimpan dengan warna merah pertama, kedua hijau, dan ketiga biru, terlepas dari nilai GL_PACK_SWAP_BYTES. GL_PACK_LSB_FIRST Jika true, bit diurutkan dalam byte dari yang paling tidak signifikan hingga yang paling signifikan; jika tidak, bit pertama di setiap byte adalah yang paling signifikan. Parameter ini signifikan hanya untuk data bitmap. GL_PACK_ROW_LENGTH Jika lebih besar dari nol, GL_PACK_ROW_LENGTH menentukan jumlah piksel berturut-turut. Jika piksel pertama baris ditempatkan di lokasi p dalam memori, maka lokasi piksel pertama baris berikutnya diperoleh dengan melompati [newline] komponen atau indeks, di mana n adalah jumlah komponen atau indeks dalam satu piksel, l adalah jumlah piksel dalam satu baris (panjang baris gl-pack jika lebih besar dari nol, argumen lebar untuk piksel rutin sebaliknya), adalah nilai gl-pack-alignment, dan s adalah ukuran, dalam byte, dari satu komponen (jika<s, maka seolah-olah s = ). dalam kasus nilai 1-bit, lokasi baris berikutnya diperoleh dengan melewati
komponen atau indeks. Komponen kata dalam deskripsi ini mengacu pada nilai nonindex merah, hijau, biru, alfa, dan kedalaman. Format penyimpanan GL_RGB, misalnya, memiliki tiga komponen per piksel: merah pertama, lalu hijau, dan akhirnya biru.GL_PACK_SKIP_PIXELS dan
GL_PACK_SKIP_ROWSNilai-nilai ini diberikan sebagai kemudahan kepada programmer; mereka tidak menyediakan fungsionalitas yang tidak dapat diduplikasi hanya dengan menambah pointer yang diteruskan ke glReadPixels. Mengatur GL_PACK_SKIP_PIXELS ke i setara dengan tahapan penunjuk oleh komponen atau indeks i n , di mana n adalah jumlah komponen atau indeks di setiap piksel. Pengaturan GL_PACK_SKIP_ROWS ke j setara dengan menambah penunjuk menurut komponen atau indeks j k , di mana k adalah jumlah komponen atau indeks per baris, seperti yang dihitung di atas di bagian GL_PACK_ROW_LENGTH. GL_PACK_ALIGNMENT Menentukan persyaratan perataan untuk awal setiap baris piksel dalam memori. Nilai yang diizinkan adalah 1 (perataan byte), 2 (baris diratakan ke byte bernomor genap), 4 (perataan kata), dan 8 (baris dimulai pada batas kata ganda). Enam parameter penyimpanan lainnya memengaruhi bagaimana data piksel dibaca dari memori klien. Nilai-nilai ini signifikan untuk glDrawPixels, glTexImage1D, glTexImage2D, glBitmap, dan glPolygonStipple. Mereka adalah sebagai berikut:
Parameter Penyimpanan Deskripsi GL_UNPACK_SWAP_BYTES Jika true, pengurutan byte untuk komponen warna multibyte, komponen kedalaman, indeks warna, atau indeks stensil dibalik. Artinya, jika komponen empat byte terdiri dari byte b0 , b1 , b2 , b3 , komponen disimpan dalam memori sebagai b3 , b2 , b1 , b0 jika GL_UNPACK_SWAP_BYTES benar. GL_UNPACK_SWAP_BYTES tidak berpengaruh pada urutan memori komponen dalam satu piksel, hanya pada urutan byte dalam komponen atau indeks. Misalnya, tiga komponen piksel format GL_RGB selalu disimpan dengan warna merah pertama, kedua hijau, dan ketiga biru, terlepas dari nilai GL_UNPACK_SWAP_BYTES. GL_UNPACK_LSB_FIRST Jika true, bit diurutkan dalam byte dari yang paling tidak signifikan hingga yang paling signifikan; jika tidak, bit pertama di setiap byte adalah yang paling signifikan. Ini signifikan hanya untuk data bitmap. GL_UNPACK_ROW_LENGTH Jika lebih besar dari nol, GL_UNPACK_ROW_LENGTH menentukan jumlah piksel dalam satu baris. Jika piksel pertama baris ditempatkan di lokasi p dalam memori, maka lokasi piksel pertama baris berikutnya diperoleh dengan melompati [newline] komponen atau indeks, di mana n adalah jumlah komponen atau indeks dalam satu piksel, l adalah jumlah piksel dalam satu baris (panjang baris gl-pack jika lebih besar dari nol, argumen lebar untuk piksel rutin sebaliknya), adalah nilai gl-pack-alignment, dan s adalah ukuran, dalam byte, dari satu komponen (jika<s, maka seolah-olah s = ). dalam kasus nilai 1-bit, lokasi baris berikutnya diperoleh dengan melewati
komponen atau indeks. Komponen kata dalam deskripsi ini mengacu pada nilai nonindex merah, hijau, biru, alfa, dan kedalaman. Format penyimpanan GL_RGB, misalnya, memiliki tiga komponen per piksel: merah pertama, lalu hijau, dan akhirnya biru.GL_UNPACK_SKIP_PIXELS dan
GL_UNPACK_SKIP_ROWSNilai-nilai ini diberikan sebagai kemudahan kepada programmer; mereka tidak menyediakan fungsionalitas yang tidak dapat diduplikasi hanya dengan menambah pointer yang diteruskan ke glDrawPixels, glTexImage1D, glTexImage2D, glBitmap, atau glPolygonStipple. Mengatur GL_UNPACK_SKIP_PIXELS ke i setara dengan tahapan penunjuk oleh komponen atau indeks i n , di mana n adalah jumlah komponen atau indeks di setiap piksel. Pengaturan GL_UNPACK_SKIP_ROWS ke j setara dengan menambah penunjuk menurut komponen atau indeks j k , di mana k adalah jumlah komponen atau indeks per baris, seperti yang dihitung di atas di bagian GL_UNPACK_ROW_LENGTH. GL_UNPACK_ALIGNMENT Menentukan persyaratan perataan untuk awal setiap baris piksel dalam memori. Nilai yang diizinkan adalah 1 (perataan byte), 2 (baris diratakan ke byte bernomor genap), 4 (perataan kata), dan 8 (baris dimulai pada batas kata ganda). -
Param
-
Nilai yang ditetapkan pname .
Menampilkan nilai
Fungsi ini tidak mengembalikan nilai.
Keterangan
Fungsi glPixelStore mengatur mode penyimpanan piksel yang memengaruhi pengoperasian glDrawPixels dan glReadPixels berikutnya serta membongkar pola stipple poligon (lihat glPolygonStipple), bitmap (lihat glBitmap), dan pola tekstur (lihat glTexImage1D, glTexImage2D, glTexSubImage1D, dan glTexSubImage2D).
Tabel berikut memberikan jenis, nilai awal, dan rentang nilai yang valid untuk setiap parameter penyimpanan yang dapat diatur dengan glPixelStore.
Nama P | Jenis | Nilai Awal | Rentang yang Valid |
---|---|---|---|
GL_PACK_SWAP_BYTES | Boolean | salah | benar atau salah |
GL_PACK_SWAP_BYTES | Boolean | salah | benar atau salah |
GL_PACK_ROW_LENGTH | bilangan bulat | 0 | [0,?) |
GL_PACK_SKIP_ROWS | bilangan bulat | 0 | [0,?) |
GL_PACK_SKIP_PIXELS | bilangan bulat | 0 | [0,?) |
GL_PACK_ALIGNMENT | bilangan bulat | 4 | 1, 2, 4, atau 8 |
GL_UNPACK_SWAP_BYTES | Boolean | salah | benar atau salah |
GL_UNPACK_LSB_FIRST | Boolean | salah | benar atau salah |
GL_UNPACK_ROW_LENGTH | bilangan bulat | 0 | [0,?) |
GL_UNPACK_SKIP_ROWS | bilangan bulat | 0 | [0,?) |
GL_UNPACK_SKIP_PIXELS | bilangan bulat | 0 | [0,?) |
GL_UNPACK_ALIGNMENT | bilangan bulat | 4 | 1, 2, 4, atau 8 |
Fungsi glPixelStoref dapat digunakan untuk mengatur parameter penyimpanan piksel apa pun. Jika jenis parameter adalah Boolean, dan jika param adalah 0,0, maka parameternya adalah false; jika tidak, diatur ke true. Jika pname adalah parameter jenis bilangan bulat, maka param dibulatkan ke bilangan bulat terdekat.
Demikian juga, fungsi glPixelStorei juga dapat digunakan untuk mengatur salah satu parameter penyimpanan piksel. Parameter Boolean diatur ke false jika param adalah 0 dan benar sebaliknya. Parameter param dikonversi ke floating point sebelum ditetapkan ke parameter bernilai nyata.
Mode penyimpanan piksel berlaku saat glDrawPixels, glReadPixels, glTexImage1D, glTexImage2D, glBitmap, atau glPolygonStipple ditempatkan dalam daftar tampilan mengontrol interpretasi data memori. Mode penyimpanan piksel yang berlaku saat daftar tampilan dijalankan tidak signifikan.
Fungsi berikut mengambil informasi yang terkait dengan glPixelStore:
glGet dengan argumen GL_PACK_SWAP_BYTES
glGet dengan argumen GL_PACK_LSB_FIRST
glGet dengan argumen GL_PACK_ROW_LENGTH
glGet dengan argumen GL_PACK_SKIP_ROWS
glGet dengan argumen GL_PACK_SKIP_PIXELS
glGet dengan argumen GL_PACK_ALIGNMENT
glGet dengan argumen GL_UNPACK_SWAP_BYTES
glGet dengan argumen GL_UNPACK_LSB_FIRST
glGet dengan argumen GL_UNPACK_ROW_LENGTH
glGet dengan argumen GL_UNPACK_SKIP_ROWS
glGet dengan argumen GL_UNPACK_SKIP_PIXELS
glGet dengan argumen GL_UNPACK_ALIGNMENT
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Header |
|
Pustaka |
|
DLL |
|