fungsi glCopyTexImage2D
Fungsi glCopyTexImage2D menyalin piksel dari framebuffer menjadi gambar tekstur dua dimensi.
Sintaks
void WINAPI glCopyTexImage2D(
GLenum target,
GLint level,
GLenum internalFormat,
GLint x,
GLint y,
GLsizei width,
GLsizei height,
GLint border
);
Parameter
-
target
-
Target tempat data gambar akan diubah. Harus memiliki nilai GL_TEXTURE_2D.
-
tingkat
-
Nomor tingkat detail. Tingkat 0 adalah gambar dasar. Level n adalah gambar pengurangan mipmap ke-n.
-
internalFormat
-
Format internal dan resolusi data tekstur. Nilai 1, 2, 3, dan 4 tidak diterima untuk internalFormat. Parameter dapat mengasumsikan salah satu nilai simbolis berikut.
Terus-menerus Bit R G Bit Bit B Bit Bit L Bit I GL_ALPHA GL_ALPHA4 4 GL_ALPHA8 8 GL_ALPHA12 12 GL_ALPHA16 16 GL_LUMINANCE GL_LUMINANCE4 4 GL_LUMINANCE8 8 GL_LUMINANCE12 12 GL_LUMINANCE16 16 GL_LUMINANCE_ALPHA GL_LUMINANCE4_ALPHA4 4 4 GL_LUMINANCE6_ALPHA2 2 6 GL_LUMINANCE8_ALPHA8 8 8 GL_LUMINANCE12_ALPHA4 4 12 GL_LUMINANCE12_ALPHA12 12 12 GL_LUMINANCE16_ALPHA16 16 16 GL_INTENSITY GL_INTENSITY4 4 GL_INTENSITY8 8 GL_INTENSITY12 12 GL_INTENSITY16 16 GL_RGB GL_R3_G3_B2 3 3 2 GL_RGB4 4 4 4 GL_RGB5 5 5 5 GL_RGB8 8 8 8 GL_RGB10 10 10 10 GL_RGB12 12 12 12 GL_RGB16 16 16 16 GL_RGBA GL_RGBA2 2 2 2 2 GL_RGBA4 4 4 4 4 GL_RGB5_A1 5 5 5 1 GL_RGBA8 8 8 8 8 GL_RGB10_A2 10 10 10 2 GL_RGBA12 12 12 12 12 GL_RGBA16 16 16 16 16 -
x
-
Koordinat x-plane jendela sudut kiri bawah wilayah persegi panjang piksel yang akan disalin.
-
y
-
Koordinat bidang-y jendela dari sudut kiri bawah wilayah persegi panjang piksel yang akan disalin.
-
width
-
Lebar gambar tekstur. Harus 2n + 2 * batas untuk beberapa bilangan bulat n.
-
height
-
Tinggi gambar tekstur. Harus 2n + 2 * batas untuk beberapa bilangan bulat n.
-
Perbatasan
-
Lebar batas. Harus nol atau 1.
Mengembalikan nilai
Fungsi ini tidak mengembalikan nilai.
Kode kesalahan
Kode kesalahan berikut dapat diambil oleh fungsi glGetError .
Nama | Makna |
---|---|
|
target bukan nilai yang diterima. |
|
tingkat kurang dari nol atau lebih besar dari maks log2, di mana maks adalah nilai yang dikembalikan dari GL_MAX_TEXTURE_SIZE. |
|
batas bukan nol atau 1. |
|
lebar kurang dari nol, lebih besar dari 2 + GL_MAX_TEXTURE_SIZE, atau lebar tidak dapat direpresentasikan sebagai 2n + 2 * batas untuk beberapa bilangan bulat n. |
|
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd. |
Keterangan
Fungsi glCopyTexImage2D mendefinisikan gambar tekstur dua dimensi menggunakan piksel dari framebuffer saat ini, bukan dari memori utama seperti halnya glTexImage2D.
Menggunakan tingkat mipmap yang ditentukan dengan tingkat, array tekstur didefinisikan sebagai persegi panjang piksel dengan sudut kiri bawah yang terletak di koordinat x dan y, lebar sama dengan lebar + (2 * batas), dan tinggi sama dengan tinggi + (2 * batas). Format internal array tekstur ditentukan dengan parameter internalFormat .
Fungsi glCopyTexImage2D memproses piksel dalam baris dengan cara yang sama seperti glCopyPixels kecuali bahwa sebelum konversi akhir piksel, semua nilai komponen piksel dijepit ke rentang [0,1] dan dikonversi ke format internal tekstur untuk penyimpanan dalam array tekstur. Pengurutan piksel ditentukan dengan koordinat x dan y yang lebih rendah yang sesuai dengan koordinat tekstur s dan t yang lebih rendah. Jika salah satu piksel dalam baris tertentu dari framebuffer saat ini berada di luar jendela yang terkait dengan konteks penyajian saat ini, maka nilainya tidak terdefinisi.
Anda tidak dapat menyertakan panggilan ke glCopyTexImage2D dalam daftar tampilan.
Catatan
Fungsi glCopyTexImage2D hanya tersedia di OpenGL versi 1.1 atau yang lebih baru.
Pengteksan tidak berpengaruh dalam mode indeks warna. Fungsi glPixelStore dan glPixelTransfer memengaruhi gambar tekstur dengan cara yang tepat mempengaruhi glDrawPixels.
Fungsi berikut mengambil informasi yang terkait dengan glCopyTexImage2D:
glIsEnabled dengan argumen GL_TEXTURE_2D
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 |
|