\hypertarget{class_ogre_1_1_profiler}{}\section{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}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_profiler_aa35c96681ded2faf493defa432ce6a04}{Profiler} ()
\item 
\hyperlink{class_ogre_1_1_profiler_a45e1f8ac11468a9322148be4e22e85de}{$\sim$\+Profiler} ()
\item 
void \hyperlink{class_ogre_1_1_profiler_a01413a02e5af48736c96284ee973cfd2}{add\+Listener} (\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener} $\ast$listener)
\item 
void \hyperlink{class_ogre_1_1_profiler_a5800006ecf74193bb6683428542b60b5}{begin\+G\+P\+U\+Event} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&event)
\begin{DoxyCompactList}\small\item\em Mark the beginning of a G\+PU event group. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_profiler_a9b3e71a70bdd2285cebcbd2764fad0e6}{begin\+Profile} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&profile\+Name, \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} group\+ID=(\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}) \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 \hyperlink{class_ogre_1_1_profiler_a144fc3944f41b1198a44590beda4ce3f}{disable\+Profile} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&profile\+Name)
\begin{DoxyCompactList}\small\item\em Disables a profile. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_profiler_a52e2f0d3530febbbf7199173d91ad4e2}{enable\+Profile} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&profile\+Name)
\begin{DoxyCompactList}\small\item\em Enables a previously disabled profile. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_profiler_ace158cd7cd820a3176755ce3b84601c3}{end\+G\+P\+U\+Event} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&event)
\begin{DoxyCompactList}\small\item\em Mark the end of a G\+PU event group. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_profiler_abe681ebc8892d4475940301a0319fe83}{end\+Profile} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&profile\+Name, \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} group\+ID=(\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}) \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 \hyperlink{class_ogre_1_1_profiler_a43b5da14797ed9b7e48da4638207ca84}{get\+Enabled} () const
\begin{DoxyCompactList}\small\item\em Gets whether this profiler is enabled. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \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 
\hyperlink{class_ogre_1_1_timer}{Timer} $\ast$ \hyperlink{class_ogre_1_1_profiler_a135db4d26db8d359fb77d20189379bd7}{get\+Timer} ()
\begin{DoxyCompactList}\small\item\em Retrieves the timer for the profiler. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint} \hyperlink{class_ogre_1_1_profiler_af2ee3ac48da6f0ae5b39b80e7f99ef56}{get\+Update\+Display\+Frequency} () const
\begin{DoxyCompactList}\small\item\em Gets the frequency that the \hyperlink{class_ogre_1_1_profiler}{Profiler} display is updated. \end{DoxyCompactList}\item 
void \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 \hyperlink{class_ogre_1_1_profiler_a190afc6d10a430fbf37d2b4297e59507}{mark\+G\+P\+U\+Event} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&event)
\begin{DoxyCompactList}\small\item\em Mark a specific, ungrouped, G\+PU event. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_profiler_a78dcc907495fd0cb3d58520b1f2975d8}{remove\+Listener} (\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener} $\ast$listener)
\item 
void \hyperlink{class_ogre_1_1_profiler_adf2570f07addb553a852a003c97fdc12}{reset} ()
\begin{DoxyCompactList}\small\item\em Clears the profiler statistics. \end{DoxyCompactList}\item 
void \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 \hyperlink{class_ogre_1_1_profiler_ad19bcccfdf69b21b9953488cb58de764}{set\+Profile\+Group\+Mask} (\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 \hyperlink{class_ogre_1_1_profiler_a53a2d2681a3995555df6d789c5596381}{set\+Timer} (\hyperlink{class_ogre_1_1_timer}{Timer} $\ast$t)
\begin{DoxyCompactList}\small\item\em Sets the timer for the profiler. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_profiler_ac29d425e0f0b531f2c7f643907c9402d}{set\+Update\+Display\+Frequency} (\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint} freq)
\begin{DoxyCompactList}\small\item\em Sets the \hyperlink{class_ogre_1_1_profiler}{Profiler} so the display of results are updated every n frames. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_profiler_adfd868a7f9213baece5687bd36e23279}{watch\+For\+Limit} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&profile\+Name, \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 \hyperlink{class_ogre_1_1_profiler_afc737d10ba6b5732df9a538a196ee3e6}{watch\+For\+Max} (const \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 \hyperlink{class_ogre_1_1_profiler_ad37efd3a99cf736a0424fd0c1c92efb4}{watch\+For\+Min} (const \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}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{class_ogre_1_1_profiler}{Profiler} \& \hyperlink{class_ogre_1_1_profiler_aaa925dad8392fe140d017a5766f3cd49}{get\+Singleton} (void)
\begin{DoxyCompactList}\small\item\em Get the singleton instance. \end{DoxyCompactList}\item 
static \hyperlink{class_ogre_1_1_profiler}{Profiler} $\ast$ \hyperlink{class_ogre_1_1_profiler_a01ec79ba4ba7a539bfd742e120c1ff21}{get\+Singleton\+Ptr} (void)
\begin{DoxyCompactList}\small\item\em Get the singleton instance. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_profiler_a72f5610e6fffc382e660c3a301d4a5d1}{Profile\+Instance}
\end{DoxyCompactItemize}


\subsection{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 \hyperlink{_ogre_profiler_8h_a1654899e6cfdec9f0972a45f3fa3fee7}{Ogre\+Profile(name)} and braces to limit the scope. You must enable the \hyperlink{class_ogre_1_1_profile}{Profile} before you can used it with set\+Enabled(true). If you want to disable profiling in \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}


\subsection{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}}
\subsubsection{\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}}
\subsubsection{\texorpdfstring{$\sim$\+Profiler()}{~Profiler()}}
{\footnotesize\ttfamily Ogre\+::\+Profiler\+::$\sim$\+Profiler (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a53a2d2681a3995555df6d789c5596381}\label{class_ogre_1_1_profiler_a53a2d2681a3995555df6d789c5596381}} 
\index{Ogre\+::\+Profiler@{Ogre\+::\+Profiler}!set\+Timer@{set\+Timer}}
\index{set\+Timer@{set\+Timer}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{set\+Timer()}{setTimer()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::set\+Timer (\begin{DoxyParamCaption}\item[{\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}!get\+Timer@{get\+Timer}}
\index{get\+Timer@{get\+Timer}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{get\+Timer()}{getTimer()}}
{\footnotesize\ttfamily \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}!begin\+Profile@{begin\+Profile}}
\index{begin\+Profile@{begin\+Profile}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{begin\+Profile()}{beginProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::begin\+Profile (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{profile\+Name,  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{group\+ID = {\ttfamily (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32})~\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 \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 \hyperlink{_ogre_profiler_8h_a292ec22b5d851ef26fa9d7685c18b1f5}{Ogre\+Profile\+End(name)}. Usually you would use the macro \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}
\mbox{\Hypertarget{class_ogre_1_1_profiler_abe681ebc8892d4475940301a0319fe83}\label{class_ogre_1_1_profiler_abe681ebc8892d4475940301a0319fe83}} 
\index{Ogre\+::\+Profiler@{Ogre\+::\+Profiler}!end\+Profile@{end\+Profile}}
\index{end\+Profile@{end\+Profile}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{end\+Profile()}{endProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::end\+Profile (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{profile\+Name,  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{group\+ID = {\ttfamily (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32})~\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 \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 \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}
\mbox{\Hypertarget{class_ogre_1_1_profiler_a5800006ecf74193bb6683428542b60b5}\label{class_ogre_1_1_profiler_a5800006ecf74193bb6683428542b60b5}} 
\index{Ogre\+::\+Profiler@{Ogre\+::\+Profiler}!begin\+G\+P\+U\+Event@{begin\+G\+P\+U\+Event}}
\index{begin\+G\+P\+U\+Event@{begin\+G\+P\+U\+Event}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{begin\+G\+P\+U\+Event()}{beginGPUEvent()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::begin\+G\+P\+U\+Event (\begin{DoxyParamCaption}\item[{const \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}!end\+G\+P\+U\+Event@{end\+G\+P\+U\+Event}}
\index{end\+G\+P\+U\+Event@{end\+G\+P\+U\+Event}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{end\+G\+P\+U\+Event()}{endGPUEvent()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::end\+G\+P\+U\+Event (\begin{DoxyParamCaption}\item[{const \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}!mark\+G\+P\+U\+Event@{mark\+G\+P\+U\+Event}}
\index{mark\+G\+P\+U\+Event@{mark\+G\+P\+U\+Event}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{mark\+G\+P\+U\+Event()}{markGPUEvent()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::mark\+G\+P\+U\+Event (\begin{DoxyParamCaption}\item[{const \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}!set\+Enabled@{set\+Enabled}}
\index{set\+Enabled@{set\+Enabled}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{set\+Enabled()}{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 \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}!get\+Enabled@{get\+Enabled}}
\index{get\+Enabled@{get\+Enabled}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{get\+Enabled()}{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}!enable\+Profile@{enable\+Profile}}
\index{enable\+Profile@{enable\+Profile}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{enable\+Profile()}{enableProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::enable\+Profile (\begin{DoxyParamCaption}\item[{const \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}!disable\+Profile@{disable\+Profile}}
\index{disable\+Profile@{disable\+Profile}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{disable\+Profile()}{disableProfile()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::disable\+Profile (\begin{DoxyParamCaption}\item[{const \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}!set\+Profile\+Group\+Mask@{set\+Profile\+Group\+Mask}}
\index{set\+Profile\+Group\+Mask@{set\+Profile\+Group\+Mask}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{set\+Profile\+Group\+Mask()}{setProfileGroupMask()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::set\+Profile\+Group\+Mask (\begin{DoxyParamCaption}\item[{\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}!get\+Profile\+Group\+Mask@{get\+Profile\+Group\+Mask}}
\index{get\+Profile\+Group\+Mask@{get\+Profile\+Group\+Mask}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{get\+Profile\+Group\+Mask()}{getProfileGroupMask()}}
{\footnotesize\ttfamily \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}!watch\+For\+Max@{watch\+For\+Max}}
\index{watch\+For\+Max@{watch\+For\+Max}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{watch\+For\+Max()}{watchForMax()}}
{\footnotesize\ttfamily bool Ogre\+::\+Profiler\+::watch\+For\+Max (\begin{DoxyParamCaption}\item[{const \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}!watch\+For\+Min@{watch\+For\+Min}}
\index{watch\+For\+Min@{watch\+For\+Min}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{watch\+For\+Min()}{watchForMin()}}
{\footnotesize\ttfamily bool Ogre\+::\+Profiler\+::watch\+For\+Min (\begin{DoxyParamCaption}\item[{const \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}!watch\+For\+Limit@{watch\+For\+Limit}}
\index{watch\+For\+Limit@{watch\+For\+Limit}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{watch\+For\+Limit()}{watchForLimit()}}
{\footnotesize\ttfamily bool Ogre\+::\+Profiler\+::watch\+For\+Limit (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{profile\+Name,  }\item[{\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}!log\+Results@{log\+Results}}
\index{log\+Results@{log\+Results}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{log\+Results()}{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}}
\subsubsection{\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}!set\+Update\+Display\+Frequency@{set\+Update\+Display\+Frequency}}
\index{set\+Update\+Display\+Frequency@{set\+Update\+Display\+Frequency}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{set\+Update\+Display\+Frequency()}{setUpdateDisplayFrequency()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::set\+Update\+Display\+Frequency (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint}}]{freq }\end{DoxyParamCaption})}



Sets the \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}!get\+Update\+Display\+Frequency@{get\+Update\+Display\+Frequency}}
\index{get\+Update\+Display\+Frequency@{get\+Update\+Display\+Frequency}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{get\+Update\+Display\+Frequency()}{getUpdateDisplayFrequency()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_ab6e842a18caf062ed73a5d3badd0dd4c}{uint} Ogre\+::\+Profiler\+::get\+Update\+Display\+Frequency (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Gets the frequency that the \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}!add\+Listener@{add\+Listener}}
\index{add\+Listener@{add\+Listener}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{add\+Listener()}{addListener()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::add\+Listener (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener} $\ast$}]{listener }\end{DoxyParamCaption})}

\begin{DoxyRemark}{Remarks}
Register a \hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener} from the \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}!remove\+Listener@{remove\+Listener}}
\index{remove\+Listener@{remove\+Listener}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{remove\+Listener()}{removeListener()}}
{\footnotesize\ttfamily void Ogre\+::\+Profiler\+::remove\+Listener (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener} $\ast$}]{listener }\end{DoxyParamCaption})}

\begin{DoxyRemark}{Remarks}
Unregister a \hyperlink{class_ogre_1_1_profile_session_listener}{Profile\+Session\+Listener} from the \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}!get\+Singleton@{get\+Singleton}}
\index{get\+Singleton@{get\+Singleton}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{get\+Singleton()}{getSingleton()}}
{\footnotesize\ttfamily static \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. 

\mbox{\Hypertarget{class_ogre_1_1_profiler_a01ec79ba4ba7a539bfd742e120c1ff21}\label{class_ogre_1_1_profiler_a01ec79ba4ba7a539bfd742e120c1ff21}} 
\index{Ogre\+::\+Profiler@{Ogre\+::\+Profiler}!get\+Singleton\+Ptr@{get\+Singleton\+Ptr}}
\index{get\+Singleton\+Ptr@{get\+Singleton\+Ptr}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{get\+Singleton\+Ptr()}{getSingletonPtr()}}
{\footnotesize\ttfamily static \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. 



\subsection{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}!Profile\+Instance@{Profile\+Instance}}
\index{Profile\+Instance@{Profile\+Instance}!Ogre\+::\+Profiler@{Ogre\+::\+Profiler}}
\subsubsection{\texorpdfstring{Profile\+Instance}{ProfileInstance}}
{\footnotesize\ttfamily friend class \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 
\hyperlink{_ogre_profiler_8h}{Ogre\+Profiler.\+h}\end{DoxyCompactItemize}
