\hypertarget{class_ogre_1_1_profiler}{}\doxysection{Ogre\+::Profiler Class Reference}
\label{class_ogre_1_1_profiler}\index{Ogre::Profiler@{Ogre::Profiler}}


The profiler allows you to measure the performance of your code.  




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



Inheritance diagram for Ogre\+::Profiler\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=322pt]{class_ogre_1_1_profiler__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_profiler_aa35c96681ded2faf493defa432ce6a04}{Profiler}} ()
\item 
\mbox{\hyperlink{class_ogre_1_1_profiler_a45e1f8ac11468a9322148be4e22e85de}{$\sim$\+Profiler}} ()
\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a01413a02e5af48736c96284ee973cfd2}{add\+Listener}} (\mbox{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener}} $\ast$listener)
\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a5800006ecf74193bb6683428542b60b5}{begin\+G\+P\+U\+Event}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&event)
\begin{DoxyCompactList}\small\item\em Mark the beginning of a G\+PU event group. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a9b3e71a70bdd2285cebcbd2764fad0e6}{begin\+Profile}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&profile\+Name, \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} group\+ID=(\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}) \mbox{\hyperlink{group___general_gga22a20f11c008a0d9b677fc2635922cfea721f30014dd7fbcd0bfb075ab74ab7d3}{O\+G\+R\+E\+P\+R\+O\+F\+\_\+\+U\+S\+E\+R\+\_\+\+D\+E\+F\+A\+U\+LT}})
\begin{DoxyCompactList}\small\item\em Begins a profile. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a144fc3944f41b1198a44590beda4ce3f}{disable\+Profile}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&profile\+Name)
\begin{DoxyCompactList}\small\item\em Disables a profile. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a52e2f0d3530febbbf7199173d91ad4e2}{enable\+Profile}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&profile\+Name)
\begin{DoxyCompactList}\small\item\em Enables a previously disabled profile. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_ace158cd7cd820a3176755ce3b84601c3}{end\+G\+P\+U\+Event}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&event)
\begin{DoxyCompactList}\small\item\em Mark the end of a G\+PU event group. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_abe681ebc8892d4475940301a0319fe83}{end\+Profile}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&profile\+Name, \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} group\+ID=(\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}) \mbox{\hyperlink{group___general_gga22a20f11c008a0d9b677fc2635922cfea721f30014dd7fbcd0bfb075ab74ab7d3}{O\+G\+R\+E\+P\+R\+O\+F\+\_\+\+U\+S\+E\+R\+\_\+\+D\+E\+F\+A\+U\+LT}})
\begin{DoxyCompactList}\small\item\em Ends a profile. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_profiler_a43b5da14797ed9b7e48da4638207ca84}{get\+Enabled}} () const
\begin{DoxyCompactList}\small\item\em Gets whether this profiler is enabled. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} \mbox{\hyperlink{class_ogre_1_1_profiler_a8e0b586d75f5a8108178fcd75342aa7e}{get\+Profile\+Group\+Mask}} () const
\begin{DoxyCompactList}\small\item\em Get the mask which all profiles must pass to be enabled. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_timer}{Timer}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_profiler_a135db4d26db8d359fb77d20189379bd7}{get\+Timer}} ()
\begin{DoxyCompactList}\small\item\em Retrieves the timer for the profiler. \end{DoxyCompactList}\item 
\mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}} \mbox{\hyperlink{class_ogre_1_1_profiler_af2ee3ac48da6f0ae5b39b80e7f99ef56}{get\+Update\+Display\+Frequency}} () const
\begin{DoxyCompactList}\small\item\em Gets the frequency that the \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} display is updated. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a456a0f133ccea3eb515626edd22963ec}{log\+Results}} ()
\begin{DoxyCompactList}\small\item\em Outputs current profile statistics to the log. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a190afc6d10a430fbf37d2b4297e59507}{mark\+G\+P\+U\+Event}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&event)
\begin{DoxyCompactList}\small\item\em Mark a specific, ungrouped, G\+PU event. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a78dcc907495fd0cb3d58520b1f2975d8}{remove\+Listener}} (\mbox{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener}} $\ast$listener)
\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_adf2570f07addb553a852a003c97fdc12}{reset}} ()
\begin{DoxyCompactList}\small\item\em Clears the profiler statistics. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a91c40e21a3fc96003504ea21fec80d77}{set\+Enabled}} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether this profiler is enabled. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_ad19bcccfdf69b21b9953488cb58de764}{set\+Profile\+Group\+Mask}} (\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} mask)
\begin{DoxyCompactList}\small\item\em Set the mask which all profiles must pass to be enabled. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_a53a2d2681a3995555df6d789c5596381}{set\+Timer}} (\mbox{\hyperlink{class_ogre_1_1_timer}{Timer}} $\ast$t)
\begin{DoxyCompactList}\small\item\em Sets the timer for the profiler. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{class_ogre_1_1_profiler_ac29d425e0f0b531f2c7f643907c9402d}{set\+Update\+Display\+Frequency}} (\mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}} freq)
\begin{DoxyCompactList}\small\item\em Sets the \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} so the display of results are updated every n frames. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_profiler_adfd868a7f9213baece5687bd36e23279}{watch\+For\+Limit}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&profile\+Name, \mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}} limit, bool greater\+Than=true)
\begin{DoxyCompactList}\small\item\em Returns true if the specified profile goes over or under the given limit frame time. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_profiler_afc737d10ba6b5732df9a538a196ee3e6}{watch\+For\+Max}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&profile\+Name)
\begin{DoxyCompactList}\small\item\em Returns true if the specified profile reaches a new frame time maximum. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{class_ogre_1_1_profiler_ad37efd3a99cf736a0424fd0c1c92efb4}{watch\+For\+Min}} (const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&profile\+Name)
\begin{DoxyCompactList}\small\item\em Returns true if the specified profile reaches a new frame time minimum. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} \& \mbox{\hyperlink{class_ogre_1_1_profiler_aaa925dad8392fe140d017a5766f3cd49}{get\+Singleton}} (void)
\begin{DoxyCompactList}\small\item\em Get the singleton instance. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_profiler_a01ec79ba4ba7a539bfd742e120c1ff21}{get\+Singleton\+Ptr}} (void)
\begin{DoxyCompactList}\small\item\em Get the singleton instance. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{class_ogre_1_1_profiler_a72f5610e6fffc382e660c3a301d4a5d1}{Profile\+Instance}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The profiler allows you to measure the performance of your code. 

\begin{DoxyRemark}{Remarks}
Do not create profiles directly from this unless you want a profile to last outside of its scope (i.\+e. the main game loop). For most cases, use the macro \mbox{\hyperlink{_ogre_profiler_8h_a1654899e6cfdec9f0972a45f3fa3fee7}{Ogre\+Profile(name)}} and braces to limit the scope. You must enable the \mbox{\hyperlink{class_ogre_1_1_profile}{Profile}} before you can used it with set\+Enabled(true). If you want to disable profiling in \mbox{\hyperlink{namespace_ogre}{Ogre}}, simply set the macro O\+G\+R\+E\+\_\+\+P\+R\+O\+F\+I\+L\+I\+NG to 0. 
\end{DoxyRemark}
\begin{DoxyAuthor}{Author}
Amit Mathew (amitmathew (at) yahoo (dot) com) 
\end{DoxyAuthor}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_profiler_aa35c96681ded2faf493defa432ce6a04}\label{class_ogre_1_1_profiler_aa35c96681ded2faf493defa432ce6a04}} 
\index{Ogre::Profiler@{Ogre::Profiler}!Profiler@{Profiler}}
\index{Profiler@{Profiler}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{Profiler()}{Profiler()}}
{\footnotesize\ttfamily Ogre\+::\+Profiler\+::\+Profiler (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_profiler_a45e1f8ac11468a9322148be4e22e85de}\label{class_ogre_1_1_profiler_a45e1f8ac11468a9322148be4e22e85de}} 
\index{Ogre::Profiler@{Ogre::Profiler}!````~Profiler@{$\sim$Profiler}}
\index{````~Profiler@{$\sim$Profiler}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{$\sim$Profiler()}{~Profiler()}}
{\footnotesize\ttfamily Ogre\+::\+Profiler\+::$\sim$\+Profiler (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a53a2d2681a3995555df6d789c5596381}\label{class_ogre_1_1_profiler_a53a2d2681a3995555df6d789c5596381}} 
\index{Ogre::Profiler@{Ogre::Profiler}!setTimer@{setTimer}}
\index{setTimer@{setTimer}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{setTimer()}{setTimer()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::set\+Timer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_timer}{Timer}} $\ast$}]{t }\end{DoxyParamCaption})}



Sets the timer for the profiler. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_a135db4d26db8d359fb77d20189379bd7}\label{class_ogre_1_1_profiler_a135db4d26db8d359fb77d20189379bd7}} 
\index{Ogre::Profiler@{Ogre::Profiler}!getTimer@{getTimer}}
\index{getTimer@{getTimer}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{getTimer()}{getTimer()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_timer}{Timer}}$\ast$ Ogre\+::\+Profiler\+::get\+Timer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Retrieves the timer for the profiler. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_a9b3e71a70bdd2285cebcbd2764fad0e6}\label{class_ogre_1_1_profiler_a9b3e71a70bdd2285cebcbd2764fad0e6}} 
\index{Ogre::Profiler@{Ogre::Profiler}!beginProfile@{beginProfile}}
\index{beginProfile@{beginProfile}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{beginProfile()}{beginProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::begin\+Profile (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{profile\+Name,  }\item[{\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}}]{group\+ID = {\ttfamily (\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}})~\mbox{\hyperlink{group___general_gga22a20f11c008a0d9b677fc2635922cfea721f30014dd7fbcd0bfb075ab74ab7d3}{O\+G\+R\+E\+P\+R\+O\+F\+\_\+\+U\+S\+E\+R\+\_\+\+D\+E\+F\+A\+U\+LT}}} }\end{DoxyParamCaption})}



Begins a profile. 

\begin{DoxyRemark}{Remarks}
Use the macro \mbox{\hyperlink{_ogre_profiler_8h_af9d7ab83c5a5d7de7579eebe9d27e53d}{Ogre\+Profile\+Begin(name)}} instead of calling this directly so that profiling can be ignored in the release version of your app. 

You only use the macro (or this) if you want a profile to last outside of its scope (i.\+e. the main game loop). If you use this function, make sure you use a corresponding \mbox{\hyperlink{_ogre_profiler_8h_a292ec22b5d851ef26fa9d7685c18b1f5}{Ogre\+Profile\+End(name)}}. Usually you would use the macro \mbox{\hyperlink{_ogre_profiler_8h_a1654899e6cfdec9f0972a45f3fa3fee7}{Ogre\+Profile(name)}}. This function will be ignored for a profile that has been disabled or if the profiler is disabled. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em profile\+Name} & Must be unique and must not be an empty string \\
\hline
{\em group\+ID} & A profile group identifier, which can allow you to mask profiles \\
\hline
\end{DoxyParams}


Referenced by Ogre\+::\+Profile\+::\+Profile().

\mbox{\Hypertarget{class_ogre_1_1_profiler_abe681ebc8892d4475940301a0319fe83}\label{class_ogre_1_1_profiler_abe681ebc8892d4475940301a0319fe83}} 
\index{Ogre::Profiler@{Ogre::Profiler}!endProfile@{endProfile}}
\index{endProfile@{endProfile}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{endProfile()}{endProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::end\+Profile (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{profile\+Name,  }\item[{\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}}]{group\+ID = {\ttfamily (\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}})~\mbox{\hyperlink{group___general_gga22a20f11c008a0d9b677fc2635922cfea721f30014dd7fbcd0bfb075ab74ab7d3}{O\+G\+R\+E\+P\+R\+O\+F\+\_\+\+U\+S\+E\+R\+\_\+\+D\+E\+F\+A\+U\+LT}}} }\end{DoxyParamCaption})}



Ends a profile. 

\begin{DoxyRemark}{Remarks}
Use the macro \mbox{\hyperlink{_ogre_profiler_8h_a292ec22b5d851ef26fa9d7685c18b1f5}{Ogre\+Profile\+End(name)}} instead of calling this directly so that profiling can be ignored in the release version of your app. 

This function is usually not called directly unless you want a profile to last outside of its scope. In most cases, using the macro \mbox{\hyperlink{_ogre_profiler_8h_a1654899e6cfdec9f0972a45f3fa3fee7}{Ogre\+Profile(name)}} which will call this function automatically when it goes out of scope. Make sure the name of this profile matches its corresponding begin\+Profile name. This function will be ignored for a profile that has been disabled or if the profiler is disabled. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em profile\+Name} & Must be unique and must not be an empty string \\
\hline
{\em group\+ID} & A profile group identifier, which can allow you to mask profiles \\
\hline
\end{DoxyParams}


Referenced by Ogre\+::\+Profile\+::$\sim$\+Profile().

\mbox{\Hypertarget{class_ogre_1_1_profiler_a5800006ecf74193bb6683428542b60b5}\label{class_ogre_1_1_profiler_a5800006ecf74193bb6683428542b60b5}} 
\index{Ogre::Profiler@{Ogre::Profiler}!beginGPUEvent@{beginGPUEvent}}
\index{beginGPUEvent@{beginGPUEvent}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{beginGPUEvent()}{beginGPUEvent()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::begin\+G\+P\+U\+Event (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{event }\end{DoxyParamCaption})}



Mark the beginning of a G\+PU event group. 

\begin{DoxyRemark}{Remarks}
Can be safely called in the middle of the profile. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_ace158cd7cd820a3176755ce3b84601c3}\label{class_ogre_1_1_profiler_ace158cd7cd820a3176755ce3b84601c3}} 
\index{Ogre::Profiler@{Ogre::Profiler}!endGPUEvent@{endGPUEvent}}
\index{endGPUEvent@{endGPUEvent}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{endGPUEvent()}{endGPUEvent()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::end\+G\+P\+U\+Event (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{event }\end{DoxyParamCaption})}



Mark the end of a G\+PU event group. 

\begin{DoxyRemark}{Remarks}
Can be safely called in the middle of the profile. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a190afc6d10a430fbf37d2b4297e59507}\label{class_ogre_1_1_profiler_a190afc6d10a430fbf37d2b4297e59507}} 
\index{Ogre::Profiler@{Ogre::Profiler}!markGPUEvent@{markGPUEvent}}
\index{markGPUEvent@{markGPUEvent}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{markGPUEvent()}{markGPUEvent()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::mark\+G\+P\+U\+Event (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{event }\end{DoxyParamCaption})}



Mark a specific, ungrouped, G\+PU event. 

\begin{DoxyRemark}{Remarks}
Can be safely called in the middle of the profile. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a91c40e21a3fc96003504ea21fec80d77}\label{class_ogre_1_1_profiler_a91c40e21a3fc96003504ea21fec80d77}} 
\index{Ogre::Profiler@{Ogre::Profiler}!setEnabled@{setEnabled}}
\index{setEnabled@{setEnabled}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{setEnabled()}{setEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::set\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether this profiler is enabled. 

Only takes effect after the the frame has ended. \begin{DoxyRemark}{Remarks}
When this is called the first time with the parameter true, it initializes the G\+UI for the \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a43b5da14797ed9b7e48da4638207ca84}\label{class_ogre_1_1_profiler_a43b5da14797ed9b7e48da4638207ca84}} 
\index{Ogre::Profiler@{Ogre::Profiler}!getEnabled@{getEnabled}}
\index{getEnabled@{getEnabled}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{getEnabled()}{getEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Profiler\+::get\+Enabled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Gets whether this profiler is enabled. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_a52e2f0d3530febbbf7199173d91ad4e2}\label{class_ogre_1_1_profiler_a52e2f0d3530febbbf7199173d91ad4e2}} 
\index{Ogre::Profiler@{Ogre::Profiler}!enableProfile@{enableProfile}}
\index{enableProfile@{enableProfile}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{enableProfile()}{enableProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::enable\+Profile (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{profile\+Name }\end{DoxyParamCaption})}



Enables a previously disabled profile. 

\begin{DoxyRemark}{Remarks}
Can be safely called in the middle of the profile. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a144fc3944f41b1198a44590beda4ce3f}\label{class_ogre_1_1_profiler_a144fc3944f41b1198a44590beda4ce3f}} 
\index{Ogre::Profiler@{Ogre::Profiler}!disableProfile@{disableProfile}}
\index{disableProfile@{disableProfile}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{disableProfile()}{disableProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::disable\+Profile (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{profile\+Name }\end{DoxyParamCaption})}



Disables a profile. 

\begin{DoxyRemark}{Remarks}
Can be safely called in the middle of the profile. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_ad19bcccfdf69b21b9953488cb58de764}\label{class_ogre_1_1_profiler_ad19bcccfdf69b21b9953488cb58de764}} 
\index{Ogre::Profiler@{Ogre::Profiler}!setProfileGroupMask@{setProfileGroupMask}}
\index{setProfileGroupMask@{setProfileGroupMask}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{setProfileGroupMask()}{setProfileGroupMask()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::set\+Profile\+Group\+Mask (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}}]{mask }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the mask which all profiles must pass to be enabled. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_a8e0b586d75f5a8108178fcd75342aa7e}\label{class_ogre_1_1_profiler_a8e0b586d75f5a8108178fcd75342aa7e}} 
\index{Ogre::Profiler@{Ogre::Profiler}!getProfileGroupMask@{getProfileGroupMask}}
\index{getProfileGroupMask@{getProfileGroupMask}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{getProfileGroupMask()}{getProfileGroupMask()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} Ogre\+::\+Profiler\+::get\+Profile\+Group\+Mask (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the mask which all profiles must pass to be enabled. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_afc737d10ba6b5732df9a538a196ee3e6}\label{class_ogre_1_1_profiler_afc737d10ba6b5732df9a538a196ee3e6}} 
\index{Ogre::Profiler@{Ogre::Profiler}!watchForMax@{watchForMax}}
\index{watchForMax@{watchForMax}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{watchForMax()}{watchForMax()}}
{\footnotesize\ttfamily bool Ogre\+::\+Profiler\+::watch\+For\+Max (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{profile\+Name }\end{DoxyParamCaption})}



Returns true if the specified profile reaches a new frame time maximum. 

\begin{DoxyRemark}{Remarks}
If this is called during a frame, it will be reading the results from the previous frame. Therefore, it is best to use this after the frame has ended. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_ad37efd3a99cf736a0424fd0c1c92efb4}\label{class_ogre_1_1_profiler_ad37efd3a99cf736a0424fd0c1c92efb4}} 
\index{Ogre::Profiler@{Ogre::Profiler}!watchForMin@{watchForMin}}
\index{watchForMin@{watchForMin}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{watchForMin()}{watchForMin()}}
{\footnotesize\ttfamily bool Ogre\+::\+Profiler\+::watch\+For\+Min (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{profile\+Name }\end{DoxyParamCaption})}



Returns true if the specified profile reaches a new frame time minimum. 

\begin{DoxyRemark}{Remarks}
If this is called during a frame, it will be reading the results from the previous frame. Therefore, it is best to use this after the frame has ended. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_profiler_adfd868a7f9213baece5687bd36e23279}\label{class_ogre_1_1_profiler_adfd868a7f9213baece5687bd36e23279}} 
\index{Ogre::Profiler@{Ogre::Profiler}!watchForLimit@{watchForLimit}}
\index{watchForLimit@{watchForLimit}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{watchForLimit()}{watchForLimit()}}
{\footnotesize\ttfamily bool Ogre\+::\+Profiler\+::watch\+For\+Limit (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{profile\+Name,  }\item[{\mbox{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}}]{limit,  }\item[{bool}]{greater\+Than = {\ttfamily true} }\end{DoxyParamCaption})}



Returns true if the specified profile goes over or under the given limit frame time. 

\begin{DoxyRemark}{Remarks}
If this is called during a frame, it will be reading the results from the previous frame. Therefore, it is best to use this after the frame has ended. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em limit} & A number between 0 and 1 representing the percentage of frame time \\
\hline
{\em greater\+Than} & If true, this will return whether the limit is exceeded. Otherwise, it will return if the frame time has gone under this limit. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a456a0f133ccea3eb515626edd22963ec}\label{class_ogre_1_1_profiler_a456a0f133ccea3eb515626edd22963ec}} 
\index{Ogre::Profiler@{Ogre::Profiler}!logResults@{logResults}}
\index{logResults@{logResults}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{logResults()}{logResults()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::log\+Results (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Outputs current profile statistics to the log. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_adf2570f07addb553a852a003c97fdc12}\label{class_ogre_1_1_profiler_adf2570f07addb553a852a003c97fdc12}} 
\index{Ogre::Profiler@{Ogre::Profiler}!reset@{reset}}
\index{reset@{reset}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{reset()}{reset()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Clears the profiler statistics. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_ac29d425e0f0b531f2c7f643907c9402d}\label{class_ogre_1_1_profiler_ac29d425e0f0b531f2c7f643907c9402d}} 
\index{Ogre::Profiler@{Ogre::Profiler}!setUpdateDisplayFrequency@{setUpdateDisplayFrequency}}
\index{setUpdateDisplayFrequency@{setUpdateDisplayFrequency}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{setUpdateDisplayFrequency()}{setUpdateDisplayFrequency()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::set\+Update\+Display\+Frequency (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}}}]{freq }\end{DoxyParamCaption})}



Sets the \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} so the display of results are updated every n frames. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_af2ee3ac48da6f0ae5b39b80e7f99ef56}\label{class_ogre_1_1_profiler_af2ee3ac48da6f0ae5b39b80e7f99ef56}} 
\index{Ogre::Profiler@{Ogre::Profiler}!getUpdateDisplayFrequency@{getUpdateDisplayFrequency}}
\index{getUpdateDisplayFrequency@{getUpdateDisplayFrequency}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{getUpdateDisplayFrequency()}{getUpdateDisplayFrequency()}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}} Ogre\+::\+Profiler\+::get\+Update\+Display\+Frequency (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Gets the frequency that the \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} display is updated. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_a01413a02e5af48736c96284ee973cfd2}\label{class_ogre_1_1_profiler_a01413a02e5af48736c96284ee973cfd2}} 
\index{Ogre::Profiler@{Ogre::Profiler}!addListener@{addListener}}
\index{addListener@{addListener}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{addListener()}{addListener()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::add\+Listener (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener}} $\ast$}]{listener }\end{DoxyParamCaption})}

\begin{DoxyRemark}{Remarks}
Register a \mbox{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener}} from the \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em listener} & A valid listener derived class \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a78dcc907495fd0cb3d58520b1f2975d8}\label{class_ogre_1_1_profiler_a78dcc907495fd0cb3d58520b1f2975d8}} 
\index{Ogre::Profiler@{Ogre::Profiler}!removeListener@{removeListener}}
\index{removeListener@{removeListener}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{removeListener()}{removeListener()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::remove\+Listener (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener}} $\ast$}]{listener }\end{DoxyParamCaption})}

\begin{DoxyRemark}{Remarks}
Unregister a \mbox{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener}} from the \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}} 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em listener} & A valid listener derived class \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_profiler_aaa925dad8392fe140d017a5766f3cd49}\label{class_ogre_1_1_profiler_aaa925dad8392fe140d017a5766f3cd49}} 
\index{Ogre::Profiler@{Ogre::Profiler}!getSingleton@{getSingleton}}
\index{getSingleton@{getSingleton}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{getSingleton()}{getSingleton()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}}\& Ogre\+::\+Profiler\+::get\+Singleton (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the singleton instance. 



Referenced by Ogre\+::\+Profile\+::\+Profile(), and Ogre\+::\+Profile\+::$\sim$\+Profile().

\mbox{\Hypertarget{class_ogre_1_1_profiler_a01ec79ba4ba7a539bfd742e120c1ff21}\label{class_ogre_1_1_profiler_a01ec79ba4ba7a539bfd742e120c1ff21}} 
\index{Ogre::Profiler@{Ogre::Profiler}!getSingletonPtr@{getSingletonPtr}}
\index{getSingletonPtr@{getSingletonPtr}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{getSingletonPtr()}{getSingletonPtr()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{class_ogre_1_1_profiler}{Profiler}}$\ast$ Ogre\+::\+Profiler\+::get\+Singleton\+Ptr (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the singleton instance. 



\doxysubsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a72f5610e6fffc382e660c3a301d4a5d1}\label{class_ogre_1_1_profiler_a72f5610e6fffc382e660c3a301d4a5d1}} 
\index{Ogre::Profiler@{Ogre::Profiler}!ProfileInstance@{ProfileInstance}}
\index{ProfileInstance@{ProfileInstance}!Ogre::Profiler@{Ogre::Profiler}}
\doxysubsubsection{\texorpdfstring{ProfileInstance}{ProfileInstance}}
{\footnotesize\ttfamily friend class \mbox{\hyperlink{class_ogre_1_1_profile_instance}{Profile\+Instance}}\hspace{0.3cm}{\ttfamily [friend]}}



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