\hypertarget{class_ogre_1_1_r_t_shader_1_1_program}{}\section{Ogre\+:\+:R\+T\+Shader\+:\+:Program Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_program}\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}


A class that represents a shader based program.  




{\ttfamily \#include $<$Ogre\+Shader\+Program.\+h$>$}



Inheritance diagram for Ogre\+:\+:R\+T\+Shader\+:\+:Program\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=219pt]{class_ogre_1_1_r_t_shader_1_1_program__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a9eae71bfcd0da6a9daac3ddc52d27e25}{add\+Dependency} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&lib\+File\+Name)
\begin{DoxyCompactList}\small\item\em Add dependency for this program. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_aa3c0b7854fb8356b68ecb3b977c3f0fb}{create\+Function} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&desc, const \hyperlink{class_ogre_1_1_r_t_shader_1_1_function_a147da0e3a9d408f20e8afcced1a15ccf}{Function\+::\+Function\+Type} function\+Type)
\begin{DoxyCompactList}\small\item\em Create new function in this program. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a2d13e48120561b0b13711d06ae1445ca}{get\+Dependency} (unsigned int index) const
\begin{DoxyCompactList}\small\item\em Get the library name of the given index dependency. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_ac33b945ec9151e7541453e23f85eac46}{get\+Dependency\+Count} () const
\begin{DoxyCompactList}\small\item\em Get the number of external libs this program depends on. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a7b7f2adb8e8b565d6ca1d1893af82b76}{get\+Entry\+Point\+Function} ()
\begin{DoxyCompactList}\small\item\em Get the entry point function of this program. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a5ca247d24785aec3cdb24c5fec312c4b}{get\+Function\+By\+Name} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Get a function by a given name. \end{DoxyCompactList}\item 
const \hyperlink{group___r_t_shader_ga19bee49a255fef79de7adf9c9ab08c62}{Shader\+Function\+List} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a0e6572f23eff93ae6baff5a13139a514}{get\+Functions} () const
\begin{DoxyCompactList}\small\item\em Get the function list of this program. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_af817232435e35d8e747eed629e8a7caa}{get\+Parameter\+By\+Auto\+Type} (\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type} auto\+Type)
\begin{DoxyCompactList}\small\item\em Get parameter by a given auto constant type. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_ac9b3ac41bdbeb34c21b9ee428b75b859}{get\+Parameter\+By\+Name} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Get parameter by a given name. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_ad6e5c14d3511acebe76cccb40d260c96}{get\+Parameter\+By\+Type} (\hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type} type, int index)
\begin{DoxyCompactList}\small\item\em Get parameter by a given type and index. \end{DoxyCompactList}\item 
const \hyperlink{group___r_t_shader_ga9a4612a192d73418ee023a3e5ebfb8ad}{Uniform\+Parameter\+List} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a4e6b23b1e3c4b03be8e924d8ca3094f9}{get\+Parameters} () const
\begin{DoxyCompactList}\small\item\em Get the list of uniform parameters of this program. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_ae481ed625b861a056be36be130f3f3d2}{get\+Skeletal\+Animation\+Included} () const
\begin{DoxyCompactList}\small\item\em Returns whether a vertex program includes the required instructions to perform skeletal animation. \end{DoxyCompactList}\item 
\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a8681d83df819eb590cf0cf110c78307f}{get\+Type} () const
\begin{DoxyCompactList}\small\item\em Get the type of this program. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_af543d4c8b9ec5dae89542310277f7435}{get\+Use\+Column\+Major\+Matrices} () const
\begin{DoxyCompactList}\small\item\em Returns whether \hyperlink{namespace_ogre}{Ogre} will pass auto-\/bound matrices as column-\/major. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a14f456c00a198c026043492b74f5c695}{resolve\+Auto\+Parameter\+Int} (\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type} auto\+Type, size\+\_\+t data, size\+\_\+t size=0)
\begin{DoxyCompactList}\small\item\em Resolve uniform auto constant parameter with associated int data of this program. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_af9ae3761783a43cdb7016b51c5a858bd}{resolve\+Auto\+Parameter\+Int} (\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type} auto\+Type, \hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type} type, size\+\_\+t data, size\+\_\+t size=0)
\begin{DoxyCompactList}\small\item\em Resolve uniform auto constant parameter with associated int data of this program. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_ae0b281147a7daf59ec04e45523df75d0}{resolve\+Auto\+Parameter\+Real} (\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type} auto\+Type, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} data, size\+\_\+t size=0)
\begin{DoxyCompactList}\small\item\em Resolve uniform auto constant parameter with associated real data of this program. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_afa95a589bbc662fdadf93c9fa3630508}{resolve\+Auto\+Parameter\+Real} (\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type} auto\+Type, \hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type} type, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} data, size\+\_\+t size=0)
\begin{DoxyCompactList}\small\item\em Resolve uniform auto constant parameter with associated real data of this program. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a5587bc7123d7616527a4508706d7cc89}{resolve\+Parameter} (\hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type} type, int index, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} variability, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&suggested\+Name, size\+\_\+t size=0)
\begin{DoxyCompactList}\small\item\em Resolve uniform parameter of this program. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a1d51026c1bafcac0223edb1e371c5b52}{set\+Entry\+Point\+Function} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} $\ast$function)
\begin{DoxyCompactList}\small\item\em Set the entry point function. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_a24f1c39c59041fb580260cd1a778c9eb}{set\+Skeletal\+Animation\+Included} (bool value)
\begin{DoxyCompactList}\small\item\em Sets whether a vertex program includes the required instructions to perform skeletal animation. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_acd2c0fc868dc2daebeeea68845fb13df}{set\+Use\+Column\+Major\+Matrices} (bool value)
\begin{DoxyCompactList}\small\item\em Tells \hyperlink{namespace_ogre}{Ogre} whether auto-\/bound matrices should be sent in column or row-\/major order. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_ae46e120edae3a1f22dc68ebde7fbcfca}{Program\+Manager}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
A class that represents a shader based program. 

\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a8681d83df819eb590cf0cf110c78307f}\label{class_ogre_1_1_r_t_shader_1_1_program_a8681d83df819eb590cf0cf110c78307f}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Type@{get\+Type}}
\index{get\+Type@{get\+Type}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Type()}{getType()}}
{\footnotesize\ttfamily \hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the type of this program. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_ae0b281147a7daf59ec04e45523df75d0}\label{class_ogre_1_1_r_t_shader_1_1_program_ae0b281147a7daf59ec04e45523df75d0}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!resolve\+Auto\+Parameter\+Real@{resolve\+Auto\+Parameter\+Real}}
\index{resolve\+Auto\+Parameter\+Real@{resolve\+Auto\+Parameter\+Real}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{resolve\+Auto\+Parameter\+Real()}{resolveAutoParameterReal()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::resolve\+Auto\+Parameter\+Real (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type}}]{auto\+Type,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{data,  }\item[{size\+\_\+t}]{size = {\ttfamily 0} }\end{DoxyParamCaption})}



Resolve uniform auto constant parameter with associated real data of this program. 


\begin{DoxyParams}{Parameters}
{\em auto\+Type} & The auto type of the desired parameter. \\
\hline
{\em data} & The data to associate with the auto parameter. \\
\hline
{\em size} & number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_afa95a589bbc662fdadf93c9fa3630508}\label{class_ogre_1_1_r_t_shader_1_1_program_afa95a589bbc662fdadf93c9fa3630508}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!resolve\+Auto\+Parameter\+Real@{resolve\+Auto\+Parameter\+Real}}
\index{resolve\+Auto\+Parameter\+Real@{resolve\+Auto\+Parameter\+Real}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{resolve\+Auto\+Parameter\+Real()}{resolveAutoParameterReal()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::resolve\+Auto\+Parameter\+Real (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type}}]{auto\+Type,  }\item[{\hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type}}]{type,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{data,  }\item[{size\+\_\+t}]{size = {\ttfamily 0} }\end{DoxyParamCaption})}



Resolve uniform auto constant parameter with associated real data of this program. 


\begin{DoxyParams}{Parameters}
{\em auto\+Type} & The auto type of the desired parameter. \\
\hline
{\em type} & The desired data type of the auto parameter. \\
\hline
{\em data} & The data to associate with the auto parameter. \\
\hline
{\em size} & number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a14f456c00a198c026043492b74f5c695}\label{class_ogre_1_1_r_t_shader_1_1_program_a14f456c00a198c026043492b74f5c695}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!resolve\+Auto\+Parameter\+Int@{resolve\+Auto\+Parameter\+Int}}
\index{resolve\+Auto\+Parameter\+Int@{resolve\+Auto\+Parameter\+Int}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{resolve\+Auto\+Parameter\+Int()}{resolveAutoParameterInt()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::resolve\+Auto\+Parameter\+Int (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type}}]{auto\+Type,  }\item[{size\+\_\+t}]{data,  }\item[{size\+\_\+t}]{size = {\ttfamily 0} }\end{DoxyParamCaption})}



Resolve uniform auto constant parameter with associated int data of this program. 


\begin{DoxyParams}{Parameters}
{\em auto\+Type} & The auto type of the desired parameter. \\
\hline
{\em data} & The data to associate with the auto parameter. \\
\hline
{\em size} & number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_af9ae3761783a43cdb7016b51c5a858bd}\label{class_ogre_1_1_r_t_shader_1_1_program_af9ae3761783a43cdb7016b51c5a858bd}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!resolve\+Auto\+Parameter\+Int@{resolve\+Auto\+Parameter\+Int}}
\index{resolve\+Auto\+Parameter\+Int@{resolve\+Auto\+Parameter\+Int}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{resolve\+Auto\+Parameter\+Int()}{resolveAutoParameterInt()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::resolve\+Auto\+Parameter\+Int (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type}}]{auto\+Type,  }\item[{\hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type}}]{type,  }\item[{size\+\_\+t}]{data,  }\item[{size\+\_\+t}]{size = {\ttfamily 0} }\end{DoxyParamCaption})}



Resolve uniform auto constant parameter with associated int data of this program. 


\begin{DoxyParams}{Parameters}
{\em auto\+Type} & The auto type of the desired parameter. \\
\hline
{\em type} & The desired data type of the auto parameter. \\
\hline
{\em data} & The data to associate with the auto parameter. \\
\hline
{\em size} & number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a5587bc7123d7616527a4508706d7cc89}\label{class_ogre_1_1_r_t_shader_1_1_program_a5587bc7123d7616527a4508706d7cc89}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!resolve\+Parameter@{resolve\+Parameter}}
\index{resolve\+Parameter@{resolve\+Parameter}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{resolve\+Parameter()}{resolveParameter()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::resolve\+Parameter (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type}}]{type,  }\item[{int}]{index,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{variability,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{suggested\+Name,  }\item[{size\+\_\+t}]{size = {\ttfamily 0} }\end{DoxyParamCaption})}



Resolve uniform parameter of this program. 


\begin{DoxyParams}{Parameters}
{\em type} & The type of the desired parameter. \\
\hline
{\em index} & The index of the desired parameter. \\
\hline
{\em suggested\+Name} & The suggested name for the parameter in case new one should be create. \\
\hline
{\em variability} & How this parameter varies (bitwise combination of Gpu\+Program\+Variability). \\
\hline
{\em size} & number of elements in the parameter. Return parameter instance in case of that resolve operation succeeded. \\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
\hyperlink{class_ogre_1_1_pass}{Pass} -\/1 as index parameter to create a new parameter with the desired type and index. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_ac9b3ac41bdbeb34c21b9ee428b75b859}\label{class_ogre_1_1_r_t_shader_1_1_program_ac9b3ac41bdbeb34c21b9ee428b75b859}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Parameter\+By\+Name@{get\+Parameter\+By\+Name}}
\index{get\+Parameter\+By\+Name@{get\+Parameter\+By\+Name}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Parameter\+By\+Name()}{getParameterByName()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Parameter\+By\+Name (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



Get parameter by a given name. 


\begin{DoxyParams}{Parameters}
{\em name} & The name of the parameter to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
Return N\+U\+LL if no matching parameter found. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_af817232435e35d8e747eed629e8a7caa}\label{class_ogre_1_1_r_t_shader_1_1_program_af817232435e35d8e747eed629e8a7caa}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Parameter\+By\+Auto\+Type@{get\+Parameter\+By\+Auto\+Type}}
\index{get\+Parameter\+By\+Auto\+Type@{get\+Parameter\+By\+Auto\+Type}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Parameter\+By\+Auto\+Type()}{getParameterByAutoType()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Parameter\+By\+Auto\+Type (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_gpu_program_parameters_a155c886f15e0c10d2c33c224f0d43ce3}{Gpu\+Program\+Parameters\+::\+Auto\+Constant\+Type}}]{auto\+Type }\end{DoxyParamCaption})}



Get parameter by a given auto constant type. 


\begin{DoxyParams}{Parameters}
{\em auto\+Type} & The auto type of the parameter to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
Return N\+U\+LL if no matching parameter found. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_ad6e5c14d3511acebe76cccb40d260c96}\label{class_ogre_1_1_r_t_shader_1_1_program_ad6e5c14d3511acebe76cccb40d260c96}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Parameter\+By\+Type@{get\+Parameter\+By\+Type}}
\index{get\+Parameter\+By\+Type@{get\+Parameter\+By\+Type}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Parameter\+By\+Type()}{getParameterByType()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a492843278bb5c3f7c535cc2a516c436f}{Uniform\+Parameter\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Parameter\+By\+Type (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_ga9c5b2950be06ff56a6ee0bace240d447}{Gpu\+Constant\+Type}}]{type,  }\item[{int}]{index }\end{DoxyParamCaption})}



Get parameter by a given type and index. 


\begin{DoxyParams}{Parameters}
{\em type} & The type of the parameter to search for. \\
\hline
{\em index} & The index of the parameter to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
Return N\+U\+LL if no matching parameter found. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a4e6b23b1e3c4b03be8e924d8ca3094f9}\label{class_ogre_1_1_r_t_shader_1_1_program_a4e6b23b1e3c4b03be8e924d8ca3094f9}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Parameters@{get\+Parameters}}
\index{get\+Parameters@{get\+Parameters}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Parameters()}{getParameters()}}
{\footnotesize\ttfamily const \hyperlink{group___r_t_shader_ga9a4612a192d73418ee023a3e5ebfb8ad}{Uniform\+Parameter\+List}\& Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Parameters (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the list of uniform parameters of this program. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_aa3c0b7854fb8356b68ecb3b977c3f0fb}\label{class_ogre_1_1_r_t_shader_1_1_program_aa3c0b7854fb8356b68ecb3b977c3f0fb}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!create\+Function@{create\+Function}}
\index{create\+Function@{create\+Function}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{create\+Function()}{createFunction()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Program\+::create\+Function (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{desc,  }\item[{const \hyperlink{class_ogre_1_1_r_t_shader_1_1_function_a147da0e3a9d408f20e8afcced1a15ccf}{Function\+::\+Function\+Type}}]{function\+Type }\end{DoxyParamCaption})}



Create new function in this program. 

Return the newly created function instance. 
\begin{DoxyParams}{Parameters}
{\em name} & The name of the function to create. \\
\hline
{\em desc} & The description of the function. \\
\hline
{\em function\+Type} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a5ca247d24785aec3cdb24c5fec312c4b}\label{class_ogre_1_1_r_t_shader_1_1_program_a5ca247d24785aec3cdb24c5fec312c4b}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Function\+By\+Name@{get\+Function\+By\+Name}}
\index{get\+Function\+By\+Name@{get\+Function\+By\+Name}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Function\+By\+Name()}{getFunctionByName()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Function\+By\+Name (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



Get a function by a given name. 

Return N\+U\+LL if no matching function found. 
\begin{DoxyParams}{Parameters}
{\em name} & The name of the function to search for. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a0e6572f23eff93ae6baff5a13139a514}\label{class_ogre_1_1_r_t_shader_1_1_program_a0e6572f23eff93ae6baff5a13139a514}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Functions@{get\+Functions}}
\index{get\+Functions@{get\+Functions}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Functions()}{getFunctions()}}
{\footnotesize\ttfamily const \hyperlink{group___r_t_shader_ga19bee49a255fef79de7adf9c9ab08c62}{Shader\+Function\+List}\& Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Functions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the function list of this program. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a1d51026c1bafcac0223edb1e371c5b52}\label{class_ogre_1_1_r_t_shader_1_1_program_a1d51026c1bafcac0223edb1e371c5b52}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!set\+Entry\+Point\+Function@{set\+Entry\+Point\+Function}}
\index{set\+Entry\+Point\+Function@{set\+Entry\+Point\+Function}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{set\+Entry\+Point\+Function()}{setEntryPointFunction()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Program\+::set\+Entry\+Point\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} $\ast$}]{function }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the entry point function. 


\begin{DoxyParams}{Parameters}
{\em function} & The function that will use as entry point of this program. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a7b7f2adb8e8b565d6ca1d1893af82b76}\label{class_ogre_1_1_r_t_shader_1_1_program_a7b7f2adb8e8b565d6ca1d1893af82b76}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Entry\+Point\+Function@{get\+Entry\+Point\+Function}}
\index{get\+Entry\+Point\+Function@{get\+Entry\+Point\+Function}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Entry\+Point\+Function()}{getEntryPointFunction()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Entry\+Point\+Function (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Get the entry point function of this program. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a9eae71bfcd0da6a9daac3ddc52d27e25}\label{class_ogre_1_1_r_t_shader_1_1_program_a9eae71bfcd0da6a9daac3ddc52d27e25}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!add\+Dependency@{add\+Dependency}}
\index{add\+Dependency@{add\+Dependency}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{add\+Dependency()}{addDependency()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Program\+::add\+Dependency (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{lib\+File\+Name }\end{DoxyParamCaption})}



Add dependency for this program. 

Basically a filename that will be included in this program and provide predefined shader functions code. One should verify that the given library file he provides can be reached by the resource manager. This step can be achieved using the \hyperlink{class_ogre_1_1_resource_group_manager_a6ff0efec5d27cedb448cfba8b2b78c8d}{Resource\+Group\+Manager\+::add\+Resource\+Location} method. \mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_ac33b945ec9151e7541453e23f85eac46}\label{class_ogre_1_1_r_t_shader_1_1_program_ac33b945ec9151e7541453e23f85eac46}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Dependency\+Count@{get\+Dependency\+Count}}
\index{get\+Dependency\+Count@{get\+Dependency\+Count}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Dependency\+Count()}{getDependencyCount()}}
{\footnotesize\ttfamily size\+\_\+t Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Dependency\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Get the number of external libs this program depends on. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a2d13e48120561b0b13711d06ae1445ca}\label{class_ogre_1_1_r_t_shader_1_1_program_a2d13e48120561b0b13711d06ae1445ca}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Dependency@{get\+Dependency}}
\index{get\+Dependency@{get\+Dependency}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Dependency()}{getDependency()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Dependency (\begin{DoxyParamCaption}\item[{unsigned int}]{index }\end{DoxyParamCaption}) const}



Get the library name of the given index dependency. 


\begin{DoxyParams}{Parameters}
{\em index} & The index of the dependecy. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_a24f1c39c59041fb580260cd1a778c9eb}\label{class_ogre_1_1_r_t_shader_1_1_program_a24f1c39c59041fb580260cd1a778c9eb}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!set\+Skeletal\+Animation\+Included@{set\+Skeletal\+Animation\+Included}}
\index{set\+Skeletal\+Animation\+Included@{set\+Skeletal\+Animation\+Included}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{set\+Skeletal\+Animation\+Included()}{setSkeletalAnimationIncluded()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Program\+::set\+Skeletal\+Animation\+Included (\begin{DoxyParamCaption}\item[{bool}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Sets whether a vertex program includes the required instructions to perform skeletal animation. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_ae481ed625b861a056be36be130f3f3d2}\label{class_ogre_1_1_r_t_shader_1_1_program_ae481ed625b861a056be36be130f3f3d2}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Skeletal\+Animation\+Included@{get\+Skeletal\+Animation\+Included}}
\index{get\+Skeletal\+Animation\+Included@{get\+Skeletal\+Animation\+Included}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Skeletal\+Animation\+Included()}{getSkeletalAnimationIncluded()}}
{\footnotesize\ttfamily bool Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Skeletal\+Animation\+Included (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns whether a vertex program includes the required instructions to perform skeletal animation. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_acd2c0fc868dc2daebeeea68845fb13df}\label{class_ogre_1_1_r_t_shader_1_1_program_acd2c0fc868dc2daebeeea68845fb13df}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!set\+Use\+Column\+Major\+Matrices@{set\+Use\+Column\+Major\+Matrices}}
\index{set\+Use\+Column\+Major\+Matrices@{set\+Use\+Column\+Major\+Matrices}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{set\+Use\+Column\+Major\+Matrices()}{setUseColumnMajorMatrices()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Program\+::set\+Use\+Column\+Major\+Matrices (\begin{DoxyParamCaption}\item[{bool}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Tells \hyperlink{namespace_ogre}{Ogre} whether auto-\/bound matrices should be sent in column or row-\/major order. 

\begin{DoxyRemark}{Remarks}
This method has the same effect as column\+\_\+major\+\_\+matrices option used when declaring manually written hlsl program. You want to use this method only when you use float3x4 type in a shader, e.\+g. for bone matrices. In mentioned case you should call this method with false as parameter. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
For more detail see O\+G\+RE Manual, section {\bfseries 3.\+1.\+6 Direct\+X9 H\+L\+SL}. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
This setting has any effect only when the target language is H\+L\+SL. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em value} & Should \hyperlink{namespace_ogre}{Ogre} pass auto-\/bound matrices as column-\/major? The default is true. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_af543d4c8b9ec5dae89542310277f7435}\label{class_ogre_1_1_r_t_shader_1_1_program_af543d4c8b9ec5dae89542310277f7435}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!get\+Use\+Column\+Major\+Matrices@{get\+Use\+Column\+Major\+Matrices}}
\index{get\+Use\+Column\+Major\+Matrices@{get\+Use\+Column\+Major\+Matrices}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{get\+Use\+Column\+Major\+Matrices()}{getUseColumnMajorMatrices()}}
{\footnotesize\ttfamily bool Ogre\+::\+R\+T\+Shader\+::\+Program\+::get\+Use\+Column\+Major\+Matrices (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns whether \hyperlink{namespace_ogre}{Ogre} will pass auto-\/bound matrices as column-\/major. 

\begin{DoxyReturn}{Returns}
true, when the matrices will be passed in column-\/major order, false, when they will be passed as row-\/major. 
\end{DoxyReturn}


\subsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_ae46e120edae3a1f22dc68ebde7fbcfca}\label{class_ogre_1_1_r_t_shader_1_1_program_ae46e120edae3a1f22dc68ebde7fbcfca}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}!Program\+Manager@{Program\+Manager}}
\index{Program\+Manager@{Program\+Manager}!Ogre\+::\+R\+T\+Shader\+::\+Program@{Ogre\+::\+R\+T\+Shader\+::\+Program}}
\subsubsection{\texorpdfstring{Program\+Manager}{ProgramManager}}
{\footnotesize\ttfamily friend class \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_manager}{Program\+Manager}\hspace{0.3cm}{\ttfamily [friend]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_shader_program_8h}{Ogre\+Shader\+Program.\+h}\end{DoxyCompactItemize}
