glAttachShader: Unterschied zwischen den Versionen
Flo (Diskussion | Beiträge) (Zusammenfassung dieses Artikels und glAttachObject) |
K (→Siehe auch) |
||
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= glAttachShader (glAttachObjectARB) = | = glAttachShader (glAttachObjectARB) = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''glAttachShader''' - Hängt ein Shaderobjekt an ein Programmobjekt. | '''glAttachShader''' - Hängt ein Shaderobjekt an ein Programmobjekt. | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
procedure '''glAttachShader'''(''program'' : GLuint; ''shader'' : GLuint); | procedure '''glAttachShader'''(''program'' : GLuint; ''shader'' : GLuint); | ||
Zeile 19: | Zeile 21: | ||
| Bestimmt das zu bindende Shaderobjekt. | | Bestimmt das zu bindende Shaderobjekt. | ||
|} | |} | ||
− | |||
== Beschreibung == | == Beschreibung == | ||
− | Shaderobjekte lassen sich an ein Programmobjekte binden um so einen Shader zu erhalten der aus mehren Modulen besteht. '''glAttachShader''' bindet das Shaderobjekt - angegeben durch ''shader'' - an das Programmobjekt, das mit ''program'' angegeben wurde. Das | + | Shaderobjekte lassen sich an ein Programmobjekte binden, um so einen Shader zu erhalten, der aus mehren Modulen besteht. '''glAttachShader''' bindet das Shaderobjekt - angegeben durch ''shader'' - an das Programmobjekt, das mit ''program'' angegeben wurde. Das bedeutet, dass dieser Shader gelinkt wird, sobald das Programm gelinkt wird. |
Zeile 32: | Zeile 33: | ||
== Hinweise == | == Hinweise == | ||
'''glAttachShader''' ist erst ab OpenGL Version 2.0 verfügbar. | '''glAttachShader''' ist erst ab OpenGL Version 2.0 verfügbar. | ||
− | + | Davor gab es eine ARB-Version der Funktion mit dem Namen '''glAttachObjectARB'''. | |
== Fehlermeldungen == | == Fehlermeldungen == | ||
− | '''GL_INVALID_VALUE''' wird generiert wenn ''shader'' oder ''program'' keine von OpenGL gernerierten Werte enthält. | + | '''GL_INVALID_VALUE''' wird generiert, wenn ''shader'' oder ''program'' keine von OpenGL gernerierten Werte enthält. |
− | '''GL_INVALID_OPERATION''' wird generiert wenn ''program'' nicht vom Typ GL_PROGRAM_OBJECT ist. | + | |
− | '''GL_INVALID_OPERATION''' wird generiert wenn ''shader'' nicht vom Typ GL_SHADER_OBJECT ist. | + | '''GL_INVALID_OPERATION''' wird generiert, wenn ''program'' nicht vom Typ GL_PROGRAM_OBJECT ist. |
− | '''GL_INVALID_OPERATION''' wird generiert wenn ''shader'' bereits an ''program'' gebunden ist. | + | |
− | '''GL_INVALID_OPERATION''' wird generiert wenn '''glAttachShader''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. | + | '''GL_INVALID_OPERATION''' wird generiert, wenn ''shader'' nicht vom Typ GL_SHADER_OBJECT ist. |
+ | |||
+ | '''GL_INVALID_OPERATION''' wird generiert, wenn ''shader'' bereits an ''program'' gebunden ist. | ||
+ | |||
+ | '''GL_INVALID_OPERATION''' wird generiert, wenn '''glAttachShader''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. | ||
+ | |||
Zeile 58: | Zeile 64: | ||
[[Kategorie:GL|AttachShader]] | [[Kategorie:GL|AttachShader]] | ||
+ | [[Kategorie:GL2.0|AttachShader]] | ||
[[Kategorie:SHADER_OBJECTS|AttachShader]] | [[Kategorie:SHADER_OBJECTS|AttachShader]] | ||
+ | [[Kategorie:GL3|AttachShader]] |
Aktuelle Version vom 21. Februar 2014, 17:44 Uhr
Inhaltsverzeichnis
glAttachShader (glAttachObjectARB)
Name
glAttachShader - Hängt ein Shaderobjekt an ein Programmobjekt.
Delphi-Spezifikation
procedure glAttachShader(program : GLuint; shader : GLuint); procedure glAttachObjectARB(programObj, shaderObj : GLhandleARB);
Parameter
program | Bestimmt das Programmobjekt an welches das Shaderobjekt gebunden werden soll. |
---|---|
shader | Bestimmt das zu bindende Shaderobjekt. |
Beschreibung
Shaderobjekte lassen sich an ein Programmobjekte binden, um so einen Shader zu erhalten, der aus mehren Modulen besteht. glAttachShader bindet das Shaderobjekt - angegeben durch shader - an das Programmobjekt, das mit program angegeben wurde. Das bedeutet, dass dieser Shader gelinkt wird, sobald das Programm gelinkt wird.
Alle Operationen, die auf ein Shaderobjekt angewendet werden können, sind zulässig, egal, ob das Shaderobjekt an ein Programmobjekt gebunden wurde. Es ist zulässig, ein Shaderobjekt an ein Programmobjekt zu binden, bevor der Sourcecode ins Shaderobjekt geladen wurde oder bevor das Shaderobjekt kompiliert wurde. Es ist auch zulässig, mehrere Shaderobjekte des selben Typs anzubinden, die einen Teil des ganzen Shaders beinhalten könnten. Es ist weiter möglich, ein Shaderobjekt an mehr als ein Programmobjekt zu binden. Wenn ein Shaderobjekt gelöscht wird, während es an ein Programmobjekt gebunden ist, wird es als zu löschend markiert und das Löschen wird nicht durchgeführt, bis glDetachShader aufgerufen wird, um das Shaderobjekt von allen Programmobjekten zu lösen, an die es angebunden ist.
Hinweise
glAttachShader ist erst ab OpenGL Version 2.0 verfügbar. Davor gab es eine ARB-Version der Funktion mit dem Namen glAttachObjectARB.
Fehlermeldungen
GL_INVALID_VALUE wird generiert, wenn shader oder program keine von OpenGL gernerierten Werte enthält.
GL_INVALID_OPERATION wird generiert, wenn program nicht vom Typ GL_PROGRAM_OBJECT ist.
GL_INVALID_OPERATION wird generiert, wenn shader nicht vom Typ GL_SHADER_OBJECT ist.
GL_INVALID_OPERATION wird generiert, wenn shader bereits an program gebunden ist.
GL_INVALID_OPERATION wird generiert, wenn glAttachShader innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGetAttachedShaders mit dem Handle auf ein gültiges Programmobjekt.
Siehe auch
glCompileShader, glDetachShader, glLinkProgram, glShaderSource
Hintergrundwissen : Shader