Bagikan melalui


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
GL_INVALID_ENUM
target bukan nilai yang diterima.
GL_INVALID_VALUE
tingkat kurang dari nol atau lebih besar dari maks log2, di mana maks adalah nilai yang dikembalikan dari GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
batas bukan nol atau 1.
GL_INVALID_VALUE
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.
GL_INVALID_OPERATION
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
Gl.h
Pustaka
Opengl32.lib
DLL
Opengl32.dll

Lihat juga

glBegin

glCopyTexImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter