glTexSubImage2D: Unterschied zwischen den Versionen
DGLBot (Diskussion | Beiträge) K (Bot: repariere tote Links zu Bildern) |
DGLBot (Diskussion | Beiträge) K (Bot: konvertiere/korrigiere <BR>) |
||
Zeile 1: | Zeile 1: | ||
= glTexSubImage2D = | = glTexSubImage2D = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''glTexSubImage2D''' - Legt ein zweidimensionales Subimage fest. | '''glTexSubImage2D''' - Legt ein zweidimensionales Subimage fest. | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
Zeile 15: | Zeile 17: | ||
''pixels'' : '''const''' ^GLvoid) | ''pixels'' : '''const''' ^GLvoid) | ||
− | + | ||
+ | |||
== Parameter == | == Parameter == | ||
Zeile 51: | Zeile 54: | ||
|} | |} | ||
− | + | ||
+ | |||
== Beschreibung == | == Beschreibung == | ||
Zeile 58: | Zeile 62: | ||
[[glTexSubImage2D]] definiert einen Teil einer vorliegenden eindimensionalen Textur neu. Die Texel, die durch ''pixels'' angegeben werden, ersetzen den Teil des vorliegenden Textur-Arrays mit den Positionen x bei ''xoffset'' bis ''xoffset + width - 1'' und y bei ''yoffset'' bis ''yoffset + height - 1''. Dieser Bereich muss nicht alle Texel enthalten, die im ursprünglichen Texturarray lagen. Es ist nicht falschm wenn man eine Sub-Textur mit einer Breite von 0 festlegt, aber das hat keinen Effekt.<br> | [[glTexSubImage2D]] definiert einen Teil einer vorliegenden eindimensionalen Textur neu. Die Texel, die durch ''pixels'' angegeben werden, ersetzen den Teil des vorliegenden Textur-Arrays mit den Positionen x bei ''xoffset'' bis ''xoffset + width - 1'' und y bei ''yoffset'' bis ''yoffset + height - 1''. Dieser Bereich muss nicht alle Texel enthalten, die im ursprünglichen Texturarray lagen. Es ist nicht falschm wenn man eine Sub-Textur mit einer Breite von 0 festlegt, aber das hat keinen Effekt.<br> | ||
− | + | ||
+ | |||
== Hinweise == | == Hinweise == | ||
[[glTexSubImage2D]] wird nur ab der OpenGL-Version 1.1 oder höher unterstützt.<br> | [[glTexSubImage2D]] wird nur ab der OpenGL-Version 1.1 oder höher unterstützt.<br> | ||
Zeile 72: | Zeile 77: | ||
Wenn die ''GL_ARB_imaging'''-Extension unterstützt wird, dann müssen die RGBA-Pixel, die in ''pixels'' angesteuert werden, durch die Imaging-Pipeline verarbeitetet werden. Siehe dazu [[glTexImage2D]].<br> | Wenn die ''GL_ARB_imaging'''-Extension unterstützt wird, dann müssen die RGBA-Pixel, die in ''pixels'' angesteuert werden, durch die Imaging-Pipeline verarbeitetet werden. Siehe dazu [[glTexImage2D]].<br> | ||
− | + | ||
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht vom Typ '''GL_TEXTURE_2D''' ist. | '''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht vom Typ '''GL_TEXTURE_2D''' ist. | ||
Zeile 111: | Zeile 117: | ||
'''GL_INVALID_OPERATION''' wird generiert, wenn ''type'' '''GL_UNSIGNED_SHORT_4_4_4_4''', '''GL_UNSIGNED_SHORT_4_4_4_4_REV''', '''GL_UNSIGNED_SHORT_5_5_5_1''', '''GL_UNSIGNED_SHORT_1_5_5_5_REV''', '''GL_UNSIGNED_INT_8_8_8_8''', '''GL_UNSIGNED_INT_8_8_8_8_REV''', '''GL_UNSIGNED_INT_10_10_10_2''' oder '''GL_UNSIGNED_INT_2_10_10_10_REV''' und ''format'' weder '''GL_RGBA''' noch '''GL_BGRA''' ist. | '''GL_INVALID_OPERATION''' wird generiert, wenn ''type'' '''GL_UNSIGNED_SHORT_4_4_4_4''', '''GL_UNSIGNED_SHORT_4_4_4_4_REV''', '''GL_UNSIGNED_SHORT_5_5_5_1''', '''GL_UNSIGNED_SHORT_1_5_5_5_REV''', '''GL_UNSIGNED_INT_8_8_8_8''', '''GL_UNSIGNED_INT_8_8_8_8_REV''', '''GL_UNSIGNED_INT_10_10_10_2''' oder '''GL_UNSIGNED_INT_2_10_10_10_REV''' und ''format'' weder '''GL_RGBA''' noch '''GL_BGRA''' ist. | ||
− | + | ||
+ | |||
== Zugehörige Wertrückgaben == | == Zugehörige Wertrückgaben == | ||
Zeile 117: | Zeile 124: | ||
[[glIsEnabled]] mit Token [[glIsEnabled#GL_TEXTURE_1D|GL_TEXTURE_1D]] | [[glIsEnabled]] mit Token [[glIsEnabled#GL_TEXTURE_1D|GL_TEXTURE_1D]] | ||
− | + | ||
+ | |||
== Siehe auch == | == Siehe auch == | ||
[[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glDrawPixels]], [[glEnable]], [[glFog]], [[glGetTexImage]], [[glIsEnabled]], [[glPixelStore]], [[glPixelTransfer]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexSubImage1D]], [[glTexSubImage3D]], [[glTexImage2D]], [[glTexParameter]] | [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glDrawPixels]], [[glEnable]], [[glFog]], [[glGetTexImage]], [[glIsEnabled]], [[glPixelStore]], [[glPixelTransfer]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexSubImage1D]], [[glTexSubImage3D]], [[glTexImage2D]], [[glTexParameter]] | ||
− | + | ||
+ | |||
[[Kategorie:GL|TexSubImage2D]] | [[Kategorie:GL|TexSubImage2D]] |
Version vom 22. April 2006, 19:24 Uhr
Inhaltsverzeichnis
glTexSubImage2D
Name
glTexSubImage2D - Legt ein zweidimensionales Subimage fest.
Delphi-Spezifikation
procedure glTexSubImage2D(target : GLenum; level : GLint; xoffset : GLint; yoffset : GLint; width : GLsizei; height : GLsizei; format : GLenum; type : GLenum; pixels : const ^GLvoid)
Parameter
target | Gibt die Zieltextur an. Muss GL_TEXTURE_2D sein. |
---|---|
level | Gibt die LOD-Nummer an. Level 0 ist die Standardtextur. Level n ist die n-te Mipmap-Textur. |
xoffset | Gibt den Texel-Offset-Wert innerhalb des Texturarrays in x-Richtung an. |
yoffset | Gibt den Texel-Offset-Wert innerhalb des Texturarrays in y-Richtung an. |
width | Gibt die Breite des Subimages an. |
height | Gibt die Höhe des Subimages an. |
format | Gibt das Format der Pixeldaten an. Die folgenden Werte sind erlaubt:
GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE und GL_LUMINANCE_ALPHA. |
type | Gibt den Datentyp der Pixeldaten an. Die folgenden Werte sind erlaubt:
GL_BITMAP, GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2_EXT, GL_UNSIGNED_BYTE_2_3_3_REV_EXT, GL_UNSIGNED_SHORT_5_6_5_EXT, GL_UNSIGNED_SHORT_5_6_5_REV_EXT, GL_UNSIGNED_SHORT_4_4_4_4_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_UNSIGNED_SHORT_5_5_5_1_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_UNSIGNED_INT_8_8_8_8_EXT, GL_UNSIGNED_INT_8_8_8_8_REV_EXT, GL_UNSIGNED_INT_10_10_10_2_EXT und GL_UNSIGNED_INT_2_10_10_10_REV_EXT. |
pixels | Gibt den Pointer zu den Bilddaten im Speicher aus. |
Beschreibung
Die Funktion zeichnet festgelegte Teile einer angegebenen Textur auf alle Polygone, für die Texturierung aktiviert ist. Um eindimensionales Texturieren zu aktivieren bzw. zu deaktivieren, ruge man glEnable bzw. glDisable mit dem Argument GL_TEXTURE_2D auf.
glTexSubImage2D definiert einen Teil einer vorliegenden eindimensionalen Textur neu. Die Texel, die durch pixels angegeben werden, ersetzen den Teil des vorliegenden Textur-Arrays mit den Positionen x bei xoffset bis xoffset + width - 1 und y bei yoffset bis yoffset + height - 1. Dieser Bereich muss nicht alle Texel enthalten, die im ursprünglichen Texturarray lagen. Es ist nicht falschm wenn man eine Sub-Textur mit einer Breite von 0 festlegt, aber das hat keinen Effekt.
Hinweise
glTexSubImage2D wird nur ab der OpenGL-Version 1.1 oder höher unterstützt.
Texturierung hat keinen Effekt, wenn man sich im Colorindex-Modus befindet.
glPixelStore und glPixelTransfer beeinflussen die Texturen genauso, wie sie es bei glDrawPixels tun.
Die Formate GL_BGR' und GL_BGRA und die Typen GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2 und GL_UNSIGNED_INT_2_10_10_10_REV sind nur verfügbar, wenn die OpenGL-Version 1.2 oder höher ist.
Wenn die GL_ARB_multitexture-Extension unterstützt wird, dann legt glTexSubImage2D eine zweidimensionale Subtextur für die aktuelle Textureinheit - angegeben mit glActiveMultiTextureARB - fest.
Wenn die GL_ARB_imaging'-Extension unterstützt wird, dann müssen die RGBA-Pixel, die in pixels angesteuert werden, durch die Imaging-Pipeline verarbeitetet werden. Siehe dazu glTexImage2D.
Fehlermeldungen
GL_INVALID_ENUM wird generiert, wenn target nicht vom Typ GL_TEXTURE_2D ist.
GL_INVALID_OPERATION wird generiert, wenn das Textur-Array nicht durch eine vorhergehende glTexImage2D-Ausführung erzeugt wurde.
GL_INVALID_VALUE wird generiert, wenn level kleiner 0 ist.
GL_INVALID_VALUE könnte generiert werden wenn level größer als ist, wobei max der Wert von GL_MAX_TEXTURE_SIZE ist.
GL_INVALID_VALUE wird generiert wenn einer der folgenden Fälle eintritt:
- wobei gilt:
- w ist GL_TEXTURE_WIDTH,
- h ist GL_TEXTURE_HEIGHT,
- b ist die Randbreite (border width, GL_TEXTURE_BORDER) des Texturbildes was modifiziert wird,
- l ist 2 wenn GL_INTERLACE_EXT aktiviert wurde.
- w und h enthalten die doppelte Randbreite.
GL_INVALID_VALUE wird generiert, wenn width oder height kleiner als 0 ist.
GL_INVALID_ENUM wird generiert, wenn format keine akzeptable Konstante zugewiesen ist.
GL_INVALID_ENUM wird generiert, wenn type keine akzeptable Konstante zugewiesen ist.
GL_INVALID_ENUM wird generiert, wenn type GL_BITMAP und format nicht GL_COLOR_INDEX ist.
GL_INVALID_OPERATION wird generiert, wenn glTexSubImage2D innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
GL_INVALID_OPERATION wird generiert, wenn type nicht GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5 oder GL_UNSIGNED_SHORT_5_6_5_REV und format nicht GL_RGB ist.
GL_INVALID_OPERATION wird generiert, wenn type GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2 oder GL_UNSIGNED_INT_2_10_10_10_REV und format weder GL_RGBA noch GL_BGRA ist.
Zugehörige Wertrückgaben
glGetTexImage
glIsEnabled mit Token GL_TEXTURE_1D
Siehe auch
glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glDrawPixels, glEnable, glFog, glGetTexImage, glIsEnabled, glPixelStore, glPixelTransfer, glTexEnv, glTexGen, glTexImage1D, glTexImage2D, glTexSubImage1D, glTexSubImage3D, glTexImage2D, glTexParameter