glCopyTexSubImage1D: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Wiki-Link korrigiert.)
K (Kategorie GL3 hinzugefügt)
Zeile 90: Zeile 90:
 
[[Kategorie:GL|CopyTexSubImage1D]]
 
[[Kategorie:GL|CopyTexSubImage1D]]
 
[[Kategorie:GL1.1|CopyTexSubImage1D]]
 
[[Kategorie:GL1.1|CopyTexSubImage1D]]
 +
[[Kategorie:GL3]]

Version vom 15. Juni 2011, 20:47 Uhr

glCopyTexSubImage1D

Name

glCopyTexSubImage1D - kopiert ein eindimensionales Teilbild (eine Bildzeile).


Delphi-Spezifikation

procedure glCopyTexSubImage1D(target : GLenum; 
                              level : GLint; 
                              xoffset : GLint;
                              x : GLint; y : GLint; 
                              width : GLsizei);


Parameter

target Gibt die Zieltextur an. Muss GL_TEXTURE_1D sein.
level Gibt die LOD-Nummer an. Level 0 entspricht dem Standard-Bildlevel. Level n ist die n-te Mipmap-Textur.
xoffset Gibt den Texel-Offset-Wert innerhalb des Texturarrays an.
x, y Gibt - in Fensterkoordinaten - die linke Ecke der Reihe der zu kopierenden Pixel an.
width Gibt die Breite des Teilbildes an.


Beschreibung

glCopyTexSubImage1D ersetzt ein Teil einer eindimensionalen Textur mit Pixel vom aktuellen GL_READ_BUFFER (statt aus dem Hauptspeicher, wie das bei glTexSubImage1D der Fall ist).

Die Pixelreihe mit der linken Ecke bei [x,y] und mit der Länge width ersetzt den Teil des Texturarrays mit x bei xoffset + width - 1. Dieser Bereich muss nicht alle Texel enthalten, die im ursprünglichen Texturarray lagen.

Die Pixel werden genauso bearbeitet, wie wenn glCopyPixels aufgerufen worden wäre, nur dass der Prozess vor der finalen Umwandlung stoppt. An diesem Punkt angelangt, werden alle Pixelwerte an den [0,1]-Bereich angepasst und dann in das texturinterne Format konvertiert, um im Texelarray gespeichert zu werden.

Es ist nicht falsch wenn man eine Sub-Textur mit einer Breite von 0 festlegt, aber das hat keinen Effekt. Wenn irgendwelche der Pixel innerhalb der angegebenen Reihe im GL_READ_BUFFER außerhalb des Fenster sind, dann sind die für diese Werte erhaltenen Werte undefiniert.

Es werden keine Änderungen am internen Format, der Breite oder Randparametern des angegebenen Texturarrays vorgenommen.


Hinweise

glCopyTexSubImage1D ist nur verfügbar, wenn die OpenGL-Version 1.1 oder höher ist.

Texturierung hat keinen Effekt, wenn man sich im Color-Index-Modus befindet.

glPixelStore-und glPixelTransfer-Modi beeinflussen Texturen auf gleiche Weise, wie sie glDrawPixels beeinflussen.

Wenn die GL_ARB_imaging-Extension unterstützt wird, werden die kopierten RGBA-Komponenten möglicherweise durch die Imaging-Pipeline verarbeitet. Siehe glTexImage1D für mehr Informationen.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn target nicht der Wert GL_TEXTURE_1D zugewiesen wurde.

GL_INVALID_OPERATION wird generiert, wenn das Texturarrays nicht durch eine vorhergehende glTexImage1D- oder glCopyTexImage1D-Operation definiert wurde.

GL_INVALID_VALUE wird generiert, wenn level kleiner als 0 ist.

GL_INVALID_VALUE wird generiert, wenn level größer als log2(max) (max = GL_MAX_TEXTURE_SIZE) ist.

GL_INVALID_VALUE wird generiert, wenn b größer ist als y oder width (b ist die Randbreite des Texturarrays).

GL_INVALID_VALUE wird generiert, wenn xoffset kleiner als -b ist oder wenn (xoffset + width) kleiner ist als (w - b) (w = GL_TEXTURE_WIDTH, b = GL_TEXTURE_BORDER). Man beachte, dass w zweimal so groß ist wie b.

GL_INVALID_OPERATION wird generiert, wenn glCopyTexSubImage1D innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.


Zugehörige Wertrückgaben

glGetTexImage

glIsEnabled mit Token GL_TEXTURE_1D


Siehe auch

glCopyPixels, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage2D, glCopyTexSubImage3D, glPixelStore, glPixelTransfer, glReadBuffer, glTexEnv, glTexGen, glTexImage1D, glTexImage2D, glTexImage3D, glTexParameter, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D