glAttachObjectARB
Eine aktuelle Beschreibung bzw. eine aktuelle Version der Funktion finden sie im Artikel glAttachShader. |
Inhaltsverzeichnis
glAttachObjectARB
Name
glAttachObjectARB - Hängt (bindet) einen Shader an ein Programmobjekt.
Delphi-Spezifikation
procedure glAttachObjectARB(programObj, shaderObj : GLhandleARB);
Parameter
programObj | Handle des Programmobjektes an das der Shader gebunden werden soll. |
---|---|
shaderObj | Handle des Shaders der gebunden werden soll. |
Beschreibung
Ein vollständiger, und zudem gültiger, Shader kann aus mehreren separaten Modulen, definiert durch mehrere Shader, bestehen. Ein Programmobjekt bietet dabei alle Funktionen an, um alle Shaderobjekte anzugeben, die dann genutzt werden, um einen ausführbaren Shader zu erstellen. glAttachObjectARB hängt (bindet) dabei das via shaderObj angegebene Shaderobjekt an das in programObj angegebene Programmobjekt und gibt so an, dass dieser Shader Bestandteil für den endgültig ausführbaren Shadersatz ist.
Alle Operationen, die auf einen Shader angewandt werden können, sind gültig, unabhängig davon ob dieses Shaderobjekt an ein Programmobjekt gebunden ist oder nicht. Es ist auch gültig, eine Shaderobjekt, das keinen Quellcode enthält, an eine Programmobjekt zu binden, oder einen Shader der noch nicht kompiliert wurde. Weiterhin ist es genauso möglich, mehrere Shaderobjekte gleichen Typs an das Programmobjekt zu hängen, sofern jeder dieser Shader ein kompilierbares Modul enthält, das später einen fertigen Shader ergibt. Aber auch das Binden eines Shaders an mehrere Programmobjekte ist erlaubt. Wenn ein gebundenes Shaderobjekt entfernt wird, wird dieses für die Löschung vorgemerkt, aber erst entfernt wenn glDetachObjectARB aufgerufen wird.
Seit der OpenGL Version 2.0 ist glAttachObjectARB als glAttachShader im Kern enthalten.
Fehlermeldungen
GL_INVALID_VALUE wird generiert, wenn Shader oder Programm kein gültiges OpenGL-Handle darstellen.
GL_INVALID_OPERATION wird generiert, wenn das Programmobjekt nicht vom Typ GL_PROGRAM_OBJECT ist.
GL_INVALID_OPERATION wird generiert, wenn der Shader nicht vom Typ GL_SHADER_OBJECT ist.
GL_INVALID_OPERATION wird generiert, wenn der Shader bereits an das Programmobjekt gebunden ist.
GL_INVALID_OPERATION wird generiert, wenn glAttachObjectARB zwischen einem glBegin und dem passenden glEnd aufgerufen wird.
Zugehörige Wertrückgaben
glGetAttachedObjectsARB mit dem Handle eines gültigen Programmobjektes als Argument.
Siehe auch
glCompileShaderARB, glDetachObjectARB, glLinkProgramARB, glShaderSourceARB
Hintergrundwissen : Shader
Englische Originalversion (Copyright 3DLabs Inc.)