\hypertarget{class_ogre_1_1_resource}{}\doxysection{Ogre\+::Resource Class Reference}
\label{class_ogre_1_1_resource}\index{Ogre::Resource@{Ogre::Resource}}


Abstract class representing a loadable resource.  




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



Inheritance diagram for Ogre\+::Resource\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_resource__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{class_ogre_1_1_resource_1_1_listener}{Listener}}
\end{DoxyCompactItemize}
\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_resource_a03c52d5285092f0a5d21ad83a0643814}{Resource}} (\mbox{\hyperlink{class_ogre_1_1_resource_manager}{Resource\+Manager}} $\ast$creator, const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&name, \mbox{\hyperlink{namespace_ogre_aeb9f62c8e6c4239315286c63321722b2}{Resource\+Handle}} handle, const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&group, bool is\+Manual=false, \mbox{\hyperlink{class_ogre_1_1_manual_resource_loader}{Manual\+Resource\+Loader}} $\ast$loader=0)
\begin{DoxyCompactList}\small\item\em Standard constructor. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{class_ogre_1_1_resource_a089562812828920fe1d1a371acf393e7}{$\sim$\+Resource}} ()
\begin{DoxyCompactList}\small\item\em Virtual destructor. \end{DoxyCompactList}\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 
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 
virtual size\+\_\+t \mbox{\hyperlink{class_ogre_1_1_resource_a51f839b7f9f1f09a42cdb9bc8ab94813}{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 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 
\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 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 \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 
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 
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 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 
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 
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_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 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_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 
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_resource_ae229b1f58092109adef55bfc6f864d79}{touch}} (void)
\begin{DoxyCompactList}\small\item\em \textquotesingle{}Touches\textquotesingle{} the resource to indicate it has been used. \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}\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}
Abstract class representing a loadable resource. 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{Resource-Management}{Resource Management}}
\end{DoxySeeAlso}
Subclasses must implement\+: 
\begin{DoxyEnumerate}
\item A constructor, overriding the same parameters as the constructor defined by this class. Subclasses are not allowed to define constructors with other parameters; other settings must be settable through accessor methods before loading. 
\item The load\+Impl() and unload\+Impl() methods -\/ m\+Size must be set after load\+Impl() 
\item \mbox{\hyperlink{class_ogre_1_1_string_interface}{String\+Interface}} \mbox{\hyperlink{class_ogre_1_1_param_command}{Param\+Command}} and \mbox{\hyperlink{class_ogre_1_1_param_dictionary}{Param\+Dictionary}} setups in order to allow setting of core parameters (prior to load) through a generic interface. 
\end{DoxyEnumerate}

\doxysubsection{Member Enumeration Documentation}
\mbox{\Hypertarget{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}\label{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}} 
\index{Ogre::Resource@{Ogre::Resource}!LoadingState@{LoadingState}}
\index{LoadingState@{LoadingState}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{LoadingState}{LoadingState}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_ogre_1_1_resource_a07e619aa09d3bc6789a6667cb4fc572c}{Ogre\+::\+Resource\+::\+Loading\+State}}}



Enum identifying the loading state of the resource. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LOADSTATE\_UNLOADED@{LOADSTATE\_UNLOADED}!Ogre::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}!LoadingFlags@{LoadingFlags}}
\index{LoadingFlags@{LoadingFlags}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{LoadingFlags}{LoadingFlags}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{class_ogre_1_1_resource_a1aa750a4b994f2b1066220936cdfdb94}{Ogre\+::\+Resource\+::\+Loading\+Flags}}}



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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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::Resource@{Ogre::Resource}}\index{Ogre::Resource@{Ogre::Resource}!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_resource_a03c52d5285092f0a5d21ad83a0643814}\label{class_ogre_1_1_resource_a03c52d5285092f0a5d21ad83a0643814}} 
\index{Ogre::Resource@{Ogre::Resource}!Resource@{Resource}}
\index{Resource@{Resource}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{Resource()}{Resource()}}
{\footnotesize\ttfamily Ogre\+::\+Resource\+::\+Resource (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_resource_manager}{Resource\+Manager}} $\ast$}]{creator,  }\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{name,  }\item[{\mbox{\hyperlink{namespace_ogre_aeb9f62c8e6c4239315286c63321722b2}{Resource\+Handle}}}]{handle,  }\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{group,  }\item[{bool}]{is\+Manual = {\ttfamily false},  }\item[{\mbox{\hyperlink{class_ogre_1_1_manual_resource_loader}{Manual\+Resource\+Loader}} $\ast$}]{loader = {\ttfamily 0} }\end{DoxyParamCaption})}



Standard constructor. 


\begin{DoxyParams}{Parameters}
{\em creator} & Pointer to the \mbox{\hyperlink{class_ogre_1_1_resource_manager}{Resource\+Manager}} that is creating this resource \\
\hline
{\em name} & The unique name of the resource \\
\hline
{\em handle} & Handle to the resource \\
\hline
{\em group} & The name of the resource group to which this resource belongs \\
\hline
{\em is\+Manual} & Is this resource manually loaded? If so, you should really populate the loader parameter in order that the load process can call the loader back when loading is required. \\
\hline
{\em loader} & Pointer to a \mbox{\hyperlink{class_ogre_1_1_manual_resource_loader}{Manual\+Resource\+Loader}} implementation which will be called when the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} wishes to load (should be supplied if you set is\+Manual to true). You can in fact leave this parameter null if you wish, but the \mbox{\hyperlink{class_ogre_1_1_resource}{Resource}} will never be able to reload if anything ever causes it to unload. Therefore provision of a proper \mbox{\hyperlink{class_ogre_1_1_manual_resource_loader}{Manual\+Resource\+Loader}} instance is strongly recommended. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_resource_a089562812828920fe1d1a371acf393e7}\label{class_ogre_1_1_resource_a089562812828920fe1d1a371acf393e7}} 
\index{Ogre::Resource@{Ogre::Resource}!````~Resource@{$\sim$Resource}}
\index{````~Resource@{$\sim$Resource}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{$\sim$Resource()}{~Resource()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Resource\+::$\sim$\+Resource (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Virtual destructor. 

Shouldn\textquotesingle{}t need to be overloaded, as the resource deallocation code should reside in \mbox{\hyperlink{class_ogre_1_1_resource_aa31bef1bfaa87731622e56f11b548e27}{unload()}} \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{class_ogre_1_1_resource_aa31bef1bfaa87731622e56f11b548e27}{Resource\+::unload()}} 
\end{DoxySeeAlso}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}\label{class_ogre_1_1_resource_a350b287fa3e83a389221274f68760008}} 
\index{Ogre::Resource@{Ogre::Resource}!prepare@{prepare}}
\index{prepare@{prepare}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!load@{load}}
\index{load@{load}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!reload@{reload}}
\index{reload@{reload}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!isReloadable@{isReloadable}}
\index{isReloadable@{isReloadable}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!isManuallyLoaded@{isManuallyLoaded}}
\index{isManuallyLoaded@{isManuallyLoaded}!Ogre::Resource@{Ogre::Resource}}
\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]}}



Is this resource manually loaded? 

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



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::Resource@{Ogre::Resource}!getSize@{getSize}}
\index{getSize@{getSize}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!touch@{touch}}
\index{touch@{touch}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{touch()}{touch()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::touch (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\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::Resource@{Ogre::Resource}!getName@{getName}}
\index{getName@{getName}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!getHandle@{getHandle}}
\index{getHandle@{getHandle}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!isPrepared@{isPrepared}}
\index{isPrepared@{isPrepared}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!isLoaded@{isLoaded}}
\index{isLoaded@{isLoaded}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!isLoading@{isLoading}}
\index{isLoading@{isLoading}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{isLoading()}{isLoading()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Resource\+::is\+Loading (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



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::Resource@{Ogre::Resource}!getLoadingState@{getLoadingState}}
\index{getLoadingState@{getLoadingState}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!isBackgroundLoaded@{isBackgroundLoaded}}
\index{isBackgroundLoaded@{isBackgroundLoaded}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!setBackgroundLoaded@{setBackgroundLoaded}}
\index{setBackgroundLoaded@{setBackgroundLoaded}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!escalateLoading@{escalateLoading}}
\index{escalateLoading@{escalateLoading}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{escalateLoading()}{escalateLoading()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::escalate\+Loading (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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::Resource@{Ogre::Resource}!addListener@{addListener}}
\index{addListener@{addListener}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!removeListener@{removeListener}}
\index{removeListener@{removeListener}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!getGroup@{getGroup}}
\index{getGroup@{getGroup}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!changeGroupOwnership@{changeGroupOwnership}}
\index{changeGroupOwnership@{changeGroupOwnership}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!getCreator@{getCreator}}
\index{getCreator@{getCreator}!Ogre::Resource@{Ogre::Resource}}
\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]}}



Gets the manager which created this resource. 

\mbox{\Hypertarget{class_ogre_1_1_resource_a13423fa7944d7f2339e78b9de026c3be}\label{class_ogre_1_1_resource_a13423fa7944d7f2339e78b9de026c3be}} 
\index{Ogre::Resource@{Ogre::Resource}!getOrigin@{getOrigin}}
\index{getOrigin@{getOrigin}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!\_notifyOrigin@{\_notifyOrigin}}
\index{\_notifyOrigin@{\_notifyOrigin}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!getStateCount@{getStateCount}}
\index{getStateCount@{getStateCount}!Ogre::Resource@{Ogre::Resource}}
\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]}}



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::Resource@{Ogre::Resource}!\_dirtyState@{\_dirtyState}}
\index{\_dirtyState@{\_dirtyState}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{\_dirtyState()}{\_dirtyState()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Resource\+::\+\_\+dirty\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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::Resource@{Ogre::Resource}!\_fireLoadingComplete@{\_fireLoadingComplete}}
\index{\_fireLoadingComplete@{\_fireLoadingComplete}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{\_fireLoadingComplete()}{\_fireLoadingComplete()}}
{\footnotesize\ttfamily void Ogre\+::\+Resource\+::\+\_\+fire\+Loading\+Complete (\begin{DoxyParamCaption}\item[{bool}]{was\+Background\+Loaded }\end{DoxyParamCaption})}



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::Resource@{Ogre::Resource}!\_firePreparingComplete@{\_firePreparingComplete}}
\index{\_firePreparingComplete@{\_firePreparingComplete}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{\_firePreparingComplete()}{\_firePreparingComplete()}}
{\footnotesize\ttfamily void Ogre\+::\+Resource\+::\+\_\+fire\+Preparing\+Complete (\begin{DoxyParamCaption}\item[{bool}]{was\+Background\+Loaded }\end{DoxyParamCaption})}



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::Resource@{Ogre::Resource}!\_fireUnloadingComplete@{\_fireUnloadingComplete}}
\index{\_fireUnloadingComplete@{\_fireUnloadingComplete}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{\_fireUnloadingComplete()}{\_fireUnloadingComplete()}}
{\footnotesize\ttfamily void Ogre\+::\+Resource\+::\+\_\+fire\+Unloading\+Complete (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



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_resource_a51f839b7f9f1f09a42cdb9bc8ab94813}\label{class_ogre_1_1_resource_a51f839b7f9f1f09a42cdb9bc8ab94813}} 
\index{Ogre::Resource@{Ogre::Resource}!calculateSize@{calculateSize}}
\index{calculateSize@{calculateSize}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{calculateSize()}{calculateSize()}}
{\footnotesize\ttfamily virtual size\+\_\+t Ogre\+::\+Resource\+::calculate\+Size (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



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



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_gpu_program_af9de444ed073763581b210652aec30f4}{Ogre\+::\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_high_level_gpu_program_a62ecd906ba236975ddec42c62d0b4e2b}{Ogre\+::\+High\+Level\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_e_s_program_a38b1e199aa035d123c049fe797f36db4}{Ogre\+::\+G\+L\+S\+L\+E\+S\+Program}}, \mbox{\hyperlink{class_ogre_1_1_unified_high_level_gpu_program_a81979765a1b47df4f80025b431d80ae7}{Ogre\+::\+Unified\+High\+Level\+Gpu\+Program}}, \mbox{\hyperlink{class_ogre_1_1_g_l_s_l_shader_a15f468c1bc6087f4050a78f64e173686}{Ogre\+::\+G\+L\+S\+L\+Shader}}, and \mbox{\hyperlink{class_ogre_1_1_g_l_gpu_program_ab949553a83a4ec3f5fa232a3ded4e44b}{Ogre\+::\+G\+L\+Gpu\+Program}}.

\mbox{\Hypertarget{class_ogre_1_1_string_interface_ae3e13925bde11db245f6c9bbf5031a93}\label{class_ogre_1_1_string_interface_ae3e13925bde11db245f6c9bbf5031a93}} 
\index{Ogre::Resource@{Ogre::Resource}!getParamDictionary@{getParamDictionary}}
\index{getParamDictionary@{getParamDictionary}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!getParamDictionary@{getParamDictionary}}
\index{getParamDictionary@{getParamDictionary}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!getParameters@{getParameters}}
\index{getParameters@{getParameters}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!setParameter@{setParameter}}
\index{setParameter@{setParameter}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!setParameterList@{setParameterList}}
\index{setParameterList@{setParameterList}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!getParameter@{getParameter}}
\index{getParameter@{getParameter}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!copyParametersTo@{copyParametersTo}}
\index{copyParametersTo@{copyParametersTo}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!cleanupDictionary@{cleanupDictionary}}
\index{cleanupDictionary@{cleanupDictionary}!Ogre::Resource@{Ogre::Resource}}
\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::Resource@{Ogre::Resource}!OGRE\_AUTO\_MUTEX@{OGRE\_AUTO\_MUTEX}}
\index{OGRE\_AUTO\_MUTEX@{OGRE\_AUTO\_MUTEX}!Ogre::Resource@{Ogre::Resource}}
\doxysubsubsection{\texorpdfstring{OGRE\_AUTO\_MUTEX}{OGRE\_AUTO\_MUTEX}}
{\footnotesize\ttfamily Ogre\+::\+Resource\+::\+O\+G\+R\+E\+\_\+\+A\+U\+T\+O\+\_\+\+M\+U\+T\+EX}



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