Bagikan melalui


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 Persamaan yang memperlihatkan lokasi piksel pertama baris berikutnya di GL_PACK_ROW_LENGTH. [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 Persamaan yang menunjukkan lokasi baris berikutnya dalam GL_PACK_ROW_LENGTH.
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_ROWS
Nilai-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 Persamaan yang memperlihatkan lokasi piksel pertama baris berikutnya di GL_UNPACK_ROW_LENGTH. [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 Persamaan yang menunjukkan lokasi baris berikutnya dalam GL_UNPACK_ROW_LENGTH.
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_ROWS
Nilai-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
Gl.h
Pustaka
Opengl32.lib
DLL
Opengl32.dll

Lihat juga

glBegin

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D