glShaderSource: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
 
K (Delphi-Spezifikation: Zu lange Zeile für 1024x768 umgebrochen)
 
(7 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= glShaderSourceARB =
+
= glShaderSource (glShaderSourceARB) =
 +
 
 +
 
  
<br>
 
 
== Name ==
 
== Name ==
----
+
'''glShaderSource''' - Ersetzt den Quellcode eines Shaderobjektes.
'''glShaderSourceARB''' - Ersetzt den Quellcode eines Shaderobjektes.
+
 
 +
 
  
<br>
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
----
+
procedure '''glShaderSource'''(''shaderObj'' : GLHandle; ''count'' : glsizei;
procedure '''glShaderSourceARB'''(''shaderObj'' : GLHandleARB; ''count'' : glsizei; ''_string'' : PPGLCharARB; ''lengths'' : pglint);
+
                          ''_string'' : PPGLChar; ''lengths'' : pglint);
 +
 +
procedure '''glShaderSourceARB'''(''shaderObj'' : GLHandleARB; ''count'' : glsizei;  
 +
                            ''_string'' : PPGLCharARB; ''lengths'' : pglint);
  
<br>
 
 
== Parameter ==
 
== Parameter ==
----
 
 
<table border=1 rules=all>
 
<table border=1 rules=all>
 
<tr>
 
<tr>
  <td>''shaderObj''</td>
+
  <td>'''shaderObj'''</td>
 
  <td>Handle des Shaderobjektes dessen Quellcode ersetzt werden soll.</td>
 
  <td>Handle des Shaderobjektes dessen Quellcode ersetzt werden soll.</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
  <td>''count''</td>
+
  <td>'''count'''</td>
 
  <td>Anzahl der Elemente in ''_string'' und ''lengths''.</td>
 
  <td>Anzahl der Elemente in ''_string'' und ''lengths''.</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
  <td>''_string''</td>
+
  <td>'''_string'''</td>
 
  <td>Zeiger auf den Quelltext der in das Shaderobjekt geladen werden soll.</td>
 
  <td>Zeiger auf den Quelltext der in das Shaderobjekt geladen werden soll.</td>
 
</tr>
 
</tr>
 
<tr>
 
<tr>
  <td>''lengths''</td>
+
  <td>'''lengths'''</td>
 
  <td>Länge des Shaderquellcodes (in Zeichen).</td>
 
  <td>Länge des Shaderquellcodes (in Zeichen).</td>
 
</tr>
 
</tr>
Zeile 34: Zeile 36:
  
  
<br>
+
 
 +
 
 
== Beschreibung ==  
 
== Beschreibung ==  
----
+
'''glShaderSource''' ersetzt den kompletten Quellcode eines Shaders mit dem der per Parameter angegeben wurden. Via ''count'' wird angegeben wie viele Elemente ''_string'' beinhaltet. Wenn ''lengths'' gleich Null ist, dann wird angenommen das jeder String im Quellcode null-terminiert ist, ansonsten gibt ''lengths'' an wie lange jedes Quellcodeelement (in Zeichen) ist. Jedes Element in ''lengths'' beinhaltet dann die Länge des entsprechenden Quellcodestrings, oder einen Wert < 0 um anzuzeigen dass der entsprechende String null-terminiert ist. Der Quellcode wird zu diesem Zeitpunkt jedoch nicht geprüft, sondern einfach im passenden Shaderobjekt abgelegt.
'''glShaderSourceARB''' ersetzt den kompletten Quellcode eines Shaders mit dem der per Parameter angegeben wurden. Via ''count'' wird angegeben wie viele Elemente ''_string'' beinhaltet. Wenn ''lengths'' gleich Null ist, dann wird angenommen das jeder String im Quellcode null-terminiert ist, ansonsten gibt ''lengths'' an wie lange jedes Quellcodeelement (in Zeichen) ist. Jedes Element in ''lengths'' beinhaltet dann die Länge des entsprechenden Quellcodestrings, oder einen Wert < 0 um anzuzeigen dass der entsprechende String null-terminiert ist. Der Quellcode wird zu diesem Zeitpunkt jedoch nicht geprüft, sondern einfach im passenden Shaderobjekt abgelegt.
+
 
 +
 
  
<br>
 
 
== Hinweise ==
 
== Hinweise ==
----
 
 
OpenGL kopiert den Shaderquellcode bei einem Aufruf von ''glShaderSourceARB'', so dass die Anwendung den vom String belegten Speicherplatz nach dessen Aufruf direkt freigeben kann.
 
OpenGL kopiert den Shaderquellcode bei einem Aufruf von ''glShaderSourceARB'', so dass die Anwendung den vom String belegten Speicherplatz nach dessen Aufruf direkt freigeben kann.
  
<br>
+
 
 +
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
----
 
 
'''GL_INVALID_VALUE''' wird generiert wenn ''shaderObj'' kein gültiges OpenGL-Objekthandle ist.
 
'''GL_INVALID_VALUE''' wird generiert wenn ''shaderObj'' kein gültiges OpenGL-Objekthandle ist.
  
'''GL_INVALID_OPERATION''' wird generiert wenn ''shaderObj'' nicht vom Typ ''GL_SHADER_OBJECT_ARB'' ist.
+
'''GL_INVALID_OPERATION''' wird generiert wenn ''shaderObj'' nicht vom Typ '''GL_SHADER_OBJECT''' ist.
 +
 
 +
'''GL_INVALID_OPERATION''' wird generiert wenn '''glShaderSource''' zwischen einem [[glBegin]] und dem passenden [[glEnd]] aufgerufen wird.
 +
 
  
'''GL_INVALID_OPERATION''' wird generiert wenn '''glShaderSourceARB''' zwischen einem [[glBegin]] und dem passenden [[glEnd]] aufgerufen wird.
 
  
<br>
 
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
----
+
[[glGetShaderSource]] mit dem Argument ''shaderObj''.
[[glGetShaderSourceARB]] mit dem Argument ''shaderObj''.
+
 
 +
 
  
<br>
 
 
== Siehe auch ==
 
== Siehe auch ==
----
+
[[glCompileShader]], [[glCreateShaderObjectARB]], [[glDeleteObjectARB]]<br>
''glCompileShaderARB'', [[glCreateShaderObjectARB]], [[glDeleteObjectARB]]<br>
 
 
'''Hintergrundwissen : '''[[Shader]]<br>
 
'''Hintergrundwissen : '''[[Shader]]<br>
 
[http://developer.3dlabs.com/openGL2/slapi/ShaderSourceARB.htm Englische Originalversion]  (Copyright 3DLabs Inc.)
 
[http://developer.3dlabs.com/openGL2/slapi/ShaderSourceARB.htm Englische Originalversion]  (Copyright 3DLabs Inc.)
 +
 +
[[Kategorie:GL|ShaderSourceARB]]
 +
[[Kategorie:SHADER_OBJECTS|AttachObject]]

Aktuelle Version vom 23. April 2008, 13:42 Uhr

glShaderSource (glShaderSourceARB)

Name

glShaderSource - Ersetzt den Quellcode eines Shaderobjektes.


Delphi-Spezifikation

procedure glShaderSource(shaderObj : GLHandle; count : glsizei; 
                         _string : PPGLChar; lengths : pglint);

procedure glShaderSourceARB(shaderObj : GLHandleARB; count : glsizei; 
                            _string : PPGLCharARB; lengths : pglint);

Parameter

shaderObj Handle des Shaderobjektes dessen Quellcode ersetzt werden soll.
count Anzahl der Elemente in _string und lengths.
_string Zeiger auf den Quelltext der in das Shaderobjekt geladen werden soll.
lengths Länge des Shaderquellcodes (in Zeichen).



Beschreibung

glShaderSource ersetzt den kompletten Quellcode eines Shaders mit dem der per Parameter angegeben wurden. Via count wird angegeben wie viele Elemente _string beinhaltet. Wenn lengths gleich Null ist, dann wird angenommen das jeder String im Quellcode null-terminiert ist, ansonsten gibt lengths an wie lange jedes Quellcodeelement (in Zeichen) ist. Jedes Element in lengths beinhaltet dann die Länge des entsprechenden Quellcodestrings, oder einen Wert < 0 um anzuzeigen dass der entsprechende String null-terminiert ist. Der Quellcode wird zu diesem Zeitpunkt jedoch nicht geprüft, sondern einfach im passenden Shaderobjekt abgelegt.


Hinweise

OpenGL kopiert den Shaderquellcode bei einem Aufruf von glShaderSourceARB, so dass die Anwendung den vom String belegten Speicherplatz nach dessen Aufruf direkt freigeben kann.


Fehlermeldungen

GL_INVALID_VALUE wird generiert wenn shaderObj kein gültiges OpenGL-Objekthandle ist.

GL_INVALID_OPERATION wird generiert wenn shaderObj nicht vom Typ GL_SHADER_OBJECT ist.

GL_INVALID_OPERATION wird generiert wenn glShaderSource zwischen einem glBegin und dem passenden glEnd aufgerufen wird.


Zugehörige Wertrückgaben

glGetShaderSource mit dem Argument shaderObj.


Siehe auch

glCompileShader, glCreateShaderObjectARB, glDeleteObjectARB
Hintergrundwissen : Shader
Englische Originalversion (Copyright 3DLabs Inc.)