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


\hyperlink{a06188}{G\+L\+SL} program class.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08132_add2982c0bc2291305b14862d9597e9ea}\label{a08132_add2982c0bc2291305b14862d9597e9ea}} 
\hyperlink{a08132_add2982c0bc2291305b14862d9597e9ea}{Program} ()
\begin{DoxyCompactList}\small\item\em Creates a new \hyperlink{a06188}{G\+L\+SL} program object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08132_aa16d94133993c7c17c9961a1e6b79617}\label{a08132_aa16d94133993c7c17c9961a1e6b79617}} 
virtual \hyperlink{a08132_aa16d94133993c7c17c9961a1e6b79617}{$\sim$\+Program} ()
\begin{DoxyCompactList}\small\item\em Deletes the \hyperlink{a06188}{G\+L\+SL} program object and frees the linked shader objects. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08132_a472d76de1028af96f25e28ae8c0a5ebe}\label{a08132_a472d76de1028af96f25e28ae8c0a5ebe}} 
G\+Luint \hyperlink{a08132_a472d76de1028af96f25e28ae8c0a5ebe}{get\+Program\+Id} ()
\begin{DoxyCompactList}\small\item\em Returns opengl id. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Compilation/\+Linking}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08132_af56174ae66b64fba6a0a55356b4b39bf}\label{a08132_af56174ae66b64fba6a0a55356b4b39bf}} 
void \hyperlink{a08132_af56174ae66b64fba6a0a55356b4b39bf}{attach} (\hyperlink{a08108}{Ptr\+Const\+Shader} \+\_\+shader)
\begin{DoxyCompactList}\small\item\em Attaches a shader object to the program object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08132_a96f0ea5b7b33ba06d0605490b66d3f9c}\label{a08132_a96f0ea5b7b33ba06d0605490b66d3f9c}} 
void \hyperlink{a08132_a96f0ea5b7b33ba06d0605490b66d3f9c}{detach} (\hyperlink{a08108}{Ptr\+Const\+Shader} \+\_\+shader)
\begin{DoxyCompactList}\small\item\em Detaches a shader object from the program object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08132_ac36df4d93b0280fa8815f21895c24cf8}\label{a08132_ac36df4d93b0280fa8815f21895c24cf8}} 
void \hyperlink{a08132_ac36df4d93b0280fa8815f21895c24cf8}{link} ()
\begin{DoxyCompactList}\small\item\em Links the shader objects to the program. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Localizations}\par
\begin{DoxyCompactItemize}
\item 
int \hyperlink{a08132_a8008a3b4fafef9f6d9055268742c03bf}{get\+Attribute\+Location} (const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get location of the specified attribute. \end{DoxyCompactList}\item 
int \hyperlink{a08132_aa42d5884595f0fe3641c5260f67dfe46}{get\+Uniform\+Location} (const char $\ast$\+\_\+name)
\begin{DoxyCompactList}\small\item\em Get location of the specified uniform. \end{DoxyCompactList}\item 
int \hyperlink{a08132_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{a08132_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{a08132_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}\textbf{ Uniform setters}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a08132_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{a08132_acf7f017895b797c7e1f2de35b9beb6b4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec2i uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_a7ce6def925076c23bdea9898e64d384b}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_aa30a8644d70fd14b6430f3819953a431}{A\+C\+G\+::\+Vec3i} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec3i uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_ab0d72b6b25577fa66f5a95de4458d6a4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_a8cc325594ae505979f752598d1d81c40}{A\+C\+G\+::\+Vec4i} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec4i uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_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{a08132_a5ef01dccf8da8757b3fb3c99c876314e}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_ae4755d4e07cff81eb7a26cd0540ce314}{A\+C\+G\+::\+Vec2ui} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec2ui uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_ad353347c3e70019b7b445d2fca36646c}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_a916145c1569f644e2559d780955f3050}{A\+C\+G\+::\+Vec3ui} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec3ui uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_a9db2b01fb5dc72473edd68ba48c85b74}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_af5c09af5e4de06e8474b9995b3d39d30}{A\+C\+G\+::\+Vec4ui} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec4ui uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_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{a08132_ae60291cf997d6e486f0b9b454bae7bba}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_a8b858737aebd55e312149cf208a0b3f3}{A\+C\+G\+::\+Vec2f} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec2f uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_a197dec1460af782b664eaccc05c546cd}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec3f uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_a3b2e19969e0a38eda3e553506570fca4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \&\+\_\+value)
\begin{DoxyCompactList}\small\item\em Set Vec4f uniform to specified value. \end{DoxyCompactList}\item 
void \hyperlink{a08132_aba987c21387d088386f6a60c98e0f7d4}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_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{a08132_a77a3ea0fa88505258591309a4608d978}{set\+Uniform\+Mat3} (const char $\ast$\+\_\+name, const \hyperlink{a06176_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{a08132_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{a08132_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{a08132_a1c4ad780161e948afa87f0d049477e14}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_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{a08132_adac754ab0edb6079fe8575077ccaed76}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_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{a08132_aaf7a3d1d3c89b498caac8663115519a9}{set\+Uniform} (const char $\ast$\+\_\+name, const \hyperlink{a06176_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{a08132_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{a08132_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{a08132_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}\textbf{ Uniform buffer blocks}\par
\begin{DoxyCompactItemize}
\item 
G\+Luint \hyperlink{a08132_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{a08132_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{a08132_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{a08132_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{a08132_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{a08132_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}\textbf{ Geometry shader parameters}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a08132_ae133840d156c0cee4a8808ed5c1f3dbf}{set\+Geometry\+Input\+Type} (G\+Lint \+\_\+type)
\begin{DoxyCompactList}\small\item\em Set Type of Geometry. \end{DoxyCompactList}\item 
void \hyperlink{a08132_a2ff1d07acca6da896c21eb8a2985698e}{set\+Geometry\+Output\+Type} (G\+Lint \+\_\+type)
\begin{DoxyCompactList}\small\item\em Set output type of geometry. \end{DoxyCompactList}\item 
void \hyperlink{a08132_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}\textbf{ Enable/disable functions}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08132_ad6b634a00820f63f072e9d380d4dfb5a}\label{a08132_ad6b634a00820f63f072e9d380d4dfb5a}} 
void \hyperlink{a08132_ad6b634a00820f63f072e9d380d4dfb5a}{use} ()
\begin{DoxyCompactList}\small\item\em Enables the program object for using. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08132_ab98f2b2d8fd07a378b4362da12bed3b9}\label{a08132_ab98f2b2d8fd07a378b4362da12bed3b9}} 
void \hyperlink{a08132_ab98f2b2d8fd07a378b4362da12bed3b9}{disable} ()
\begin{DoxyCompactList}\small\item\em Resets to standard rendering pipeline. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08132_abcb9cf4905f1420a85639c8e84d078d2}\label{a08132_abcb9cf4905f1420a85639c8e84d078d2}} 
bool \hyperlink{a08132_abcb9cf4905f1420a85639c8e84d078d2}{is\+Active} ()
\begin{DoxyCompactList}\small\item\em Returns if the program object is currently active. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08132_a361b1665f8cdc6520ac785c04ab4775c}\label{a08132_a361b1665f8cdc6520ac785c04ab4775c}} 
bool \hyperlink{a08132_a361b1665f8cdc6520ac785c04ab4775c}{is\+Linked} ()
\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 
\mbox{\Hypertarget{a08132_aceedd4c051ff0f9b13e9746ee2cc4907}\label{a08132_aceedd4c051ff0f9b13e9746ee2cc4907}} 
std\+::list$<$ \hyperlink{a08108}{Ptr\+Const\+Shader} $>$ {\bfseries m\+\_\+linked\+Shaders}
\item 
\mbox{\Hypertarget{a08132_a34a5007ce52694f713d9067d595c8a50}\label{a08132_a34a5007ce52694f713d9067d595c8a50}} 
G\+Lint {\bfseries m\+\_\+program\+Id}
\item 
\mbox{\Hypertarget{a08132_a7af065f77584fea75d824c337938170c}\label{a08132_a7af065f77584fea75d824c337938170c}} 
G\+Lint {\bfseries m\+\_\+link\+Status}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{a06188}{G\+L\+SL} program class. 

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

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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08132_a38dd95d0347e07d5274e732f91a4d192}\label{a08132_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{\texorpdfstring{bind\+Attribute\+Location()}{bindAttributeLocation()}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::bind\+Attribute\+Location (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+index,  }\item[{const char $\ast$}]{\+\_\+name }\end{DoxyParamCaption})}



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 682 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_af3ee55f4c0913c2ef4eadcb3befdd30a}\label{a08132_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{\texorpdfstring{bind\+Frag\+Data\+Location()}{bindFragDataLocation()}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::bind\+Frag\+Data\+Location (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+index,  }\item[{const char $\ast$}]{\+\_\+name }\end{DoxyParamCaption})}



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 692 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a8008a3b4fafef9f6d9055268742c03bf}\label{a08132_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{\texorpdfstring{get\+Attribute\+Location()}{getAttributeLocation()}}
{\footnotesize\ttfamily int G\+L\+S\+L\+::\+Program\+::get\+Attribute\+Location (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name }\end{DoxyParamCaption})}



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 702 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a47b57dd0cf11f31ce6d5575557c8e5e6}\label{a08132_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{\texorpdfstring{get\+Frag\+Data\+Location()}{getFragDataLocation()}}
{\footnotesize\ttfamily int G\+L\+S\+L\+::\+Program\+::get\+Frag\+Data\+Location (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name }\end{DoxyParamCaption})}



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 724 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a9e49a7ac84a46ec71fce270fad11d88c}\label{a08132_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{\texorpdfstring{get\+Uniform\+Block\+Index()}{getUniformBlockIndex()}}
{\footnotesize\ttfamily G\+Luint G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Block\+Index (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name }\end{DoxyParamCaption})}



Get location of the specified uniform buffer. 

\hyperlink{a08132}{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 767 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a5fa81d681c130b6481a08c07a332ae56}\label{a08132_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{\texorpdfstring{get\+Uniform\+Block\+Offsets()}{getUniformBlockOffsets()}}
{\footnotesize\ttfamily 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})}



Get offsets of uniforms in a uniform buffer. 

\hyperlink{a08132}{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 834 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a6e5528139a1f4ec9d93c12851d2c9a05}\label{a08132_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{\texorpdfstring{get\+Uniform\+Block\+Size()}{getUniformBlockSize()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily int G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Block\+Size (\begin{DoxyParamCaption}\item[{G\+Luint}]{\+\_\+index }\end{DoxyParamCaption})}



Get size in bytes of a uniform buffer. 

\hyperlink{a08132}{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 807 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_ae8fdc622bf1aa36e4e9e57596946521a}\label{a08132_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{\texorpdfstring{get\+Uniform\+Block\+Size()}{getUniformBlockSize()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily int G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Block\+Size (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name }\end{DoxyParamCaption})}



Get size in bytes of a uniform buffer. 

\hyperlink{a08132}{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 822 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_aa42d5884595f0fe3641c5260f67dfe46}\label{a08132_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{\texorpdfstring{get\+Uniform\+Location()}{getUniformLocation()}}
{\footnotesize\ttfamily int G\+L\+S\+L\+::\+Program\+::get\+Uniform\+Location (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name }\end{DoxyParamCaption})}



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 713 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_ae133840d156c0cee4a8808ed5c1f3dbf}\label{a08132_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{\texorpdfstring{set\+Geometry\+Input\+Type()}{setGeometryInputType()}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Geometry\+Input\+Type (\begin{DoxyParamCaption}\item[{G\+Lint}]{\+\_\+type }\end{DoxyParamCaption})}



Set Type of Geometry. 

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


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


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

\mbox{\Hypertarget{a08132_a2ff1d07acca6da896c21eb8a2985698e}\label{a08132_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{\texorpdfstring{set\+Geometry\+Output\+Type()}{setGeometryOutputType()}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Geometry\+Output\+Type (\begin{DoxyParamCaption}\item[{G\+Lint}]{\+\_\+type }\end{DoxyParamCaption})}



Set output type of geometry. 

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


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


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

\mbox{\Hypertarget{a08132_a0b803be09429bddc25d4cd04e68fbd35}\label{a08132_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{\texorpdfstring{set\+Geometry\+Vertex\+Count()}{setGeometryVertexCount()}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Geometry\+Vertex\+Count (\begin{DoxyParamCaption}\item[{G\+Lint}]{\+\_\+num\+Vertices\+Out }\end{DoxyParamCaption})}



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\+XT to get the gpu limitation


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


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

\mbox{\Hypertarget{a08132_ae78ccf1ed98160af603fdaa72cabbe99}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [1/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{G\+Lint}]{\+\_\+value }\end{DoxyParamCaption})}



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 385 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_acf7f017895b797c7e1f2de35b9beb6b4}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [2/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{A\+C\+G\+::\+Vec2i} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 398 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a7ce6def925076c23bdea9898e64d384b}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [3/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_aa30a8644d70fd14b6430f3819953a431}{A\+C\+G\+::\+Vec3i} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 411 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_ab0d72b6b25577fa66f5a95de4458d6a4}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [4/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a8cc325594ae505979f752598d1d81c40}{A\+C\+G\+::\+Vec4i} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 424 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_aa2b3c5750f2dbb2184f161f61cdadf56}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [5/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{G\+Luint}]{\+\_\+value }\end{DoxyParamCaption})}



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 437 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a5ef01dccf8da8757b3fb3c99c876314e}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [6/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_ae4755d4e07cff81eb7a26cd0540ce314}{A\+C\+G\+::\+Vec2ui} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 450 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_ad353347c3e70019b7b445d2fca36646c}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [7/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a916145c1569f644e2559d780955f3050}{A\+C\+G\+::\+Vec3ui} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 463 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a9db2b01fb5dc72473edd68ba48c85b74}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [8/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_af5c09af5e4de06e8474b9995b3d39d30}{A\+C\+G\+::\+Vec4ui} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 476 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a68b86adec120a741f0ba2e659507ed7e}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [9/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{G\+Lfloat}]{\+\_\+value }\end{DoxyParamCaption})}



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 489 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_ae60291cf997d6e486f0b9b454bae7bba}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [10/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a8b858737aebd55e312149cf208a0b3f3}{A\+C\+G\+::\+Vec2f} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 502 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a197dec1460af782b664eaccc05c546cd}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [11/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 515 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a3b2e19969e0a38eda3e553506570fca4}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [12/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} \&}]{\+\_\+value }\end{DoxyParamCaption})}



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 528 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_aba987c21387d088386f6a60c98e0f7d4}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [13/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a1e5dae9881df8fa0d42b985a8e7fad28}{A\+C\+G\+::\+G\+L\+Matrixf} \&}]{\+\_\+value,  }\item[{bool}]{\+\_\+transposed = {\ttfamily false} }\end{DoxyParamCaption})}



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 649 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_ac8b2fe7500d7abd96ebe6c131fe51b2d}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [14/21]}}
{\footnotesize\ttfamily 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})}



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 542 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_ab260db58bd9098c029c095b2cd13929a}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [15/21]}}
{\footnotesize\ttfamily 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})}



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 556 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a1c4ad780161e948afa87f0d049477e14}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [16/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a8b858737aebd55e312149cf208a0b3f3}{A\+C\+G\+::\+Vec2f} $\ast$}]{\+\_\+values,  }\item[{int}]{\+\_\+count }\end{DoxyParamCaption})}



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 570 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_adac754ab0edb6079fe8575077ccaed76}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [17/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f} $\ast$}]{\+\_\+values,  }\item[{int}]{\+\_\+count }\end{DoxyParamCaption})}



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 584 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_aaf7a3d1d3c89b498caac8663115519a9}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [18/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a4850d8bd22bf3ccf7088b80adc17c989}{A\+C\+G\+::\+Vec4f} $\ast$}]{\+\_\+values,  }\item[{int}]{\+\_\+count }\end{DoxyParamCaption})}



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 598 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a79d597e2813f1fba8fe9fd5abafbcfd2}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [19/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{int}]{\+\_\+index,  }\item[{bool}]{\+\_\+value }\end{DoxyParamCaption})}



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 612 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a014c1be30b43e70d1fcd23c84f60974f}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [20/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{int}]{\+\_\+index,  }\item[{int}]{\+\_\+value }\end{DoxyParamCaption})}



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 624 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a73ac547d3df7a86cb9250c0c0913188f}\label{a08132_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{\texorpdfstring{set\+Uniform()}{setUniform()}\hspace{0.1cm}{\footnotesize\ttfamily [21/21]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{int}]{\+\_\+index,  }\item[{float}]{\+\_\+value }\end{DoxyParamCaption})}



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 636 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a0e91840ed52656ade63a35aa9566976a}\label{a08132_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{\texorpdfstring{set\+Uniform\+Block\+Binding()}{setUniformBlockBinding()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform\+Block\+Binding (\begin{DoxyParamCaption}\item[{G\+Luint}]{\+\_\+index,  }\item[{int}]{\+\_\+binding }\end{DoxyParamCaption})}



Set binding point of a uniform buffer. 

\hyperlink{a08132}{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 783 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a94dd1317ac2339790511cf73c1ef36f9}\label{a08132_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{\texorpdfstring{set\+Uniform\+Block\+Binding()}{setUniformBlockBinding()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform\+Block\+Binding (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{int}]{\+\_\+binding }\end{DoxyParamCaption})}



Set binding point of a uniform buffer. 

\hyperlink{a08132}{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 796 of file G\+L\+S\+L\+Shader.\+cc.

\mbox{\Hypertarget{a08132_a77a3ea0fa88505258591309a4608d978}\label{a08132_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{\texorpdfstring{set\+Uniform\+Mat3()}{setUniformMat3()}}
{\footnotesize\ttfamily void G\+L\+S\+L\+::\+Program\+::set\+Uniform\+Mat3 (\begin{DoxyParamCaption}\item[{const char $\ast$}]{\+\_\+name,  }\item[{const \hyperlink{a06176_a1e5dae9881df8fa0d42b985a8e7fad28}{A\+C\+G\+::\+G\+L\+Matrixf} \&}]{\+\_\+value,  }\item[{bool}]{\+\_\+transposed = {\ttfamily false} }\end{DoxyParamCaption})}



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 663 of file G\+L\+S\+L\+Shader.\+cc.



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