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
GL_INVALID_ENUM
target 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_VALUE
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 .
GL_INVALID_VALUE
lebar kurang dari batas atau y kurang dari batas, di mana batas adalah lebar batas array tekstur.
GL_INVALID_OPERATION
Array tekstur tidak ditentukan oleh operasi glTexImage1D sebelumnya.
GL_INVALID_OPERATION
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:

glGetTexImage

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
Gl.h
Pustaka
Opengl32.lib
DLL
Opengl32.dll

Lihat juga

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter