fungsi glGetTexImage

Fungsi glGetTexImage mengembalikan gambar tekstur.

Sintaks

void WINAPI glGetTexImage(
   GLenum target,
   GLint  level,
   GLenum format,
   GLenum type,
   GLvoid *pixels
);

Parameter

target

Menentukan tekstur mana yang akan diperoleh. GL_TEXTURE_1D dan GL_TEXTURE_2D diterima.

tingkat

Jumlah tingkat detail gambar yang diinginkan. Tingkat 0 adalah tingkat gambar dasar. Level n adalah gambar pengurangan mipmap ke-n.

format

Format piksel untuk data yang dikembalikan. Format yang didukung adalah GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, GL_BGR_EXT, GL_BGRA_EXT, dan GL_LUMINANCE_ALPHA.

jenis

Jenis piksel untuk data yang dikembalikan. Jenis yang didukung adalah GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, dan GL_FLOAT.

piksel

Mengembalikan gambar tekstur. Harus menjadi penunjuk ke array dari jenis yang ditentukan oleh jenis.

Mengembalikan nilai

Fungsi ini tidak mengembalikan nilai.

Kode kesalahan

Kode kesalahan berikut dapat diambil oleh fungsi glGetError .

Nama Makna
GL_INVALID_ENUM
target, format, atau jenis bukan nilai yang diterima.
GL_INVALID_VALUE
tingkat kurang dari nol atau lebih besar dari log2 (maks), di mana maks adalah nilai yang dikembalikan dari GL_MAX_TEXTURE_SIZE.
GL_INVALID_OPERATION
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai untuk glEnd .

Keterangan

Fungsi glGetTexImage mengembalikan gambar tekstur menjadi piksel. Parameter target menentukan apakah gambar tekstur yang diinginkan ditentukan oleh glTexImage1D(GL_TEXTURE_1D) atau dengan glTexImage2D(GL_TEXTURE_2D). Parameter tingkat menentukan jumlah tingkat detail dari gambar yang diinginkan. Parameter format dan jenis menentukan format dan jenis array gambar yang diinginkan. Untuk deskripsi nilai yang dapat diterima untuk parameter format dan jenis , masing-masing, lihat glTexImage1D dan glDrawPixels.

Pengoperasian glGetTexImage paling baik dipahami dengan mempertimbangkan gambar tekstur empat komponen internal yang dipilih untuk menjadi buffer warna RGBA ukuran gambar. Semantik glGetTexImage kemudian identik dengan glReadPixel yang dipanggil dengan format dan jenis yang sama, dengan x dan y diatur ke nol, lebar diatur ke lebar gambar tekstur (termasuk batas jika ditentukan), dan tinggi diatur ke satu untuk gambar 1-D, atau ke tinggi gambar tekstur (termasuk batas, jika ditentukan) untuk gambar 2-D.

Karena gambar tekstur internal adalah gambar RGBA, format piksel GL_COLOR_INDEX, GL_STENCIL_INDEX, dan GL_DEPTH_COMPONENT tidak diterima, dan jenis piksel GL_BITMAP tidak diterima.

Jika gambar tekstur yang dipilih tidak berisi empat komponen, pemetaan berikut diterapkan. Tekstur komponen tunggal diperlakukan sebagai buffer RGBA dengan set merah ke nilai komponen tunggal, dan hijau, biru, dan alfa diatur ke nol.

Tekstur dua komponen diperlakukan sebagai buffer RGBA, dengan merah diatur ke nilai nol komponen, alfa diatur ke nilai komponen satu, dan hijau dan biru diatur ke nol. Akhirnya, tekstur tiga komponen diperlakukan sebagai buffer RGBA dengan merah diatur ke nol komponen, hijau diatur ke komponen satu, biru diatur ke komponen dua, dan alfa diatur ke nol.

Untuk menentukan ukuran piksel yang diperlukan, gunakan glGetTexLevelParameter untuk memastikan dimensi gambar tekstur internal, lalu skalakan jumlah piksel yang diperlukan oleh penyimpanan yang diperlukan untuk setiap piksel, berdasarkan format dan jenis. Pastikan untuk memperhitungkan parameter penyimpanan piksel, terutama GL_PACK_ALIGNMENT.

Jika kesalahan dihasilkan, tidak ada perubahan yang dilakukan pada konten piksel.

Fungsi berikut mengambil informasi yang terkait dengan glGetTexImage:

glGet dengan argumen GL_PACK_ALIGNMENT dan lainnya

glGetTexLevelParameter dengan argumen GL_TEXTURE_WIDTH

glGetTexLevelParameter dengan argumen GL_TEXTURE_HEIGHT

glGetTexLevelParameter dengan argumen GL_TEXTURE_BORDER

glGetTexLevelParameter dengan argumen GL_TEXTURE_COMPONENTS

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

glDrawPixels

glEnd

glGetTexLevelParameter

glReadPixels

glTexImage1D

glTexImage2D