next up previous contents
Next: GLSL Fragment Shader Up: GLSL Previous: GLSL   Contents

GLSL Vertex Shader

GLSL Shader werden zwar nicht in Pseudo-Assembler sondern in einer Hochsprache verfasst, aber auch sie werden aus Textdateien geladen.

Das Laden von GLSL-Shadern gestaltet sich etwas komplizierter als das Laden von ARB Vertex Programs:


\begin{lstlisting}[name=shader.cpp - loadVertexShader]
// check for ARB_vertex_s...
...haderARB(AVSHandle);
\par
// free text memory
delete[] pgmstr;
\end{lstlisting}

Nachdem wir überprüft haben ob der geladene OpenGL-Treiber die ARB_vertex_shader Extension unterstützt wird ein Program-Handle vom Typ GLhandleARB erzeugt, und zwar mittels glCreateShaderObjectARB, welchem der Typ des zu erzeugenden Handles mitgegeben wird, in diesem Fall ein Vertex Shader Handle. Das eigentliche Laden der Textdatei gestaltet sich identisch zum Laden von ARB Shadern. Sobald der Shader-Source im Speicher ist wird dieser mittels glShaderSourceARB an das Handle gebunden und mittels glCompileShaderARB kompiliert. Hiernach wird brav der Speicher für den Source wieder freigegeben. Zur Fehlerbehandlung später mehr.



2005-10-25 Michael Bayer - nightspawn.com