fungsi glCopyTexSubImage2D
Fungsi glCopyTexSubImage2D menyalin sub-gambar gambar tekstur dua dimensi dari framebuffer.
Sintaks
void WINAPI glCopyTexSubImage2D(
GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLint x,
GLint y,
GLsizei width,
GLsizei height
);
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.
-
xoffset
-
Offset texel ke arah x dalam array tekstur.
-
yoffset
-
Offset texel ke arah y dalam array tekstur.
-
x
-
Jendela koordinat x-plane dari sudut kiri bawah baris piksel yang akan disalin.
-
y
-
Koordinat bidang y jendela sudut kiri bawah baris piksel yang akan disalin.
-
width
-
Lebar sub-gambar gambar tekstur. Menentukan sub-gambar tekstur dengan lebar nol tidak berpengaruh.
-
height
-
Tinggi sub-gambar gambar tekstur. Menentukan sub-gambar tekstur dengan lebar nol tidak berpengaruh.
Menampilkan 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 log2 (maks), di mana maks adalah nilai yang dikembalikan dari GL_MAX_TEXTURE_SIZE. |
|
xoffset kurang dari batas atau (lebarxoffset + )lebih besar dari (batasw + ), yoffset kurang dari batas, atau (tinggiyoffset + ) lebih besar dari (batash + ), di mana w adalah GL_TEXTURE_WIDTH dan batas GL_TEXTURE_BORDER. Perhatikan bahwa w menyertakan dua kali lebar batas . |
|
lebar kurang dari batas atau y kurang dari batas, di mana batas adalah lebar batas array tekstur. |
|
Array tekstur tidak ditentukan oleh operasi glTexImage1D sebelumnya. |
|
Fungsi ini dipanggil antara panggilan ke glBegin dan panggilan yang sesuai ke glEnd. |
Keterangan
Fungsi glCopyTexSubImage2D menggantikan bagian persegi panjang dari gambar tekstur dua dimensi dengan piksel dari framebuffer saat ini, bukan dari memori utama seperti halnya glTexSubImage2D.
Persegi panjang piksel yang dimulai dengan jendela x dan y berkoordinasi dan dengan lebar dan tinggi dimensi menggantikan bagian array tekstur dengan indeks xoffset melalui xoffset + (lebar - 1), dengan indeks yoffset melalui yoffset + (lebar - 1) pada tingkat mipmap yang ditentukan oleh tingkat. Persegi panjang tujuan dalam array tekstur tidak dapat menyertakan texel apa pun di luar array tekstur yang awalnya ditentukan.
Fungsi glCopyTexSubImage2D 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 yang lebih rendah yang sesuai dengan koordinat tekstur 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.
Jika salah satu piksel dalam persegi panjang yang ditentukan dari framebuffer saat ini berada di luar jendela baca yang terkait dengan konteks penyajian saat ini, maka nilai yang diperoleh untuk piksel tersebut tidak terdefinisi. Tidak ada perubahan yang dilakukan pada parameter internalFormat, lebar, tinggi, atau batas dari array tekstur yang ditentukan atau ke nilai texel di luar sub-gambar tekstur yang ditentukan.
Anda tidak dapat menyertakan panggilan ke glCopyTexSubImage2D dalam daftar tampilan.
Catatan
Fungsi glCopyTexSubImage2D 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 cara piksel digambar menggunakan glDrawPixels.
Fungsi berikut mengambil informasi yang terkait dengan glCopyTexSubImage2D:
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 |
|