\hypertarget{class_ogre_bites_1_1_application_context}{}\section{Ogre\+Bites\+:\+:Application\+Context Class Reference}
\label{class_ogre_bites_1_1_application_context}\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}


Base class responsible for setting up a common context for applications.  




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



Inheritance diagram for Ogre\+Bites\+:\+:Application\+Context\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=244pt]{class_ogre_bites_1_1_application_context__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_bites_1_1_application_context_a414e81b587bfda4d8b47fd6f92055fc6}{Application\+Context} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} \&app\+Name=\hyperlink{_ogre_prerequisites_8h_a4a5177c0cfa26a662edfe3e311935fdf}{O\+G\+R\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+A\+ME}, bool unused=true)
\item 
virtual \hyperlink{class_ogre_bites_1_1_application_context_a5342737adaa3d23b561c6af4ff5b8a5d}{$\sim$\+Application\+Context} ()
\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a115b01ad99ccf8c6c6995ac7f6eb5a64}{\+\_\+fire\+Input\+Event} (const \hyperlink{union_ogre_bites_1_1_event}{Event} \&event, uint32\+\_\+t window\+ID) const
\begin{DoxyCompactList}\small\item\em inspect the event and call one of the corresponding functions on the registered \hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a8aa4934d8bbae7c8e8031f9cf3cf579c}{add\+Input\+Listener} (\hyperlink{namespace_ogre_bites_af9f017cd1b7c2ca7b8f94a8b10f6a5d0}{Native\+Window\+Type} $\ast$win, \hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$lis)
\begin{DoxyCompactList}\small\item\em attach input listener \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a802dd1d35735a572c14c2be516a6ce14}{add\+Input\+Listener} (\hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$lis)
\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a621881979dbe340ee0479b598b6a609d}{close\+App} ()
\begin{DoxyCompactList}\small\item\em This function closes down the application -\/ saves the configuration then shutdowns. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_ac03def1cf65738f9d41783e7e571de25}{create\+Dummy\+Scene} ()
\begin{DoxyCompactList}\small\item\em Creates dummy scene to allow rendering G\+UI in viewport. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_a55cd8344a2bd3de6ca1f776ba4ac7711}{create\+Root} ()
\begin{DoxyCompactList}\small\item\em Creates the O\+G\+RE root. \end{DoxyCompactList}\item 
virtual \hyperlink{struct_ogre_bites_1_1_native_window_pair}{Native\+Window\+Pair} \hyperlink{class_ogre_bites_1_1_application_context_a6dcb854318c985782bc92bf5b652722a}{create\+Window} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} \&name, uint32\+\_\+t w=0, uint32\+\_\+t h=0, \hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Ogre\+::\+Name\+Value\+Pair\+List} misc\+Params=\hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Ogre\+::\+Name\+Value\+Pair\+List}())
\begin{DoxyCompactList}\small\item\em Create a new render window. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a83f17015e2bd557f142b49cccf578ea5}{destroy\+Dummy\+Scene} ()
\begin{DoxyCompactList}\small\item\em Destroys dummy scene. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a46f1d798518fbca3361207f2a912ae6c}{destroy\+R\+T\+Shader\+System} ()
\begin{DoxyCompactList}\small\item\em Destroy the RT Shader system. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_af813d5a428c2e616c793897f1956b4ac}{enable\+Shader\+Cache} () const
\begin{DoxyCompactList}\small\item\em enables the caching of compiled shaders to file \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_bites_1_1_application_context_a57664977e4ac4f78b0855bb1668e4d01}{frame\+Ended} (const \hyperlink{struct_ogre_1_1_frame_event}{Ogre\+::\+Frame\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called just after a frame has been rendered. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_bites_1_1_application_context_a9a42a8dab9d90d1f08622c574e63c395}{frame\+Rendering\+Queued} (const \hyperlink{struct_ogre_1_1_frame_event}{Ogre\+::\+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 
virtual bool \hyperlink{class_ogre_bites_1_1_application_context_a8d1fe7c9dc681cc4580075fed36d7366}{frame\+Started} (const \hyperlink{struct_ogre_1_1_frame_event}{Ogre\+::\+Frame\+Event} \&evt)
\begin{DoxyCompactList}\small\item\em Called when a frame is about to begin rendering. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_overlay_system}{Ogre\+::\+Overlay\+System} $\ast$ \hyperlink{class_ogre_bites_1_1_application_context_a747c44aef492f8e05966578c658072b3}{get\+Overlay\+System} () const
\item 
\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$ \hyperlink{class_ogre_bites_1_1_application_context_a2d3e48914ead0ef0515c9c5d76c9d0c9}{get\+Render\+Window} () const
\begin{DoxyCompactList}\small\item\em get the main Render\+Window owns the context on Open\+GL \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_root}{Ogre\+::\+Root} $\ast$ \hyperlink{class_ogre_bites_1_1_application_context_a2a12375dbb3abc7ef2b2a93867cc5727}{get\+Root} () const
\item 
void \hyperlink{class_ogre_bites_1_1_application_context_af0bc6349de8ced30003aaf81846a4dfc}{init\+App} ()
\begin{DoxyCompactList}\small\item\em This function initializes the render system and resources. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_bites_1_1_application_context_a05998acb47fdf6da1fd56c66f8bb1160}{initialise\+R\+T\+Shader\+System} ()
\begin{DoxyCompactList}\small\item\em Initialize the RT Shader system. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_a88306c63a41bdcd0750561fcca95da5b}{load\+Resources} ()
\begin{DoxyCompactList}\small\item\em Loads context-\/wide resource groups. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_a20ea7357bf5f6091a959b88a08635081}{locate\+Resources} ()
\begin{DoxyCompactList}\small\item\em Finds context-\/wide resource groups. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_bites_1_1_application_context_ad0712bb815484a3a7d4b175b762e2e54}{one\+Time\+Config} ()
\begin{DoxyCompactList}\small\item\em Configures the startup settings for O\+G\+RE. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a0e3fdad2a646962cf90db82c4e977cec}{poll\+Events} ()
\begin{DoxyCompactList}\small\item\em process all window events since last call \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_a36f82e2ac8e9c24647b98387c9b7ddab}{reconfigure} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} \&renderer, \hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Ogre\+::\+Name\+Value\+Pair\+List} \&options)
\begin{DoxyCompactList}\small\item\em Reconfigures the context. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_a709994ee2ccc1aa7ea353ef368c6a587}{remove\+Input\+Listener} (\hyperlink{namespace_ogre_bites_af9f017cd1b7c2ca7b8f94a8b10f6a5d0}{Native\+Window\+Type} $\ast$win, \hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$lis)
\begin{DoxyCompactList}\small\item\em detatch input listener \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_aaa07040f2c219e2d395629ae729f7b49}{remove\+Input\+Listener} (\hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$lis)
\item 
void \hyperlink{class_ogre_bites_1_1_application_context_aaad4c1d25a7a5f60dd5c5f3812f1096b}{set\+R\+T\+S\+S\+Write\+Shaders\+To\+Disk} (bool write)
\begin{DoxyCompactList}\small\item\em make the R\+T\+SS write out the generated shaders for caching and debugging \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_ad2bfdfa72c9d95e55657854c2094c610}{setup} ()
\begin{DoxyCompactList}\small\item\em Sets up the context after configuration. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_ae0c799de92c9570792e717caafd38503}{set\+Window\+Grab} (\hyperlink{namespace_ogre_bites_af9f017cd1b7c2ca7b8f94a8b10f6a5d0}{Native\+Window\+Type} $\ast$win, bool grab=true)
\begin{DoxyCompactList}\small\item\em When input is grabbed the mouse is confined to the window. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_bites_1_1_application_context_af89fa21b41a913713608944a7426e4ae}{set\+Window\+Grab} (bool grab=true)
\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_af1ae2ae9e32a95a0f7d4ce88b60b9e35}{shutdown} ()
\begin{DoxyCompactList}\small\item\em Cleans up and shuts down the context. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_a5d7dfb08ce94eca6b2b399ae567caecf}{window\+Closed} (\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$rw)
\item 
virtual bool \hyperlink{class_ogre_bites_1_1_application_context_a04c222c9b53a3fe37f61f5f8c70afbb8}{window\+Closing} (\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$rw)
\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_a93b1cb928799b8408e7fcedc022b8f47}{window\+Focus\+Change} (\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$rw)
\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_a9d5bf41ed9acc3087fb765b235460096}{window\+Moved} (\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$rw)
\item 
virtual void \hyperlink{class_ogre_bites_1_1_application_context_ab9a2cad5bee4665c12e0cddb7e2036f2}{window\+Resized} (\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$rw)
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} \hyperlink{class_ogre_bites_1_1_application_context_ac0d1097f1e11c01b629406a96b281215}{get\+Default\+Media\+Dir} ()
\begin{DoxyCompactList}\small\item\em the directory where the media files were installed \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class responsible for setting up a common context for applications. 

Subclass to implement specific event callbacks. 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a414e81b587bfda4d8b47fd6f92055fc6}\label{class_ogre_bites_1_1_application_context_a414e81b587bfda4d8b47fd6f92055fc6}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!Application\+Context@{Application\+Context}}
\index{Application\+Context@{Application\+Context}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{Application\+Context()}{ApplicationContext()}}
{\footnotesize\ttfamily Ogre\+Bites\+::\+Application\+Context\+::\+Application\+Context (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} \&}]{app\+Name = {\ttfamily \hyperlink{_ogre_prerequisites_8h_a4a5177c0cfa26a662edfe3e311935fdf}{O\+G\+R\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+\+N\+A\+ME}},  }\item[{bool}]{unused = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [explicit]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a5342737adaa3d23b561c6af4ff5b8a5d}\label{class_ogre_bites_1_1_application_context_a5342737adaa3d23b561c6af4ff5b8a5d}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!````~Application\+Context@{$\sim$\+Application\+Context}}
\index{````~Application\+Context@{$\sim$\+Application\+Context}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{$\sim$\+Application\+Context()}{~ApplicationContext()}}
{\footnotesize\ttfamily virtual Ogre\+Bites\+::\+Application\+Context\+::$\sim$\+Application\+Context (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a2d3e48914ead0ef0515c9c5d76c9d0c9}\label{class_ogre_bites_1_1_application_context_a2d3e48914ead0ef0515c9c5d76c9d0c9}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!get\+Render\+Window@{get\+Render\+Window}}
\index{get\+Render\+Window@{get\+Render\+Window}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{get\+Render\+Window()}{getRenderWindow()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window}$\ast$ Ogre\+Bites\+::\+Application\+Context\+::get\+Render\+Window (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



get the main Render\+Window owns the context on Open\+GL 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a2a12375dbb3abc7ef2b2a93867cc5727}\label{class_ogre_bites_1_1_application_context_a2a12375dbb3abc7ef2b2a93867cc5727}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!get\+Root@{get\+Root}}
\index{get\+Root@{get\+Root}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{get\+Root()}{getRoot()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_root}{Ogre\+::\+Root}$\ast$ Ogre\+Bites\+::\+Application\+Context\+::get\+Root (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a747c44aef492f8e05966578c658072b3}\label{class_ogre_bites_1_1_application_context_a747c44aef492f8e05966578c658072b3}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!get\+Overlay\+System@{get\+Overlay\+System}}
\index{get\+Overlay\+System@{get\+Overlay\+System}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{get\+Overlay\+System()}{getOverlaySystem()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_overlay_system}{Ogre\+::\+Overlay\+System}$\ast$ Ogre\+Bites\+::\+Application\+Context\+::get\+Overlay\+System (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_af0bc6349de8ced30003aaf81846a4dfc}\label{class_ogre_bites_1_1_application_context_af0bc6349de8ced30003aaf81846a4dfc}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!init\+App@{init\+App}}
\index{init\+App@{init\+App}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{init\+App()}{initApp()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::init\+App (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



This function initializes the render system and resources. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a621881979dbe340ee0479b598b6a609d}\label{class_ogre_bites_1_1_application_context_a621881979dbe340ee0479b598b6a609d}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!close\+App@{close\+App}}
\index{close\+App@{close\+App}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{close\+App()}{closeApp()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::close\+App (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



This function closes down the application -\/ saves the configuration then shutdowns. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a8d1fe7c9dc681cc4580075fed36d7366}\label{class_ogre_bites_1_1_application_context_a8d1fe7c9dc681cc4580075fed36d7366}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!frame\+Started@{frame\+Started}}
\index{frame\+Started@{frame\+Started}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{frame\+Started()}{frameStarted()}}
{\footnotesize\ttfamily virtual bool Ogre\+Bites\+::\+Application\+Context\+::frame\+Started (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_frame_event}{Ogre\+::\+Frame\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\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_bites_1_1_application_context_a9a42a8dab9d90d1f08622c574e63c395}\label{class_ogre_bites_1_1_application_context_a9a42a8dab9d90d1f08622c574e63c395}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!frame\+Rendering\+Queued@{frame\+Rendering\+Queued}}
\index{frame\+Rendering\+Queued@{frame\+Rendering\+Queued}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{frame\+Rendering\+Queued()}{frameRenderingQueued()}}
{\footnotesize\ttfamily virtual bool Ogre\+Bites\+::\+Application\+Context\+::frame\+Rendering\+Queued (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_frame_event}{Ogre\+::\+Frame\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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 from \hyperlink{class_ogre_1_1_frame_listener_a2785cb38589ab9df123fa401cbda31c3}{Ogre\+::\+Frame\+Listener}.

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a57664977e4ac4f78b0855bb1668e4d01}\label{class_ogre_bites_1_1_application_context_a57664977e4ac4f78b0855bb1668e4d01}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!frame\+Ended@{frame\+Ended}}
\index{frame\+Ended@{frame\+Ended}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{frame\+Ended()}{frameEnded()}}
{\footnotesize\ttfamily virtual bool Ogre\+Bites\+::\+Application\+Context\+::frame\+Ended (\begin{DoxyParamCaption}\item[{const \hyperlink{struct_ogre_1_1_frame_event}{Ogre\+::\+Frame\+Event} \&}]{evt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\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_bites_1_1_application_context_a9d5bf41ed9acc3087fb765b235460096}\label{class_ogre_bites_1_1_application_context_a9d5bf41ed9acc3087fb765b235460096}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!window\+Moved@{window\+Moved}}
\index{window\+Moved@{window\+Moved}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{window\+Moved()}{windowMoved()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::window\+Moved (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$}]{rw }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_ab9a2cad5bee4665c12e0cddb7e2036f2}\label{class_ogre_bites_1_1_application_context_ab9a2cad5bee4665c12e0cddb7e2036f2}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!window\+Resized@{window\+Resized}}
\index{window\+Resized@{window\+Resized}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{window\+Resized()}{windowResized()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::window\+Resized (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$}]{rw }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a04c222c9b53a3fe37f61f5f8c70afbb8}\label{class_ogre_bites_1_1_application_context_a04c222c9b53a3fe37f61f5f8c70afbb8}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!window\+Closing@{window\+Closing}}
\index{window\+Closing@{window\+Closing}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{window\+Closing()}{windowClosing()}}
{\footnotesize\ttfamily virtual bool Ogre\+Bites\+::\+Application\+Context\+::window\+Closing (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$}]{rw }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a5d7dfb08ce94eca6b2b399ae567caecf}\label{class_ogre_bites_1_1_application_context_a5d7dfb08ce94eca6b2b399ae567caecf}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!window\+Closed@{window\+Closed}}
\index{window\+Closed@{window\+Closed}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{window\+Closed()}{windowClosed()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::window\+Closed (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$}]{rw }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a93b1cb928799b8408e7fcedc022b8f47}\label{class_ogre_bites_1_1_application_context_a93b1cb928799b8408e7fcedc022b8f47}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!window\+Focus\+Change@{window\+Focus\+Change}}
\index{window\+Focus\+Change@{window\+Focus\+Change}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{window\+Focus\+Change()}{windowFocusChange()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::window\+Focus\+Change (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_window}{Ogre\+::\+Render\+Window} $\ast$}]{rw }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a115b01ad99ccf8c6c6995ac7f6eb5a64}\label{class_ogre_bites_1_1_application_context_a115b01ad99ccf8c6c6995ac7f6eb5a64}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!\+\_\+fire\+Input\+Event@{\+\_\+fire\+Input\+Event}}
\index{\+\_\+fire\+Input\+Event@{\+\_\+fire\+Input\+Event}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{\+\_\+fire\+Input\+Event()}{\_fireInputEvent()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::\+\_\+fire\+Input\+Event (\begin{DoxyParamCaption}\item[{const \hyperlink{union_ogre_bites_1_1_event}{Event} \&}]{event,  }\item[{uint32\+\_\+t}]{window\+ID }\end{DoxyParamCaption}) const}



inspect the event and call one of the corresponding functions on the registered \hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} 


\begin{DoxyParams}{Parameters}
{\em event} & Input \hyperlink{union_ogre_bites_1_1_event}{Event} \\
\hline
{\em window\+ID} & only call listeners of this window \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a05998acb47fdf6da1fd56c66f8bb1160}\label{class_ogre_bites_1_1_application_context_a05998acb47fdf6da1fd56c66f8bb1160}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!initialise\+R\+T\+Shader\+System@{initialise\+R\+T\+Shader\+System}}
\index{initialise\+R\+T\+Shader\+System@{initialise\+R\+T\+Shader\+System}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{initialise\+R\+T\+Shader\+System()}{initialiseRTShaderSystem()}}
{\footnotesize\ttfamily bool Ogre\+Bites\+::\+Application\+Context\+::initialise\+R\+T\+Shader\+System (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Initialize the RT Shader system. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_aaad4c1d25a7a5f60dd5c5f3812f1096b}\label{class_ogre_bites_1_1_application_context_aaad4c1d25a7a5f60dd5c5f3812f1096b}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!set\+R\+T\+S\+S\+Write\+Shaders\+To\+Disk@{set\+R\+T\+S\+S\+Write\+Shaders\+To\+Disk}}
\index{set\+R\+T\+S\+S\+Write\+Shaders\+To\+Disk@{set\+R\+T\+S\+S\+Write\+Shaders\+To\+Disk}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{set\+R\+T\+S\+S\+Write\+Shaders\+To\+Disk()}{setRTSSWriteShadersToDisk()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::set\+R\+T\+S\+S\+Write\+Shaders\+To\+Disk (\begin{DoxyParamCaption}\item[{bool}]{write }\end{DoxyParamCaption})}



make the R\+T\+SS write out the generated shaders for caching and debugging 

by default all shaders are generated to system memory. Must be called before load\+Resources 
\begin{DoxyParams}{Parameters}
{\em write} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a46f1d798518fbca3361207f2a912ae6c}\label{class_ogre_bites_1_1_application_context_a46f1d798518fbca3361207f2a912ae6c}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!destroy\+R\+T\+Shader\+System@{destroy\+R\+T\+Shader\+System}}
\index{destroy\+R\+T\+Shader\+System@{destroy\+R\+T\+Shader\+System}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{destroy\+R\+T\+Shader\+System()}{destroyRTShaderSystem()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::destroy\+R\+T\+Shader\+System (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Destroy the RT Shader system. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_ad2bfdfa72c9d95e55657854c2094c610}\label{class_ogre_bites_1_1_application_context_ad2bfdfa72c9d95e55657854c2094c610}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!setup@{setup}}
\index{setup@{setup}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{setup()}{setup()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::setup (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets up the context after configuration. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a55cd8344a2bd3de6ca1f776ba4ac7711}\label{class_ogre_bites_1_1_application_context_a55cd8344a2bd3de6ca1f776ba4ac7711}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!create\+Root@{create\+Root}}
\index{create\+Root@{create\+Root}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{create\+Root()}{createRoot()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::create\+Root (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Creates the O\+G\+RE root. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_ad0712bb815484a3a7d4b175b762e2e54}\label{class_ogre_bites_1_1_application_context_ad0712bb815484a3a7d4b175b762e2e54}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!one\+Time\+Config@{one\+Time\+Config}}
\index{one\+Time\+Config@{one\+Time\+Config}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{one\+Time\+Config()}{oneTimeConfig()}}
{\footnotesize\ttfamily virtual bool Ogre\+Bites\+::\+Application\+Context\+::one\+Time\+Config (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Configures the startup settings for O\+G\+RE. 

I use the config dialog here, but you can also restore from a config file. Note that this only happens when you start the context, and not when you reset it. \mbox{\Hypertarget{class_ogre_bites_1_1_application_context_ae0c799de92c9570792e717caafd38503}\label{class_ogre_bites_1_1_application_context_ae0c799de92c9570792e717caafd38503}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!set\+Window\+Grab@{set\+Window\+Grab}}
\index{set\+Window\+Grab@{set\+Window\+Grab}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{set\+Window\+Grab()}{setWindowGrab()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::set\+Window\+Grab (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_bites_af9f017cd1b7c2ca7b8f94a8b10f6a5d0}{Native\+Window\+Type} $\ast$}]{win,  }\item[{bool}]{grab = {\ttfamily true} }\end{DoxyParamCaption})}



When input is grabbed the mouse is confined to the window. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_af89fa21b41a913713608944a7426e4ae}\label{class_ogre_bites_1_1_application_context_af89fa21b41a913713608944a7426e4ae}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!set\+Window\+Grab@{set\+Window\+Grab}}
\index{set\+Window\+Grab@{set\+Window\+Grab}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{set\+Window\+Grab()}{setWindowGrab()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::set\+Window\+Grab (\begin{DoxyParamCaption}\item[{bool}]{grab = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+Assert.

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a20ea7357bf5f6091a959b88a08635081}\label{class_ogre_bites_1_1_application_context_a20ea7357bf5f6091a959b88a08635081}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!locate\+Resources@{locate\+Resources}}
\index{locate\+Resources@{locate\+Resources}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{locate\+Resources()}{locateResources()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::locate\+Resources (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Finds context-\/wide resource groups. 

I load paths from a config file here, but you can choose your resource locations however you want. \mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a88306c63a41bdcd0750561fcca95da5b}\label{class_ogre_bites_1_1_application_context_a88306c63a41bdcd0750561fcca95da5b}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!load\+Resources@{load\+Resources}}
\index{load\+Resources@{load\+Resources}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{load\+Resources()}{loadResources()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::load\+Resources (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Loads context-\/wide resource groups. 

I chose here to simply initialise all groups, but you can fully load specific ones if you wish. \mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a36f82e2ac8e9c24647b98387c9b7ddab}\label{class_ogre_bites_1_1_application_context_a36f82e2ac8e9c24647b98387c9b7ddab}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!reconfigure@{reconfigure}}
\index{reconfigure@{reconfigure}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{reconfigure()}{reconfigure()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::reconfigure (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} \&}]{renderer,  }\item[{\hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Ogre\+::\+Name\+Value\+Pair\+List} \&}]{options }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Reconfigures the context. 

Attempts to preserve the current sample state. \mbox{\Hypertarget{class_ogre_bites_1_1_application_context_af1ae2ae9e32a95a0f7d4ce88b60b9e35}\label{class_ogre_bites_1_1_application_context_af1ae2ae9e32a95a0f7d4ce88b60b9e35}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{shutdown()}{shutdown()}}
{\footnotesize\ttfamily virtual void Ogre\+Bites\+::\+Application\+Context\+::shutdown (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Cleans up and shuts down the context. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a0e3fdad2a646962cf90db82c4e977cec}\label{class_ogre_bites_1_1_application_context_a0e3fdad2a646962cf90db82c4e977cec}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!poll\+Events@{poll\+Events}}
\index{poll\+Events@{poll\+Events}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{poll\+Events()}{pollEvents()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::poll\+Events (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



process all window events since last call 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_ac03def1cf65738f9d41783e7e571de25}\label{class_ogre_bites_1_1_application_context_ac03def1cf65738f9d41783e7e571de25}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!create\+Dummy\+Scene@{create\+Dummy\+Scene}}
\index{create\+Dummy\+Scene@{create\+Dummy\+Scene}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{create\+Dummy\+Scene()}{createDummyScene()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::create\+Dummy\+Scene (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Creates dummy scene to allow rendering G\+UI in viewport. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a83f17015e2bd557f142b49cccf578ea5}\label{class_ogre_bites_1_1_application_context_a83f17015e2bd557f142b49cccf578ea5}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!destroy\+Dummy\+Scene@{destroy\+Dummy\+Scene}}
\index{destroy\+Dummy\+Scene@{destroy\+Dummy\+Scene}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{destroy\+Dummy\+Scene()}{destroyDummyScene()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::destroy\+Dummy\+Scene (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Destroys dummy scene. 

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_af813d5a428c2e616c793897f1956b4ac}\label{class_ogre_bites_1_1_application_context_af813d5a428c2e616c793897f1956b4ac}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!enable\+Shader\+Cache@{enable\+Shader\+Cache}}
\index{enable\+Shader\+Cache@{enable\+Shader\+Cache}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{enable\+Shader\+Cache()}{enableShaderCache()}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::enable\+Shader\+Cache (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



enables the caching of compiled shaders to file 

also loads any existing cache \mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a8aa4934d8bbae7c8e8031f9cf3cf579c}\label{class_ogre_bites_1_1_application_context_a8aa4934d8bbae7c8e8031f9cf3cf579c}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!add\+Input\+Listener@{add\+Input\+Listener}}
\index{add\+Input\+Listener@{add\+Input\+Listener}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{add\+Input\+Listener()}{addInputListener()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::add\+Input\+Listener (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_bites_af9f017cd1b7c2ca7b8f94a8b10f6a5d0}{Native\+Window\+Type} $\ast$}]{win,  }\item[{\hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$}]{lis }\end{DoxyParamCaption})}



attach input listener 


\begin{DoxyParams}{Parameters}
{\em lis} & the listener \\
\hline
{\em win} & the window to receive the events for. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a802dd1d35735a572c14c2be516a6ce14}\label{class_ogre_bites_1_1_application_context_a802dd1d35735a572c14c2be516a6ce14}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!add\+Input\+Listener@{add\+Input\+Listener}}
\index{add\+Input\+Listener@{add\+Input\+Listener}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{add\+Input\+Listener()}{addInputListener()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::add\+Input\+Listener (\begin{DoxyParamCaption}\item[{\hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$}]{lis }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+Assert.

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a709994ee2ccc1aa7ea353ef368c6a587}\label{class_ogre_bites_1_1_application_context_a709994ee2ccc1aa7ea353ef368c6a587}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!remove\+Input\+Listener@{remove\+Input\+Listener}}
\index{remove\+Input\+Listener@{remove\+Input\+Listener}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{remove\+Input\+Listener()}{removeInputListener()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::remove\+Input\+Listener (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_bites_af9f017cd1b7c2ca7b8f94a8b10f6a5d0}{Native\+Window\+Type} $\ast$}]{win,  }\item[{\hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$}]{lis }\end{DoxyParamCaption})}



detatch input listener 


\begin{DoxyParams}{Parameters}
{\em lis} & the listener \\
\hline
{\em win} & the window to receive the events for. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_aaa07040f2c219e2d395629ae729f7b49}\label{class_ogre_bites_1_1_application_context_aaa07040f2c219e2d395629ae729f7b49}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!remove\+Input\+Listener@{remove\+Input\+Listener}}
\index{remove\+Input\+Listener@{remove\+Input\+Listener}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{remove\+Input\+Listener()}{removeInputListener()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+Bites\+::\+Application\+Context\+::remove\+Input\+Listener (\begin{DoxyParamCaption}\item[{\hyperlink{struct_ogre_bites_1_1_input_listener}{Input\+Listener} $\ast$}]{lis }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+Assert.

\mbox{\Hypertarget{class_ogre_bites_1_1_application_context_a6dcb854318c985782bc92bf5b652722a}\label{class_ogre_bites_1_1_application_context_a6dcb854318c985782bc92bf5b652722a}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!create\+Window@{create\+Window}}
\index{create\+Window@{create\+Window}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{create\+Window()}{createWindow()}}
{\footnotesize\ttfamily virtual \hyperlink{struct_ogre_bites_1_1_native_window_pair}{Native\+Window\+Pair} Ogre\+Bites\+::\+Application\+Context\+::create\+Window (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} \&}]{name,  }\item[{uint32\+\_\+t}]{w = {\ttfamily 0},  }\item[{uint32\+\_\+t}]{h = {\ttfamily 0},  }\item[{\hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Ogre\+::\+Name\+Value\+Pair\+List}}]{misc\+Params = {\ttfamily \hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Ogre\+::\+Name\+Value\+Pair\+List}()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Create a new render window. 

You must use S\+DL and not an auto-\/created window as S\+DL does not get the events otherwise.

By default the values from ogre.\+cfg are used for w, h and misc\+Params. \mbox{\Hypertarget{class_ogre_bites_1_1_application_context_ac0d1097f1e11c01b629406a96b281215}\label{class_ogre_bites_1_1_application_context_ac0d1097f1e11c01b629406a96b281215}} 
\index{Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}!get\+Default\+Media\+Dir@{get\+Default\+Media\+Dir}}
\index{get\+Default\+Media\+Dir@{get\+Default\+Media\+Dir}!Ogre\+Bites\+::\+Application\+Context@{Ogre\+Bites\+::\+Application\+Context}}
\subsubsection{\texorpdfstring{get\+Default\+Media\+Dir()}{getDefaultMediaDir()}}
{\footnotesize\ttfamily static \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{Ogre\+::\+String} Ogre\+Bites\+::\+Application\+Context\+::get\+Default\+Media\+Dir (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



the directory where the media files were installed 

same as O\+G\+R\+E\+\_\+\+M\+E\+D\+I\+A\+\_\+\+D\+IR in C\+Make 

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