glBindTexture: Unterschied zwischen den Versionen
K (Update auf OGL 2.1) |
|||
Zeile 77: | Zeile 77: | ||
[[Kategorie:GL|BindTexture]] | [[Kategorie:GL|BindTexture]] | ||
[[Kategorie:GL1.1|BindTexture]] | [[Kategorie:GL1.1|BindTexture]] | ||
+ | [[Kategorie:GL3]] |
Version vom 15. Juni 2011, 20:33 Uhr
Inhaltsverzeichnis
glBindTexture
Name
glBindTexture - Bindet eine benannte Textur an ein Texturenziel.
Delphi-Spezifikation
procedure glBindTexture(target : GLenum; texture : GLuint)
Parameter
target | Gibt das Ziel an, an dass die Textur gebunden werden soll. Gültig sind GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D und GL_TEXTURE_CUBE_MAP. |
---|---|
texture | Name der zu bindenden Textur. |
Beschreibung
glBindTexture bindet die mit texture benannte Textur an das angegebene Ziel. Wenn der Name nicht existiert, wird dieser erstellt. Ein Aufruf von glBindTexture mit target gleich GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D oder GL_TEXTURE_CUBE_MAP und texture als Name der neuen Textur, bindet diese Textur an das Ziel. Wenn eine Textur an ein Ziel gebunden wird, wird die vorherige Bindung überschrieben.
Texturennamen sind vorzeichenlose Ganzzahlwerte, der Wert 0 ist für vorreserviert und repräsentiert eine vorgegebene Textur für alle Texturenziele. Texturennamen und die zugehörigen Texturinhalte liegen lokal im geteilten Displays-Listen-Raum (siehe wglCreateContext) des aktuellen Renderkontextes. Zwei Renderkontexte teilen sich die Texturennamen also nur dann, wenn sie sich auch ihre Display-Listen Namen teilen (siehe wglShareLists). glGenTextures kann genutzt werden um einen neuen Satz Texturennamen zu generieren.
Wenn eine Textur zum ersten mal gebunden wird, nimmt diese die Dimensionalität des Ziels an : Eine Textur die zum ersten mal an das Ziel GL_TEXTURE_1D gebunden wird, wird 1-Dimensional, bei GL_TEXTURE_2D 2-Dimensional, bei GL_TEXTURE_3D 3-Dimensional und bei GL_TEXTURE_CUBE_MAP zu einer Cubemap-Textur. Der Status einer gebundenen Textur (nachdem diese zum ersten mal gebunden wurde) enstpricht dem Status der vorgegebenen Textur (ID = 0) auf dem entsprechenden Texturziel.
Wenn eine Textur gebunden ist, wirken sich GL-Operationen auf das Ziel auch auf die gebundene Textur aus, und Anfragen an das aktuelle Ziel geben die Einstellungen der aktuelle dort gebundenen Textur zurück. Wenn Texturemapping der Dimension des Ziels, an welches die Textur gebunden ist, aktiv ist, wird die gebundene Textur genutzt. Im Endeffekt werden die Ziele damit zu anderen Namen für die aktuell dort gebundene Textur.
Eine Texturenbindung die über glBindTexture hergestellt wurd, ist solange aktiv bis eine andere Textur an das selbe Ziel gebunden wird, oder bis die gebundene Textur mittels glDeleteTextures gelöscht wird.
Einmal erstellt, kann eine benannte Textur so oft wie gewollt an ein Ziel entsprechender Dimensionalität gebunden werden. Normalerweise ist es sehr viel schneller glBindTexture zu nutzen um eine bereits entstehende Textur zu binden, als diese immerwieder neu zu laden. Für zusätzliche Kontrolle über die Performance kann man glPrioritizeTextures nutzen.
glBindTexture wird in Displaylisten abgelegt.
Hinweise
glBindTexture ist ab OpenGL Version 1.1 verfügbar.
Änderungen
Ab OpenGL Version 1.3
Als target steht zusätzlich GL_TEXTURE_CUBE_MAP zur Verfügung.
Fehlermeldungen
GL_INVALID_ENUM wird generiert, wenn target keinen gültigen Wert besitzt.
GL_INVALID_OPERATION wird generiert, wenn texture eine Dimensionalität besitzt die nicht der des Ziels entspricht.
GL_INVALID_OPERATION wird generiert, wenn glBindTexture in einem glBegin/glEnd-Block aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit dem Argument GL_TEXTURE_BINDING_1D
glGet mit dem Argument GL_TEXTURE_BINDING_2D
glGet mit dem Argument GL_TEXTURE_BINDING_3D
glGet mit dem Argument GL_TEXTURE_BINDING_CUBE_MAP
Links
http://www.opengl.org/sdk/docs/man/xhtml/glBindTexture.xml
Siehe auch
glAreTexturesResident, glDeleteTextures, glGenTextures, glGet, glGetTexParameter, glIsTexture, glPrioritizeTextures, glTexImage1D, glTexImage2D, glTexImage3D, glTexParameter
Hintergrundwissen: OpenGL_Name