glCopyTexSubImage2D: Unterschied zwischen den Versionen
Zeile 65: | Zeile 65: | ||
== Fehlermeldungen == | == Fehlermeldungen == | ||
− | '''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht der Wert ''' | + | '''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht der Wert '''GL_TEXTURE_2D''' zugewiesen wurde.<br> |
'''GL_INVALID_OPERATION''' wird generiert, wenn das Texturarrays nicht durch eine vorhergehende [[glTexImage2D]]- oder [[glCopyTexImage2D]]-Operation definiert wurde.<br> | '''GL_INVALID_OPERATION''' wird generiert, wenn das Texturarrays nicht durch eine vorhergehende [[glTexImage2D]]- oder [[glCopyTexImage2D]]-Operation definiert wurde.<br> | ||
Zeile 77: | Zeile 77: | ||
'''GL_INVALID_VALUE''' wird generiert, wenn xoffset oder yoffset kleiner als b ist oder wenn (xoffset + width) bzw (yoffset + width) kleiner ist als (w - b) (w = GL_TEXTURE_WIDTH, b = GL_TEXTURE_BORDER). Man beachte, dass w mindestens zweimal so groß ist wie b.<br> | '''GL_INVALID_VALUE''' wird generiert, wenn xoffset oder yoffset kleiner als b ist oder wenn (xoffset + width) bzw (yoffset + width) kleiner ist als (w - b) (w = GL_TEXTURE_WIDTH, b = GL_TEXTURE_BORDER). Man beachte, dass w mindestens zweimal so groß ist wie b.<br> | ||
− | '''GL_INVALID_OPERATION''' wird generiert, wenn ''' | + | '''GL_INVALID_OPERATION''' wird generiert, wenn '''glCopyTexSubImage2D''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. |
<br> | <br> |
Version vom 3. Oktober 2005, 12:39 Uhr
Inhaltsverzeichnis
glCopyTexSubImage2D
Name
glCopyTexSubImage2D - kopiert ein zweidimensionales Teilbild.
Delphi-Spezifikation
procedure glCopyTexSubImage2D(target : GLenum; level : GLint; xoffset : GLint; yoffset : GLint; x : GLint; y : GLint; width : GLsizei; height : GLsizei)
Parameter
target | Gibt die Zieltextur an. Muss GL_TEXTURE_2D 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 in x-Richtung innerhalb des Texturarrays an. |
yoffset | Gibt den Texel-Offset-Wert in y-Richtung 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. |
height | Gibt die Höhe des Teilbildes an. |
Beschreibung
glCopyTexSubImage2D ersetzt einen rechteckigen Teil einer zweidimensionalen Textur mit Pixeln aus dem aktuellen GL_READ_BUFFER (statt aus dem Hauptspeicher, wie das bei glTexSubImage2D der Fall ist).
Das Pixelrechteck mit der linken, unteren Ecke bei [x,y], mit der Länge width und der Höhe height ersetzt den Teil des Texturarrays mit x bei xoffset + width - 1 und y bei yoffset + height - 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 oder Höhe 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
glCopyTexSubImage2D 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 glDrawPixel 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_2D zugewiesen wurde.
GL_INVALID_OPERATION wird generiert, wenn das Texturarrays nicht durch eine vorhergehende glTexImage2D- oder glCopyTexImage2D-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, x, width oder height (b ist die Randbreite des Texturarrays).
GL_INVALID_VALUE wird generiert, wenn xoffset oder yoffset kleiner als b ist oder wenn (xoffset + width) bzw (yoffset + width) kleiner ist als (w - b) (w = GL_TEXTURE_WIDTH, b = GL_TEXTURE_BORDER). Man beachte, dass w mindestens zweimal so groß ist wie b.
GL_INVALID_OPERATION wird generiert, wenn glCopyTexSubImage2D innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGetTexImage
glIsEnabled mit Token GL_TEXTURE_2D
Siehe auch
glCopyPixels, glCopyTexImage, glCopyTexImage2D, glCopyTexSubImage2D, glCopyTexSubImage3D, glPixelStore, glPixelTransfer, glReadBuffer, glTexEnv, glTexGen, glTexImage1D, glTexImage2D, glTexImage3D, glTexParameter, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D