funzione glCopyTexSubImage2D

La funzione glCopyTexSubImage2D copia un'immagine secondaria di un'immagine di trama bidimensionale dal framebuffer.

Sintassi

void WINAPI glCopyTexSubImage2D(
   GLenum  target,
   GLint   level,
   GLint   xoffset,
   GLint   yoffset,
   GLint   x,
   GLint   y,
   GLsizei width,
   GLsizei height
);

Parametri

target

Destinazione in cui verranno modificati i dati dell'immagine. Deve avere il valore GL_TEXTURE_2D.

level

Numero di dettaglio del livello. Il livello 0 è l'immagine di base. Level n è l'immagine di riduzione mipmap n.

xoffset

Offset del texel nella direzione x all'interno della matrice di trame.

yoffset

Offset del texel nella direzione y all'interno della matrice di trame.

x

Coordinate del piano x della finestra dell'angolo inferiore sinistro della riga di pixel da copiare.

y

Coordinate del piano y della finestra dell'angolo inferiore sinistro della riga di pixel da copiare.

width

Larghezza dell'immagine secondaria dell'immagine della trama. La specifica di una sottomaschera con larghezza zero non ha alcun effetto.

height

Altezza dell'immagine secondaria dell'immagine della trama. La specifica di una sottomaschera con larghezza zero non ha alcun effetto.

Valore restituito

Questa funzione non restituisce un valore.

Codici di errore

I codici di errore seguenti possono essere recuperati dalla funzione glGetError .

Nome Significato
GL_INVALID_ENUM
target non è un valore accettato.
GL_INVALID_VALUE
level è minore di zero o maggiore di log2 (max), dove max è il valore restituito di GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
xoffset era minore del bordo o (xoffsetwidth + )era maggiore di (wborder + ), yoffset era minore del bordo o (yoffsetheight + ) era maggiore di (hborder + ), dove w è GL_TEXTURE_WIDTH e il bordo è GL_TEXTURE_BORDER. Si noti che w include due volte la larghezza del bordo .
GL_INVALID_VALUE
la larghezza è minore del bordo o y è minore del bordo, dove il bordo corrisponde alla larghezza del bordo della matrice di trame.
GL_INVALID_OPERATION
La matrice di trame non è stata definita da un'operazione glTexImage1D precedente.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Commenti

La funzione glCopyTexSubImage2D sostituisce una parte rettangolare di un'immagine di trama bidimensionale con pixel dal framebuffer corrente, anziché dalla memoria principale, come nel caso di glTexSubImage2D.

Un rettangolo di pixel che inizia con le coordinate della finestra x e y e con la larghezza e l'altezza sostituisce la parte della matrice di trama con gli indici xoffset tramite xoffset + (width - 1), con gli indici yoffset tramite yoffset + (width - 1) a livello di mipmap specificato per livello. Il rettangolo di destinazione nella matrice di trame non può includere alcun texel all'esterno della matrice di trama specificata in origine.

La funzione glCopyTexSubImage2D elabora i pixel in una riga allo stesso modo di glCopyPixels, ad eccezione del fatto che prima della conversione finale dei pixel, tutti i valori dei componenti pixel vengono bloccati nell'intervallo [0,1] e convertiti nel formato interno della trama per l'archiviazione nella matrice di trama. L'ordinamento dei pixel viene determinato con coordinate x inferiori corrispondenti alle coordinate della trama inferiori. Se uno dei pixel all'interno di una riga specificata del framebuffer corrente si trovano all'esterno della finestra associata al contesto di rendering corrente, i relativi valori non sono definiti.

Se uno dei pixel all'interno del rettangolo specificato del framebuffer corrente si trovano all'esterno della finestra di lettura associata al contesto di rendering corrente, i valori ottenuti per tali pixel non sono definiti. Non viene apportata alcuna modifica al parametro internalFormat, width, height o border della matrice di trama specificata o ai valori di texel esterni all'immagine secondaria della trama specificata.

Non è possibile includere chiamate a glCopyTexSubImage2D negli elenchi di visualizzazione.

Nota

La funzione glCopyTexSubImage2D è disponibile solo in OpenGL versione 1.1 o successiva.

Il texturing non ha alcun effetto in modalità di indice dei colori. Le funzioni glPixelStore e glPixelTransfer influiscono esattamente sulle immagini delle trame nel modo in cui influiscono sul modo in cui i pixel vengono disegnati usando glDrawPixels.

Le funzioni seguenti recuperano informazioni correlate a glCopyTexSubImage2D:

glGetTexImage

glIsEnabled con argomento GL_TEXTURE_2D

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Gl.h
Libreria
Opengl32.lib
DLL
Opengl32.dll

Vedi anche

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter