\hypertarget{a01020}{\section{G\+L\+S\+L\+:\+:Program Class Reference}
\label{a01020}\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
}


\hyperlink{a03358}{G\+L\+S\+L} program class.  




{\ttfamily \#include $<$A\+C\+G/\+Shader\+Utils/\+G\+L\+S\+L\+Shader.\+hh$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01020_add2982c0bc2291305b14862d9597e9ea}{\hyperlink{a01020_add2982c0bc2291305b14862d9597e9ea}{Program} ()}\label{a01020_add2982c0bc2291305b14862d9597e9ea}

\begin{DoxyCompactList}\small\item\em Creates a new \hyperlink{a03358}{G\+L\+S\+L} program object. \end{DoxyCompactList}\item 
\hypertarget{a01020_aa16d94133993c7c17c9961a1e6b79617}{virtual \hyperlink{a01020_aa16d94133993c7c17c9961a1e6b79617}{$\sim$\+Program} ()}\label{a01020_aa16d94133993c7c17c9961a1e6b79617}

\begin{DoxyCompactList}\small\item\em Deletes the \hyperlink{a03358}{G\+L\+S\+L} program object and frees the linked shader objects. \end{DoxyCompactList}\item 
\hypertarget{a01020_a472d76de1028af96f25e28ae8c0a5ebe}{G\+Luint \hyperlink{a01020_a472d76de1028af96f25e28ae8c0a5ebe}{get\+Program\+Id} ()}\label{a01020_a472d76de1028af96f25e28ae8c0a5ebe}

\begin{DoxyCompactList}\small\item\em Returns opengl id. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Compilation/\+Linking}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01020_af56174ae66b64fba6a0a55356b4b39bf}{void \hyperlink{a01020_af56174ae66b64fba6a0a55356b4b39bf}{attach} (\hyperlink{a01155}{Ptr\+Const\+Shader} \+\_\+shader)}\label{a01020_af56174ae66b64fba6a0a55356b4b39bf}

\begin{DoxyCompactList}\small\item\em Attaches a shader object to the program object. \end{DoxyCompactList}\item 
\hypertarget{a01020_a96f0ea5b7b33ba06d0605490b66d3f9c}{void \hyperlink{a01020_a96f0ea5b7b33ba06d0605490b66d3f9c}{detach} (\hyperlink{a01155}{Ptr\+Const\+Shader} \+\_\+shader)}\label{a01020_a96f0ea5b7b33ba06d0605490b66d3f9c}

\begin{DoxyCompactList}\small\item\em Detaches a shader object from the program object. \end{DoxyCompactList}\item 
\hypertarget{a01020_ac36df4d93b0280fa8815f21895c24cf8}{void \hyperlink{a01020_ac36df4d93b0280fa8815f21895c24cf8}{link} ()}\label{a01020_ac36df4d93b0280fa8815f21895c24cf8}

\begin{DoxyCompactList}\small\item\em Links the shader objects to the program. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Localizations}\par
\begin{DoxyCompactItemize}
\item 
int \hyperlink{a01020_a8008a3b4fafef9f6d9055268742c03bf}{get\+Attribute\+Location} (const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get location of the specified attribute. \end{DoxyCompactList}\item 
int \hyperlink{a01020_aa42d5884595f0fe3641c5260f67dfe46}{get\+Uniform\+Location} (const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get location of the specified uniform. \end{DoxyCompactList}\item 
int \hyperlink{a01020_a47b57dd0cf11f31ce6d5575557c8e5e6}{get\+Frag\+Data\+Location} (const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get location of the fragment data output. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a38dd95d0347e07d5274e732f91a4d192}{bind\+Attribute\+Location} (unsigned int \+\_\+index, const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Bind attribute to name. \end{DoxyCompactList}\item 
void \hyperlink{a01020_af3ee55f4c0913c2ef4eadcb3befdd30a}{bind\+Frag\+Data\+Location} (unsigned int \+\_\+index, const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Bind fragment output data to name. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Uniform setters}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a01020_ae78ccf1ed98160af603fdaa72cabbe99}{set\+Uniform} (const char $\ast$\+\_\+name, G\+Lint \+\_\+value)
\begin{DoxyCompactList}\small\item\em Set int uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_acf7f017895b797c7e1f2de35b9beb6b4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec2i uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a7ce6def925076c23bdea9898e64d384b}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_aa30a8644d70fd14b6430f3819953a431}{A\+C\+G\+::\+Vec3i} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec3i uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_ab0d72b6b25577fa66f5a95de4458d6a4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a8cc325594ae505979f752598d1d81c40}{A\+C\+G\+::\+Vec4i} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec4i uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_aa2b3c5750f2dbb2184f161f61cdadf56}{set\+Uniform} (const char $\ast$\+\_\+name, G\+Luint \+\_\+value)
\begin{DoxyCompactList}\small\item\em Set uint uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a5ef01dccf8da8757b3fb3c99c876314e}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_ae4755d4e07cff81eb7a26cd0540ce314}{A\+C\+G\+::\+Vec2ui} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec2ui uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_ad353347c3e70019b7b445d2fca36646c}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a916145c1569f644e2559d780955f3050}{A\+C\+G\+::\+Vec3ui} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec3ui uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a9db2b01fb5dc72473edd68ba48c85b74}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_af5c09af5e4de06e8474b9995b3d39d30}{A\+C\+G\+::\+Vec4ui} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec4ui uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a68b86adec120a741f0ba2e659507ed7e}{set\+Uniform} (const char $\ast$\+\_\+name, G\+Lfloat \+\_\+value)
\begin{DoxyCompactList}\small\item\em Set float uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_ae60291cf997d6e486f0b9b454bae7bba}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a8b858737aebd55e312149cf208a0b3f3}{A\+C\+G\+::\+Vec2f} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec2f uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a197dec1460af782b664eaccc05c546cd}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec3f uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a3b2e19969e0a38eda3e553506570fca4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec4f uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_aba987c21387d088386f6a60c98e0f7d4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a1e5dae9881df8fa0d42b985a8e7fad28}{A\+C\+G\+::\+G\+L\+Matrixf} \&\+\_\+value, bool \+\_\+transposed=false)
\begin{DoxyCompactList}\small\item\em Set 4x4f\+Matrix uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a77a3ea0fa88505258591309a4608d978}{set\+Uniform\+Mat3} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a1e5dae9881df8fa0d42b985a8e7fad28}{A\+C\+G\+::\+G\+L\+Matrixf} \&\+\_\+value, bool \+\_\+transposed=false)
\begin{DoxyCompactList}\small\item\em Set 3x3f\+Matrix uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_ac8b2fe7500d7abd96ebe6c131fe51b2d}{set\+Uniform} (const char $\ast$\+\_\+name, const G\+Lint $\ast$\+\_\+values, int \+\_\+count)
\begin{DoxyCompactList}\small\item\em Set int array uniform to specified values. \end{DoxyCompactList}\item 
void \hyperlink{a01020_ab260db58bd9098c029c095b2cd13929a}{set\+Uniform} (const char $\ast$\+\_\+name, const G\+Lfloat $\ast$\+\_\+values, int \+\_\+count)
\begin{DoxyCompactList}\small\item\em Set float array uniform to specified values. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a1c4ad780161e948afa87f0d049477e14}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a8b858737aebd55e312149cf208a0b3f3}{A\+C\+G\+::\+Vec2f} $\ast$\+\_\+values, int \+\_\+count)
\begin{DoxyCompactList}\small\item\em Set Vec2f array uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_adac754ab0edb6079fe8575077ccaed76}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f} $\ast$\+\_\+values, int \+\_\+count)
\begin{DoxyCompactList}\small\item\em Set Vec3f array uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_aaf7a3d1d3c89b498caac8663115519a9}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a03336_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} $\ast$\+\_\+values, int \+\_\+count)
\begin{DoxyCompactList}\small\item\em Set Vec4f array uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a79d597e2813f1fba8fe9fd5abafbcfd2}{set\+Uniform} (const char $\ast$\+\_\+name, int \+\_\+index, bool \+\_\+value)
\begin{DoxyCompactList}\small\item\em Set an entry of a bool uniform array. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a014c1be30b43e70d1fcd23c84f60974f}{set\+Uniform} (const char $\ast$\+\_\+name, int \+\_\+index, int \+\_\+value)
\begin{DoxyCompactList}\small\item\em Set an entry of a int uniform array. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a73ac547d3df7a86cb9250c0c0913188f}{set\+Uniform} (const char $\ast$\+\_\+name, int \+\_\+index, float \+\_\+value)
\begin{DoxyCompactList}\small\item\em Set an entry of a float uniform array. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Uniform buffer blocks}\par
\begin{DoxyCompactItemize}
\item 
G\+Luint \hyperlink{a01020_a9e49a7ac84a46ec71fce270fad11d88c}{get\+Uniform\+Block\+Index} (const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get location of the specified uniform buffer. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a0e91840ed52656ade63a35aa9566976a}{set\+Uniform\+Block\+Binding} (G\+Luint \+\_\+index, int \+\_\+binding)
\begin{DoxyCompactList}\small\item\em Set binding point of a uniform buffer. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a94dd1317ac2339790511cf73c1ef36f9}{set\+Uniform\+Block\+Binding} (const char $\ast$\+\_\+name, int \+\_\+binding)
\begin{DoxyCompactList}\small\item\em Set binding point of a uniform buffer. \end{DoxyCompactList}\item 
int \hyperlink{a01020_a6e5528139a1f4ec9d93c12851d2c9a05}{get\+Uniform\+Block\+Size} (G\+Luint \+\_\+index)
\begin{DoxyCompactList}\small\item\em Get size in bytes of a uniform buffer. \end{DoxyCompactList}\item 
int \hyperlink{a01020_ae8fdc622bf1aa36e4e9e57596946521a}{get\+Uniform\+Block\+Size} (const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get size in bytes of a uniform buffer. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a5fa81d681c130b6481a08c07a332ae56}{get\+Uniform\+Block\+Offsets} (int \+\_\+num\+Uniforms, const char $\ast$$\ast$\+\_\+names, int $\ast$\+\_\+out\+Offsets)
\begin{DoxyCompactList}\small\item\em Get offsets of uniforms in a uniform buffer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Geometry shader parameters}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a01020_ae133840d156c0cee4a8808ed5c1f3dbf}{set\+Geometry\+Input\+Type} (G\+Lint \+\_\+type)
\begin{DoxyCompactList}\small\item\em Set Type of Geometry. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a2ff1d07acca6da896c21eb8a2985698e}{set\+Geometry\+Output\+Type} (G\+Lint \+\_\+type)
\begin{DoxyCompactList}\small\item\em Set output type of geometry. \end{DoxyCompactList}\item 
void \hyperlink{a01020_a0b803be09429bddc25d4cd04e68fbd35}{set\+Geometry\+Vertex\+Count} (G\+Lint \+\_\+num\+Vertices\+Out)
\begin{DoxyCompactList}\small\item\em Sets the maximum vertex output of the geometry shader. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Enable/disable functions}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01020_ad6b634a00820f63f072e9d380d4dfb5a}{void \hyperlink{a01020_ad6b634a00820f63f072e9d380d4dfb5a}{use} ()}\label{a01020_ad6b634a00820f63f072e9d380d4dfb5a}

\begin{DoxyCompactList}\small\item\em Enables the program object for using. \end{DoxyCompactList}\item 
\hypertarget{a01020_ab98f2b2d8fd07a378b4362da12bed3b9}{void \hyperlink{a01020_ab98f2b2d8fd07a378b4362da12bed3b9}{disable} ()}\label{a01020_ab98f2b2d8fd07a378b4362da12bed3b9}

\begin{DoxyCompactList}\small\item\em Resets to standard rendering pipeline. \end{DoxyCompactList}\item 
\hypertarget{a01020_abcb9cf4905f1420a85639c8e84d078d2}{bool \hyperlink{a01020_abcb9cf4905f1420a85639c8e84d078d2}{is\+Active} ()}\label{a01020_abcb9cf4905f1420a85639c8e84d078d2}

\begin{DoxyCompactList}\small\item\em Returns if the program object is currently active. \end{DoxyCompactList}\item 
\hypertarget{a01020_a361b1665f8cdc6520ac785c04ab4775c}{bool \hyperlink{a01020_a361b1665f8cdc6520ac785c04ab4775c}{is\+Linked} ()}\label{a01020_a361b1665f8cdc6520ac785c04ab4775c}

\begin{DoxyCompactList}\small\item\em Returns if the program object has been succesfully linked. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01020_aceedd4c051ff0f9b13e9746ee2cc4907}{std\+::list$<$ \hyperlink{a01155}{Ptr\+Const\+Shader} $>$ {\bfseries m\+\_\+linked\+Shaders}}\label{a01020_aceedd4c051ff0f9b13e9746ee2cc4907}

\item 
\hypertarget{a01020_a34a5007ce52694f713d9067d595c8a50}{G\+Lint {\bfseries m\+\_\+program\+Id}}\label{a01020_a34a5007ce52694f713d9067d595c8a50}

\item 
\hypertarget{a01020_a7af065f77584fea75d824c337938170c}{G\+Lint {\bfseries m\+\_\+link\+Status}}\label{a01020_a7af065f77584fea75d824c337938170c}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{a03358}{G\+L\+S\+L} program class. 

A \hyperlink{a03358}{G\+L\+S\+L} program links together the vertex and fragment shaders. 

Definition at line 217 of file G\+L\+S\+L\+Shader.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01020_a38dd95d0347e07d5274e732f91a4d192}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!bind\+Attribute\+Location@{bind\+Attribute\+Location}}
\index{bind\+Attribute\+Location@{bind\+Attribute\+Location}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{bind\+Attribute\+Location}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::bind\+Attribute\+Location (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+index, }
\item[{const char $\ast$}]{\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a01020_a38dd95d0347e07d5274e732f91a4d192}


Bind attribute to name. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & Index of the attribute to be bound \\
\hline
{\em \+\_\+name} & Name of the attribute \\
\hline
\end{DoxyParams}


Definition at line 688 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_af3ee55f4c0913c2ef4eadcb3befdd30a}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!bind\+Frag\+Data\+Location@{bind\+Frag\+Data\+Location}}
\index{bind\+Frag\+Data\+Location@{bind\+Frag\+Data\+Location}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{bind\+Frag\+Data\+Location}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::bind\+Frag\+Data\+Location (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+index, }
\item[{const char $\ast$}]{\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a01020_af3ee55f4c0913c2ef4eadcb3befdd30a}


Bind fragment output data to name. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & Index of the fragment output to be bound \\
\hline
{\em \+\_\+name} & Name of the fragment output data \\
\hline
\end{DoxyParams}


Definition at line 698 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a8008a3b4fafef9f6d9055268742c03bf}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!get\+Attribute\+Location@{get\+Attribute\+Location}}
\index{get\+Attribute\+Location@{get\+Attribute\+Location}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{get\+Attribute\+Location}]{\setlength{\rightskip}{0pt plus 5cm}int G\+L\+S\+L\+::\+Program\+::get\+Attribute\+Location (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a01020_a8008a3b4fafef9f6d9055268742c03bf}


Get location of the specified attribute. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the attribute \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Attribute location 
\end{DoxyReturn}


Definition at line 708 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a47b57dd0cf11f31ce6d5575557c8e5e6}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!get\+Frag\+Data\+Location@{get\+Frag\+Data\+Location}}
\index{get\+Frag\+Data\+Location@{get\+Frag\+Data\+Location}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{get\+Frag\+Data\+Location}]{\setlength{\rightskip}{0pt plus 5cm}int G\+L\+S\+L\+::\+Program\+::get\+Frag\+Data\+Location (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a01020_a47b57dd0cf11f31ce6d5575557c8e5e6}


Get location of the fragment data output. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the fragment data output \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Fragment data location 
\end{DoxyReturn}


Definition at line 730 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a9e49a7ac84a46ec71fce270fad11d88c}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!get\+Uniform\+Block\+Index@{get\+Uniform\+Block\+Index}}
\index{get\+Uniform\+Block\+Index@{get\+Uniform\+Block\+Index}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{get\+Uniform\+Block\+Index}]{\setlength{\rightskip}{0pt plus 5cm}G\+Luint G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Block\+Index (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a01020_a9e49a7ac84a46ec71fce270fad11d88c}


Get location of the specified uniform buffer. 

\hyperlink{a01020}{Program} does not have to be active. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & name of the uniform block \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
block index 
\end{DoxyReturn}


Definition at line 773 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a5fa81d681c130b6481a08c07a332ae56}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!get\+Uniform\+Block\+Offsets@{get\+Uniform\+Block\+Offsets}}
\index{get\+Uniform\+Block\+Offsets@{get\+Uniform\+Block\+Offsets}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{get\+Uniform\+Block\+Offsets}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Block\+Offsets (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+num\+Uniforms, }
\item[{const char $\ast$$\ast$}]{\+\_\+names, }
\item[{int $\ast$}]{\+\_\+out\+Offsets}
\end{DoxyParamCaption}
)}}\label{a01020_a5fa81d681c130b6481a08c07a332ae56}


Get offsets of uniforms in a uniform buffer. 

\hyperlink{a01020}{Program} does not have to be active. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+num\+Uniforms} & number of uniforms to query offsets for \\
\hline
{\em \+\_\+names} & array of uniform names in the buffer \\
\hline
{\em \+\_\+out\+Offsets} & offset for each uniform \\
\hline
\end{DoxyParams}


Definition at line 840 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a6e5528139a1f4ec9d93c12851d2c9a05}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!get\+Uniform\+Block\+Size@{get\+Uniform\+Block\+Size}}
\index{get\+Uniform\+Block\+Size@{get\+Uniform\+Block\+Size}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{get\+Uniform\+Block\+Size}]{\setlength{\rightskip}{0pt plus 5cm}int G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Block\+Size (
\begin{DoxyParamCaption}
\item[{G\+Luint}]{\+\_\+index}
\end{DoxyParamCaption}
)}}\label{a01020_a6e5528139a1f4ec9d93c12851d2c9a05}


Get size in bytes of a uniform buffer. 

\hyperlink{a01020}{Program} does not have to be active. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & block index as returned via get\+Uniform\+Block\+Index \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
block index 
\end{DoxyReturn}


Definition at line 813 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ae8fdc622bf1aa36e4e9e57596946521a}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!get\+Uniform\+Block\+Size@{get\+Uniform\+Block\+Size}}
\index{get\+Uniform\+Block\+Size@{get\+Uniform\+Block\+Size}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{get\+Uniform\+Block\+Size}]{\setlength{\rightskip}{0pt plus 5cm}int G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Block\+Size (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a01020_ae8fdc622bf1aa36e4e9e57596946521a}


Get size in bytes of a uniform buffer. 

\hyperlink{a01020}{Program} does not have to be active. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & name of the uniform block \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
block index 
\end{DoxyReturn}


Definition at line 828 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_aa42d5884595f0fe3641c5260f67dfe46}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!get\+Uniform\+Location@{get\+Uniform\+Location}}
\index{get\+Uniform\+Location@{get\+Uniform\+Location}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{get\+Uniform\+Location}]{\setlength{\rightskip}{0pt plus 5cm}int G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Location (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a01020_aa42d5884595f0fe3641c5260f67dfe46}


Get location of the specified uniform. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Attribute uniform 
\end{DoxyReturn}


Definition at line 719 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ae133840d156c0cee4a8808ed5c1f3dbf}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Geometry\+Input\+Type@{set\+Geometry\+Input\+Type}}
\index{set\+Geometry\+Input\+Type@{set\+Geometry\+Input\+Type}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Geometry\+Input\+Type}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Geometry\+Input\+Type (
\begin{DoxyParamCaption}
\item[{G\+Lint}]{\+\_\+type}
\end{DoxyParamCaption}
)}}\label{a01020_ae133840d156c0cee4a8808ed5c1f3dbf}


Set Type of Geometry. 

valid input types\+: G\+L\+\_\+\+P\+O\+I\+N\+T\+S, G\+L\+\_\+\+L\+I\+N\+E\+S, G\+L\+\_\+\+L\+I\+N\+E\+S\+\_\+\+A\+D\+J\+A\+C\+E\+N\+C\+Y\+\_\+\+E\+X\+T, G\+L\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+S, G\+L\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+S\+\_\+\+A\+D\+J\+A\+C\+E\+N\+C\+Y\+\_\+\+E\+X\+T


\begin{DoxyParams}{Parameters}
{\em \+\_\+type} & Geometry type \\
\hline
\end{DoxyParams}


Definition at line 742 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a2ff1d07acca6da896c21eb8a2985698e}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Geometry\+Output\+Type@{set\+Geometry\+Output\+Type}}
\index{set\+Geometry\+Output\+Type@{set\+Geometry\+Output\+Type}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Geometry\+Output\+Type}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Geometry\+Output\+Type (
\begin{DoxyParamCaption}
\item[{G\+Lint}]{\+\_\+type}
\end{DoxyParamCaption}
)}}\label{a01020_a2ff1d07acca6da896c21eb8a2985698e}


Set output type of geometry. 

valid output types\+: G\+L\+\_\+\+P\+O\+I\+N\+T\+S, G\+L\+\_\+\+L\+I\+N\+E\+\_\+\+S\+T\+R\+I\+P, G\+L\+\_\+\+T\+R\+I\+A\+N\+G\+L\+E\+\_\+\+S\+T\+R\+I\+P


\begin{DoxyParams}{Parameters}
{\em \+\_\+type} & Output geometry type \\
\hline
\end{DoxyParams}


Definition at line 752 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a0b803be09429bddc25d4cd04e68fbd35}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Geometry\+Vertex\+Count@{set\+Geometry\+Vertex\+Count}}
\index{set\+Geometry\+Vertex\+Count@{set\+Geometry\+Vertex\+Count}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Geometry\+Vertex\+Count}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Geometry\+Vertex\+Count (
\begin{DoxyParamCaption}
\item[{G\+Lint}]{\+\_\+num\+Vertices\+Out}
\end{DoxyParamCaption}
)}}\label{a01020_a0b803be09429bddc25d4cd04e68fbd35}


Sets the maximum vertex output of the geometry shader. 

Query G\+L\+\_\+\+M\+A\+X\+\_\+\+G\+E\+O\+M\+E\+T\+R\+Y\+\_\+\+O\+U\+T\+P\+U\+T\+\_\+\+V\+E\+R\+T\+I\+C\+E\+S\+\_\+\+E\+X\+T to get the gpu limitation


\begin{DoxyParams}{Parameters}
{\em \+\_\+num\+Vertices\+Out} & Maximal number of vertices \\
\hline
\end{DoxyParams}


Definition at line 762 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ae78ccf1ed98160af603fdaa72cabbe99}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{G\+Lint}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_ae78ccf1ed98160af603fdaa72cabbe99}


Set int uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 391 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_acf7f017895b797c7e1f2de35b9beb6b4}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec2i} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_acf7f017895b797c7e1f2de35b9beb6b4}


Set Vec2i uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 404 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a7ce6def925076c23bdea9898e64d384b}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec3i} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a7ce6def925076c23bdea9898e64d384b}


Set Vec3i uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 417 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ab0d72b6b25577fa66f5a95de4458d6a4}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec4i} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_ab0d72b6b25577fa66f5a95de4458d6a4}


Set Vec4i uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 430 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_aa2b3c5750f2dbb2184f161f61cdadf56}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{G\+Luint}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_aa2b3c5750f2dbb2184f161f61cdadf56}


Set uint uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 443 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a5ef01dccf8da8757b3fb3c99c876314e}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec2ui} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a5ef01dccf8da8757b3fb3c99c876314e}


Set Vec2ui uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 456 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ad353347c3e70019b7b445d2fca36646c}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec3ui} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_ad353347c3e70019b7b445d2fca36646c}


Set Vec3ui uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 469 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a9db2b01fb5dc72473edd68ba48c85b74}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec4ui} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a9db2b01fb5dc72473edd68ba48c85b74}


Set Vec4ui uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 482 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a68b86adec120a741f0ba2e659507ed7e}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{G\+Lfloat}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a68b86adec120a741f0ba2e659507ed7e}


Set float uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 495 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ae60291cf997d6e486f0b9b454bae7bba}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec2f} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_ae60291cf997d6e486f0b9b454bae7bba}


Set Vec2f uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 508 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a197dec1460af782b664eaccc05c546cd}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec3f} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a197dec1460af782b664eaccc05c546cd}


Set Vec3f uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 521 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a3b2e19969e0a38eda3e553506570fca4}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec4f} \&}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a3b2e19969e0a38eda3e553506570fca4}


Set Vec4f uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & New value of the uniform \\
\hline
\end{DoxyParams}


Definition at line 534 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_aba987c21387d088386f6a60c98e0f7d4}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+G\+L\+Matrixf} \&}]{\+\_\+value, }
\item[{bool}]{\+\_\+transposed = {\ttfamily false}}
\end{DoxyParamCaption}
)}}\label{a01020_aba987c21387d088386f6a60c98e0f7d4}


Set 4x4f\+Matrix uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & Matrix to be set \\
\hline
{\em \+\_\+transposed} & Is the matrix transposed? \\
\hline
\end{DoxyParams}


Definition at line 655 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ac8b2fe7500d7abd96ebe6c131fe51b2d}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const G\+Lint $\ast$}]{\+\_\+values, }
\item[{int}]{\+\_\+count}
\end{DoxyParamCaption}
)}}\label{a01020_ac8b2fe7500d7abd96ebe6c131fe51b2d}


Set int array uniform to specified values. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform to be set \\
\hline
{\em \+\_\+values} & Pointer to an array with the new values \\
\hline
{\em \+\_\+count} & Number of values in the given array \\
\hline
\end{DoxyParams}


Definition at line 548 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_ab260db58bd9098c029c095b2cd13929a}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const G\+Lfloat $\ast$}]{\+\_\+values, }
\item[{int}]{\+\_\+count}
\end{DoxyParamCaption}
)}}\label{a01020_ab260db58bd9098c029c095b2cd13929a}


Set float array uniform to specified values. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform to be set \\
\hline
{\em \+\_\+values} & Pointer to an array with the new values \\
\hline
{\em \+\_\+count} & Number of values in the given array \\
\hline
\end{DoxyParams}


Definition at line 562 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a1c4ad780161e948afa87f0d049477e14}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec2f} $\ast$}]{\+\_\+values, }
\item[{int}]{\+\_\+count}
\end{DoxyParamCaption}
)}}\label{a01020_a1c4ad780161e948afa87f0d049477e14}


Set Vec2f array uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+values} & Pointer to an array with the new values \\
\hline
{\em \+\_\+count} & Number of values in the given array \\
\hline
\end{DoxyParams}


Definition at line 576 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_adac754ab0edb6079fe8575077ccaed76}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec3f} $\ast$}]{\+\_\+values, }
\item[{int}]{\+\_\+count}
\end{DoxyParamCaption}
)}}\label{a01020_adac754ab0edb6079fe8575077ccaed76}


Set Vec3f array uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+values} & Pointer to an array with the new values \\
\hline
{\em \+\_\+count} & Number of values in the given array \\
\hline
\end{DoxyParams}


Definition at line 590 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_aaf7a3d1d3c89b498caac8663115519a9}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+Vec4f} $\ast$}]{\+\_\+values, }
\item[{int}]{\+\_\+count}
\end{DoxyParamCaption}
)}}\label{a01020_aaf7a3d1d3c89b498caac8663115519a9}


Set Vec4f array uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+values} & Pointer to an array with the new values \\
\hline
{\em \+\_\+count} & Number of values in the given array \\
\hline
\end{DoxyParams}


Definition at line 604 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a79d597e2813f1fba8fe9fd5abafbcfd2}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{int}]{\+\_\+index, }
\item[{bool}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a79d597e2813f1fba8fe9fd5abafbcfd2}


Set an entry of a bool uniform array. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform to be set \\
\hline
{\em \+\_\+index} & Entry in the array \\
\hline
{\em \+\_\+value} & New value of the entry \\
\hline
\end{DoxyParams}


Definition at line 618 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a014c1be30b43e70d1fcd23c84f60974f}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{int}]{\+\_\+index, }
\item[{int}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a014c1be30b43e70d1fcd23c84f60974f}


Set an entry of a int uniform array. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform to be set \\
\hline
{\em \+\_\+index} & Entry in the array \\
\hline
{\em \+\_\+value} & New value of the entry \\
\hline
\end{DoxyParams}


Definition at line 630 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a73ac547d3df7a86cb9250c0c0913188f}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform@{set\+Uniform}}
\index{set\+Uniform@{set\+Uniform}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{int}]{\+\_\+index, }
\item[{float}]{\+\_\+value}
\end{DoxyParamCaption}
)}}\label{a01020_a73ac547d3df7a86cb9250c0c0913188f}


Set an entry of a float uniform array. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform to be set \\
\hline
{\em \+\_\+index} & Entry in the array \\
\hline
{\em \+\_\+value} & New value of the entry \\
\hline
\end{DoxyParams}


Definition at line 642 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a0e91840ed52656ade63a35aa9566976a}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform\+Block\+Binding@{set\+Uniform\+Block\+Binding}}
\index{set\+Uniform\+Block\+Binding@{set\+Uniform\+Block\+Binding}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform\+Block\+Binding}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform\+Block\+Binding (
\begin{DoxyParamCaption}
\item[{G\+Luint}]{\+\_\+index, }
\item[{int}]{\+\_\+binding}
\end{DoxyParamCaption}
)}}\label{a01020_a0e91840ed52656ade63a35aa9566976a}


Set binding point of a uniform buffer. 

\hyperlink{a01020}{Program} does not have to be active. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+index} & block index as returned via get\+Uniform\+Block\+Index \\
\hline
{\em \+\_\+binding} & binding point where the buffer is bound to \\
\hline
\end{DoxyParams}


Definition at line 789 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a94dd1317ac2339790511cf73c1ef36f9}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform\+Block\+Binding@{set\+Uniform\+Block\+Binding}}
\index{set\+Uniform\+Block\+Binding@{set\+Uniform\+Block\+Binding}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform\+Block\+Binding}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform\+Block\+Binding (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{int}]{\+\_\+binding}
\end{DoxyParamCaption}
)}}\label{a01020_a94dd1317ac2339790511cf73c1ef36f9}


Set binding point of a uniform buffer. 

\hyperlink{a01020}{Program} does not have to be active. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & name of the uniform block \\
\hline
{\em \+\_\+binding} & binding point where the buffer is bound to \\
\hline
\end{DoxyParams}


Definition at line 802 of file G\+L\+S\+L\+Shader.\+cc.

\hypertarget{a01020_a77a3ea0fa88505258591309a4608d978}{\index{G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}!set\+Uniform\+Mat3@{set\+Uniform\+Mat3}}
\index{set\+Uniform\+Mat3@{set\+Uniform\+Mat3}!G\+L\+S\+L\+::\+Program@{G\+L\+S\+L\+::\+Program}}
\subsubsection[{set\+Uniform\+Mat3}]{\setlength{\rightskip}{0pt plus 5cm}void G\+L\+S\+L\+::\+Program\+::set\+Uniform\+Mat3 (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{\+\_\+name, }
\item[{const {\bf A\+C\+G\+::\+G\+L\+Matrixf} \&}]{\+\_\+value, }
\item[{bool}]{\+\_\+transposed = {\ttfamily false}}
\end{DoxyParamCaption}
)}}\label{a01020_a77a3ea0fa88505258591309a4608d978}


Set 3x3f\+Matrix uniform to specified value. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+name} & Name of the uniform \\
\hline
{\em \+\_\+value} & Matrix to be set \\
\hline
{\em \+\_\+transposed} & Is the matrix transposed? \\
\hline
\end{DoxyParams}


Definition at line 669 of file G\+L\+S\+L\+Shader.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
A\+C\+G/\+Shader\+Utils/G\+L\+S\+L\+Shader.\+hh\item 
A\+C\+G/\+Shader\+Utils/G\+L\+S\+L\+Shader.\+cc\end{DoxyCompactItemize}
