glTexSubImage1D: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
 
K
 
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glTexSubImage1D =
 
= glTexSubImage1D =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glTexSubImage1D''' - Legt ein eindimensionales Subimage fest.
 
'''glTexSubImage1D''' - Legt ein eindimensionales Subimage fest.
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  
  procedure '''glTexSubImage1D'''(''target'' : GLenum; ''level'' : GLint; ''xoffset'' : GLint;
+
  procedure '''glTexSubImage1D'''(''target'' : GLenum;  
  ''width'' : GLsizei; ''format'' : GLenum; ''type'' : GLenum; ''pixels'' : '''const''' ^GLvoid)
+
                          ''level'' : GLint;  
 +
                          ''xoffset'' : GLint;
 +
                          ''width'' : GLsizei;  
 +
                          ''format'' : GLenum; ''type'' : GLenum;  
 +
                          ''pixels'' : '''const''' ^GLvoid)
 +
 
 +
 
  
<br>
 
  
 
== Parameter ==
 
== Parameter ==
  
 
{| border="1" rules="all"
 
{| border="1" rules="all"
! ''target''  
+
! ''target''
 
| Gibt die Zieltextur an. Muss '''GL_TEXTURE_1D''' sein.
 
| Gibt die Zieltextur an. Muss '''GL_TEXTURE_1D''' sein.
 
|-
 
|-
! ''level''  
+
! ''level''
| Gibt die [[Level-of-Detail]]-Nummer an. Level 0 ist die Standardtextur. Level ''n'' ist die ''n''-te Mipmap-Textur.
+
| Gibt die [[LOD]]-Nummer an. Level 0 ist die Standardtextur. Level ''n'' ist die ''n''-te Mipmap-Textur.
 
|-
 
|-
 
! ''xoffset''
 
! ''xoffset''
Zeile 40: Zeile 47:
 
|}
 
|}
  
<br>
 
  
== 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_1D''' auf.<br>
+
== Beschreibung ==
<br>
+
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, rufe man [[glEnable]] bzw. [[glDisable]] mit dem Argument '''GL_TEXTURE_1D''' auf.
 +
 
 
[[glTexSubImage1D]] 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'' eingeschlossen. 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.
 
[[glTexSubImage1D]] 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'' eingeschlossen. 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 ==
[[glTexSubImage1D]] wird nur ab der OpenGL-Version 1.1 oder höher unterstützt.<br>
+
[[glTexSubImage1D]] wird nur ab der OpenGL-Version 1.1 oder höher unterstützt.
<br>
+
 
Texturierung hat keinen Effekt, wenn man sich im Colorindex-Modus befindet.<br>
+
Texturierung hat keinen Effekt, wenn man sich im Colorindex-Modus befindet.
<br>
+
 
 
[[glPixelStore]] und [[glPixelTransfer]] beeinflussen die Texturen genauso, wie sie es bei [[glDrawPixels]] tun.
 
[[glPixelStore]] und [[glPixelTransfer]] beeinflussen die Texturen genauso, wie sie es bei [[glDrawPixels]] tun.
  
<br>
+
 
 +
 
 
== Extensions ==
 
== Extensions ==
 
Einige Befehle und Konstanten dieser Funktion sind Teil einer Extension und nicht Teil des Standard-OpenGL-Befehlsangebots. Folgende Extension-Bezeichnungen müssen in dem String enthalten sein, den [[glGetString]] mit dem Argument '''GL_EXTENSION''' zurückliefert, um diese Befehle und Konstanten zu benutzen.
 
Einige Befehle und Konstanten dieser Funktion sind Teil einer Extension und nicht Teil des Standard-OpenGL-Befehlsangebots. Folgende Extension-Bezeichnungen müssen in dem String enthalten sein, den [[glGetString]] mit dem Argument '''GL_EXTENSION''' zurückliefert, um diese Befehle und Konstanten zu benutzen.
Zeile 61: Zeile 70:
 
<br>
 
<br>
 
:'''GL_EXT_422_pixels'''
 
:'''GL_EXT_422_pixels'''
::'''L_422_EXT'''', '''GL_422_REV_EXT''', '''GL_422_AVERAGE_EXT''' und '''GL_422_REV_AVERAGE_EXT''' sind Teil der [[EXT_422_pixels]]-Extension.
+
::'''L_422_EXT''', '''GL_422_REV_EXT''', '''GL_422_AVERAGE_EXT''' und '''GL_422_REV_AVERAGE_EXT''' sind Teil der [[GL_EXT_422_pixels|EXT_422_pixels]]-Extension.
  
 
:'''GL_I3D_argb'''
 
:'''GL_I3D_argb'''
::'''GL_ARGB_I3D''' ist Teil der [[I3D_argb]]-Extension
+
::'''GL_ARGB_I3D''' ist Teil der [[GL_I3D_argb]]-Extension
  
 
:'''GL_EXT_bgra'''
 
:'''GL_EXT_bgra'''
::'''GL_BGR_EXT''' und '''GL_BGRA_EXT''' sind Teil der [[EXT_bgra]]-Extension.
+
::'''GL_BGR_EXT''' und '''GL_BGRA_EXT''' sind Teil der [[GL_EXT_bgra|EXT_bgra]]-Extension.
  
 
:'''GL_EXT_packed_pixels'''
 
:'''GL_EXT_packed_pixels'''
::'''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''' sind Teil der [[EXT_packed_pixels]]-Extension.
+
::'''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''' sind Teil der [[GL_EXT_packed_pixels|EXT_packed_pixels]]-Extension.
 +
 
 +
 
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
 
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht einen der erlaubten Werte hat.
 
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht einen der erlaubten Werte hat.
<br>
 
  
 +
'''GL_INVALID_OPERATION''' wird generiert, wenn das Textur-Array nicht durch eine vorhergehende [[glTexImage1D]]-Ausführung erzeugt wurde.
  
'''GL_INVALID_OPERATION''' wird generiert, wenn das Textur-Array nicht durch eine vorhergehende [[glTexImage1D]]-Ausführung erzeugt wurde.<br>
+
'''GL_INVALID_VALUE''' wird generiert, wenn ''level'' kleiner 0 ist.
  
'''GL_INVALID_VALUE''' wird generiert, wenn ''level'' kleiner 0 ist.<br>
+
'''GL_INVALID_VALUE''' könnte generiert werden, wenn ''level'' größer als [[Bild:Log_2_max.png]] ist, wobei ''max'' der Wert von '''GL_MAX_TEXTURE_SIZE''' ist.
  
'''GL_INVALID_VALUE''' könnte generiert werden, wenn ''level'' größer als log2(max) (max = '''GL_MAX_TEXTURE_SIZE''') ist.<br>
+
'''GL_INVALID_VALUE''' wird generiert, wenn einer der folgenden Fälle eintritt:
 +
:*[[Bild:Xoffset_b.png]]
 +
:*[[Bild:Xoffset_width.png]])
  
'''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.<br>
+
:wobei gilt:
 +
:*w ist '''GL_TEXTURE_WIDTH''',
 +
:*b ist die Randbreite (border width, '''GL_TEXTURE_BORDER''') des Texturbildes was modifiziert wird,
 +
:*w enthält die doppelte Randbreite.
  
'''GL_INVALID_VALUE''' wird generiert, wenn ''width'' kleiner als 0 ist.<br>
+
'''GL_INVALID_VALUE''' wird generiert, wenn ''width'' kleiner als 0 ist.
  
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' keine akzeptable Konstante zugewiesen ist.<br>
+
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' keine akzeptable Konstante zugewiesen ist.
  
'''GL_INVALID_ENUM''' wird generiert, wenn ''type'' keine akzeptable Konstante zugewiesen ist.<br>
+
'''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_ENUM''' wird generiert, wenn ''type'' '''GL_BITMAP''' und ''format'' nicht '''GL_COLOR_INDEX''' ist.
  
'''GL_INVALID_OPERATION''' wird generiert, wenn glTexSubImage innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
+
'''GL_INVALID_OPERATION''' wird generiert, wenn glTexSubImage innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.  
 +
 
  
<br>
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
 
[[glGetTexImage]]
 
[[glGetTexImage]]
[[glIsEnabled]] mit Token [[glIsEnabledt#GL_TEXTURE_1D|GL_TEXTURE_1D]]
 
  
<br>
+
[[glIsEnabled]] mit Token [[glIsEnabled#GL_TEXTURE_1D|GL_TEXTURE_1D]]
 +
 
 +
 
  
 
== Siehe auch ==
 
== Siehe auch ==
[[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glDrawPixels]], [[glPixelStore]], [[glPixelTransfer]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexImage3DEXT]], [[glTexParameter]], [[glTexSubImage2D]], [[glTexSubImage3DEXT]]
+
[[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glDrawPixels]], [[glPixelStore]], [[glPixelTransfer]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexImage3D]], [[glTexParameter]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexSubImage3D]]
  
<br>
 
 
[[Kategorie:GL|TexSubImage1D]]
 
[[Kategorie:GL|TexSubImage1D]]
 +
[[Kategorie:GL1.1|TexSubImage1D]]

Aktuelle Version vom 26. Juli 2011, 09:58 Uhr

glTexSubImage1D

Name

glTexSubImage1D - Legt ein eindimensionales Subimage fest.


Delphi-Spezifikation

procedure glTexSubImage1D(target : GLenum; 
                          level : GLint; 
                          xoffset : GLint;
                          width : GLsizei; 
                          format : GLenum; type : GLenum; 
                          pixels : const ^GLvoid)



Parameter

target Gibt die Zieltextur an. Muss GL_TEXTURE_1D 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.
width Gibt die Breite 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_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA, GL_BGR_EXT, GL_BGRA_EXT, GL_ARGB_I3D, GL_422_EXT, GL_422_REV_EXT, GL_422_AVERAGE_EXT und GL_422_REV_AVERAGE_EXT.
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, rufe man glEnable bzw. glDisable mit dem Argument GL_TEXTURE_1D auf.

glTexSubImage1D 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 eingeschlossen. 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

glTexSubImage1D 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.


Extensions

Einige Befehle und Konstanten dieser Funktion sind Teil einer Extension und nicht Teil des Standard-OpenGL-Befehlsangebots. Folgende Extension-Bezeichnungen müssen in dem String enthalten sein, den glGetString mit dem Argument GL_EXTENSION zurückliefert, um diese Befehle und Konstanten zu benutzen.

GL_EXT_422_pixels
L_422_EXT, GL_422_REV_EXT, GL_422_AVERAGE_EXT und GL_422_REV_AVERAGE_EXT sind Teil der EXT_422_pixels-Extension.
GL_I3D_argb
GL_ARGB_I3D ist Teil der GL_I3D_argb-Extension
GL_EXT_bgra
GL_BGR_EXT und GL_BGRA_EXT sind Teil der EXT_bgra-Extension.
GL_EXT_packed_pixels
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 sind Teil der EXT_packed_pixels-Extension.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn target nicht einen der erlaubten Werte hat.

GL_INVALID_OPERATION wird generiert, wenn das Textur-Array nicht durch eine vorhergehende glTexImage1D-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 Log 2 max.png ist, wobei max der Wert von GL_MAX_TEXTURE_SIZE ist.

GL_INVALID_VALUE wird generiert, wenn einer der folgenden Fälle eintritt:

  • Xoffset b.png
  • Xoffset width.png)
wobei gilt:
  • w ist GL_TEXTURE_WIDTH,
  • b ist die Randbreite (border width, GL_TEXTURE_BORDER) des Texturbildes was modifiziert wird,
  • w enthält die doppelte Randbreite.

GL_INVALID_VALUE wird generiert, wenn width 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 glTexSubImage innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.


Zugehörige Wertrückgaben

glGetTexImage

glIsEnabled mit Token GL_TEXTURE_1D


Siehe auch

glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, glDrawPixels, glPixelStore, glPixelTransfer, glTexEnv, glTexGen, glTexImage1D, glTexImage2D, glTexImage3D, glTexParameter, glTexSubImage2D, glTexSubImage3D, glTexSubImage3D