\hypertarget{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program}{}\doxysection{Ogre\+::G\+L\+SL\+::G\+L\+S\+L\+Gpu\+Program Class Reference}
\label{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}


\mbox{\hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}} low level compiled shader object -\/ this class is used to get at the linked program object and provide an interface for \mbox{\hyperlink{class_ogre_1_1_g_l_render_system}{G\+L\+Render\+System}} calls.  




{\ttfamily \#include $<$Ogre\+G\+L\+S\+L\+Gpu\+Program.\+h$>$}



Inheritance diagram for Ogre\+::G\+L\+SL\+::G\+L\+S\+L\+Gpu\+Program\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=302pt]{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94}{Loading\+Flags}} \{ \newline
\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ab49695ac949df3a7d2e2f9a03267097c}{L\+F\+\_\+\+D\+E\+F\+A\+U\+LT}} = 0, 
\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94a6ee542226e1cf18df28ab88426be6809}{L\+F\+\_\+\+I\+N\+C\+L\+U\+D\+E\+\_\+\+N\+O\+N\+\_\+\+R\+E\+L\+O\+A\+D\+A\+B\+LE}} = 1, 
\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94a70589e0b87b09b0a4fd98ce490dc9782}{L\+F\+\_\+\+O\+N\+L\+Y\+\_\+\+U\+N\+R\+E\+F\+E\+R\+E\+N\+C\+ED}} = 2, 
\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ae5f2eca654bd810da4c774570a5b4b77}{L\+F\+\_\+\+O\+N\+L\+Y\+\_\+\+U\+N\+R\+E\+F\+E\+R\+E\+N\+C\+E\+D\+\_\+\+I\+N\+C\+L\+U\+D\+E\+\_\+\+N\+O\+N\+\_\+\+R\+E\+L\+O\+A\+D\+A\+B\+LE}} = 3, 
\newline
\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ad83abf165de5cfa1a4c8e0cd5471ad2c}{L\+F\+\_\+\+P\+R\+E\+S\+E\+R\+V\+E\+\_\+\+S\+T\+A\+TE}} = 4
 \}
\begin{DoxyCompactList}\small\item\em Enum that allow to choose subset of unloaded/reloaded resources and to adjust reloading behavior. \end{DoxyCompactList}\item 
enum \mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}{Loading\+State}} \{ \newline
\mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca28d463296cacdfc115dbc3fb02d00e94}{L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+U\+N\+L\+O\+A\+D\+ED}}, 
\mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572caf138fc9087e0dc755bff08a83720cbb5}{L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+L\+O\+A\+D\+I\+NG}}, 
\mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572caa38cbef7605fc4bff6da2f34599ace8f}{L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+L\+O\+A\+D\+ED}}, 
\mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca4228d390b3a9ed614001db177d1f441e}{L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+U\+N\+L\+O\+A\+D\+I\+NG}}, 
\newline
\mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca133a073b86c346096237063f99870fc1}{L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+P\+A\+R\+ED}}, 
\mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572cab43c913411f4a96722902f17b88f10fb}{L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+P\+A\+R\+I\+NG}}
 \}
\begin{DoxyCompactList}\small\item\em Enum identifying the loading state of the resource. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a794b675d8c3569f5e6954b8d861c969b}{G\+L\+S\+L\+Gpu\+Program}} (\mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_program}{G\+L\+S\+L\+Program}} $\ast$parent)
\item 
\mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_ad01434a234c5a3a4ea095e32c017d572}{$\sim$\+G\+L\+S\+L\+Gpu\+Program}} ()
\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_afcb4a61b965600a67ca2c2f060821db9}{\+\_\+dirty\+State}} ()
\begin{DoxyCompactList}\small\item\em Manually mark the state of this resource as having been changed. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_resource_aa68664db6b8723dc198beef3d21d4ef5}{\+\_\+fire\+Loading\+Complete}} (bool was\+Background\+Loaded)
\begin{DoxyCompactList}\small\item\em Firing of loading complete event. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_resource_aaf63d096584ac7d97fe1d1b0226c9561}{\+\_\+fire\+Preparing\+Complete}} (bool was\+Background\+Loaded)
\begin{DoxyCompactList}\small\item\em Firing of preparing complete event. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_resource_aaf3746937cd11864f53bc1c3b4437541}{\+\_\+fire\+Unloading\+Complete}} (void)
\begin{DoxyCompactList}\small\item\em Firing of unloading complete event. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_gpu_program_af8938cb9c61b7304f97f857a33b56cfc}{\+\_\+get\+Binding\+Delegate}} (void)
\begin{DoxyCompactList}\small\item\em Returns the \mbox{\hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program}} which should be bound to the pipeline. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} \mbox{\hyperlink{class_ogre_1_1_gpu_program_a38f6c696b57b698b6c778820a341c27b}{\+\_\+get\+Hash}} (\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} seed=0) const
\begin{DoxyCompactList}\small\item\em internal method to get the microcode cache id \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_resource_a7e248a1cca0662418d4ab3f63c2e7cf6}{\+\_\+notify\+Origin}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&origin)
\begin{DoxyCompactList}\small\item\em Notify this resource of it\textquotesingle{}s origin. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_a5513ffce404b14cff72846318b018d32}{add\+Listener}} (\mbox{\hyperlink{class_ogre_1_1_resource_1_1_listener}{Listener}} $\ast$lis)
\begin{DoxyCompactList}\small\item\em Register a listener on this resource. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a8448f53facf57d527a1121b89fb541ce}{bind\+Program}} (void)
\begin{DoxyCompactList}\small\item\em Execute the binding functions for this program. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_ac671b906a052684746ece2dbd4b07a99}{bind\+Program\+Parameters}} (\mbox{\hyperlink{namespace_ogre_aff0eec6634048fd4d65b785264243e6c}{Gpu\+Program\+Parameters\+Shared\+Ptr}} params, \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} mask)
\begin{DoxyCompactList}\small\item\em Execute the param binding functions for this program. \end{DoxyCompactList}\item 
virtual size\+\_\+t \mbox{\hyperlink{class_ogre_1_1_g_l_gpu_program_ab949553a83a4ec3f5fa232a3ded4e44b}{calculate\+Size}} (void) const
\begin{DoxyCompactList}\small\item\em Calculate the size of a resource; this will only be called after \textquotesingle{}load\textquotesingle{}. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_aa5d6f3f7e73b77b233fc62b11f270e4d}{change\+Group\+Ownership}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&new\+Group)
\begin{DoxyCompactList}\small\item\em Change the resource group ownership of a \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}}. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_string_interface_aad68d8b18faad14e8286a67527094654}{copy\+Parameters\+To}} (\mbox{\hyperlink{class_ogre_1_1_string_interface}{String\+Interface}} $\ast$dest) const
\begin{DoxyCompactList}\small\item\em Method for copying this object\textquotesingle{}s parameters to another object. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_aff0eec6634048fd4d65b785264243e6c}{Gpu\+Program\+Parameters\+Shared\+Ptr}} \mbox{\hyperlink{class_ogre_1_1_gpu_program_af402f4d88efcc9dffc948739d0bb9c57}{create\+Parameters}} (void)
\begin{DoxyCompactList}\small\item\em Creates a new parameters object compatible with this program definition. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_a367f6fe60bb211cb4c32e3825ca67e4c}{escalate\+Loading}} ()
\begin{DoxyCompactList}\small\item\em Escalates the loading of a background loaded resource. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} \mbox{\hyperlink{class_ogre_1_1_gpu_program_a39e694fafadbf623d7e865bc30b3362b}{get\+Compute\+Group\+Dimensions}} (void) const
\begin{DoxyCompactList}\small\item\em Returns the number of process groups dispatched by this compute program. \end{DoxyCompactList}\item 
virtual const \mbox{\hyperlink{struct_ogre_1_1_gpu_named_constants}{Gpu\+Named\+Constants}} \& \mbox{\hyperlink{class_ogre_1_1_gpu_program_a59ccb18c9fcdac1e706753ca6d2d4aad}{get\+Constant\+Definitions}} () const
\begin{DoxyCompactList}\small\item\em Get the full list of named constants. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_resource_manager}{Resource\+Manager}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_resource_ab6e377a3964d566ea112fe63bf1d7678}{get\+Creator}} (void)
\begin{DoxyCompactList}\small\item\em Gets the manager which created this resource. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_aff0eec6634048fd4d65b785264243e6c}{Gpu\+Program\+Parameters\+Shared\+Ptr}} \mbox{\hyperlink{class_ogre_1_1_gpu_program_a04675a861df66c30e431f95aa84320f5}{get\+Default\+Parameters}} (void)
\begin{DoxyCompactList}\small\item\em Get a reference to the default parameters which are to be used for all uses of this program. \end{DoxyCompactList}\item 
virtual const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_resource_a382919945c07a6a13136889ad3fbf578}{get\+Group}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the group which this resource is a member of. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_aeb9f62c8e6c4239315286c63321722b2}{Resource\+Handle}} \mbox{\hyperlink{class_ogre_1_1_resource_a2298551707debaf774d577e643ee856a}{get\+Handle}} (void) const
\item 
virtual const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_gpu_program_ab3849609e7c8b338b8b5baf9a8ab7b7d}{get\+Language}} (void) const
\begin{DoxyCompactList}\small\item\em Returns a string that specifies the language of the gpu programs as specified in a material script. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}{Loading\+State}} \mbox{\hyperlink{class_ogre_1_1_resource_a1e90ade99935ef70ec5b199243bf995b}{get\+Loading\+State}} () const
\begin{DoxyCompactList}\small\item\em Returns the current loading state. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_gpu_program_ae0630743f8c509bc341d294ebfc433f4}{get\+Manual\+Named\+Constants\+File}} () const
\begin{DoxyCompactList}\small\item\em Gets the name of a file from which to load named parameters mapping for a program which would not be able to derive named parameters itself. \end{DoxyCompactList}\item 
virtual const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_resource_a0646fba8aa0242c6b389d73f47ebe41b}{get\+Name}} (void) const
\begin{DoxyCompactList}\small\item\em Gets resource name. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} \mbox{\hyperlink{class_ogre_1_1_gpu_program_af0be69f3df55f71c0bded2e36c89dfa6}{get\+Number\+Of\+Poses\+Included}} (void) const
\begin{DoxyCompactList}\small\item\em Returns the number of simultaneous poses the vertex program can blend, for use in pose animation. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_resource_a13423fa7944d7f2339e78b9de026c3be}{get\+Origin}} (void) const
\begin{DoxyCompactList}\small\item\em Get the origin of this resource, e.\+g. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_param_dictionary}{Param\+Dictionary}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_string_interface_ae3e13925bde11db245f6c9bbf5031a93}{get\+Param\+Dictionary}} (void)
\begin{DoxyCompactList}\small\item\em Retrieves the parameter dictionary for this class. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{class_ogre_1_1_param_dictionary}{Param\+Dictionary}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_string_interface_a0f55da0550a7e1ab70a1c8bf598a3e20}{get\+Param\+Dictionary}} (void) const
\item 
\mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \mbox{\hyperlink{class_ogre_1_1_string_interface_a1d078304c38a9f85d483fc8ed0cdf1fe}{get\+Parameter}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&name) const
\begin{DoxyCompactList}\small\item\em Generic parameter retrieval method. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group___general_ga1838c2b0619ade1f5e29767062212872}{Parameter\+List}} \& \mbox{\hyperlink{class_ogre_1_1_string_interface_ad4b984bfbf148ddb3310b3d0ba8a9d5d}{get\+Parameters}} (void) const
\begin{DoxyCompactList}\small\item\em Retrieves a list of parameters valid for this object. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a0f581ec108f9fe82dd89539a0aba4336}{get\+Pass\+Fog\+States}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether a fragment program wants fog state to be passed through fixed pipeline low level A\+PI rendering calls (default true, subclasses can override) \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_af843c9fdc4918e9201e8381ed2a1617e}{get\+Pass\+Surface\+And\+Light\+States}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether a vertex program wants light and material states to be passed through fixed pipeline low level A\+PI rendering calls (default false, subclasses can override) \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a64cdfefb7694f74a93c299454d40692d}{get\+Pass\+Transform\+States}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether a vertex program wants transform state to be passed through fixed pipeline low level A\+PI rendering calls. \end{DoxyCompactList}\item 
virtual size\+\_\+t \mbox{\hyperlink{class_ogre_1_1_resource_a0617d9f04ca03bd25f4bde201e6ac13b}{get\+Size}} (void) const
\begin{DoxyCompactList}\small\item\em Retrieves info about the size of the resource. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_gpu_program_a1d7c13588f43121426317475910d31d5}{get\+Source}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the assembler source for this program. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_gpu_program_a0ff78514ce645dd55ad1bb27c84a5b29}{get\+Source\+File}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the name of the file used as source for this program. \end{DoxyCompactList}\item 
virtual size\+\_\+t \mbox{\hyperlink{class_ogre_1_1_resource_ade85e4d5579519e4117a84789c0ae8fd}{get\+State\+Count}} () const
\begin{DoxyCompactList}\small\item\em Returns the number of times this resource has changed state, which generally means the number of times it has been loaded. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_gpu_program_a7b7db741c7eab2838fd53149c41357e5}{get\+Syntax\+Code}} (void) const
\begin{DoxyCompactList}\small\item\em Gets the syntax code for this program e.\+g. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}} \mbox{\hyperlink{class_ogre_1_1_gpu_program_a326c46942f2b3f707ab130442c880273}{get\+Type}} (void) const
\begin{DoxyCompactList}\small\item\em Get the program type. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a41ca5ed671aeded51032646285f0a756}{has\+Compile\+Error}} (void) const
\begin{DoxyCompactList}\small\item\em Did this program encounter a compile error when loading? \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a466348cfefa74a767ed8b813e2caec6f}{has\+Default\+Parameters}} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if default parameters have been set up. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a6e4126e3d4bdc85eb3bfb4530c8e8249}{is\+Adjacency\+Info\+Required}} (void) const
\item 
bool \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a6798faf9dad72da6352910c3ff36e87e}{is\+Attribute\+Valid}} (\mbox{\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic}} semantic, \mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}} index)
\begin{DoxyCompactList}\small\item\em Test whether attribute index for a given semantic is valid. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_resource_a60ce96525ac730a0f7b466ed287beef3}{is\+Background\+Loaded}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether this \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} has been earmarked for background loading. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_resource_a74138c0203835513613af73cdb08890d}{is\+Loaded}} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} has been loaded, false otherwise. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_resource_a3af26f716731b64850ea50cfa4d2edef}{is\+Loading}} () const
\begin{DoxyCompactList}\small\item\em Returns whether the resource is currently in the process of background loading. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_resource_a8f541900f7e1f73f4c313a732199029a}{is\+Manually\+Loaded}} (void) const
\begin{DoxyCompactList}\small\item\em Is this resource manually loaded? \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a62a6a70191d7ba645d13e42e99c7e870}{is\+Morph\+Animation\+Included}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether a vertex program includes the required instructions to perform morph animation. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_ae86e7c238ce5730eb88347e932024b10}{is\+Pose\+Animation\+Included}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether a vertex program includes the required instructions to perform pose animation. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_resource_a0779c46df96234b6619a5f57fbb36078}{is\+Prepared}} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} has been prepared, false otherwise. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_resource_a8eb34a9034aab62fd537c021a79e3366}{is\+Reloadable}} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} is reloadable, false otherwise. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a09aed7a5acfd1841b7d6648e56acd0ce}{is\+Skeletal\+Animation\+Included}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether a vertex program includes the required instructions to perform skeletal animation. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_af6e304605bb08740ca7bc21fd94b450e}{is\+Supported}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether this program can be supported on the current renderer and hardware. \end{DoxyCompactList}\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_gpu_program_a7f28e93a74c00e9557dfb778e2f8eeef}{is\+Vertex\+Texture\+Fetch\+Required}} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether this vertex program requires support for vertex texture fetch from the hardware. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load}} (bool background\+Thread=false)
\begin{DoxyCompactList}\small\item\em Loads the resource, if it is not already. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare}} (bool background\+Thread=false)
\begin{DoxyCompactList}\small\item\em Prepares the resource for load, if it is not already. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_a5016aec1762b026997ddd346775879ef}{reload}} (\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94}{Loading\+Flags}} flags=\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ab49695ac949df3a7d2e2f9a03267097c}{L\+F\+\_\+\+D\+E\+F\+A\+U\+LT}})
\begin{DoxyCompactList}\small\item\em Reloads the resource, if it is already loaded. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_a3c49142f739ba8fb56d6e7b3db235fb7}{remove\+Listener}} (\mbox{\hyperlink{class_ogre_1_1_resource_1_1_listener}{Listener}} $\ast$lis)
\begin{DoxyCompactList}\small\item\em Remove a listener on this resource. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a2443ed18b880eb939123bb8daf9165c7}{reset\+Compile\+Error}} (void)
\begin{DoxyCompactList}\small\item\em Reset a compile error if it occurred, allowing the load to be retried. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a39b43157d6b40626101e5de8f9c77bf5}{set\+Adjacency\+Info\+Required}} (bool r)
\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_ae0a0007de944eb3c2f933a372a752b35}{set\+Background\+Loaded}} (bool bl)
\begin{DoxyCompactList}\small\item\em Tells the resource whether it is background loaded or not. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a84c3904bfaeeb1166dbca41e0c9f3b29}{set\+Compute\+Group\+Dimensions}} (\mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} dimensions)
\begin{DoxyCompactList}\small\item\em Sets the number of process groups dispatched by this compute program. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a25757132c8ee96c8e7ffef209ddfb078}{set\+Manual\+Named\+Constants}} (const \mbox{\hyperlink{struct_ogre_1_1_gpu_named_constants}{Gpu\+Named\+Constants}} \&named\+Constants)
\begin{DoxyCompactList}\small\item\em Allows you to manually provide a set of named parameter mappings to a program which would not be able to derive named parameters itself. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_gpu_program_af420c447afb13728b4ddfcb8d8d7d812}{set\+Manual\+Named\+Constants\+File}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&param\+Def\+File)
\begin{DoxyCompactList}\small\item\em Specifies the name of a file from which to load named parameters mapping for a program which would not be able to derive named parameters itself. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a843c706f65d219c1d04b8aeacc4bd3c8}{set\+Morph\+Animation\+Included}} (bool included)
\begin{DoxyCompactList}\small\item\em Sets whether a vertex program includes the required instructions to perform morph animation. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_string_interface_a08d117bf25f011f96d81f1f4ecb25113}{set\+Parameter}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&name, const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&value)
\begin{DoxyCompactList}\small\item\em Generic parameter setting method. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_string_interface_a9aac32f93bd149a34b809a57a9f01f8f}{set\+Parameter\+List}} (const \mbox{\hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Name\+Value\+Pair\+List}} \&param\+List)
\begin{DoxyCompactList}\small\item\em Generic multiple parameter setting method. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a848bf4164963cf8c0435c972eb717e0f}{set\+Pose\+Animation\+Included}} (\mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} pose\+Count)
\begin{DoxyCompactList}\small\item\em Sets whether a vertex program includes the required instructions to perform pose animation. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_gpu_program_af337509a5342cb707df4df78337756ae}{set\+Skeletal\+Animation\+Included}} (bool included)
\begin{DoxyCompactList}\small\item\em Sets whether a vertex program includes the required instructions to perform skeletal animation. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_gpu_program_af0194bcb85a757f23cd8681c4611a4fb}{set\+Source}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&source)
\begin{DoxyCompactList}\small\item\em Sets the source assembly for this program from an in-\/memory string. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a8d265ebc2472f77cf9675dec005a123a}{set\+Source\+File}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&filename)
\begin{DoxyCompactList}\small\item\em Sets the filename of the source assembly for this program. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_gpu_program_ac7b2745e88eabb52b640a77f03e0f896}{set\+Syntax\+Code}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&syntax)
\begin{DoxyCompactList}\small\item\em Sets the syntax code for this program e.\+g. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_gpu_program_af2b6c0ff81145fa460079c716e0ba84e}{set\+Type}} (\mbox{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}} t)
\begin{DoxyCompactList}\small\item\em Set the program type (only valid before load) \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_gpu_program_a463bffd1f68fc8ae3c29d64402e9ca8d}{set\+Vertex\+Texture\+Fetch\+Required}} (bool r)
\begin{DoxyCompactList}\small\item\em Sets whether this vertex program requires support for vertex texture fetch from the hardware. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_ae229b1f58092109adef55bfc6f864d79}{touch}} (void)
\begin{DoxyCompactList}\small\item\em \textquotesingle{}Touches\textquotesingle{} the resource to indicate it has been used. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a674097d42d273d63194b9549a82bc1c6}{unbind\+Program}} (void)
\begin{DoxyCompactList}\small\item\em Execute the unbinding functions for this program. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_resource_aa31bef1bfaa87731622e56f11b548e27}{unload}} (void)
\begin{DoxyCompactList}\small\item\em Unloads the resource; this is not permanent, the resource can be reloaded later if required. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \mbox{\hyperlink{class_ogre_1_1_string_interface_a1bea65fa2b3c2ac5a9f3be59b46a80e8}{cleanup\+Dictionary}} ()
\begin{DoxyCompactList}\small\item\em Cleans up the static \textquotesingle{}ms\+Dictionary\textquotesingle{} required to reset \mbox{\hyperlink{namespace_ogre}{Ogre}}, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the \mbox{\hyperlink{class_ogre_1_1_resource_manager}{Resource\+Manager}} implementers (e.\+g. \end{DoxyCompactList}\item 
static const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \mbox{\hyperlink{class_ogre_1_1_gpu_program_a74fe58cd0a7dcfcc55902fc3d9890b82}{get\+Program\+Type\+Name}} (\mbox{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}} program\+Type)
\end{DoxyCompactItemize}
\doxysubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_resource_a104d9db8bfcff1f37b29157bbe070f7a}{O\+G\+R\+E\+\_\+\+A\+U\+T\+O\+\_\+\+M\+U\+T\+EX}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\mbox{\hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}} low level compiled shader object -\/ this class is used to get at the linked program object and provide an interface for \mbox{\hyperlink{class_ogre_1_1_g_l_render_system}{G\+L\+Render\+System}} calls. 

\mbox{\hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}} does not provide access to the low level code of the shader so this class is really just a dummy place holder. \mbox{\hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}} uses a program object to represent the active vertex and fragment programs used but \mbox{\hyperlink{namespace_ogre}{Ogre}} materials maintain separate instances of the active vertex and fragment programs which creates a small problem for \mbox{\hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}} integration. The \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program}{G\+L\+S\+L\+Gpu\+Program}} class provides the interface between the \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_link_program_manager}{G\+L\+S\+L\+Link\+Program\+Manager}} , \mbox{\hyperlink{class_ogre_1_1_g_l_render_system}{G\+L\+Render\+System}}, and the active \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_program}{G\+L\+S\+L\+Program}} instances. 

\doxysubsection{Member Enumeration Documentation}
\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LoadingState@{LoadingState}}
\index{LoadingState@{LoadingState}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{LoadingState}{LoadingState}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}{Ogre\+::\+Resource\+::\+Loading\+State}}\hspace{0.3cm}{\ttfamily [inherited]}}



Enum identifying the loading state of the resource. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LOADSTATE\_UNLOADED@{LOADSTATE\_UNLOADED}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LOADSTATE\_UNLOADED@{LOADSTATE\_UNLOADED}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca28d463296cacdfc115dbc3fb02d00e94}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca28d463296cacdfc115dbc3fb02d00e94}} 
L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+U\+N\+L\+O\+A\+D\+ED&Not loaded. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LOADSTATE\_LOADING@{LOADSTATE\_LOADING}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LOADSTATE\_LOADING@{LOADSTATE\_LOADING}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572caf138fc9087e0dc755bff08a83720cbb5}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572caf138fc9087e0dc755bff08a83720cbb5}} 
L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+L\+O\+A\+D\+I\+NG&Loading is in progress. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LOADSTATE\_LOADED@{LOADSTATE\_LOADED}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LOADSTATE\_LOADED@{LOADSTATE\_LOADED}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572caa38cbef7605fc4bff6da2f34599ace8f}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572caa38cbef7605fc4bff6da2f34599ace8f}} 
L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+L\+O\+A\+D\+ED&Fully loaded. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LOADSTATE\_UNLOADING@{LOADSTATE\_UNLOADING}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LOADSTATE\_UNLOADING@{LOADSTATE\_UNLOADING}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca4228d390b3a9ed614001db177d1f441e}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca4228d390b3a9ed614001db177d1f441e}} 
L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+U\+N\+L\+O\+A\+D\+I\+NG&Currently unloading. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LOADSTATE\_PREPARED@{LOADSTATE\_PREPARED}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LOADSTATE\_PREPARED@{LOADSTATE\_PREPARED}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca133a073b86c346096237063f99870fc1}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572ca133a073b86c346096237063f99870fc1}} 
L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+P\+A\+R\+ED&Fully prepared. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LOADSTATE\_PREPARING@{LOADSTATE\_PREPARING}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LOADSTATE\_PREPARING@{LOADSTATE\_PREPARING}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572cab43c913411f4a96722902f17b88f10fb}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572cab43c913411f4a96722902f17b88f10fb}} 
L\+O\+A\+D\+S\+T\+A\+T\+E\+\_\+\+P\+R\+E\+P\+A\+R\+I\+NG&Preparing is in progress. \\
\hline

\end{DoxyEnumFields}
\mbox{\Hypertarget{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94}\label{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LoadingFlags@{LoadingFlags}}
\index{LoadingFlags@{LoadingFlags}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{LoadingFlags}{LoadingFlags}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94}{Ogre\+::\+Resource\+::\+Loading\+Flags}}\hspace{0.3cm}{\ttfamily [inherited]}}



Enum that allow to choose subset of unloaded/reloaded resources and to adjust reloading behavior. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LF\_DEFAULT@{LF\_DEFAULT}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LF\_DEFAULT@{LF\_DEFAULT}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ab49695ac949df3a7d2e2f9a03267097c}\label{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ab49695ac949df3a7d2e2f9a03267097c}} 
L\+F\+\_\+\+D\+E\+F\+A\+U\+LT&Only reloadable resources are processed, reload restores initial state. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LF\_INCLUDE\_NON\_RELOADABLE@{LF\_INCLUDE\_NON\_RELOADABLE}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LF\_INCLUDE\_NON\_RELOADABLE@{LF\_INCLUDE\_NON\_RELOADABLE}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94a6ee542226e1cf18df28ab88426be6809}\label{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94a6ee542226e1cf18df28ab88426be6809}} 
L\+F\+\_\+\+I\+N\+C\+L\+U\+D\+E\+\_\+\+N\+O\+N\+\_\+\+R\+E\+L\+O\+A\+D\+A\+B\+LE&Process non-\/reloadable resources too. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LF\_ONLY\_UNREFERENCED@{LF\_ONLY\_UNREFERENCED}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LF\_ONLY\_UNREFERENCED@{LF\_ONLY\_UNREFERENCED}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94a70589e0b87b09b0a4fd98ce490dc9782}\label{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94a70589e0b87b09b0a4fd98ce490dc9782}} 
L\+F\+\_\+\+O\+N\+L\+Y\+\_\+\+U\+N\+R\+E\+F\+E\+R\+E\+N\+C\+ED&Process only resources which are not referenced by any other object. Usefull to reduce resource consumption. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LF\_ONLY\_UNREFERENCED\_INCLUDE\_NON\_RELOADABLE@{LF\_ONLY\_UNREFERENCED\_INCLUDE\_NON\_RELOADABLE}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LF\_ONLY\_UNREFERENCED\_INCLUDE\_NON\_RELOADABLE@{LF\_ONLY\_UNREFERENCED\_INCLUDE\_NON\_RELOADABLE}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ae5f2eca654bd810da4c774570a5b4b77}\label{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ae5f2eca654bd810da4c774570a5b4b77}} 
L\+F\+\_\+\+O\+N\+L\+Y\+\_\+\+U\+N\+R\+E\+F\+E\+R\+E\+N\+C\+E\+D\+\_\+\+I\+N\+C\+L\+U\+D\+E\+\_\+\+N\+O\+N\+\_\+\+R\+E\+L\+O\+A\+D\+A\+B\+LE&Combination of L\+F\+\_\+\+O\+N\+L\+Y\+\_\+\+U\+N\+R\+E\+F\+E\+R\+E\+N\+C\+ED and L\+F\+\_\+\+I\+N\+C\+L\+U\+D\+E\+\_\+\+N\+O\+N\+\_\+\+R\+E\+L\+O\+A\+D\+A\+B\+LE. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LF\_PRESERVE\_STATE@{LF\_PRESERVE\_STATE}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!LF\_PRESERVE\_STATE@{LF\_PRESERVE\_STATE}}}\mbox{\Hypertarget{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ad83abf165de5cfa1a4c8e0cd5471ad2c}\label{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ad83abf165de5cfa1a4c8e0cd5471ad2c}} 
L\+F\+\_\+\+P\+R\+E\+S\+E\+R\+V\+E\+\_\+\+S\+T\+A\+TE&Preserve some states during reloading, for example stencil shadows prepareness for Meshes. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a794b675d8c3569f5e6954b8d861c969b}\label{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a794b675d8c3569f5e6954b8d861c969b}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!GLSLGpuProgram@{GLSLGpuProgram}}
\index{GLSLGpuProgram@{GLSLGpuProgram}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{GLSLGpuProgram()}{GLSLGpuProgram()}}
{\footnotesize\ttfamily Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Gpu\+Program\+::\+G\+L\+S\+L\+Gpu\+Program (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_program}{G\+L\+S\+L\+Program}} $\ast$}]{parent }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_ad01434a234c5a3a4ea095e32c017d572}\label{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_ad01434a234c5a3a4ea095e32c017d572}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!````~GLSLGpuProgram@{$\sim$GLSLGpuProgram}}
\index{````~GLSLGpuProgram@{$\sim$GLSLGpuProgram}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{$\sim$GLSLGpuProgram()}{~GLSLGpuProgram()}}
{\footnotesize\ttfamily Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Gpu\+Program\+::$\sim$\+G\+L\+S\+L\+Gpu\+Program (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a8448f53facf57d527a1121b89fb541ce}\label{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a8448f53facf57d527a1121b89fb541ce}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!bindProgram@{bindProgram}}
\index{bindProgram@{bindProgram}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{bindProgram()}{bindProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Gpu\+Program\+::bind\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Execute the binding functions for this program. 



Reimplemented from \mbox{\hyperlink{class_ogre_1_1_g_l_gpu_program_a5913d9b5618d00b55a976dcae972976e}{Ogre\+::\+G\+L\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a674097d42d273d63194b9549a82bc1c6}\label{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a674097d42d273d63194b9549a82bc1c6}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!unbindProgram@{unbindProgram}}
\index{unbindProgram@{unbindProgram}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{unbindProgram()}{unbindProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Gpu\+Program\+::unbind\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Execute the unbinding functions for this program. 



Reimplemented from \mbox{\hyperlink{class_ogre_1_1_g_l_gpu_program_ae26414aa1f1cb664428d76a73d4ef6b1}{Ogre\+::\+G\+L\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_ac671b906a052684746ece2dbd4b07a99}\label{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_ac671b906a052684746ece2dbd4b07a99}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!bindProgramParameters@{bindProgramParameters}}
\index{bindProgramParameters@{bindProgramParameters}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{bindProgramParameters()}{bindProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Gpu\+Program\+::bind\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aff0eec6634048fd4d65b785264243e6c}{Gpu\+Program\+Parameters\+Shared\+Ptr}}}]{params,  }\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{mask }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Execute the param binding functions for this program. 



Reimplemented from \mbox{\hyperlink{class_ogre_1_1_g_l_gpu_program_a1f350ae20d37d7ed7aa97dd9de924e79}{Ogre\+::\+G\+L\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a6798faf9dad72da6352910c3ff36e87e}\label{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_gpu_program_a6798faf9dad72da6352910c3ff36e87e}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isAttributeValid@{isAttributeValid}}
\index{isAttributeValid@{isAttributeValid}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isAttributeValid()}{isAttributeValid()}}
{\footnotesize\ttfamily bool Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Gpu\+Program\+::is\+Attribute\+Valid (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic}}}]{semantic,  }\item[{\mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}}}]{index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Test whether attribute index for a given semantic is valid. 



Reimplemented from \mbox{\hyperlink{class_ogre_1_1_g_l_gpu_program_afd7f7ba654c8f8240711e552c31adc77}{Ogre\+::\+G\+L\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_g_l_gpu_program_ab949553a83a4ec3f5fa232a3ded4e44b}\label{class_ogre_1_1_g_l_gpu_program_ab949553a83a4ec3f5fa232a3ded4e44b}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!calculateSize@{calculateSize}}
\index{calculateSize@{calculateSize}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{calculateSize()}{calculateSize()}}
{\footnotesize\ttfamily virtual size\+\_\+t Ogre\+::\+G\+L\+Gpu\+Program\+::calculate\+Size (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Calculate the size of a resource; this will only be called after \textquotesingle{}load\textquotesingle{}. 



Reimplemented from \mbox{\hyperlink{class_ogre_1_1_gpu_program_af9de444ed073763581b210652aec30f4}{Ogre\+::\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a74fe58cd0a7dcfcc55902fc3d9890b82}\label{class_ogre_1_1_gpu_program_a74fe58cd0a7dcfcc55902fc3d9890b82}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getProgramTypeName@{getProgramTypeName}}
\index{getProgramTypeName@{getProgramTypeName}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getProgramTypeName()}{getProgramTypeName()}}
{\footnotesize\ttfamily static const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} Ogre\+::\+Gpu\+Program\+::get\+Program\+Type\+Name (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}}]{program\+Type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [inherited]}}

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a8d265ebc2472f77cf9675dec005a123a}\label{class_ogre_1_1_gpu_program_a8d265ebc2472f77cf9675dec005a123a}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setSourceFile@{setSourceFile}}
\index{setSourceFile@{setSourceFile}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setSourceFile()}{setSourceFile()}}
{\footnotesize\ttfamily void Ogre\+::\+Gpu\+Program\+::set\+Source\+File (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{filename }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Sets the filename of the source assembly for this program. 

\begin{DoxyRemark}{Remarks}
Setting this will have no effect until you (re)load the program. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af0194bcb85a757f23cd8681c4611a4fb}\label{class_ogre_1_1_gpu_program_af0194bcb85a757f23cd8681c4611a4fb}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setSource@{setSource}}
\index{setSource@{setSource}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setSource()}{setSource()}}
{\footnotesize\ttfamily void Ogre\+::\+Gpu\+Program\+::set\+Source (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{source }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Sets the source assembly for this program from an in-\/memory string. 

\begin{DoxyRemark}{Remarks}
Setting this will have no effect until you (re)load the program. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a7b7db741c7eab2838fd53149c41357e5}\label{class_ogre_1_1_gpu_program_a7b7db741c7eab2838fd53149c41357e5}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getSyntaxCode@{getSyntaxCode}}
\index{getSyntaxCode@{getSyntaxCode}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getSyntaxCode()}{getSyntaxCode()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Gpu\+Program\+::get\+Syntax\+Code (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Gets the syntax code for this program e.\+g. 

arbvp1, fp20, vs\+\_\+1\+\_\+1 etc \mbox{\Hypertarget{class_ogre_1_1_gpu_program_ac7b2745e88eabb52b640a77f03e0f896}\label{class_ogre_1_1_gpu_program_ac7b2745e88eabb52b640a77f03e0f896}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setSyntaxCode@{setSyntaxCode}}
\index{setSyntaxCode@{setSyntaxCode}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setSyntaxCode()}{setSyntaxCode()}}
{\footnotesize\ttfamily void Ogre\+::\+Gpu\+Program\+::set\+Syntax\+Code (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{syntax }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Sets the syntax code for this program e.\+g. 

arbvp1, fp20, vs\+\_\+1\+\_\+1 etc \mbox{\Hypertarget{class_ogre_1_1_gpu_program_a0ff78514ce645dd55ad1bb27c84a5b29}\label{class_ogre_1_1_gpu_program_a0ff78514ce645dd55ad1bb27c84a5b29}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getSourceFile@{getSourceFile}}
\index{getSourceFile@{getSourceFile}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getSourceFile()}{getSourceFile()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Gpu\+Program\+::get\+Source\+File (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Gets the name of the file used as source for this program. 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a1d7c13588f43121426317475910d31d5}\label{class_ogre_1_1_gpu_program_a1d7c13588f43121426317475910d31d5}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getSource@{getSource}}
\index{getSource@{getSource}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getSource()}{getSource()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Gpu\+Program\+::get\+Source (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Gets the assembler source for this program. 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af2b6c0ff81145fa460079c716e0ba84e}\label{class_ogre_1_1_gpu_program_af2b6c0ff81145fa460079c716e0ba84e}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setType@{setType}}
\index{setType@{setType}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setType()}{setType()}}
{\footnotesize\ttfamily void Ogre\+::\+Gpu\+Program\+::set\+Type (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}}]{t }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Set the program type (only valid before load) 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a326c46942f2b3f707ab130442c880273}\label{class_ogre_1_1_gpu_program_a326c46942f2b3f707ab130442c880273}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getType@{getType}}
\index{getType@{getType}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getType()}{getType()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}} Ogre\+::\+Gpu\+Program\+::get\+Type (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Get the program type. 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af8938cb9c61b7304f97f857a33b56cfc}\label{class_ogre_1_1_gpu_program_af8938cb9c61b7304f97f857a33b56cfc}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!\_getBindingDelegate@{\_getBindingDelegate}}
\index{\_getBindingDelegate@{\_getBindingDelegate}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{\_getBindingDelegate()}{\_getBindingDelegate()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program}}$\ast$ Ogre\+::\+Gpu\+Program\+::\+\_\+get\+Binding\+Delegate (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns the \mbox{\hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program}} which should be bound to the pipeline. 

\begin{DoxyRemark}{Remarks}
This method is simply to allow some subclasses of \mbox{\hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program}} to delegate the program which is bound to the pipeline to a delegate, if required. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a1dbca018725061b7baa6c2e52b491beb}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_high_level_gpu_program_a3738e5bfb9a287279bbbbfa0271bc05c}{Ogre\+::\+High\+Level\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_e_s_program_a6adaf303aa08b50589a1700e76d6e699}{Ogre\+::\+G\+L\+S\+L\+E\+S\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_shader_acbc410161f71117c022b4179ec6f1c88}{Ogre\+::\+G\+L\+S\+L\+Shader}}, and \mbox{\hyperlink{class_ogre_1_1_cg_program_aaaf0cd27fd6604cc644e66f101844f08}{Ogre\+::\+Cg\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af6e304605bb08740ca7bc21fd94b450e}\label{class_ogre_1_1_gpu_program_af6e304605bb08740ca7bc21fd94b450e}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isSupported@{isSupported}}
\index{isSupported@{isSupported}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isSupported()}{isSupported()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::is\+Supported (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns whether this program can be supported on the current renderer and hardware. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_d3_d11_h_l_s_l_program_a69c8062ff32d89ab961a091c949d81ed}{Ogre\+::\+D3\+D11\+H\+L\+S\+L\+Program}}, \mbox{\hyperlink{class_ogre_1_1_d3_d9_h_l_s_l_program_aee09540da1c2d37d04b9eb6bac331479}{Ogre\+::\+D3\+D9\+H\+L\+S\+L\+Program}}, \mbox{\hyperlink{class_ogre_1_1_cg_program_ae4968f949a99e5e10f82bfc904479bd5}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ae432a649c8c65641e35c8ded63c6566b}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af402f4d88efcc9dffc948739d0bb9c57}\label{class_ogre_1_1_gpu_program_af402f4d88efcc9dffc948739d0bb9c57}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!createParameters@{createParameters}}
\index{createParameters@{createParameters}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{createParameters()}{createParameters()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_aff0eec6634048fd4d65b785264243e6c}{Gpu\+Program\+Parameters\+Shared\+Ptr}} Ogre\+::\+Gpu\+Program\+::create\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Creates a new parameters object compatible with this program definition. 

\begin{DoxyRemark}{Remarks}
It is recommended that you use this method of creating parameters objects rather than going direct to \mbox{\hyperlink{class_ogre_1_1_gpu_program_manager}{Gpu\+Program\+Manager}}, because this method will populate any implementation-\/specific extras (like named parameters) where they are appropriate. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_d3_d11_h_l_s_l_program_ad8388ee6585a2e9d546de0fb5a0644e3}{Ogre\+::\+D3\+D11\+H\+L\+S\+L\+Program}}, \mbox{\hyperlink{class_ogre_1_1_d3_d9_h_l_s_l_program_afb3b402c2bd87241680ed955eb924d1b}{Ogre\+::\+D3\+D9\+H\+L\+S\+L\+Program}}, \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ae63009fc787e1444ea412aa933e36011}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_high_level_gpu_program_a0ff6e912f4a4d19102662e3b6a23acdd}{Ogre\+::\+High\+Level\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_e_s_program_a0466dc60194ab1aa96dd7be4a115348c}{Ogre\+::\+G\+L\+S\+L\+E\+S\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_shader_a0ab0dea713289c347b831a7d4ca37cc4}{Ogre\+::\+G\+L\+S\+L\+Shader}}, and \mbox{\hyperlink{class_ogre_1_1_cg_program_a9461e01449c3773e502cb5071bbca2ae}{Ogre\+::\+Cg\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af337509a5342cb707df4df78337756ae}\label{class_ogre_1_1_gpu_program_af337509a5342cb707df4df78337756ae}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setSkeletalAnimationIncluded@{setSkeletalAnimationIncluded}}
\index{setSkeletalAnimationIncluded@{setSkeletalAnimationIncluded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setSkeletalAnimationIncluded()}{setSkeletalAnimationIncluded()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Gpu\+Program\+::set\+Skeletal\+Animation\+Included (\begin{DoxyParamCaption}\item[{bool}]{included }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



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

\begin{DoxyRemark}{Remarks}
If this is set to true, O\+G\+RE will not blend the geometry according to skeletal animation, it will expect the vertex program to do it. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a09aed7a5acfd1841b7d6648e56acd0ce}\label{class_ogre_1_1_gpu_program_a09aed7a5acfd1841b7d6648e56acd0ce}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isSkeletalAnimationIncluded@{isSkeletalAnimationIncluded}}
\index{isSkeletalAnimationIncluded@{isSkeletalAnimationIncluded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isSkeletalAnimationIncluded()}{isSkeletalAnimationIncluded()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::is\+Skeletal\+Animation\+Included (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



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

\begin{DoxyRemark}{Remarks}
If this returns true, O\+G\+RE will not blend the geometry according to skeletal animation, it will expect the vertex program to do it. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a86dfdb6d47afc2196ceaae0751942883}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ad76bd184b381c31dce64b4ec97ae7473}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a843c706f65d219c1d04b8aeacc4bd3c8}\label{class_ogre_1_1_gpu_program_a843c706f65d219c1d04b8aeacc4bd3c8}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setMorphAnimationIncluded@{setMorphAnimationIncluded}}
\index{setMorphAnimationIncluded@{setMorphAnimationIncluded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setMorphAnimationIncluded()}{setMorphAnimationIncluded()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Gpu\+Program\+::set\+Morph\+Animation\+Included (\begin{DoxyParamCaption}\item[{bool}]{included }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



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

\begin{DoxyRemark}{Remarks}
If this is set to true, O\+G\+RE will not blend the geometry according to morph animation, it will expect the vertex program to do it. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a848bf4164963cf8c0435c972eb717e0f}\label{class_ogre_1_1_gpu_program_a848bf4164963cf8c0435c972eb717e0f}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setPoseAnimationIncluded@{setPoseAnimationIncluded}}
\index{setPoseAnimationIncluded@{setPoseAnimationIncluded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setPoseAnimationIncluded()}{setPoseAnimationIncluded()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Gpu\+Program\+::set\+Pose\+Animation\+Included (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}}}]{pose\+Count }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



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

\begin{DoxyRemark}{Remarks}
If this is set to true, O\+G\+RE will not blend the geometry according to pose animation, it will expect the vertex program to do it. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em pose\+Count} & The number of simultaneous poses the program can blend \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a62a6a70191d7ba645d13e42e99c7e870}\label{class_ogre_1_1_gpu_program_a62a6a70191d7ba645d13e42e99c7e870}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isMorphAnimationIncluded@{isMorphAnimationIncluded}}
\index{isMorphAnimationIncluded@{isMorphAnimationIncluded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isMorphAnimationIncluded()}{isMorphAnimationIncluded()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::is\+Morph\+Animation\+Included (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



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

\begin{DoxyRemark}{Remarks}
If this returns true, O\+G\+RE will not blend the geometry according to morph animation, it will expect the vertex program to do it. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a38cba04e83702fbf98c4fb3cc5e1538d}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ab4d35e74e84da4c93bca45b1f1ea71d6}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_ae86e7c238ce5730eb88347e932024b10}\label{class_ogre_1_1_gpu_program_ae86e7c238ce5730eb88347e932024b10}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isPoseAnimationIncluded@{isPoseAnimationIncluded}}
\index{isPoseAnimationIncluded@{isPoseAnimationIncluded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isPoseAnimationIncluded()}{isPoseAnimationIncluded()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::is\+Pose\+Animation\+Included (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



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

\begin{DoxyRemark}{Remarks}
If this returns true, O\+G\+RE will not blend the geometry according to pose animation, it will expect the vertex program to do it. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_aeaa52d1e75245cee8186841eb983a0da}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a5b5d9728195c25ad14e5fd94f7f2b7bb}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af0be69f3df55f71c0bded2e36c89dfa6}\label{class_ogre_1_1_gpu_program_af0be69f3df55f71c0bded2e36c89dfa6}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getNumberOfPosesIncluded@{getNumberOfPosesIncluded}}
\index{getNumberOfPosesIncluded@{getNumberOfPosesIncluded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getNumberOfPosesIncluded()}{getNumberOfPosesIncluded()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}} Ogre\+::\+Gpu\+Program\+::get\+Number\+Of\+Poses\+Included (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns the number of simultaneous poses the vertex program can blend, for use in pose animation. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_aa3c7d149ad8e0ecba038ec4f58b16ac2}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a463bffd1f68fc8ae3c29d64402e9ca8d}\label{class_ogre_1_1_gpu_program_a463bffd1f68fc8ae3c29d64402e9ca8d}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setVertexTextureFetchRequired@{setVertexTextureFetchRequired}}
\index{setVertexTextureFetchRequired@{setVertexTextureFetchRequired}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setVertexTextureFetchRequired()}{setVertexTextureFetchRequired()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Gpu\+Program\+::set\+Vertex\+Texture\+Fetch\+Required (\begin{DoxyParamCaption}\item[{bool}]{r }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Sets whether this vertex program requires support for vertex texture fetch from the hardware. 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a7f28e93a74c00e9557dfb778e2f8eeef}\label{class_ogre_1_1_gpu_program_a7f28e93a74c00e9557dfb778e2f8eeef}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isVertexTextureFetchRequired@{isVertexTextureFetchRequired}}
\index{isVertexTextureFetchRequired@{isVertexTextureFetchRequired}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isVertexTextureFetchRequired()}{isVertexTextureFetchRequired()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::is\+Vertex\+Texture\+Fetch\+Required (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns whether this vertex program requires support for vertex texture fetch from the hardware. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a9bb5c2cd8a2d4e76794c7596d0c9d57e}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_aad90c221fc99b618c726b5c80e076c7d}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a39b43157d6b40626101e5de8f9c77bf5}\label{class_ogre_1_1_gpu_program_a39b43157d6b40626101e5de8f9c77bf5}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setAdjacencyInfoRequired@{setAdjacencyInfoRequired}}
\index{setAdjacencyInfoRequired@{setAdjacencyInfoRequired}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setAdjacencyInfoRequired()}{setAdjacencyInfoRequired()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Gpu\+Program\+::set\+Adjacency\+Info\+Required (\begin{DoxyParamCaption}\item[{bool}]{r }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000052}{Deprecated}}]\end{DoxyRefDesc}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a6e4126e3d4bdc85eb3bfb4530c8e8249}\label{class_ogre_1_1_gpu_program_a6e4126e3d4bdc85eb3bfb4530c8e8249}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isAdjacencyInfoRequired@{isAdjacencyInfoRequired}}
\index{isAdjacencyInfoRequired@{isAdjacencyInfoRequired}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isAdjacencyInfoRequired()}{isAdjacencyInfoRequired()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::is\+Adjacency\+Info\+Required (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\mbox{\hyperlink{deprecated__deprecated000053}{Deprecated}}]\end{DoxyRefDesc}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a84c3904bfaeeb1166dbca41e0c9f3b29}\label{class_ogre_1_1_gpu_program_a84c3904bfaeeb1166dbca41e0c9f3b29}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setComputeGroupDimensions@{setComputeGroupDimensions}}
\index{setComputeGroupDimensions@{setComputeGroupDimensions}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setComputeGroupDimensions()}{setComputeGroupDimensions()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Gpu\+Program\+::set\+Compute\+Group\+Dimensions (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}}}]{dimensions }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Sets the number of process groups dispatched by this compute program. 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a39e694fafadbf623d7e865bc30b3362b}\label{class_ogre_1_1_gpu_program_a39e694fafadbf623d7e865bc30b3362b}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getComputeGroupDimensions@{getComputeGroupDimensions}}
\index{getComputeGroupDimensions@{getComputeGroupDimensions}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getComputeGroupDimensions()}{getComputeGroupDimensions()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_ac94fc4008c1165dea017263fee56b273}{Vector3}} Ogre\+::\+Gpu\+Program\+::get\+Compute\+Group\+Dimensions (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns the number of process groups dispatched by this compute program. 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a04675a861df66c30e431f95aa84320f5}\label{class_ogre_1_1_gpu_program_a04675a861df66c30e431f95aa84320f5}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getDefaultParameters@{getDefaultParameters}}
\index{getDefaultParameters@{getDefaultParameters}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getDefaultParameters()}{getDefaultParameters()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_aff0eec6634048fd4d65b785264243e6c}{Gpu\+Program\+Parameters\+Shared\+Ptr}} Ogre\+::\+Gpu\+Program\+::get\+Default\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Get a reference to the default parameters which are to be used for all uses of this program. 

\begin{DoxyRemark}{Remarks}
A program can be set up with a list of default parameters, which can save time when using a program many times in a material with roughly the same settings. By retrieving the default parameters and populating it with the most used options, any new parameter objects created from this program afterwards will automatically include the default parameters; thus users of the program need only change the parameters which are unique to their own usage of the program. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a1f21af4659df48a155db980bdadbf5f1}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a0bf65fa41c95db4f218764a99ee0e99d}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a466348cfefa74a767ed8b813e2caec6f}\label{class_ogre_1_1_gpu_program_a466348cfefa74a767ed8b813e2caec6f}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!hasDefaultParameters@{hasDefaultParameters}}
\index{hasDefaultParameters@{hasDefaultParameters}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{hasDefaultParameters()}{hasDefaultParameters()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::has\+Default\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns true if default parameters have been set up. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a94fbe95dc398989b4de6d981a17fbc6d}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a8ca8fbe7bbdff97138b538148301d76a}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af843c9fdc4918e9201e8381ed2a1617e}\label{class_ogre_1_1_gpu_program_af843c9fdc4918e9201e8381ed2a1617e}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getPassSurfaceAndLightStates@{getPassSurfaceAndLightStates}}
\index{getPassSurfaceAndLightStates@{getPassSurfaceAndLightStates}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getPassSurfaceAndLightStates()}{getPassSurfaceAndLightStates()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::get\+Pass\+Surface\+And\+Light\+States (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns whether a vertex program wants light and material states to be passed through fixed pipeline low level A\+PI rendering calls (default false, subclasses can override) 

\begin{DoxyRemark}{Remarks}
Most vertex programs do not need this material information, however \mbox{\hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}} shaders can refer to this material and lighting state so enable this option 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a9584e7691cce3a52b8d26e4540359892}{Ogre\+::\+Cg\+Program}}, \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_af6e2f43fed321ec3cceba1002605f93a}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_program_aa16c1fda24bd6d902a61397b96bdf08f}{Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a0f581ec108f9fe82dd89539a0aba4336}\label{class_ogre_1_1_gpu_program_a0f581ec108f9fe82dd89539a0aba4336}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getPassFogStates@{getPassFogStates}}
\index{getPassFogStates@{getPassFogStates}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getPassFogStates()}{getPassFogStates()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::get\+Pass\+Fog\+States (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns whether a fragment program wants fog state to be passed through fixed pipeline low level A\+PI rendering calls (default true, subclasses can override) 

\begin{DoxyRemark}{Remarks}
On DirectX, shader model 2 and earlier continues to have fixed-\/function fog applied to it, so fog state is still passed (you should disable fog on the pass if you want to perform fog in the shader). In Open\+GL it is also common to be able to access the fixed-\/function fog state inside the shader. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a2822db9a2976b9a5470adde82073cbf5}{Ogre\+::\+Cg\+Program}}, \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ac1b33ddac98296fe2690f588c649597e}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_program_ac9248b58c786c7c2e08c6fbc430464cc}{Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a64cdfefb7694f74a93c299454d40692d}\label{class_ogre_1_1_gpu_program_a64cdfefb7694f74a93c299454d40692d}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getPassTransformStates@{getPassTransformStates}}
\index{getPassTransformStates@{getPassTransformStates}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getPassTransformStates()}{getPassTransformStates()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::get\+Pass\+Transform\+States (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns whether a vertex program wants transform state to be passed through fixed pipeline low level A\+PI rendering calls. 

\begin{DoxyRemark}{Remarks}
Most vertex programs do not need fixed-\/function transform information, however \mbox{\hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}} shaders can refer to this state so enable this option 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_ae376230400171f70c3270f67f476b1bf}{Ogre\+::\+Cg\+Program}}, \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a8e315fecab8e5ea96cd41fe1161d8bf5}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_program_ac4c446e5307ea2f2e1cbebfd5ded88cc}{Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_ab3849609e7c8b338b8b5baf9a8ab7b7d}\label{class_ogre_1_1_gpu_program_ab3849609e7c8b338b8b5baf9a8ab7b7d}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getLanguage@{getLanguage}}
\index{getLanguage@{getLanguage}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getLanguage()}{getLanguage()}}
{\footnotesize\ttfamily virtual const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Gpu\+Program\+::get\+Language (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns a string that specifies the language of the gpu programs as specified in a material script. 

ie\+: asm, cg, hlsl, glsl 

Reimplemented in \mbox{\hyperlink{class_ogre_1_1_d3_d11_h_l_s_l_program_aa207714ae38ecb62bf8899a884e11c37}{Ogre\+::\+D3\+D11\+H\+L\+S\+L\+Program}}, \mbox{\hyperlink{class_ogre_1_1_d3_d9_h_l_s_l_program_a3ca490e299d5434ca688726f5c49fcf3}{Ogre\+::\+D3\+D9\+H\+L\+S\+L\+Program}}, \mbox{\hyperlink{class_ogre_1_1_cg_program_a5b9074b10dd674d98666fee888cd6bb3}{Ogre\+::\+Cg\+Program}}, \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ae3d0517f8a4986497ada86655271fe51}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_e_s_program_a438d889ad377b9e0181679e25bcd8e75}{Ogre\+::\+G\+L\+S\+L\+E\+S\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_shader_ac6871270e87f12cdb509fc1c2c30a4b1}{Ogre\+::\+G\+L\+S\+L\+Shader}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_1_1_g_l_s_l_program_ad0732bdfdacf90d8922f3afd128305a0}{Ogre\+::\+G\+L\+S\+L\+::\+G\+L\+S\+L\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_e_s_cg_program_aaec64082adb25f3a86d3e22cb94da712}{Ogre\+::\+G\+L\+S\+L\+E\+S\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_s_p_i_r_v_shader_a282b2cf9a1b623a25c85fcb552cc764c}{Ogre\+::\+S\+P\+I\+R\+V\+Shader}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a41ca5ed671aeded51032646285f0a756}\label{class_ogre_1_1_gpu_program_a41ca5ed671aeded51032646285f0a756}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!hasCompileError@{hasCompileError}}
\index{hasCompileError@{hasCompileError}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{hasCompileError()}{hasCompileError()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Gpu\+Program\+::has\+Compile\+Error (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Did this program encounter a compile error when loading? 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a8fe80144b24cde184f0a07f6f3f290d1}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a119aa715fe52579658b8532a68de2e52}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a2443ed18b880eb939123bb8daf9165c7}\label{class_ogre_1_1_gpu_program_a2443ed18b880eb939123bb8daf9165c7}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!resetCompileError@{resetCompileError}}
\index{resetCompileError@{resetCompileError}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{resetCompileError()}{resetCompileError()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Gpu\+Program\+::reset\+Compile\+Error (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Reset a compile error if it occurred, allowing the load to be retried. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a7ce0be99072f2ffd6055cd3bbd20b625}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_aee95802d7aa580c27d10850221c12959}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a25757132c8ee96c8e7ffef209ddfb078}\label{class_ogre_1_1_gpu_program_a25757132c8ee96c8e7ffef209ddfb078}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setManualNamedConstants@{setManualNamedConstants}}
\index{setManualNamedConstants@{setManualNamedConstants}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setManualNamedConstants()}{setManualNamedConstants()}}
{\footnotesize\ttfamily void Ogre\+::\+Gpu\+Program\+::set\+Manual\+Named\+Constants (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{struct_ogre_1_1_gpu_named_constants}{Gpu\+Named\+Constants}} \&}]{named\+Constants }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Allows you to manually provide a set of named parameter mappings to a program which would not be able to derive named parameters itself. 

\begin{DoxyRemark}{Remarks}
You may wish to use this if you have assembler programs that were compiled from a high-\/level source, and want the convenience of still being able to use the named parameters from the original high-\/level source. 
\end{DoxyRemark}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_gpu_program_af420c447afb13728b4ddfcb8d8d7d812}{set\+Manual\+Named\+Constants\+File}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_af420c447afb13728b4ddfcb8d8d7d812}\label{class_ogre_1_1_gpu_program_af420c447afb13728b4ddfcb8d8d7d812}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setManualNamedConstantsFile@{setManualNamedConstantsFile}}
\index{setManualNamedConstantsFile@{setManualNamedConstantsFile}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setManualNamedConstantsFile()}{setManualNamedConstantsFile()}}
{\footnotesize\ttfamily void Ogre\+::\+Gpu\+Program\+::set\+Manual\+Named\+Constants\+File (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{param\+Def\+File }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Specifies the name of a file from which to load named parameters mapping for a program which would not be able to derive named parameters itself. 

\begin{DoxyRemark}{Remarks}
You may wish to use this if you have assembler programs that were compiled from a high-\/level source, and want the convenience of still being able to use the named parameters from the original high-\/level source. This method will make a low-\/level program search in the resource group of the program for the named file from which to load parameter names from. The file must be in the format produced by \mbox{\hyperlink{struct_ogre_1_1_gpu_named_constants_a4ce0c92c117f2c7dd91acf697821ef67}{Gpu\+Named\+Constants\+::save}}. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_gpu_program_ae0630743f8c509bc341d294ebfc433f4}\label{class_ogre_1_1_gpu_program_ae0630743f8c509bc341d294ebfc433f4}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getManualNamedConstantsFile@{getManualNamedConstantsFile}}
\index{getManualNamedConstantsFile@{getManualNamedConstantsFile}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getManualNamedConstantsFile()}{getManualNamedConstantsFile()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Gpu\+Program\+::get\+Manual\+Named\+Constants\+File (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Gets the name of a file from which to load named parameters mapping for a program which would not be able to derive named parameters itself. 

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a59ccb18c9fcdac1e706753ca6d2d4aad}\label{class_ogre_1_1_gpu_program_a59ccb18c9fcdac1e706753ca6d2d4aad}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getConstantDefinitions@{getConstantDefinitions}}
\index{getConstantDefinitions@{getConstantDefinitions}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getConstantDefinitions()}{getConstantDefinitions()}}
{\footnotesize\ttfamily virtual const \mbox{\hyperlink{struct_ogre_1_1_gpu_named_constants}{Gpu\+Named\+Constants}}\& Ogre\+::\+Gpu\+Program\+::get\+Constant\+Definitions (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Get the full list of named constants. 

\begin{DoxyNote}{Note}
Only available if this parameters object has named parameters, which means either a high-\/level program which loads them, or a low-\/level program which has them specified manually. 
\end{DoxyNote}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_high_level_gpu_program_ac281d547b47b872fe35e1e60fe07612a}{Ogre\+::\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_gpu_program_a38f6c696b57b698b6c778820a341c27b}\label{class_ogre_1_1_gpu_program_a38f6c696b57b698b6c778820a341c27b}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!\_getHash@{\_getHash}}
\index{\_getHash@{\_getHash}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{\_getHash()}{\_getHash()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} Ogre\+::\+Gpu\+Program\+::\+\_\+get\+Hash (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}}]{seed = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



internal method to get the microcode cache id 

\mbox{\Hypertarget{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}\label{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{prepare()}{prepare()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::prepare (\begin{DoxyParamCaption}\item[{bool}]{background\+Thread = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Prepares the resource for load, if it is not already. 

One can call \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}} before \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}}, but this is not required as \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}} will call \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}} itself, if needed. When O\+G\+R\+E\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+S\+U\+P\+P\+O\+RT==1 both \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}} and \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}} are thread-\/safe. When O\+G\+R\+E\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+S\+U\+P\+P\+O\+RT==2 however, only \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}} is thread-\/safe. The reason for this function is to allow a background thread to do some of the loading work, without requiring the whole render system to be thread-\/safe. The background thread would call \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}} while the main render loop would later call \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}}. So long as \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}} remains thread-\/safe, subclasses can arbitrarily split the work of loading a resource between \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}} and \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}}. It is best to try and do as much work in \mbox{\hyperlink{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}{prepare()}}, however, since this will leave less work for the main render thread to do and thus increase F\+PS. 
\begin{DoxyParams}{Parameters}
{\em background\+Thread} & Whether this is occurring in a background thread \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}\label{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!load@{load}}
\index{load@{load}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{load()}{load()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::load (\begin{DoxyParamCaption}\item[{bool}]{background\+Thread = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Loads the resource, if it is not already. 

\begin{DoxyRemark}{Remarks}
If the resource is loaded from a file, loading is automatic. If not, if for example this resource gained it\textquotesingle{}s data from procedural calls rather than loading from a file, then this resource will not reload on it\textquotesingle{}s own. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em background\+Thread} & Indicates whether the caller of this method is the background resource loading thread. \\
\hline
\end{DoxyParams}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a39d8ef352a44619ef8cdd93e152c9b5c}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a5016aec1762b026997ddd346775879ef}\label{class_ogre_1_1_resource_a5016aec1762b026997ddd346775879ef}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!reload@{reload}}
\index{reload@{reload}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{reload()}{reload()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::reload (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94}{Loading\+Flags}}}]{flags = {\ttfamily \mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94ab49695ac949df3a7d2e2f9a03267097c}{L\+F\+\_\+\+D\+E\+F\+A\+U\+LT}}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Reloads the resource, if it is already loaded. 

\begin{DoxyRemark}{Remarks}
Calls \mbox{\hyperlink{class_ogre_1_1_resource_aa31bef1bfaa87731622e56f11b548e27}{unload()}} and then \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}} again, if the resource is already loaded. If it is not loaded already, then nothing happens. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_mesh_adca1dc667f145d4a4132811eaadf324f}{Ogre\+::\+Mesh}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a33b2a090d63a597ee92343f4e7abe1d2}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a8eb34a9034aab62fd537c021a79e3366}\label{class_ogre_1_1_resource_a8eb34a9034aab62fd537c021a79e3366}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isReloadable@{isReloadable}}
\index{isReloadable@{isReloadable}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isReloadable()}{isReloadable()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Resource\+::is\+Reloadable (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns true if the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} is reloadable, false otherwise. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a957204efc949b9ad55562b9f8f4371f3}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a8f541900f7e1f73f4c313a732199029a}\label{class_ogre_1_1_resource_a8f541900f7e1f73f4c313a732199029a}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isManuallyLoaded@{isManuallyLoaded}}
\index{isManuallyLoaded@{isManuallyLoaded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isManuallyLoaded()}{isManuallyLoaded()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Resource\+::is\+Manually\+Loaded (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Is this resource manually loaded? 

\mbox{\Hypertarget{class_ogre_1_1_resource_aa31bef1bfaa87731622e56f11b548e27}\label{class_ogre_1_1_resource_aa31bef1bfaa87731622e56f11b548e27}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!unload@{unload}}
\index{unload@{unload}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{unload()}{unload()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::unload (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Unloads the resource; this is not permanent, the resource can be reloaded later if required. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_aa2afd5199e4fb4f9e071bcc3b5805d52}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a0617d9f04ca03bd25f4bde201e6ac13b}\label{class_ogre_1_1_resource_a0617d9f04ca03bd25f4bde201e6ac13b}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getSize@{getSize}}
\index{getSize@{getSize}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getSize()}{getSize()}}
{\footnotesize\ttfamily virtual size\+\_\+t Ogre\+::\+Resource\+::get\+Size (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Retrieves info about the size of the resource. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_cg_program_a65a86c6f911a8ac4b0c6d7366fb44f26}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ad501229700788396f71417c19f4990ee}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_ae229b1f58092109adef55bfc6f864d79}\label{class_ogre_1_1_resource_ae229b1f58092109adef55bfc6f864d79}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!touch@{touch}}
\index{touch@{touch}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{touch()}{touch()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::touch (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



\textquotesingle{}Touches\textquotesingle{} the resource to indicate it has been used. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_material_a340e9c6140a5b0f3467596712aa122a9}{Ogre\+::\+Material}}, \mbox{\hyperlink{class_ogre_1_1_cg_program_aa448e3603f9f6cad8cfe40818888227a}{Ogre\+::\+Cg\+Program}}, and \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a682949c30fe1718d4514b25df77774c2}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.



Referenced by Ogre\+::\+Material\+::touch().

\mbox{\Hypertarget{class_ogre_1_1_resource_a0646fba8aa0242c6b389d73f47ebe41b}\label{class_ogre_1_1_resource_a0646fba8aa0242c6b389d73f47ebe41b}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getName@{getName}}
\index{getName@{getName}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getName()}{getName()}}
{\footnotesize\ttfamily virtual const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Resource\+::get\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Gets resource name. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_skeleton_instance_a7a09701fea2d613b196932b1227dab47}{Ogre\+::\+Skeleton\+Instance}}.



Referenced by Ogre\+::\+Gpu\+Program\+Usage\+::get\+Program\+Name(), and Ogre\+Bites\+::\+Tray\+Manager\+::resource\+Load\+Started().

\mbox{\Hypertarget{class_ogre_1_1_resource_a2298551707debaf774d577e643ee856a}\label{class_ogre_1_1_resource_a2298551707debaf774d577e643ee856a}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getHandle@{getHandle}}
\index{getHandle@{getHandle}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getHandle()}{getHandle()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{namespace_ogre_aeb9f62c8e6c4239315286c63321722b2}{Resource\+Handle}} Ogre\+::\+Resource\+::get\+Handle (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_skeleton_instance_ae6e32b49e6ec3cc795fc74a41eb379ad}{Ogre\+::\+Skeleton\+Instance}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a0779c46df96234b6619a5f57fbb36078}\label{class_ogre_1_1_resource_a0779c46df96234b6619a5f57fbb36078}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isPrepared@{isPrepared}}
\index{isPrepared@{isPrepared}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isPrepared()}{isPrepared()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Resource\+::is\+Prepared (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns true if the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} has been prepared, false otherwise. 

\mbox{\Hypertarget{class_ogre_1_1_resource_a74138c0203835513613af73cdb08890d}\label{class_ogre_1_1_resource_a74138c0203835513613af73cdb08890d}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isLoaded@{isLoaded}}
\index{isLoaded@{isLoaded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isLoaded()}{isLoaded()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Resource\+::is\+Loaded (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns true if the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} has been loaded, false otherwise. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ac8bfe1f64106637c89ab949dc2d6c59d}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a3af26f716731b64850ea50cfa4d2edef}\label{class_ogre_1_1_resource_a3af26f716731b64850ea50cfa4d2edef}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isLoading@{isLoading}}
\index{isLoading@{isLoading}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isLoading()}{isLoading()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Resource\+::is\+Loading (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns whether the resource is currently in the process of background loading. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a9f416e82992b3803108a52bd9460cfdf}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a1e90ade99935ef70ec5b199243bf995b}\label{class_ogre_1_1_resource_a1e90ade99935ef70ec5b199243bf995b}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getLoadingState@{getLoadingState}}
\index{getLoadingState@{getLoadingState}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getLoadingState()}{getLoadingState()}}
{\footnotesize\ttfamily virtual \mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}{Loading\+State}} Ogre\+::\+Resource\+::get\+Loading\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns the current loading state. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_aa5cb2174294127eefbd4b6343c8107d8}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a60ce96525ac730a0f7b466ed287beef3}\label{class_ogre_1_1_resource_a60ce96525ac730a0f7b466ed287beef3}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!isBackgroundLoaded@{isBackgroundLoaded}}
\index{isBackgroundLoaded@{isBackgroundLoaded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{isBackgroundLoaded()}{isBackgroundLoaded()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Resource\+::is\+Background\+Loaded (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns whether this \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} has been earmarked for background loading. 

\begin{DoxyRemark}{Remarks}
This option only makes sense when you have built \mbox{\hyperlink{namespace_ogre}{Ogre}} with thread support (O\+G\+R\+E\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+S\+U\+P\+P\+O\+RT). If a resource has been marked for background loading, then it won\textquotesingle{}t load on demand like normal when \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}} is called. Instead, it will ignore request to \mbox{\hyperlink{class_ogre_1_1_resource_a699d1c851f494a8d5d23d23b695ceb47}{load()}} except if the caller indicates it is the background loader. \mbox{\hyperlink{class_ogre_1_1_any}{Any}} other users of this resource should check \mbox{\hyperlink{class_ogre_1_1_resource_a74138c0203835513613af73cdb08890d}{is\+Loaded()}}, and if that returns false, don\textquotesingle{}t use the resource and come back later. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a43c95218aea772dc8ff85b2dd65b8b26}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_ae0a0007de944eb3c2f933a372a752b35}\label{class_ogre_1_1_resource_ae0a0007de944eb3c2f933a372a752b35}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setBackgroundLoaded@{setBackgroundLoaded}}
\index{setBackgroundLoaded@{setBackgroundLoaded}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setBackgroundLoaded()}{setBackgroundLoaded()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::set\+Background\+Loaded (\begin{DoxyParamCaption}\item[{bool}]{bl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Tells the resource whether it is background loaded or not. 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_resource_a60ce96525ac730a0f7b466ed287beef3}{Resource\+::is\+Background\+Loaded}}. Note that calling this only defers the normal on-\/demand loading behaviour of a resource, it does not actually \mbox{\hyperlink{struct_ogre_1_1set}{set}} up a thread to make sure the resource gets loaded in the background. You should use Resource\+Background\+Loading\+Queue to manage the actual loading (which will call this method itself). 
\end{DoxySeeAlso}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_adba65f42995100300f2983555f7214cc}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a367f6fe60bb211cb4c32e3825ca67e4c}\label{class_ogre_1_1_resource_a367f6fe60bb211cb4c32e3825ca67e4c}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!escalateLoading@{escalateLoading}}
\index{escalateLoading@{escalateLoading}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{escalateLoading()}{escalateLoading()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::escalate\+Loading (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Escalates the loading of a background loaded resource. 

\begin{DoxyRemark}{Remarks}
If a resource is set to load in the background, but something needs it before it\textquotesingle{}s been loaded, there could be a problem. If the user of this resource really can\textquotesingle{}t wait, they can escalate the loading which basically pulls the loading into the current thread immediately. If the resource is already being loaded but just hasn\textquotesingle{}t quite finished then this method will simply wait until the background load is complete. 
\end{DoxyRemark}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a8b5b9e6fec77dfc8d7fde8eb8bf07dd9}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a5513ffce404b14cff72846318b018d32}\label{class_ogre_1_1_resource_a5513ffce404b14cff72846318b018d32}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!addListener@{addListener}}
\index{addListener@{addListener}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{addListener()}{addListener()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::add\+Listener (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_resource_1_1_listener}{Listener}} $\ast$}]{lis }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Register a listener on this resource. 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_resource_1_1_listener}{Resource\+::\+Listener}} 
\end{DoxySeeAlso}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_aedc4baffb56b8c6dce5bcfa80bc869fd}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a3c49142f739ba8fb56d6e7b3db235fb7}\label{class_ogre_1_1_resource_a3c49142f739ba8fb56d6e7b3db235fb7}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!removeListener@{removeListener}}
\index{removeListener@{removeListener}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{removeListener()}{removeListener()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::remove\+Listener (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_resource_1_1_listener}{Listener}} $\ast$}]{lis }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Remove a listener on this resource. 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_resource_1_1_listener}{Resource\+::\+Listener}} 
\end{DoxySeeAlso}


Reimplemented in \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_ae4bdd44833d44f794e420d87ea529346}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_a382919945c07a6a13136889ad3fbf578}\label{class_ogre_1_1_resource_a382919945c07a6a13136889ad3fbf578}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getGroup@{getGroup}}
\index{getGroup@{getGroup}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getGroup()}{getGroup()}}
{\footnotesize\ttfamily virtual const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Resource\+::get\+Group (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Gets the group which this resource is a member of. 



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_skeleton_instance_a99b3a28bfb04ed9c75952c663515fc35}{Ogre\+::\+Skeleton\+Instance}}.

\mbox{\Hypertarget{class_ogre_1_1_resource_aa5d6f3f7e73b77b233fc62b11f270e4d}\label{class_ogre_1_1_resource_aa5d6f3f7e73b77b233fc62b11f270e4d}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!changeGroupOwnership@{changeGroupOwnership}}
\index{changeGroupOwnership@{changeGroupOwnership}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{changeGroupOwnership()}{changeGroupOwnership()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::change\+Group\+Ownership (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{new\+Group }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Change the resource group ownership of a \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}}. 

\begin{DoxyRemark}{Remarks}
This method is generally reserved for internal use, although if you really know what you\textquotesingle{}re doing you can use it to move this resource from one group to another. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em new\+Group} & Name of the new group \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_resource_ab6e377a3964d566ea112fe63bf1d7678}\label{class_ogre_1_1_resource_ab6e377a3964d566ea112fe63bf1d7678}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getCreator@{getCreator}}
\index{getCreator@{getCreator}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getCreator()}{getCreator()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_resource_manager}{Resource\+Manager}}$\ast$ Ogre\+::\+Resource\+::get\+Creator (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Gets the manager which created this resource. 

\mbox{\Hypertarget{class_ogre_1_1_resource_a13423fa7944d7f2339e78b9de026c3be}\label{class_ogre_1_1_resource_a13423fa7944d7f2339e78b9de026c3be}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getOrigin@{getOrigin}}
\index{getOrigin@{getOrigin}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getOrigin()}{getOrigin()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}}\& Ogre\+::\+Resource\+::get\+Origin (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Get the origin of this resource, e.\+g. 

a script file name. \begin{DoxyRemark}{Remarks}
This property will only contain something if the creator of this resource chose to populate it. Script loaders are advised to populate it. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_resource_a7e248a1cca0662418d4ab3f63c2e7cf6}\label{class_ogre_1_1_resource_a7e248a1cca0662418d4ab3f63c2e7cf6}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!\_notifyOrigin@{\_notifyOrigin}}
\index{\_notifyOrigin@{\_notifyOrigin}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{\_notifyOrigin()}{\_notifyOrigin()}}
{\footnotesize\ttfamily void Ogre\+::\+Resource\+::\+\_\+notify\+Origin (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{origin }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Notify this resource of it\textquotesingle{}s origin. 

\mbox{\Hypertarget{class_ogre_1_1_resource_ade85e4d5579519e4117a84789c0ae8fd}\label{class_ogre_1_1_resource_ade85e4d5579519e4117a84789c0ae8fd}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getStateCount@{getStateCount}}
\index{getStateCount@{getStateCount}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getStateCount()}{getStateCount()}}
{\footnotesize\ttfamily virtual size\+\_\+t Ogre\+::\+Resource\+::get\+State\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Returns the number of times this resource has changed state, which generally means the number of times it has been loaded. 

Objects that build derived data based on the resource can check this value against a copy they kept last time they built this derived data, in order to know whether it needs rebuilding. This is a nice way of monitoring changes without having a tightly-\/bound callback. \mbox{\Hypertarget{class_ogre_1_1_resource_afcb4a61b965600a67ca2c2f060821db9}\label{class_ogre_1_1_resource_afcb4a61b965600a67ca2c2f060821db9}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!\_dirtyState@{\_dirtyState}}
\index{\_dirtyState@{\_dirtyState}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{\_dirtyState()}{\_dirtyState()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::\+\_\+dirty\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Manually mark the state of this resource as having been changed. 

\begin{DoxyRemark}{Remarks}
You only need to call this from outside if you explicitly want derived objects to think this object has changed. 
\end{DoxyRemark}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_resource_ade85e4d5579519e4117a84789c0ae8fd}{get\+State\+Count}}. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_resource_aa68664db6b8723dc198beef3d21d4ef5}\label{class_ogre_1_1_resource_aa68664db6b8723dc198beef3d21d4ef5}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!\_fireLoadingComplete@{\_fireLoadingComplete}}
\index{\_fireLoadingComplete@{\_fireLoadingComplete}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{\_fireLoadingComplete()}{\_fireLoadingComplete()}}
{\footnotesize\ttfamily void Ogre\+::\+Resource\+::\+\_\+fire\+Loading\+Complete (\begin{DoxyParamCaption}\item[{bool}]{was\+Background\+Loaded }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Firing of loading complete event. 

\begin{DoxyRemark}{Remarks}
You should call this from the thread that runs the main frame loop to avoid having to make the receivers of this event thread-\/safe. If you use \mbox{\hyperlink{namespace_ogre}{Ogre}}\textquotesingle{}s built in frame loop you don\textquotesingle{}t need to call this yourself. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em was\+Background\+Loaded} & Whether this was a background loaded event \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_resource_aaf63d096584ac7d97fe1d1b0226c9561}\label{class_ogre_1_1_resource_aaf63d096584ac7d97fe1d1b0226c9561}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!\_firePreparingComplete@{\_firePreparingComplete}}
\index{\_firePreparingComplete@{\_firePreparingComplete}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{\_firePreparingComplete()}{\_firePreparingComplete()}}
{\footnotesize\ttfamily void Ogre\+::\+Resource\+::\+\_\+fire\+Preparing\+Complete (\begin{DoxyParamCaption}\item[{bool}]{was\+Background\+Loaded }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Firing of preparing complete event. 

\begin{DoxyRemark}{Remarks}
You should call this from the thread that runs the main frame loop to avoid having to make the receivers of this event thread-\/safe. If you use \mbox{\hyperlink{namespace_ogre}{Ogre}}\textquotesingle{}s built in frame loop you don\textquotesingle{}t need to call this yourself. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em was\+Background\+Loaded} & Whether this was a background loaded event \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_resource_aaf3746937cd11864f53bc1c3b4437541}\label{class_ogre_1_1_resource_aaf3746937cd11864f53bc1c3b4437541}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!\_fireUnloadingComplete@{\_fireUnloadingComplete}}
\index{\_fireUnloadingComplete@{\_fireUnloadingComplete}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{\_fireUnloadingComplete()}{\_fireUnloadingComplete()}}
{\footnotesize\ttfamily void Ogre\+::\+Resource\+::\+\_\+fire\+Unloading\+Complete (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Firing of unloading complete event. 

\begin{DoxyRemark}{Remarks}
You should call this from the thread that runs the main frame loop to avoid having to make the receivers of this event thread-\/safe. If you use \mbox{\hyperlink{namespace_ogre}{Ogre}}\textquotesingle{}s built in frame loop you don\textquotesingle{}t need to call this yourself. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_string_interface_ae3e13925bde11db245f6c9bbf5031a93}\label{class_ogre_1_1_string_interface_ae3e13925bde11db245f6c9bbf5031a93}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getParamDictionary@{getParamDictionary}}
\index{getParamDictionary@{getParamDictionary}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getParamDictionary()}{getParamDictionary()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_param_dictionary}{Param\+Dictionary}}$\ast$ Ogre\+::\+String\+Interface\+::get\+Param\+Dictionary (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Retrieves the parameter dictionary for this class. 

\begin{DoxyRemark}{Remarks}
Only valid to call this after create\+Param\+Dictionary. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
Pointer to \mbox{\hyperlink{class_ogre_1_1_param_dictionary}{Param\+Dictionary}} shared by all instances of this class which you can add parameters to, retrieve parameters etc. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_string_interface_a0f55da0550a7e1ab70a1c8bf598a3e20}\label{class_ogre_1_1_string_interface_a0f55da0550a7e1ab70a1c8bf598a3e20}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getParamDictionary@{getParamDictionary}}
\index{getParamDictionary@{getParamDictionary}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getParamDictionary()}{getParamDictionary()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{class_ogre_1_1_param_dictionary}{Param\+Dictionary}}$\ast$ Ogre\+::\+String\+Interface\+::get\+Param\+Dictionary (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}

\mbox{\Hypertarget{class_ogre_1_1_string_interface_ad4b984bfbf148ddb3310b3d0ba8a9d5d}\label{class_ogre_1_1_string_interface_ad4b984bfbf148ddb3310b3d0ba8a9d5d}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getParameters@{getParameters}}
\index{getParameters@{getParameters}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getParameters()}{getParameters()}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group___general_ga1838c2b0619ade1f5e29767062212872}{Parameter\+List}}\& Ogre\+::\+String\+Interface\+::get\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Retrieves a list of parameters valid for this object. 

\begin{DoxyReturn}{Returns}
A reference to a static list of \mbox{\hyperlink{class_ogre_1_1_parameter_def}{Parameter\+Def}} objects. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_string_interface_a08d117bf25f011f96d81f1f4ecb25113}\label{class_ogre_1_1_string_interface_a08d117bf25f011f96d81f1f4ecb25113}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setParameter@{setParameter}}
\index{setParameter@{setParameter}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setParameter()}{setParameter()}}
{\footnotesize\ttfamily bool Ogre\+::\+String\+Interface\+::set\+Parameter (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{name,  }\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Generic parameter setting method. 

\begin{DoxyRemark}{Remarks}
Call this method with the name of a parameter and a string version of the value to set. The implementor will convert the string to a native type internally. If in doubt, check the parameter definition in the list returned from \mbox{\hyperlink{class_ogre_1_1_string_interface_ad4b984bfbf148ddb3310b3d0ba8a9d5d}{String\+Interface\+::get\+Parameters}}. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em name} & The name of the parameter to set \\
\hline
{\em value} & String value. Must be in the right format for the type specified in the parameter definition. See the \mbox{\hyperlink{class_ogre_1_1_string_converter}{String\+Converter}} class for more information. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true if set was successful, false otherwise (NB no exceptions thrown -\/ tolerant method) 
\end{DoxyReturn}


Referenced by Ogre\+::\+String\+Interface\+::copy\+Parameters\+To().

\mbox{\Hypertarget{class_ogre_1_1_string_interface_a9aac32f93bd149a34b809a57a9f01f8f}\label{class_ogre_1_1_string_interface_a9aac32f93bd149a34b809a57a9f01f8f}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!setParameterList@{setParameterList}}
\index{setParameterList@{setParameterList}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{setParameterList()}{setParameterList()}}
{\footnotesize\ttfamily void Ogre\+::\+String\+Interface\+::set\+Parameter\+List (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Name\+Value\+Pair\+List}} \&}]{param\+List }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Generic multiple parameter setting method. 

\begin{DoxyRemark}{Remarks}
Call this method with a list of name / value pairs to set. The implementor will convert the string to a native type internally. If in doubt, check the parameter definition in the list returned from \mbox{\hyperlink{class_ogre_1_1_string_interface_ad4b984bfbf148ddb3310b3d0ba8a9d5d}{String\+Interface\+::get\+Parameters}}. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em param\+List} & Name/value pair list \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_string_interface_a1d078304c38a9f85d483fc8ed0cdf1fe}\label{class_ogre_1_1_string_interface_a1d078304c38a9f85d483fc8ed0cdf1fe}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!getParameter@{getParameter}}
\index{getParameter@{getParameter}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{getParameter()}{getParameter()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} Ogre\+::\+String\+Interface\+::get\+Parameter (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{name }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Generic parameter retrieval method. 

\begin{DoxyRemark}{Remarks}
Call this method with the name of a parameter to retrieve a string-\/format value of the parameter in question. If in doubt, check the parameter definition in the list returned from get\+Parameters for the type of this parameter. If you like you can use \mbox{\hyperlink{class_ogre_1_1_string_converter}{String\+Converter}} to convert this string back into a native type. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em name} & The name of the parameter to get \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
String value of parameter, blank if not found 
\end{DoxyReturn}


References Ogre\+::\+Param\+Command\+::do\+Get().

\mbox{\Hypertarget{class_ogre_1_1_string_interface_aad68d8b18faad14e8286a67527094654}\label{class_ogre_1_1_string_interface_aad68d8b18faad14e8286a67527094654}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!copyParametersTo@{copyParametersTo}}
\index{copyParametersTo@{copyParametersTo}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{copyParametersTo()}{copyParametersTo()}}
{\footnotesize\ttfamily void Ogre\+::\+String\+Interface\+::copy\+Parameters\+To (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_string_interface}{String\+Interface}} $\ast$}]{dest }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Method for copying this object\textquotesingle{}s parameters to another object. 

\begin{DoxyRemark}{Remarks}
This method takes the values of all the object\textquotesingle{}s parameters and tries to set the same values on the destination object. This provides a completely type independent way to copy parameters to other objects. Note that because of the String manipulation involved, this should not be regarded as an efficient process and should be saved for times outside of the rendering loop. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
\mbox{\hyperlink{class_ogre_1_1_any}{Any}} unrecognised parameters will be ignored as with set\+Parameter method. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em dest} & Pointer to object to have it\textquotesingle{}s parameters set the same as this object. \\
\hline
\end{DoxyParams}


References Ogre\+::\+String\+Interface\+::set\+Parameter().

\mbox{\Hypertarget{class_ogre_1_1_string_interface_a1bea65fa2b3c2ac5a9f3be59b46a80e8}\label{class_ogre_1_1_string_interface_a1bea65fa2b3c2ac5a9f3be59b46a80e8}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!cleanupDictionary@{cleanupDictionary}}
\index{cleanupDictionary@{cleanupDictionary}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{cleanupDictionary()}{cleanupDictionary()}}
{\footnotesize\ttfamily static void Ogre\+::\+String\+Interface\+::cleanup\+Dictionary (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [inherited]}}



Cleans up the static \textquotesingle{}ms\+Dictionary\textquotesingle{} required to reset \mbox{\hyperlink{namespace_ogre}{Ogre}}, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the \mbox{\hyperlink{class_ogre_1_1_resource_manager}{Resource\+Manager}} implementers (e.\+g. 

\mbox{\hyperlink{class_ogre_1_1_material_manager}{Material\+Manager}}) initializes. 

\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_resource_a104d9db8bfcff1f37b29157bbe070f7a}\label{class_ogre_1_1_resource_a104d9db8bfcff1f37b29157bbe070f7a}} 
\index{Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}!OGRE\_AUTO\_MUTEX@{OGRE\_AUTO\_MUTEX}}
\index{OGRE\_AUTO\_MUTEX@{OGRE\_AUTO\_MUTEX}!Ogre::GLSL::GLSLGpuProgram@{Ogre::GLSL::GLSLGpuProgram}}
\doxysubsubsection{\texorpdfstring{OGRE\_AUTO\_MUTEX}{OGRE\_AUTO\_MUTEX}}
{\footnotesize\ttfamily Ogre\+::\+Resource\+::\+O\+G\+R\+E\+\_\+\+A\+U\+T\+O\+\_\+\+M\+U\+T\+EX\hspace{0.3cm}{\ttfamily [inherited]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_g_l_s_l_gpu_program_8h}{Ogre\+G\+L\+S\+L\+Gpu\+Program.\+h}}\end{DoxyCompactItemize}
