glBindTexture

Aus DGL Wiki
Wechseln zu: Navigation, Suche

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 und GL_TEXTURE_3D.
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 oder GL_TEXTURE_3D 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 und bei GL_TEXTURE_3D 3-Dimensional. 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.


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_1D_BINDING
glGet mit dem Argument GL_TEXTURE_2D_BINDING
glGet mit dem Argument GL_TEXTURE_3D_BINDING_EXT


Siehe auch

glAreTexturesResident, glDeleteTextures, glGenTextures, glGet, glGetTexParameter, glIsTexture, glPrioritizeTextures, glTexImage1D, glTexImage2D, glTexImage3D, glTexParameter