gl.BindTexture(target, texture)
gl.BindTexture()
mit dem Ziel #GL_TEXTURE_1D
oder #GL_TEXTURE_2D
und dem Textur-Set mit dem Namen der neuen Textur bindet den Texturnamen an das
Ziel. Wenn eine Textur an ein Ziel gebunden ist, wird die vorherige Bindung für
dieses Ziel automatisch unterbrochen.
Texturnamen sind vorzeichenlose Ganzzahlen. Der Wert Null ist reserviert, um die Standardtextur für jedes Texturziel darzustellen. Texturnamen und die entsprechenden Texturinhalte sind lokal im gemeinsamen Display-Listenraum des aktuellen GL-Render-Kontextes; zwei Rendering-Kontexte teilen nur Texturnamen, wenn sie auch Display-Listen teilen.
Sie können gl.GenTextures() verwenden, um eine Reihe von neuen Texturnamen zu generieren.
Wenn eine Textur zuerst gebunden wird, nimmt sie die Dimensionalität des angegebene
Ziels an: Eine Textur, die zuerst an #GL_TEXTURE_1D
gebunden wird, wird zu
einer eindimensionalen Textur; eine Textur, die zuerst an #GL_TEXTURE_2D
gebunden wird, wird zu einer zweidimensionalen Textur. Der Status einer
eindimensionalen Textur unmittelbar nach der ersten Bindung entspricht dem
Status der Standard-#GL_TEXTURE_1D bei der GL-Initialisierung und ist für
zweidimensionale Texturen ähnlich.
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 das Textur-Mapping auf dem Ziel aktiv ist, wird die gebundene Textur genutzt. Im Endeffekt werden die Ziele damit zu anderen Namen für die aktuell dort gebundene Textur. In der Tat werden die Texturziele zu Aliasen für die aktuell an sie gebundenen Texturen und der Texturname Null bezieht sich auf die Standardtexturen, die bei der Initialisierung an sie gebunden wurden.
Eine Texturbindung, die mit gl.BindTexture()
erstellt wurde, bleibt aktiv,
bis eine andere Textur an dasselbe Ziel gebunden wird oder bis die gebundene
Textur mit gl.DeleteTextures() gelöscht wird.
Nach der Erstellung kann die angegebene Textur so oft wie nötig an ihr
ursprüngliches Ziel gebunden werden. Es ist normalerweise viel schneller,
gl.BindTexture()
zu verwenden, um die angegebene Textur an eines
der Texturziele zu binden, als das Texturbild mit gl.TexImage1D()
oder gl.TexImage2D() zu verwenden. Um zusätzliche Kontrolle
über die Leistung zu erhalten, verwenden Sie gl.PrioritizeTextures().
gl.BindTexture()
ist in Display-Listen enthalten.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_TEXTURE_1D
oder #GL_TEXTURE_2D
sein#GL_INVALID_ENUM
wird generiert, wenn target
keiner der zulässigen Werte ist.
#GL_INVALID_OPERATION
wird generiert, wenn die Textur zuvor mit einem Ziel
erstellt wurde, das nicht mit dem von target
übereinstimmt.
#GL_INVALID_OPERATION
wird generiert, wenn gl.BindTexture()
zwischen
gl.Begin() und gl.End() ausgeführt wird.
#GL_TEXTURE_BINDING_1D
gl.Get() mit dem Argument #GL_TEXTURE_BINDING_2D