\hypertarget{class_ogre_1_1_frame_time_controller_value}{}\section{Ogre\+:\+:Frame\+Time\+Controller\+Value Class Reference}
\label{class_ogre_1_1_frame_time_controller_value}\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}


Predefined controller value for getting the latest frame time.  




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



Inheritance diagram for Ogre\+:\+:Frame\+Time\+Controller\+Value\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=334pt]{class_ogre_1_1_frame_time_controller_value__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_frame_time_controller_value_aed8ee1d63bf0c06fba9ec32bcf36d8c5}{Frame\+Time\+Controller\+Value} ()
\item 
bool \hyperlink{class_ogre_1_1_frame_time_controller_value_a2ee210328604677cb76ba0e4d97bd84a}{frame\+Ended} (const \hyperlink{struct_ogre_1_1_frame_event}{Frame\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called just after a frame has been rendered. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_frame_listener_a2785cb38589ab9df123fa401cbda31c3}{frame\+Rendering\+Queued} (const \hyperlink{struct_ogre_1_1_frame_event}{Frame\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called after all render targets have had their rendering commands issued, but before render windows have been asked to flip their buffers over. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_frame_time_controller_value_a15caa3fcb86af2036b336a5fa6efd1cd}{frame\+Started} (const \hyperlink{struct_ogre_1_1_frame_event}{Frame\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called when a frame is about to begin rendering. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_frame_time_controller_value_a5ecb4e4500192207506c5bdc29102c80}{get\+Elapsed\+Time} (void) const
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_frame_time_controller_value_ae14fbcbada0e1e932c920e51e48b53c6}{get\+Frame\+Delay} (void) const
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_frame_time_controller_value_ad64da995033310540b36368a6f3b9772}{get\+Time\+Factor} (void) const
\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_frame_time_controller_value_a95bf43a5791d594237d74fb44526d0a6}{get\+Value} (void) const
\item 
void \hyperlink{class_ogre_1_1_frame_time_controller_value_a2d76ad57948f7cd5f8657fc57cd28cd0}{set\+Elapsed\+Time} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} elapsed\+Time)
\item 
void \hyperlink{class_ogre_1_1_frame_time_controller_value_a7ad2006dd65881a7a5a1abbf204d13a5}{set\+Frame\+Delay} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} fd)
\item 
void \hyperlink{class_ogre_1_1_frame_time_controller_value_a5c794a028b0d300c1262fef68fad5984}{set\+Time\+Factor} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} tf)
\item 
void \hyperlink{class_ogre_1_1_frame_time_controller_value_aaacecf71666f76407c54a1d2f2152a8e}{set\+Value} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} value)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Predefined controller value for getting the latest frame time. 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_aed8ee1d63bf0c06fba9ec32bcf36d8c5}\label{class_ogre_1_1_frame_time_controller_value_aed8ee1d63bf0c06fba9ec32bcf36d8c5}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!Frame\+Time\+Controller\+Value@{Frame\+Time\+Controller\+Value}}
\index{Frame\+Time\+Controller\+Value@{Frame\+Time\+Controller\+Value}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{Frame\+Time\+Controller\+Value()}{FrameTimeControllerValue()}}
{\footnotesize\ttfamily Ogre\+::\+Frame\+Time\+Controller\+Value\+::\+Frame\+Time\+Controller\+Value (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_a2ee210328604677cb76ba0e4d97bd84a}\label{class_ogre_1_1_frame_time_controller_value_a2ee210328604677cb76ba0e4d97bd84a}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!frame\+Ended@{frame\+Ended}}
\index{frame\+Ended@{frame\+Ended}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{frame\+Ended()}{frameEnded()}}
{\footnotesize\ttfamily bool Ogre\+::\+Frame\+Time\+Controller\+Value\+::frame\+Ended (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_frame_event}{Frame\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Called just after a frame has been rendered. 

\begin{DoxyRemark}{Remarks}
This event happens after all render targets have been fully updated and the buffers switched. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
True to continue with the next frame, false to drop out of the rendering loop. 
\end{DoxyReturn}


Reimplemented from \hyperlink{class_ogre_1_1_frame_listener_af1d0140678c18a013ac45aa544c00bfd}{Ogre\+::\+Frame\+Listener}.

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_a15caa3fcb86af2036b336a5fa6efd1cd}\label{class_ogre_1_1_frame_time_controller_value_a15caa3fcb86af2036b336a5fa6efd1cd}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!frame\+Started@{frame\+Started}}
\index{frame\+Started@{frame\+Started}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{frame\+Started()}{frameStarted()}}
{\footnotesize\ttfamily bool Ogre\+::\+Frame\+Time\+Controller\+Value\+::frame\+Started (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_frame_event}{Frame\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Called when a frame is about to begin rendering. 

\begin{DoxyRemark}{Remarks}
This event happens before any render targets have begun updating. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
True to go ahead, false to abort rendering and drop out of the rendering loop. 
\end{DoxyReturn}


Reimplemented from \hyperlink{class_ogre_1_1_frame_listener_a88238b65f9ce32f0de8c5eeeb7b6c6ad}{Ogre\+::\+Frame\+Listener}.

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_a95bf43a5791d594237d74fb44526d0a6}\label{class_ogre_1_1_frame_time_controller_value_a95bf43a5791d594237d74fb44526d0a6}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!get\+Value@{get\+Value}}
\index{get\+Value@{get\+Value}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{get\+Value()}{getValue()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Frame\+Time\+Controller\+Value\+::get\+Value (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Implements \hyperlink{class_ogre_1_1_controller_value_a745741bba579264e57d797683d3feacd}{Ogre\+::\+Controller\+Value$<$ Real $>$}.

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_aaacecf71666f76407c54a1d2f2152a8e}\label{class_ogre_1_1_frame_time_controller_value_aaacecf71666f76407c54a1d2f2152a8e}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!set\+Value@{set\+Value}}
\index{set\+Value@{set\+Value}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{set\+Value()}{setValue()}}
{\footnotesize\ttfamily void Ogre\+::\+Frame\+Time\+Controller\+Value\+::set\+Value (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Implements \hyperlink{class_ogre_1_1_controller_value_ab719e69a47857662b71041b9c74e546b}{Ogre\+::\+Controller\+Value$<$ Real $>$}.

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_ad64da995033310540b36368a6f3b9772}\label{class_ogre_1_1_frame_time_controller_value_ad64da995033310540b36368a6f3b9772}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!get\+Time\+Factor@{get\+Time\+Factor}}
\index{get\+Time\+Factor@{get\+Time\+Factor}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{get\+Time\+Factor()}{getTimeFactor()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Frame\+Time\+Controller\+Value\+::get\+Time\+Factor (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_a5c794a028b0d300c1262fef68fad5984}\label{class_ogre_1_1_frame_time_controller_value_a5c794a028b0d300c1262fef68fad5984}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!set\+Time\+Factor@{set\+Time\+Factor}}
\index{set\+Time\+Factor@{set\+Time\+Factor}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{set\+Time\+Factor()}{setTimeFactor()}}
{\footnotesize\ttfamily void Ogre\+::\+Frame\+Time\+Controller\+Value\+::set\+Time\+Factor (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{tf }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_ae14fbcbada0e1e932c920e51e48b53c6}\label{class_ogre_1_1_frame_time_controller_value_ae14fbcbada0e1e932c920e51e48b53c6}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!get\+Frame\+Delay@{get\+Frame\+Delay}}
\index{get\+Frame\+Delay@{get\+Frame\+Delay}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{get\+Frame\+Delay()}{getFrameDelay()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Frame\+Time\+Controller\+Value\+::get\+Frame\+Delay (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_a7ad2006dd65881a7a5a1abbf204d13a5}\label{class_ogre_1_1_frame_time_controller_value_a7ad2006dd65881a7a5a1abbf204d13a5}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!set\+Frame\+Delay@{set\+Frame\+Delay}}
\index{set\+Frame\+Delay@{set\+Frame\+Delay}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{set\+Frame\+Delay()}{setFrameDelay()}}
{\footnotesize\ttfamily void Ogre\+::\+Frame\+Time\+Controller\+Value\+::set\+Frame\+Delay (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{fd }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_a5ecb4e4500192207506c5bdc29102c80}\label{class_ogre_1_1_frame_time_controller_value_a5ecb4e4500192207506c5bdc29102c80}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!get\+Elapsed\+Time@{get\+Elapsed\+Time}}
\index{get\+Elapsed\+Time@{get\+Elapsed\+Time}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{get\+Elapsed\+Time()}{getElapsedTime()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Frame\+Time\+Controller\+Value\+::get\+Elapsed\+Time (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_frame_time_controller_value_a2d76ad57948f7cd5f8657fc57cd28cd0}\label{class_ogre_1_1_frame_time_controller_value_a2d76ad57948f7cd5f8657fc57cd28cd0}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!set\+Elapsed\+Time@{set\+Elapsed\+Time}}
\index{set\+Elapsed\+Time@{set\+Elapsed\+Time}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{set\+Elapsed\+Time()}{setElapsedTime()}}
{\footnotesize\ttfamily void Ogre\+::\+Frame\+Time\+Controller\+Value\+::set\+Elapsed\+Time (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{elapsed\+Time }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_frame_listener_a2785cb38589ab9df123fa401cbda31c3}\label{class_ogre_1_1_frame_listener_a2785cb38589ab9df123fa401cbda31c3}} 
\index{Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}!frame\+Rendering\+Queued@{frame\+Rendering\+Queued}}
\index{frame\+Rendering\+Queued@{frame\+Rendering\+Queued}!Ogre\+::\+Frame\+Time\+Controller\+Value@{Ogre\+::\+Frame\+Time\+Controller\+Value}}
\subsubsection{\texorpdfstring{frame\+Rendering\+Queued()}{frameRenderingQueued()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Frame\+Listener\+::frame\+Rendering\+Queued (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_frame_event}{Frame\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Called after all render targets have had their rendering commands issued, but before render windows have been asked to flip their buffers over. 

\begin{DoxyRemark}{Remarks}
The usefulness of this event comes from the fact that rendering commands are queued for the G\+PU to process. These can take a little while to finish, and so while that is happening the C\+PU can be doing useful things. Once the request to \textquotesingle{}flip buffers\textquotesingle{} happens, the thread requesting it will block until the G\+PU is ready, which can waste C\+PU cycles. Therefore, it is often a good idea to use this callback to perform per-\/frame processing. Of course because the frame\textquotesingle{}s rendering commands have already been issued, any changes you make will only take effect from the next frame, but in most cases that\textquotesingle{}s not noticeable. 
\end{DoxyRemark}
\begin{DoxyReturn}{Returns}
True to continue rendering, false to drop out of the rendering loop. 
\end{DoxyReturn}


Reimplemented in \hyperlink{class_ogre_bites_1_1_application_context_a9a42a8dab9d90d1f08622c574e63c395}{Ogre\+Bites\+::\+Application\+Context}.



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