\hypertarget{group___g_l_e_s2}{}\section{G\+L\+E\+S2}
\label{group___g_l_e_s2}\index{G\+L\+E\+S2@{G\+L\+E\+S2}}


Implementation of GL ES 2.\+x as a rendering system.  


\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_g_l_e_s2_render_system}{Ogre\+::\+G\+L\+E\+S2\+Render\+System}
\begin{DoxyCompactList}\small\item\em Implementation of GL ES 2.\+x as a rendering system. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group___g_l_e_s2_ga13b7c3c278327f19329404c7619859e6}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+G\+L\+E\+S2\+Render\+System} ()
\item 
virtual \hyperlink{group___g_l_e_s2_gae5dc13a455bc024db98ae1ed309f0e13}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::$\sim$\+G\+L\+E\+S2\+Render\+System} ()
\item 
void \hyperlink{group___g_l_e_s2_ga0f0d14adfe963f86bbcc624e9e948aa8}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+begin\+Frame} (void)
\begin{DoxyCompactList}\small\item\em Signifies the beginning of a frame, i.\+e. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga098f0c566b7c08c3d368a7fdb24ddeee}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+bind\+Vao} (\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$context, \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} vao)
\begin{DoxyCompactList}\small\item\em Bind V\+AO, context should be equal to current context, as V\+A\+Os are not shared. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaf2dbe22e9aaa316d7a22892e7efcac61}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+copy\+Contents\+To\+Memory} (\hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$vp, const \hyperlink{struct_ogre_1_1_box}{Box} \&src, const \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} \&dst, \hyperlink{class_ogre_1_1_render_target_a4b42772d32712767391c749f4745397a}{Render\+Window\+::\+Frame\+Buffer} buffer)
\begin{DoxyCompactList}\small\item\em Copies the current contents of the render target to a pixelbox. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer} $\ast$ \hyperlink{group___g_l_e_s2_ga81eaa5b50d6e63709e3b49a70fa16c08}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+create\+Depth\+Buffer\+For} (\hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$render\+Target)
\begin{DoxyCompactList}\small\item\em Creates a \hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer} that can be attached to the specified \hyperlink{class_ogre_1_1_render_target}{Render\+Target}. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_render_window}{Render\+Window} $\ast$ \hyperlink{group___g_l_e_s2_gab53a6487fef2fd00eee17b860c3f2c2f}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+create\+Render\+Window} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, unsigned int width, unsigned int height, bool full\+Screen, const \hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Name\+Value\+Pair\+List} $\ast$misc\+Params=0)
\begin{DoxyCompactList}\small\item\em Creates a new rendering window. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{group___g_l_e_s2_ga22c282474176319fd19e77f343313c7e}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+create\+Vao} ()
\begin{DoxyCompactList}\small\item\em Create V\+AO on current context. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga5ee9e6efc4f43553d59498e31f670690}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+destroy\+Depth\+Buffer} (\hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$p\+Render\+Wnd)
\item 
void \hyperlink{group___g_l_e_s2_ga32949aa479b9280d8b1309d22916a0b4}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+destroy\+Fbo} (\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$context, \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} fbo)
\begin{DoxyCompactList}\small\item\em Destroy F\+BO immediately or defer if it was created on other context. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gacc34de20d4591bb3b990724576663085}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+destroy\+Vao} (\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$context, \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} vao)
\begin{DoxyCompactList}\small\item\em Destroy V\+AO immediately or defer if it was created on other context. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga68501393597f19991a08d0c20a19c947}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+end\+Frame} (void)
\begin{DoxyCompactList}\small\item\em Ends rendering of a frame to the current viewport. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga234e49f5469846344bd7ed4973d0b5f6}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+get\+Depth\+Stencil\+Format\+For} (\hyperlink{group___image_ga7e0353e7d36d4c2e8468641b7303d39c}{Pixel\+Format} internal\+Colour\+Format, G\+Lenum $\ast$depth\+Format, G\+Lenum $\ast$stencil\+Format)
\begin{DoxyCompactList}\small\item\em Mimics \hyperlink{class_ogre_1_1_d3_d9_render_system_a756e9227a2d0147e31100ce041d4f9cb}{D3\+D9\+Render\+System\+::\+\_\+get\+Depth\+Stencil\+Format\+For}, if no F\+BO R\+TT manager, outputs G\+L\+\_\+\+N\+O\+NE. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_g_l_e_s2_state_cache_manager}{G\+L\+E\+S2\+State\+Cache\+Manager} $\ast$ \hyperlink{group___g_l_e_s2_gaa800af7ac51f670a3b8e4fc4ac320790}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+get\+State\+Cache\+Manager} ()
\item 
\hyperlink{class_ogre_1_1_render_window}{Render\+Window} $\ast$ \hyperlink{group___g_l_e_s2_gabb6817d185f2ebe29984e15de2b7e24a}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+initialise} (bool auto\+Create\+Window, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&window\+Title=\char`\"{}O\+G\+RE Render Native\+Window\+Type\char`\"{})
\begin{DoxyCompactList}\small\item\em Start up the renderer using the settings selected (Or the defaults if none have been selected). \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga0a1b6518755d22dd2d6924f0581ae7d7}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+one\+Time\+Context\+Initialization} ()
\begin{DoxyCompactList}\small\item\em One time initialization for the Render\+State of a context. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga36e40f27ab6ce44b53e4ef94b08a46aa}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+render} (const \hyperlink{class_ogre_1_1_render_operation}{Render\+Operation} \&op)
\begin{DoxyCompactList}\small\item\em Render something to the active viewport. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga817c719f6b647354c82559324ecbdc39}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Alpha\+Reject\+Settings} (\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} func, unsigned char value, bool alpha\+To\+Coverage)
\begin{DoxyCompactList}\small\item\em Sets the global alpha rejection approach for future renders. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gac9479a75974623ddabbb83ba8f7eb234}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Colour\+Buffer\+Write\+Enabled} (bool red, bool green, bool blue, bool alpha)
\begin{DoxyCompactList}\small\item\em Sets whether or not colour buffer writing is enabled, and for which channels. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga790a69a94ddea1d45836be9dae9b6767}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Culling\+Mode} (\hyperlink{group___general_gac173244ed7d950d0acd726e4f323ecdb}{Culling\+Mode} mode)
\begin{DoxyCompactList}\small\item\em Sets the culling mode for the render system based on the \textquotesingle{}vertex winding\textquotesingle{}. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gab2d4e98b8546d512af93891c7094b717}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Bias} (float constant\+Bias, float slope\+Scale\+Bias)
\begin{DoxyCompactList}\small\item\em Sets the depth bias, NB you should use the \hyperlink{class_ogre_1_1_material}{Material} version of this. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga267e64f8737221d3a89de0e81635ea67}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Check\+Enabled} (bool enabled=true)
\begin{DoxyCompactList}\small\item\em Sets whether or not the depth buffer check is performed before a pixel write. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga777d3329487fa339fc1ed83e493a6327}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Function} (\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} func=\hyperlink{group___general_gga0212b4eb264f207d84c1df9425208c7aa2272d0faefcf5a2e08bbf7d232d7520b}{C\+M\+P\+F\+\_\+\+L\+E\+S\+S\+\_\+\+E\+Q\+U\+AL})
\begin{DoxyCompactList}\small\item\em Sets the comparison function for the depth buffer check. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaeb4b435525d18444c63bc4dfddeecdd1}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Params} (bool depth\+Test=true, bool depth\+Write=true, \hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} depth\+Function=\hyperlink{group___general_gga0212b4eb264f207d84c1df9425208c7aa2272d0faefcf5a2e08bbf7d232d7520b}{C\+M\+P\+F\+\_\+\+L\+E\+S\+S\+\_\+\+E\+Q\+U\+AL})
\begin{DoxyCompactList}\small\item\em Sets the mode of operation for depth buffer tests from this point onwards. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga4502b50ef794daaa5471515607ac6f77}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Write\+Enabled} (bool enabled=true)
\begin{DoxyCompactList}\small\item\em Sets whether or not the depth buffer is updated after a pixel write. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga55c3aaee65dee3249d3294a49d21e9d4}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Line\+Width} (float width)
\begin{DoxyCompactList}\small\item\em Set the line width when drawing as \hyperlink{class_ogre_1_1_render_operation_a7a272218dae54048c87f31176c19e10da68a6fc2c1c6938542664b89cf213c3eb}{Render\+Operation\+::\+O\+T\+\_\+\+L\+I\+N\+E\+\_\+\+L\+I\+ST}/ \hyperlink{class_ogre_1_1_render_operation_a7a272218dae54048c87f31176c19e10da4bc7bbf09ce027518e33e61249e699a1}{Render\+Operation\+::\+O\+T\+\_\+\+L\+I\+N\+E\+\_\+\+S\+T\+R\+IP}. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gabcac20ccef713d00075e7938e8afd343}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Polygon\+Mode} (\hyperlink{group___general_ga68866b02aa7f99e3431337511fbb3345}{Polygon\+Mode} level)
\begin{DoxyCompactList}\small\item\em Sets how to rasterise triangles, as points, wireframe or solid polys. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga432c00c2cb1369b3162c1b4694fb563a}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Render\+Target} (\hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$target)
\begin{DoxyCompactList}\small\item\em Set current render target to target, enabling its GL context if needed. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga4ca1d78dff99ffe26c008c1a3a6ad330}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Scene\+Blending} (\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} source\+Factor, \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} dest\+Factor, \hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} op)
\begin{DoxyCompactList}\small\item\em Sets the global blending factors for combining subsequent renders with the existing frame contents. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga3fce8624a7935b6321530f0285348d9d}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Scene\+Blending\+Operation} (\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} op)
\item 
void \hyperlink{group___g_l_e_s2_ga2ed07f074ae69826c8090cd8541b67a5}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Separate\+Scene\+Blending} (\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} source\+Factor, \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} dest\+Factor, \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} source\+Factor\+Alpha, \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} dest\+Factor\+Alpha, \hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} op, \hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} alpha\+Op)
\begin{DoxyCompactList}\small\item\em Sets the global blending factors for combining subsequent renders with the existing frame contents. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gad39f35ad1d2e2bb953f5114fb5da3eeb}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Separate\+Scene\+Blending\+Operation} (\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} op, \hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} alpha\+Op)
\item 
void \hyperlink{group___g_l_e_s2_ga066f9dbe0f422cd350d22c563896e6c7}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture} (size\+\_\+t unit, bool enabled, const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \&tex)
\begin{DoxyCompactList}\small\item\em Sets the texture to bind to a given texture unit. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gab35ff75c77786dd02c8df78cec83a638}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Addressing\+Mode} (size\+\_\+t stage, const \hyperlink{struct_ogre_1_1_texture_unit_state_1_1_u_v_w_addressing_mode}{Texture\+Unit\+State\+::\+U\+V\+W\+Addressing\+Mode} \&uvw)
\begin{DoxyCompactList}\small\item\em Sets the texture addressing mode for a texture unit. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga8f7d75c7234f300c1d6fdb09d019a3bc}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Border\+Colour} (size\+\_\+t stage, const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&colour)
\begin{DoxyCompactList}\small\item\em Sets the texture border colour for a texture unit. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaab7cdbfb7eaa8ded535cf1adfd5983fb}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Layer\+Anisotropy} (size\+\_\+t unit, unsigned int max\+Anisotropy)
\begin{DoxyCompactList}\small\item\em Sets the maximal anisotropy for the specified texture unit. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga9120c932b874e1fb8645035bbf22b65e}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Mipmap\+Bias} (size\+\_\+t unit, float bias)
\begin{DoxyCompactList}\small\item\em Sets the mipmap bias value for a given texture unit. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaeddf29413cf26ba1a7a16acdefef2dcb}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Compare\+Enabled} (size\+\_\+t unit, bool compare)
\begin{DoxyCompactList}\small\item\em Sets whether the compare func is enabled or not for this texture unit. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga2107cd1bce2156d694ebcb65c6602534}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Compare\+Function} (size\+\_\+t unit, \hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} function)
\begin{DoxyCompactList}\small\item\em Sets the compare function to use for a given texture unit. \end{DoxyCompactList}\item 
virtual void \hyperlink{group___g_l_e_s2_gaf28d1fa286f453317a1e889e6fc7de04}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Filtering} (size\+\_\+t unit, \hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options} min\+Filter, \hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options} mag\+Filter, \hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options} mip\+Filter)
\begin{DoxyCompactList}\small\item\em This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga521693302023af1900f5bebacfb01a42}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Filtering} (size\+\_\+t unit, \hyperlink{group___general_gac1fc36ec2f4df4b2afa9fa39f9c66c06}{Filter\+Type} ftype, \hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options} filter)
\begin{DoxyCompactList}\small\item\em Sets a single filter for a given texture unit. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga9e85e1cc3f1c220959768593e0017f40}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Viewport} (\hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$vp)
\begin{DoxyCompactList}\small\item\em Sets the provided viewport as the active one for future rendering operations. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaade56a7ee4c9a8149a371618126297dc}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+switch\+Context} (\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$context)
\begin{DoxyCompactList}\small\item\em Switch GL context, dealing with involved internal cached states too. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gab7faf71d5da9f82a2008c0c4207a1ac7}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+unregister\+Context} (\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$context)
\begin{DoxyCompactList}\small\item\em Unregister a render target-\/$>$context mapping. \end{DoxyCompactList}\item 
bool \hyperlink{group___g_l_e_s2_gae982beab16b67617dfe88fc6fdbede32}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::are\+Fixed\+Function\+Lights\+In\+View\+Space} () const
\begin{DoxyCompactList}\small\item\em Are fixed-\/function lights provided in view space? Affects optimisation. \end{DoxyCompactList}\item 
virtual void \hyperlink{group___g_l_e_s2_gaa9d66fa2deb73aa6577716a9e3fc911c}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::begin\+Profile\+Event} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&event\+Name)
\begin{DoxyCompactList}\small\item\em This marks the beginning of an event for G\+PU profiling. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gad1b0cf3f7aea1a2f2bb3d8762500282f}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::bind\+Gpu\+Program} (\hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program} $\ast$prg)
\begin{DoxyCompactList}\small\item\em Binds a given \hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program} (but not the parameters). \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga733ffc8e541d74e5cdbaff1ae59fb45b}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::bind\+Gpu\+Program\+Parameters} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} gptype, \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} mask)
\begin{DoxyCompactList}\small\item\em Bind Gpu program parameters. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga9fe72776eaa2437f5a1ad7a2498de7cd}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::bind\+Gpu\+Program\+Pass\+Iteration\+Parameters} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} gptype)
\begin{DoxyCompactList}\small\item\em Only binds Gpu program parameters used for passes that have more than one iteration rendering. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaab180fa4a2aba714e22ff30d22511d30}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::clear\+Frame\+Buffer} (unsigned int buffers, const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&colour=\hyperlink{class_ogre_1_1_colour_value_a7f8a06f2a9dd645417c36b560f496c1a}{Colour\+Value\+::\+Black}, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} depth=1.\+0f, unsigned short stencil=0)
\begin{DoxyCompactList}\small\item\em Clears one or more frame buffers on the active render target. \end{DoxyCompactList}\item 
G\+Lint \hyperlink{group___g_l_e_s2_gacadd6b4ab828568d763b707eb4199b93}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::convert\+Compare\+Function} (\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} func) const
\item 
G\+Lint \hyperlink{group___g_l_e_s2_gae96b47494abeb2761223b9408a37b2b9}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::convert\+Stencil\+Op} (\hyperlink{group___render_system_gae8bb1cb809660de802d1d592ba4adb61}{Stencil\+Operation} op, bool invert=false) const
\item 
\hyperlink{class_ogre_1_1_hardware_occlusion_query}{Hardware\+Occlusion\+Query} $\ast$ \hyperlink{group___g_l_e_s2_ga680c79fd34fbc4b2cce31b2356b6795a}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::create\+Hardware\+Occlusion\+Query} (void)
\begin{DoxyCompactList}\small\item\em Create an object for performing hardware occlusion queries. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_multi_render_target}{Multi\+Render\+Target} $\ast$ \hyperlink{group___g_l_e_s2_ga485ebebda97e764bef335abadc04fb14}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::create\+Multi\+Render\+Target} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Create a \hyperlink{class_ogre_1_1_multi_render_target}{Multi\+Render\+Target}, which is a render target that renders to multiple Render\+Textures at once. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_render_system_capabilities}{Render\+System\+Capabilities} $\ast$ \hyperlink{group___g_l_e_s2_ga5306bcbd9bc9cea046118189bcf01b55}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::create\+Render\+System\+Capabilities} () const
\begin{DoxyCompactList}\small\item\em Query the real capabilities of the G\+PU and driver in the \hyperlink{class_ogre_1_1_render_system}{Render\+System}. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga31201c00d107451d7f7ff264f3559a2e}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::destroy\+Render\+Window} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Destroys a render window. \end{DoxyCompactList}\item 
virtual void \hyperlink{group___g_l_e_s2_ga5bbe15aca9033a03c1e91f8d685484a2}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::end\+Profile\+Event} (void)
\begin{DoxyCompactList}\small\item\em Ends the currently active G\+PU profiling event. \end{DoxyCompactList}\item 
unsigned int \hyperlink{group___g_l_e_s2_ga3f58ee26c14bf54639eb2cdaf054c11b}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::get\+Display\+Monitor\+Count} () const
\begin{DoxyCompactList}\small\item\em Gets the number of display monitors. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{group___g_l_e_s2_ga911c9c38118fee9fbf1220dbb9a2d4e1}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::get\+Name} (void) const
\begin{DoxyCompactList}\small\item\em Returns the name of the rendering system. \end{DoxyCompactList}\item 
virtual bool \hyperlink{group___g_l_e_s2_ga4c41d253fd2a38b8d2289fd0bd67fb74}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::has\+Anisotropic\+Mip\+Map\+Filter} () const
\begin{DoxyCompactList}\small\item\em Determines if the system has anisotropic mip map filter support. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gac83a59b0472953bfe4d72104cacadc53}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::initialise\+Context} (\hyperlink{class_ogre_1_1_render_window}{Render\+Window} $\ast$primary)
\item 
void \hyperlink{group___g_l_e_s2_ga9dc71e053c89ccced5784362a3ca44ce}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::initialise\+From\+Render\+System\+Capabilities} (\hyperlink{class_ogre_1_1_render_system_capabilities}{Render\+System\+Capabilities} $\ast$caps, \hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$primary)
\begin{DoxyCompactList}\small\item\em Initialize the render system from the capabilities. \end{DoxyCompactList}\item 
virtual void \hyperlink{group___g_l_e_s2_gaaaf19428429c81faca674b37f578b3c6}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::mark\+Profile\+Event} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&event\+Name)
\begin{DoxyCompactList}\small\item\em Marks an instantaneous event for graphics profilers. \end{DoxyCompactList}\item 
\hyperlink{group___g_l_e_s2_ga852ee2cf631ec79637b4d799727587b8}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+O\+G\+R\+E\+\_\+\+M\+U\+T\+EX} (m\+Thread\+Init\+Mutex)
\item 
void \hyperlink{group___g_l_e_s2_ga1767016ed55e3877d47464882aef9a27}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::post\+Extra\+Threads\+Started} ()
\begin{DoxyCompactList}\small\item\em Tell the rendersystem to perform any tasks it needs to directly after other threads which might access the rendering A\+PI are registered. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga8facb30ed47df20d9df6de77c23c5398}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::pre\+Extra\+Threads\+Started} ()
\begin{DoxyCompactList}\small\item\em Tell the rendersystem to perform any prep tasks it needs to directly before other threads which might access the rendering A\+PI are registered. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaf260eadeba4a0ef3e330a8c0ea73e606}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::register\+Thread} ()
\begin{DoxyCompactList}\small\item\em Register the an additional thread which may make calls to rendersystem-\/related objects. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga2a7acd32e8329a1b59f40b7b7742dabf}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Clip\+Planes\+Impl} (const \hyperlink{group___math_ga4cfa65f236aec1767fc85022e87059a0}{Ogre\+::\+Plane\+List} \&plane\+List)
\begin{DoxyCompactList}\small\item\em Internal method used to set the underlying clip planes when needed. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaa8d7e5faf05d5d865573294c48db9a73}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Scissor\+Test} (bool enabled, size\+\_\+t left=0, size\+\_\+t top=0, size\+\_\+t right=800, size\+\_\+t bottom=600)
\begin{DoxyCompactList}\small\item\em Sets the \textquotesingle{}scissor region\textquotesingle{} i.\+e. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga50035b687daf76d52a11bf6b851bb902}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Stencil\+Buffer\+Params} (\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} func=\hyperlink{group___general_gga0212b4eb264f207d84c1df9425208c7aae10ea1648cd8c9bd90bdaccaa11cbc4e}{C\+M\+P\+F\+\_\+\+A\+L\+W\+A\+Y\+S\+\_\+\+P\+A\+SS}, \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} ref\+Value=0, \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} compare\+Mask=0x\+F\+F\+F\+F\+F\+F\+F\+F, uint32 write\+Mask=0x\+F\+F\+F\+F\+F\+F\+F\+F, Stencil\+Operation stencil\+Fail\+Op=\+S\+O\+P\+\_\+\+K\+E\+E\+P, Stencil\+Operation depth\+Fail\+Op=\+S\+O\+P\+\_\+\+K\+E\+E\+P, Stencil\+Operation pass\+Op=\+S\+O\+P\+\_\+\+K\+E\+E\+P, bool two\+Sided\+Operation=false, bool read\+Back\+As\+Texture=false)
\begin{DoxyCompactList}\small\item\em Determines if this system supports hardware accelerated stencil buffer. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaecdd103b0c6243287f6dfb1be8bc4e08}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Stencil\+Check\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Turns depth-\/stencil buffer checking on or off. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga9d4668eb748e9093af39c95a1684aa2a}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::shutdown} (void)
\begin{DoxyCompactList}\small\item\em Shutdown the renderer and cleanup resources. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_ga564175c3cb628ac2deeea6d98d4e4bc0}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::unbind\+Gpu\+Program} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} gptype)
\begin{DoxyCompactList}\small\item\em Unbinds Gpu\+Programs of a given Gpu\+Program\+Type. \end{DoxyCompactList}\item 
void \hyperlink{group___g_l_e_s2_gaa6bfad53622bb5f865871a3918bb4fac}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::unregister\+Thread} ()
\begin{DoxyCompactList}\small\item\em Unregister an additional thread which may make calls to rendersystem-\/related objects. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{group___g_l_e_s2_gae3fef941757423683223183c2374e5d9}{Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+Shader\+Generator\+Technique\+Resolver\+Listener}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Implementation of GL ES 2.\+x as a rendering system. 



\subsection{Function Documentation}
\mbox{\Hypertarget{group___g_l_e_s2_ga13b7c3c278327f19329404c7619859e6}\label{group___g_l_e_s2_ga13b7c3c278327f19329404c7619859e6}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!G\+L\+E\+S2\+Render\+System@{G\+L\+E\+S2\+Render\+System}}
\index{G\+L\+E\+S2\+Render\+System@{G\+L\+E\+S2\+Render\+System}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{G\+L\+E\+S2\+Render\+System()}{GLES2RenderSystem()}}
{\footnotesize\ttfamily Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+G\+L\+E\+S2\+Render\+System (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group___g_l_e_s2_gae5dc13a455bc024db98ae1ed309f0e13}\label{group___g_l_e_s2_gae5dc13a455bc024db98ae1ed309f0e13}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!````~G\+L\+E\+S2\+Render\+System@{$\sim$\+G\+L\+E\+S2\+Render\+System}}
\index{````~G\+L\+E\+S2\+Render\+System@{$\sim$\+G\+L\+E\+S2\+Render\+System}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{$\sim$\+G\+L\+E\+S2\+Render\+System()}{~GLES2RenderSystem()}}
{\footnotesize\ttfamily virtual Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::$\sim$\+G\+L\+E\+S2\+Render\+System (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

\mbox{\Hypertarget{group___g_l_e_s2_ga911c9c38118fee9fbf1220dbb9a2d4e1}\label{group___g_l_e_s2_ga911c9c38118fee9fbf1220dbb9a2d4e1}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{get\+Name()}{getName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::get\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Returns the name of the rendering system. 



Implements \hyperlink{class_ogre_1_1_render_system_a19b810b6fe61b526010812e9af80bf63}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gabb6817d185f2ebe29984e15de2b7e24a}\label{group___g_l_e_s2_gabb6817d185f2ebe29984e15de2b7e24a}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+initialise@{\+\_\+initialise}}
\index{\+\_\+initialise@{\+\_\+initialise}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+initialise()}{\_initialise()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_render_window}{Render\+Window}$\ast$ Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+initialise (\begin{DoxyParamCaption}\item[{bool}]{auto\+Create\+Window,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{window\+Title = {\ttfamily \char`\"{}OGRE~Render~NativeWindowType\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Start up the renderer using the settings selected (Or the defaults if none have been selected). 

\begin{DoxyRemark}{Remarks}
Called by \hyperlink{class_ogre_1_1_root_af768914a0dd431ee442bf83157daf570}{Root\+::set\+Render\+System}. Shouldn\textquotesingle{}t really be called directly, although this can be done if the app wants to. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em auto\+Create\+Window} & If true, creates a render window automatically, based on settings chosen so far. This saves an extra call to \+\_\+create\+Render\+Window for the main render window. \\
\hline
{\em window\+Title} & Sets the app window title \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the automatically created window, if requested, otherwise null. 
\end{DoxyReturn}


Reimplemented from \hyperlink{class_ogre_1_1_render_system_aad26b5af908674412c89242003f5991e}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga5306bcbd9bc9cea046118189bcf01b55}\label{group___g_l_e_s2_ga5306bcbd9bc9cea046118189bcf01b55}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!create\+Render\+System\+Capabilities@{create\+Render\+System\+Capabilities}}
\index{create\+Render\+System\+Capabilities@{create\+Render\+System\+Capabilities}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{create\+Render\+System\+Capabilities()}{createRenderSystemCapabilities()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_render_system_capabilities}{Render\+System\+Capabilities}$\ast$ Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::create\+Render\+System\+Capabilities (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Query the real capabilities of the G\+PU and driver in the \hyperlink{class_ogre_1_1_render_system}{Render\+System}. 



Implements \hyperlink{class_ogre_1_1_render_system_a4cd432497387d2c630a95ad9c0cd9772}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga9dc71e053c89ccced5784362a3ca44ce}\label{group___g_l_e_s2_ga9dc71e053c89ccced5784362a3ca44ce}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!initialise\+From\+Render\+System\+Capabilities@{initialise\+From\+Render\+System\+Capabilities}}
\index{initialise\+From\+Render\+System\+Capabilities@{initialise\+From\+Render\+System\+Capabilities}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{initialise\+From\+Render\+System\+Capabilities()}{initialiseFromRenderSystemCapabilities()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::initialise\+From\+Render\+System\+Capabilities (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_system_capabilities}{Render\+System\+Capabilities} $\ast$}]{caps,  }\item[{\hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$}]{primary }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Initialize the render system from the capabilities. 



Implements \hyperlink{class_ogre_1_1_render_system}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga9d4668eb748e9093af39c95a1684aa2a}\label{group___g_l_e_s2_ga9d4668eb748e9093af39c95a1684aa2a}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!shutdown@{shutdown}}
\index{shutdown@{shutdown}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{shutdown()}{shutdown()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::shutdown (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Shutdown the renderer and cleanup resources. 



Reimplemented from \hyperlink{class_ogre_1_1_render_system_a987cf400154a21403b4ff5192d423971}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gab53a6487fef2fd00eee17b860c3f2c2f}\label{group___g_l_e_s2_gab53a6487fef2fd00eee17b860c3f2c2f}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+create\+Render\+Window@{\+\_\+create\+Render\+Window}}
\index{\+\_\+create\+Render\+Window@{\+\_\+create\+Render\+Window}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+create\+Render\+Window()}{\_createRenderWindow()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_render_window}{Render\+Window}$\ast$ Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+create\+Render\+Window (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{unsigned int}]{width,  }\item[{unsigned int}]{height,  }\item[{bool}]{full\+Screen,  }\item[{const \hyperlink{group___general_ga0537f38d7a77fcbe9f600f6ed8a926d6}{Name\+Value\+Pair\+List} $\ast$}]{misc\+Params = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Creates a new rendering window. 

\begin{DoxyRemark}{Remarks}
This method creates a new rendering window as specified by the paramteters. The rendering system could be responible for only a single window (e.\+g. in the case of a game), or could be in charge of multiple ones (in the case of a level editor). The option to create the window as a child of another is therefore given. This method will create an appropriate subclass of \hyperlink{class_ogre_1_1_render_window}{Render\+Window} depending on the A\+PI and platform implementation. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
After creation, this window can be retrieved using \hyperlink{class_ogre_1_1_render_system_a096eb751bc772f0b557bff4016f81d40}{get\+Render\+Target()}. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em name} & The name of the window. Used in other methods later like set\+Render\+Target and get\+Render\+Target. \\
\hline
{\em width} & The width of the new window. \\
\hline
{\em height} & The height of the new window. \\
\hline
{\em full\+Screen} & Specify true to make the window full screen without borders, title bar or menu bar. \\
\hline
{\em misc\+Params} & A Name\+Value\+Pair\+List describing the other parameters for the new rendering window. Options are case sensitive. Unrecognised parameters will be ignored silently. These values might be platform dependent, but these are present for all platforms unless indicated otherwise\+: \begin{tabularx}{\linewidth}{|*{5}{>{\raggedright\arraybackslash}X|}}\hline
\rowcolor{\tableheadbgcolor}\textbf{ Key }&\textbf{ Type / Values }&\textbf{ Default }&\textbf{ Description }&\textbf{ Notes  }\\\cline{1-5}
\endfirsthead
\hline
\endfoot
\hline
\rowcolor{\tableheadbgcolor}\textbf{ Key }&\textbf{ Type / Values }&\textbf{ Default }&\textbf{ Description }&\textbf{ Notes  }\\\cline{1-5}
\endhead
title &\hyperlink{class_ogre_1_1_any}{Any} string &\hyperlink{class_ogre_1_1_render_target}{Render\+Target} name &The title of the window that will appear in the title bar &\\\cline{1-5}
left &Positive integers &Centred &Screen x coordinate from left &\\\cline{1-5}
top &Positive integers &Centred &Screen y coordinate from left &\\\cline{1-5}
border &none, fixed, resize &resize &The type of window border (in windowed mode) &\\\cline{1-5}
hidden &true, false &false &hide the created window &\\\cline{1-5}
F\+S\+AA &Positive integer (usually 0, 2, 4, 8, 16) &0 &Full screen antialiasing factor &\\\cline{1-5}
gamma &true, false &false &Enable hardware conversion from linear colour space to gamma colour space on rendering to the window. &\\\cline{1-5}
vsync &true, false &false &Synchronize buffer swaps to monitor vsync, eliminating tearing at the expense of a fixed frame rate &\\\cline{1-5}
vsync\+Interval &1, 2, 3, 4 &1 &If vsync is enabled, the minimum number of vertical blanks that should occur between renders. For example if vsync is enabled, the refresh rate is 60 and this is set to 2, then the frame rate will be locked at 30. &\\\cline{1-5}
Full Screen &true, false &false &Specify whether to create the window in full screen mode &\\\cline{1-5}
display\+Frequency &Refresh rate in Hertz (e.\+g. 60, 75, 100) &Desktop vsync rate &Display frequency rate, for fullscreen mode &\\\cline{1-5}
parent\+Window\+Handle &
\begin{DoxyItemize}
\item Win32\+: H\+W\+ND as integer
\item G\+LX\+: poslong\+:posint\+:poslong (display$\ast$\+:screen\+:window\+Handle) or poslong\+:posint\+:poslong\+:poslong (display$\ast$\+:screen\+:window\+Handle\+:X\+Visual\+Info$\ast$) 
\end{DoxyItemize}&0 (none) &Parent window handle, for embedding the O\+G\+RE in a child of an external window &\\\cline{1-5}
external\+Window\+Handle &
\begin{DoxyItemize}
\item Win32\+: H\+W\+ND as integer
\item G\+LX\+: poslong\+:posint\+:poslong (display$\ast$\+:screen\+:window\+Handle) or poslong\+:posint\+:poslong\+:poslong (display$\ast$\+:screen\+:window\+Handle\+:X\+Visual\+Info$\ast$)
\item OS X Cocoa\+: Ogre\+G\+L\+View address as an integer. You can pass N\+S\+View or N\+S\+Window too, but should perform Ogre\+G\+L\+View callbacks into the \hyperlink{namespace_ogre}{Ogre} manually.
\item OS X Carbon\+: Window\+Ref as an integer
\item i\+OS\+: U\+I\+Window address as an integer
\end{DoxyItemize}&0 (none) &External window handle, for embedding the O\+G\+RE render in an existing window &\\\cline{1-5}
external\+G\+L\+Control &true, false &false &Let the external window control Open\+GL i.\+e. don\textquotesingle{}t select a pixel format for the window, do not change v-\/sync and do not swap buffer. When set to true, the calling application is responsible of Open\+GL initialization and buffer swapping. It should also create an Open\+GL context for its own rendering, \hyperlink{namespace_ogre}{Ogre} will create one for its use. Then the calling application must also enable \hyperlink{namespace_ogre}{Ogre} Open\+GL context before calling any \hyperlink{namespace_ogre}{Ogre} function and restore its Open\+GL context after these calls. &Open\+GL Specific \\\cline{1-5}
current\+G\+L\+Context &true, false &false &Use an externally created GL context. (Must be current) &Open\+GL Specific \\\cline{1-5}
min\+Colour\+Buffer\+Size &Positive integer (usually 16, 32) &16 &Min total colour buffer size. See E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+ZE &Open\+GL Specific \\\cline{1-5}
colour\+Depth &16, 32 &Desktop depth &Colour depth of the resulting rendering window; only applies if full\+Screen &Win32 Specific \\\cline{1-5}
F\+S\+A\+A\+Hint &Depends on \hyperlink{class_ogre_1_1_render_system}{Render\+System} and hardware. Currently supports\+:\char`\"{}\+Quality\char`\"{}\+: on systems that have an option to prefer higher AA quality over speed, use it &Blank &Full screen antialiasing hint &Win32 Specific \\\cline{1-5}
outer\+Dimensions &true, false &false &Whether the width/height is expressed as the size of the outer window, rather than the content area &Win32 Specific \\\cline{1-5}
monitor\+Index &&-\/1 &&Win 32 Specific \\\cline{1-5}
monitor\+Handle &&0 (none) &&Win 32 Specific (Open\+GL) \\\cline{1-5}
enable\+Double\+Click &true, false &false &Enable the window to keep track and transmit double click messages. &Win32 Specific \\\cline{1-5}
use\+N\+V\+Perf\+H\+UD &true, false &false &Enable the use of n\+Vidia N\+V\+Perf\+H\+UD &DirectX Specific \\\cline{1-5}
depth\+Buffer &true, false &true &Use depth buffer &Direct\+X9 Specific \\\cline{1-5}
N\+S\+Open\+G\+L\+C\+P\+Surface\+Order &-\/1 or 1 &1 &\href{https://developer.apple.com/documentation/appkit/nsopenglcpsurfaceorder}{\tt N\+S\+Open\+G\+L\+C\+P\+Surface\+Order} &Mac OS X Specific \\\cline{1-5}
content\+Scaling\+Factor &Positive Float greater than 1.\+0 &The default content scaling factor of the screen &Specifies the C\+A\+E\+A\+G\+L\+Layer content scaling factor. Only supported on i\+OS 4 or greater. This can be useful to limit the resolution of the Open\+GL ES backing store. For example, the i\+Phone 4\textquotesingle{}s native resolution is 960 x 640. Windows are always 320 x 480, if you would like to limit the display to 720 x 480, specify 1.\+5 as the scaling factor. &i\+OS Specific \\\cline{1-5}
external\+View\+Handle &U\+I\+View pointer as an integer &0 &External view handle, for rendering O\+G\+RE render in an existing view &i\+OS Specific \\\cline{1-5}
external\+View\+Controller\+Handle &U\+I\+View\+Controller pointer as an integer &0 &External view controller handle, for embedding O\+G\+RE in an existing view controller &i\+OS Specific \\\cline{1-5}
external\+Sharegroup &E\+A\+G\+L\+Sharegroup pointer as an integer &0 &External sharegroup, used to shared GL resources between contexts &i\+OS Specific \\\cline{1-5}
M\+S\+AA &Positive integer (usually 0, 2, 4, 8, 16) &0 &Full screen antialiasing factor &Android Specific \\\cline{1-5}
C\+S\+AA &Positive integer (usually 0, 2, 4, 8, 16) &0 &\href{https://www.khronos.org/registry/egl/extensions/NV/EGL_NV_coverage_sample.txt}{\tt Coverage sampling factor} &Android Specific \\\cline{1-5}
max\+Colour\+Buffer\+Size &Positive integer (usually 16, 32) &32 &Max E\+G\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+S\+I\+ZE &Android Specific \\\cline{1-5}
max\+Stencil\+Buffer\+Size &Positive integer (usually 0, 8) &0 &E\+G\+L\+\_\+\+S\+T\+E\+N\+C\+I\+L\+\_\+\+S\+I\+ZE &Android Specific \\\cline{1-5}
max\+Depth\+Buffer\+Size &Positive integer (usually 0, 16, 24) &16 &E\+G\+L\+\_\+\+D\+E\+P\+T\+H\+\_\+\+S\+I\+ZE &Android Specific \\\cline{1-5}
\end{tabularx}
\\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_aaf156b9f935396e6c17f532f6e6c847e}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga81eaa5b50d6e63709e3b49a70fa16c08}\label{group___g_l_e_s2_ga81eaa5b50d6e63709e3b49a70fa16c08}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+create\+Depth\+Buffer\+For@{\+\_\+create\+Depth\+Buffer\+For}}
\index{\+\_\+create\+Depth\+Buffer\+For@{\+\_\+create\+Depth\+Buffer\+For}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+create\+Depth\+Buffer\+For()}{\_createDepthBufferFor()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}$\ast$ Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+create\+Depth\+Buffer\+For (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$}]{render\+Target }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Creates a \hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer} that can be attached to the specified \hyperlink{class_ogre_1_1_render_target}{Render\+Target}. 

\begin{DoxyRemark}{Remarks}
It doesn\textquotesingle{}t attach anything, it just returns a pointer to a new \hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer} Caller is responsible for putting this buffer into the right pool, for attaching, and deleting it. Here\textquotesingle{}s where A\+P\+I-\/specific magic happens. Don\textquotesingle{}t call this directly unless you know what you\textquotesingle{}re doing. 
\end{DoxyRemark}


Implements \hyperlink{class_ogre_1_1_render_system_ad084167159b7c73a043bfc5c2723094f}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga234e49f5469846344bd7ed4973d0b5f6}\label{group___g_l_e_s2_ga234e49f5469846344bd7ed4973d0b5f6}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+get\+Depth\+Stencil\+Format\+For@{\+\_\+get\+Depth\+Stencil\+Format\+For}}
\index{\+\_\+get\+Depth\+Stencil\+Format\+For@{\+\_\+get\+Depth\+Stencil\+Format\+For}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+get\+Depth\+Stencil\+Format\+For()}{\_getDepthStencilFormatFor()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+get\+Depth\+Stencil\+Format\+For (\begin{DoxyParamCaption}\item[{\hyperlink{group___image_ga7e0353e7d36d4c2e8468641b7303d39c}{Pixel\+Format}}]{internal\+Colour\+Format,  }\item[{G\+Lenum $\ast$}]{depth\+Format,  }\item[{G\+Lenum $\ast$}]{stencil\+Format }\end{DoxyParamCaption})}



Mimics \hyperlink{class_ogre_1_1_d3_d9_render_system_a756e9227a2d0147e31100ce041d4f9cb}{D3\+D9\+Render\+System\+::\+\_\+get\+Depth\+Stencil\+Format\+For}, if no F\+BO R\+TT manager, outputs G\+L\+\_\+\+N\+O\+NE. 

\mbox{\Hypertarget{group___g_l_e_s2_ga485ebebda97e764bef335abadc04fb14}\label{group___g_l_e_s2_ga485ebebda97e764bef335abadc04fb14}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!create\+Multi\+Render\+Target@{create\+Multi\+Render\+Target}}
\index{create\+Multi\+Render\+Target@{create\+Multi\+Render\+Target}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{create\+Multi\+Render\+Target()}{createMultiRenderTarget()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_multi_render_target}{Multi\+Render\+Target}$\ast$ Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::create\+Multi\+Render\+Target (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Create a \hyperlink{class_ogre_1_1_multi_render_target}{Multi\+Render\+Target}, which is a render target that renders to multiple Render\+Textures at once. 

Surfaces can be bound and unbound at will. This fails if m\+Capabilities-\/$>$get\+Num\+Multi\+Render\+Targets() is smaller than 2. 

Implements \hyperlink{class_ogre_1_1_render_system_a857191a1acd18fd25498517bf183efe2}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga31201c00d107451d7f7ff264f3559a2e}\label{group___g_l_e_s2_ga31201c00d107451d7f7ff264f3559a2e}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!destroy\+Render\+Window@{destroy\+Render\+Window}}
\index{destroy\+Render\+Window@{destroy\+Render\+Window}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{destroy\+Render\+Window()}{destroyRenderWindow()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::destroy\+Render\+Window (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Destroys a render window. 



Reimplemented from \hyperlink{class_ogre_1_1_render_system_a65ddf1db4aa3f463e0479c240ffc3dc5}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gae982beab16b67617dfe88fc6fdbede32}\label{group___g_l_e_s2_gae982beab16b67617dfe88fc6fdbede32}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!are\+Fixed\+Function\+Lights\+In\+View\+Space@{are\+Fixed\+Function\+Lights\+In\+View\+Space}}
\index{are\+Fixed\+Function\+Lights\+In\+View\+Space@{are\+Fixed\+Function\+Lights\+In\+View\+Space}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{are\+Fixed\+Function\+Lights\+In\+View\+Space()}{areFixedFunctionLightsInViewSpace()}}
{\footnotesize\ttfamily bool Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::are\+Fixed\+Function\+Lights\+In\+View\+Space (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Are fixed-\/function lights provided in view space? Affects optimisation. 



Reimplemented from \hyperlink{class_ogre_1_1_render_system_a008131b65568c0bf072ae3a96203d6c0}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga066f9dbe0f422cd350d22c563896e6c7}\label{group___g_l_e_s2_ga066f9dbe0f422cd350d22c563896e6c7}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture@{\+\_\+set\+Texture}}
\index{\+\_\+set\+Texture@{\+\_\+set\+Texture}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture()}{\_setTexture()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{bool}]{enabled,  }\item[{const \hyperlink{namespace_ogre_aa381890787803da43b614dee8d9c8994}{Texture\+Ptr} \&}]{tex\+Ptr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the texture to bind to a given texture unit. 

User processes would not normally call this direct unless rendering primitives themselves.


\begin{DoxyParams}{Parameters}
{\em unit} & The index of the texture unit to modify. Multitexturing hardware can support multiple units (see Render\+System\+Capabilites\+::get\+Num\+Texture\+Units) \\
\hline
{\em enabled} & Boolean to turn the unit on/off \\
\hline
{\em tex\+Ptr} & Pointer to the texture to use. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a2cb551bfdd04b7426f73a84cbcbc93f7}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gab35ff75c77786dd02c8df78cec83a638}\label{group___g_l_e_s2_gab35ff75c77786dd02c8df78cec83a638}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Addressing\+Mode@{\+\_\+set\+Texture\+Addressing\+Mode}}
\index{\+\_\+set\+Texture\+Addressing\+Mode@{\+\_\+set\+Texture\+Addressing\+Mode}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Addressing\+Mode()}{\_setTextureAddressingMode()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Addressing\+Mode (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{const \hyperlink{struct_ogre_1_1_texture_unit_state_1_1_u_v_w_addressing_mode}{Texture\+Unit\+State\+::\+U\+V\+W\+Addressing\+Mode} \&}]{uvw }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the texture addressing mode for a texture unit. 



Implements \hyperlink{class_ogre_1_1_render_system_a67b3f87c6ef12e5b24812eeb61635308}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga8f7d75c7234f300c1d6fdb09d019a3bc}\label{group___g_l_e_s2_ga8f7d75c7234f300c1d6fdb09d019a3bc}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Border\+Colour@{\+\_\+set\+Texture\+Border\+Colour}}
\index{\+\_\+set\+Texture\+Border\+Colour@{\+\_\+set\+Texture\+Border\+Colour}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Border\+Colour()}{\_setTextureBorderColour()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Border\+Colour (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{colour }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Sets the texture border colour for a texture unit. 



Implements \hyperlink{class_ogre_1_1_render_system_ad771e198662c3316b13b2c86caff6f2e}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga9120c932b874e1fb8645035bbf22b65e}\label{group___g_l_e_s2_ga9120c932b874e1fb8645035bbf22b65e}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Mipmap\+Bias@{\+\_\+set\+Texture\+Mipmap\+Bias}}
\index{\+\_\+set\+Texture\+Mipmap\+Bias@{\+\_\+set\+Texture\+Mipmap\+Bias}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Mipmap\+Bias()}{\_setTextureMipmapBias()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Mipmap\+Bias (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{float}]{bias }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Sets the mipmap bias value for a given texture unit. 

\begin{DoxyRemark}{Remarks}
This allows you to adjust the mipmap calculation up or down for a given texture unit. Negative values force a larger mipmap to be used, positive values force a smaller mipmap to be used. Units are in numbers of levels, so +1 forces the mipmaps to one smaller level. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
Only does something if render system has capability R\+S\+C\+\_\+\+M\+I\+P\+M\+A\+P\+\_\+\+L\+O\+D\+\_\+\+B\+I\+AS. 
\end{DoxyNote}


Implements \hyperlink{class_ogre_1_1_render_system_a99f92ad60c2da38c7dfcf3f429e65572}{Ogre\+::\+Render\+System}.



References Ogre\+::\+C\+M\+P\+F\+\_\+\+A\+L\+W\+A\+Y\+S\+\_\+\+P\+A\+SS, Ogre\+::\+C\+M\+P\+F\+\_\+\+L\+E\+S\+S\+\_\+\+E\+Q\+U\+AL, and Ogre\+::\+S\+O\+P\+\_\+\+K\+E\+EP.

\mbox{\Hypertarget{group___g_l_e_s2_ga55c3aaee65dee3249d3294a49d21e9d4}\label{group___g_l_e_s2_ga55c3aaee65dee3249d3294a49d21e9d4}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Line\+Width@{\+\_\+set\+Line\+Width}}
\index{\+\_\+set\+Line\+Width@{\+\_\+set\+Line\+Width}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Line\+Width()}{\_setLineWidth()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Line\+Width (\begin{DoxyParamCaption}\item[{float}]{width }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Set the line width when drawing as \hyperlink{class_ogre_1_1_render_operation_a7a272218dae54048c87f31176c19e10da68a6fc2c1c6938542664b89cf213c3eb}{Render\+Operation\+::\+O\+T\+\_\+\+L\+I\+N\+E\+\_\+\+L\+I\+ST}/ \hyperlink{class_ogre_1_1_render_operation_a7a272218dae54048c87f31176c19e10da4bc7bbf09ce027518e33e61249e699a1}{Render\+Operation\+::\+O\+T\+\_\+\+L\+I\+N\+E\+\_\+\+S\+T\+R\+IP}. 


\begin{DoxyParams}{Parameters}
{\em width} & only value of 1.\+0 might be supported. Check for R\+S\+C\+\_\+\+W\+I\+D\+E\+\_\+\+L\+I\+N\+ES. \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{class_ogre_1_1_render_system_a40f99785cb4f728763712169cec19f29}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga9e85e1cc3f1c220959768593e0017f40}\label{group___g_l_e_s2_ga9e85e1cc3f1c220959768593e0017f40}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Viewport@{\+\_\+set\+Viewport}}
\index{\+\_\+set\+Viewport@{\+\_\+set\+Viewport}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Viewport()}{\_setViewport()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Viewport (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$}]{vp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the provided viewport as the active one for future rendering operations. 

This viewport is aware of it\textquotesingle{}s own camera and render target. Must be implemented by subclass.


\begin{DoxyParams}{Parameters}
{\em vp} & Pointer to the appropriate viewport. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a7d7f7d706450808859f338352c5e9cd0}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga0f0d14adfe963f86bbcc624e9e948aa8}\label{group___g_l_e_s2_ga0f0d14adfe963f86bbcc624e9e948aa8}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+begin\+Frame@{\+\_\+begin\+Frame}}
\index{\+\_\+begin\+Frame@{\+\_\+begin\+Frame}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+begin\+Frame()}{\_beginFrame()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+begin\+Frame (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Signifies the beginning of a frame, i.\+e. 

the start of rendering on a single viewport. Will occur several times per complete frame if multiple viewports exist. 

Implements \hyperlink{class_ogre_1_1_render_system_a80b7ab32b8f82cf340c47d55f6e69881}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga68501393597f19991a08d0c20a19c947}\label{group___g_l_e_s2_ga68501393597f19991a08d0c20a19c947}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+end\+Frame@{\+\_\+end\+Frame}}
\index{\+\_\+end\+Frame@{\+\_\+end\+Frame}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+end\+Frame()}{\_endFrame()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+end\+Frame (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Ends rendering of a frame to the current viewport. 



Implements \hyperlink{class_ogre_1_1_render_system_aad966c6f361ac75304c1e03f9ec384c4}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga790a69a94ddea1d45836be9dae9b6767}\label{group___g_l_e_s2_ga790a69a94ddea1d45836be9dae9b6767}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Culling\+Mode@{\+\_\+set\+Culling\+Mode}}
\index{\+\_\+set\+Culling\+Mode@{\+\_\+set\+Culling\+Mode}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Culling\+Mode()}{\_setCullingMode()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Culling\+Mode (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_gac173244ed7d950d0acd726e4f323ecdb}{Culling\+Mode}}]{mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the culling mode for the render system based on the \textquotesingle{}vertex winding\textquotesingle{}. 

A typical way for the rendering engine to cull triangles is based on the \textquotesingle{}vertex winding\textquotesingle{} of triangles. Vertex winding refers to the direction in which the vertices are passed or indexed to in the rendering operation as viewed from the camera, and will wither be clockwise or anticlockwise (that\textquotesingle{}s \textquotesingle{}counterclockwise\textquotesingle{} for you Americans out there ;) The default is C\+U\+L\+L\+\_\+\+C\+L\+O\+C\+K\+W\+I\+SE i.\+e. that only triangles whose vertices are passed/indexed in anticlockwise order are rendered -\/ this is a common approach and is used in 3D studio models for example. You can alter this culling mode if you wish but it is not advised unless you know what you are doing. You may wish to use the C\+U\+L\+L\+\_\+\+N\+O\+NE option for mesh data that you cull yourself where the vertex winding is uncertain. 

Implements \hyperlink{class_ogre_1_1_render_system_a8342819c24002599851457e459744561}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaeb4b435525d18444c63bc4dfddeecdd1}\label{group___g_l_e_s2_gaeb4b435525d18444c63bc4dfddeecdd1}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Depth\+Buffer\+Params@{\+\_\+set\+Depth\+Buffer\+Params}}
\index{\+\_\+set\+Depth\+Buffer\+Params@{\+\_\+set\+Depth\+Buffer\+Params}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Depth\+Buffer\+Params()}{\_setDepthBufferParams()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Params (\begin{DoxyParamCaption}\item[{bool}]{depth\+Test = {\ttfamily true},  }\item[{bool}]{depth\+Write = {\ttfamily true},  }\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{depth\+Function = {\ttfamily \hyperlink{group___general_gga0212b4eb264f207d84c1df9425208c7aa2272d0faefcf5a2e08bbf7d232d7520b}{C\+M\+P\+F\+\_\+\+L\+E\+S\+S\+\_\+\+E\+Q\+U\+AL}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the mode of operation for depth buffer tests from this point onwards. 

Sometimes you may wish to alter the behaviour of the depth buffer to achieve special effects. Because it\textquotesingle{}s unlikely that you\textquotesingle{}ll set these options for an entire frame, but rather use them to tweak settings between rendering objects, this is an internal method (indicated by the \textquotesingle{}\+\_\+\textquotesingle{} prefix) which will be used by a \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} implementation rather than directly from the client application. If this method is never called the settings are automatically the same as the default parameters. 
\begin{DoxyParams}{Parameters}
{\em depth\+Test} & If true, the depth buffer is tested for each pixel and the frame buffer is only updated if the depth function test succeeds. If false, no test is performed and pixels are always written. \\
\hline
{\em depth\+Write} & If true, the depth buffer is updated with the depth of the new pixel if the depth test succeeds. If false, the depth buffer is left unchanged even if a new pixel is written. \\
\hline
{\em depth\+Function} & Sets the function required for the depth test. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a49c162dc3d9b86e37d9085c0ab1e28c6}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga267e64f8737221d3a89de0e81635ea67}\label{group___g_l_e_s2_ga267e64f8737221d3a89de0e81635ea67}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Depth\+Buffer\+Check\+Enabled@{\+\_\+set\+Depth\+Buffer\+Check\+Enabled}}
\index{\+\_\+set\+Depth\+Buffer\+Check\+Enabled@{\+\_\+set\+Depth\+Buffer\+Check\+Enabled}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Depth\+Buffer\+Check\+Enabled()}{\_setDepthBufferCheckEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Check\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets whether or not the depth buffer check is performed before a pixel write. 


\begin{DoxyParams}{Parameters}
{\em enabled} & If true, the depth buffer is tested for each pixel and the frame buffer is only updated if the depth function test succeeds. If false, no test is performed and pixels are always written. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a20c5b31b647e3cb6acc5742e75c34b22}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga4502b50ef794daaa5471515607ac6f77}\label{group___g_l_e_s2_ga4502b50ef794daaa5471515607ac6f77}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Depth\+Buffer\+Write\+Enabled@{\+\_\+set\+Depth\+Buffer\+Write\+Enabled}}
\index{\+\_\+set\+Depth\+Buffer\+Write\+Enabled@{\+\_\+set\+Depth\+Buffer\+Write\+Enabled}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Depth\+Buffer\+Write\+Enabled()}{\_setDepthBufferWriteEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Write\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets whether or not the depth buffer is updated after a pixel write. 


\begin{DoxyParams}{Parameters}
{\em enabled} & If true, the depth buffer is updated with the depth of the new pixel if the depth test succeeds. If false, the depth buffer is left unchanged even if a new pixel is written. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a00bd48a7ba0a2a919586c3b8548d2433}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga777d3329487fa339fc1ed83e493a6327}\label{group___g_l_e_s2_ga777d3329487fa339fc1ed83e493a6327}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Depth\+Buffer\+Function@{\+\_\+set\+Depth\+Buffer\+Function}}
\index{\+\_\+set\+Depth\+Buffer\+Function@{\+\_\+set\+Depth\+Buffer\+Function}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Depth\+Buffer\+Function()}{\_setDepthBufferFunction()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Buffer\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{func = {\ttfamily \hyperlink{group___general_gga0212b4eb264f207d84c1df9425208c7aa2272d0faefcf5a2e08bbf7d232d7520b}{C\+M\+P\+F\+\_\+\+L\+E\+S\+S\+\_\+\+E\+Q\+U\+AL}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the comparison function for the depth buffer check. 

Advanced use only -\/ allows you to choose the function applied to compare the depth values of new and existing pixels in the depth buffer. Only an issue if the deoth buffer check is enabled (see \+\_\+set\+Depth\+Buffer\+Check\+Enabled) 
\begin{DoxyParams}{Parameters}
{\em func} & The comparison between the new depth and the existing depth which must return true for the new pixel to be written. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a577ced6409b614ab393ca377052a385f}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gab2d4e98b8546d512af93891c7094b717}\label{group___g_l_e_s2_gab2d4e98b8546d512af93891c7094b717}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Depth\+Bias@{\+\_\+set\+Depth\+Bias}}
\index{\+\_\+set\+Depth\+Bias@{\+\_\+set\+Depth\+Bias}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Depth\+Bias()}{\_setDepthBias()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Depth\+Bias (\begin{DoxyParamCaption}\item[{float}]{constant\+Bias,  }\item[{float}]{slope\+Scale\+Bias }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the depth bias, NB you should use the \hyperlink{class_ogre_1_1_material}{Material} version of this. 

\begin{DoxyRemark}{Remarks}
When polygons are coplanar, you can get problems with \textquotesingle{}depth fighting\textquotesingle{} where the pixels from the two polys compete for the same screen pixel. This is particularly a problem for decals (polys attached to another surface to represent details such as bulletholes etc.). 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
A way to combat this problem is to use a depth bias to adjust the depth buffer value used for the decal such that it is slightly higher than the true value, ensuring that the decal appears on top. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
The final bias value is a combination of a constant bias and a bias proportional to the maximum depth slope of the polygon being rendered. The final bias is constant\+Bias + slope\+Scale\+Bias $\ast$ maxslope. Slope scale biasing is generally preferable but is not available on older hardware. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em constant\+Bias} & The constant bias value, expressed as a value in homogeneous depth coordinates. \\
\hline
{\em slope\+Scale\+Bias} & The bias value which is factored by the maximum slope of the polygon, see the description above. This is not supported by all cards. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a56beb1cebbf7f1ac372c666657a151cb}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gac9479a75974623ddabbb83ba8f7eb234}\label{group___g_l_e_s2_gac9479a75974623ddabbb83ba8f7eb234}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Colour\+Buffer\+Write\+Enabled@{\+\_\+set\+Colour\+Buffer\+Write\+Enabled}}
\index{\+\_\+set\+Colour\+Buffer\+Write\+Enabled@{\+\_\+set\+Colour\+Buffer\+Write\+Enabled}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Colour\+Buffer\+Write\+Enabled()}{\_setColourBufferWriteEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Colour\+Buffer\+Write\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{red,  }\item[{bool}]{green,  }\item[{bool}]{blue,  }\item[{bool}]{alpha }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets whether or not colour buffer writing is enabled, and for which channels. 

\begin{DoxyRemark}{Remarks}
For some advanced effects, you may wish to turn off the writing of certain colour channels, or even all of the colour channels so that only the depth buffer is updated in a rendering pass. However, the chances are that you really want to use this option through the \hyperlink{class_ogre_1_1_material}{Material} class. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em red,green,blue,alpha} & Whether writing is enabled for each of the 4 colour channels. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a14f37eed62a9283df3f83241f7c0991a}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gabcac20ccef713d00075e7938e8afd343}\label{group___g_l_e_s2_gabcac20ccef713d00075e7938e8afd343}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Polygon\+Mode@{\+\_\+set\+Polygon\+Mode}}
\index{\+\_\+set\+Polygon\+Mode@{\+\_\+set\+Polygon\+Mode}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Polygon\+Mode()}{\_setPolygonMode()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Polygon\+Mode (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga68866b02aa7f99e3431337511fbb3345}{Polygon\+Mode}}]{level }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets how to rasterise triangles, as points, wireframe or solid polys. 



Implements \hyperlink{class_ogre_1_1_render_system_a175e831e73f7c539f843907971836125}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaecdd103b0c6243287f6dfb1be8bc4e08}\label{group___g_l_e_s2_gaecdd103b0c6243287f6dfb1be8bc4e08}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!set\+Stencil\+Check\+Enabled@{set\+Stencil\+Check\+Enabled}}
\index{set\+Stencil\+Check\+Enabled@{set\+Stencil\+Check\+Enabled}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{set\+Stencil\+Check\+Enabled()}{setStencilCheckEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Stencil\+Check\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Turns depth-\/stencil buffer checking on or off. 

\begin{DoxyRemark}{Remarks}
An inactive depth-\/stencil buffer can be read by a shader as a texture. An application that reads a depth-\/stencil buffer as a texture renders in two passes, the first pass writes to the depth-\/stencil buffer and the second pass reads from the buffer. This allows a shader to compare depth or stencil values previously written to the buffer against the value for the pixel currrently being rendered. The result of the comparison can be used to create effects such as shadow mapping or soft particles in a particle system. Turns stencil buffer checking on or off. 

Stencilling (masking off areas of the rendering target based on the stencil buffer) can be turned on or off using this method. By default, stencilling is disabled. 
\end{DoxyRemark}


Implements \hyperlink{class_ogre_1_1_render_system_a4b259bf4d4e5878ae8066e073d859287}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga50035b687daf76d52a11bf6b851bb902}\label{group___g_l_e_s2_ga50035b687daf76d52a11bf6b851bb902}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!set\+Stencil\+Buffer\+Params@{set\+Stencil\+Buffer\+Params}}
\index{set\+Stencil\+Buffer\+Params@{set\+Stencil\+Buffer\+Params}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{set\+Stencil\+Buffer\+Params()}{setStencilBufferParams()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Stencil\+Buffer\+Params (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{func = {\ttfamily \hyperlink{group___general_gga0212b4eb264f207d84c1df9425208c7aae10ea1648cd8c9bd90bdaccaa11cbc4e}{C\+M\+P\+F\+\_\+\+A\+L\+W\+A\+Y\+S\+\_\+\+P\+A\+SS}},  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{ref\+Value = {\ttfamily 0},  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{compare\+Mask = {\ttfamily 0xFFFFFFFF},  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{write\+Mask = {\ttfamily 0xFFFFFFFF},  }\item[{\hyperlink{group___render_system_gae8bb1cb809660de802d1d592ba4adb61}{Stencil\+Operation}}]{stencil\+Fail\+Op = {\ttfamily \hyperlink{group___render_system_ggae8bb1cb809660de802d1d592ba4adb61abf640cb28b5020509dc27178f0359511}{S\+O\+P\+\_\+\+K\+E\+EP}},  }\item[{\hyperlink{group___render_system_gae8bb1cb809660de802d1d592ba4adb61}{Stencil\+Operation}}]{depth\+Fail\+Op = {\ttfamily \hyperlink{group___render_system_ggae8bb1cb809660de802d1d592ba4adb61abf640cb28b5020509dc27178f0359511}{S\+O\+P\+\_\+\+K\+E\+EP}},  }\item[{\hyperlink{group___render_system_gae8bb1cb809660de802d1d592ba4adb61}{Stencil\+Operation}}]{pass\+Op = {\ttfamily \hyperlink{group___render_system_ggae8bb1cb809660de802d1d592ba4adb61abf640cb28b5020509dc27178f0359511}{S\+O\+P\+\_\+\+K\+E\+EP}},  }\item[{bool}]{two\+Sided\+Operation = {\ttfamily false},  }\item[{bool}]{read\+Back\+As\+Texture = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Determines if this system supports hardware accelerated stencil buffer. 

\begin{DoxyRemark}{Remarks}
Note that the lack of this function doesn\textquotesingle{}t mean you can\textquotesingle{}t do stencilling, but the stencilling operations will be provided in software, which will N\+OT be fast. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Generally hardware stencils are only supported in 32-\/bit colour modes, because the stencil buffer shares the memory of the z-\/buffer, and in most cards the z-\/buffer has to be the same depth as the colour buffer. This means that in 32-\/bit mode, 24 bits of the z-\/buffer are depth and 8 bits are stencil. In 16-\/bit mode there is no room for a stencil (although some cards support a 15\+:1 depth\+:stencil option, this isn\textquotesingle{}t useful for very much) so 8 bits of stencil are provided in software. This can mean that if you use stencilling, your applications may be faster in 32-\/but colour than in 16-\/bit, which may seem odd to some people. This method allows you to set all the stencil buffer parameters in one call. 
\end{DoxyParagraph}
\begin{DoxyRemark}{Remarks}
The stencil buffer is used to mask out pixels in the render target, allowing you to do effects like mirrors, cut-\/outs, stencil shadows and more. Each of your batches of rendering is likely to ignore the stencil buffer, update it with new values, or apply it to mask the output of the render. The stencil test is\+:
\begin{DoxyPre}
(Reference Value \& Mask) CompareFunction (Stencil Buffer Value \& Mask)\end{DoxyPre}
 The result of this will cause one of 3 actions depending on whether the test fails, succeeds but with the depth buffer check still failing, or succeeds with the depth buffer check passing too. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Unlike other render states, stencilling is left for the application to turn on and off when it requires. This is because you are likely to want to change parameters between batches of arbitrary objects and control the ordering yourself. In order to batch things this way, you\textquotesingle{}ll want to use O\+G\+RE\textquotesingle{}s separate render queue groups (see \hyperlink{class_ogre_1_1_render_queue}{Render\+Queue}) and register a \hyperlink{class_ogre_1_1_render_queue_listener}{Render\+Queue\+Listener} to get notifications between batches. 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
There are individual state change methods for each of the parameters set using this method. Note that the default values in this method represent the defaults at system start up too. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em func} & The comparison function applied. \\
\hline
{\em ref\+Value} & The reference value used in the comparison \\
\hline
{\em compare\+Mask} & The bitmask applied to both the stencil value and the reference value before comparison \\
\hline
{\em write\+Mask} & The bitmask the controls which bits from ref\+Value will be written to stencil buffer (valid for operations such as S\+O\+P\+\_\+\+R\+E\+P\+L\+A\+CE). the stencil \\
\hline
{\em stencil\+Fail\+Op} & The action to perform when the stencil check fails \\
\hline
{\em depth\+Fail\+Op} & The action to perform when the stencil check passes, but the depth buffer check still fails \\
\hline
{\em pass\+Op} & The action to take when both the stencil and depth check pass. \\
\hline
{\em two\+Sided\+Operation} & If set to true, then if you render both back and front faces (you\textquotesingle{}ll have to turn off culling) then these parameters will apply for front faces, and the inverse of them will happen for back faces (keep remains the same). \\
\hline
{\em read\+Back\+As\+Texture} & D3\+D11 specific \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_ae921e432a4c8123b1571982ed8900105}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga2107cd1bce2156d694ebcb65c6602534}\label{group___g_l_e_s2_ga2107cd1bce2156d694ebcb65c6602534}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Unit\+Compare\+Function@{\+\_\+set\+Texture\+Unit\+Compare\+Function}}
\index{\+\_\+set\+Texture\+Unit\+Compare\+Function@{\+\_\+set\+Texture\+Unit\+Compare\+Function}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Unit\+Compare\+Function()}{\_setTextureUnitCompareFunction()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Compare\+Function (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{function }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the compare function to use for a given texture unit. 


\begin{DoxyParams}{Parameters}
{\em unit} & The texture unit to set the filtering options for \\
\hline
{\em function} & The comparison function \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a58be1a70bee1dcaa9e177e02b64b5885}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaeddf29413cf26ba1a7a16acdefef2dcb}\label{group___g_l_e_s2_gaeddf29413cf26ba1a7a16acdefef2dcb}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Unit\+Compare\+Enabled@{\+\_\+set\+Texture\+Unit\+Compare\+Enabled}}
\index{\+\_\+set\+Texture\+Unit\+Compare\+Enabled@{\+\_\+set\+Texture\+Unit\+Compare\+Enabled}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Unit\+Compare\+Enabled()}{\_setTextureUnitCompareEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Compare\+Enabled (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{bool}]{compare }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets whether the compare func is enabled or not for this texture unit. 


\begin{DoxyParams}{Parameters}
{\em unit} & The texture unit to set the filtering options for \\
\hline
{\em compare} & The state (enabled/disabled) \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_ad935b875abb352407242ea15bf92324b}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaf28d1fa286f453317a1e889e6fc7de04}\label{group___g_l_e_s2_gaf28d1fa286f453317a1e889e6fc7de04}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Unit\+Filtering@{\+\_\+set\+Texture\+Unit\+Filtering}}
\index{\+\_\+set\+Texture\+Unit\+Filtering@{\+\_\+set\+Texture\+Unit\+Filtering}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Unit\+Filtering()}{\_setTextureUnitFiltering()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Filtering (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{\hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options}}]{min\+Filter,  }\item[{\hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options}}]{mag\+Filter,  }\item[{\hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options}}]{mip\+Filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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


\begin{DoxyParams}{Parameters}
{\em unit} & The texture unit to set the filtering options for \\
\hline
{\em min\+Filter} & The filter used when a texture is reduced in size \\
\hline
{\em mag\+Filter} & The filter used when a texture is magnified \\
\hline
{\em mip\+Filter} & The filter used between mipmap levels, F\+O\+\_\+\+N\+O\+NE disables mipmapping \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{class_ogre_1_1_render_system_adbc64c669661f87ee2f8db8dd18a0fe5}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga521693302023af1900f5bebacfb01a42}\label{group___g_l_e_s2_ga521693302023af1900f5bebacfb01a42}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Unit\+Filtering@{\+\_\+set\+Texture\+Unit\+Filtering}}
\index{\+\_\+set\+Texture\+Unit\+Filtering@{\+\_\+set\+Texture\+Unit\+Filtering}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Unit\+Filtering()}{\_setTextureUnitFiltering()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Unit\+Filtering (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{\hyperlink{group___general_gac1fc36ec2f4df4b2afa9fa39f9c66c06}{Filter\+Type}}]{ftype,  }\item[{\hyperlink{group___general_ga02306c6246268d35f45ad22278bd5d3d}{Filter\+Options}}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets a single filter for a given texture unit. 


\begin{DoxyParams}{Parameters}
{\em unit} & The texture unit to set the filtering options for \\
\hline
{\em ftype} & The filter type \\
\hline
{\em filter} & The filter to be used \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a1f0f550def3f4caa1173ed6eb0d09031}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaab7cdbfb7eaa8ded535cf1adfd5983fb}\label{group___g_l_e_s2_gaab7cdbfb7eaa8ded535cf1adfd5983fb}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Texture\+Layer\+Anisotropy@{\+\_\+set\+Texture\+Layer\+Anisotropy}}
\index{\+\_\+set\+Texture\+Layer\+Anisotropy@{\+\_\+set\+Texture\+Layer\+Anisotropy}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Texture\+Layer\+Anisotropy()}{\_setTextureLayerAnisotropy()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Texture\+Layer\+Anisotropy (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{unit,  }\item[{unsigned int}]{max\+Anisotropy }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the maximal anisotropy for the specified texture unit. 



Implements \hyperlink{class_ogre_1_1_render_system_aba523c0055a520d25fd7f08683e3c98e}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga4c41d253fd2a38b8d2289fd0bd67fb74}\label{group___g_l_e_s2_ga4c41d253fd2a38b8d2289fd0bd67fb74}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!has\+Anisotropic\+Mip\+Map\+Filter@{has\+Anisotropic\+Mip\+Map\+Filter}}
\index{has\+Anisotropic\+Mip\+Map\+Filter@{has\+Anisotropic\+Mip\+Map\+Filter}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{has\+Anisotropic\+Mip\+Map\+Filter()}{hasAnisotropicMipMapFilter()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::has\+Anisotropic\+Mip\+Map\+Filter (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Determines if the system has anisotropic mip map filter support. 



Implements \hyperlink{class_ogre_1_1_render_system_a2532f63fc0d0c2e76b6b61c804829628}{Ogre\+::\+Render\+System}.



References Ogre\+::\+Colour\+Value\+::\+Black, and O\+G\+R\+E\+\_\+\+M\+U\+T\+EX.

\mbox{\Hypertarget{group___g_l_e_s2_ga36e40f27ab6ce44b53e4ef94b08a46aa}\label{group___g_l_e_s2_ga36e40f27ab6ce44b53e4ef94b08a46aa}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+render@{\+\_\+render}}
\index{\+\_\+render@{\+\_\+render}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+render()}{\_render()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+render (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_render_operation}{Render\+Operation} \&}]{op }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Render something to the active viewport. 

Low-\/level rendering interface to perform rendering operations. Unlikely to be used directly by client applications, since the \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} and various support classes will be responsible for calling this method. Can only be called between \+\_\+begin\+Scene and \+\_\+end\+Scene


\begin{DoxyParams}{Parameters}
{\em op} & A rendering operation instance, which contains details of the operation to be performed. \\
\hline
\end{DoxyParams}


Reimplemented from \hyperlink{class_ogre_1_1_render_system_a64961cc3cdc616beb264c51d532c94c1}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaa8d7e5faf05d5d865573294c48db9a73}\label{group___g_l_e_s2_gaa8d7e5faf05d5d865573294c48db9a73}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!set\+Scissor\+Test@{set\+Scissor\+Test}}
\index{set\+Scissor\+Test@{set\+Scissor\+Test}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{set\+Scissor\+Test()}{setScissorTest()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Scissor\+Test (\begin{DoxyParamCaption}\item[{bool}]{enabled,  }\item[{size\+\_\+t}]{left = {\ttfamily 0},  }\item[{size\+\_\+t}]{top = {\ttfamily 0},  }\item[{size\+\_\+t}]{right = {\ttfamily 800},  }\item[{size\+\_\+t}]{bottom = {\ttfamily 600} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the \textquotesingle{}scissor region\textquotesingle{} i.\+e. 

the region of the target in which rendering can take place. \begin{DoxyRemark}{Remarks}
This method allows you to \textquotesingle{}mask off\textquotesingle{} rendering in all but a given rectangular area as identified by the parameters to this method. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
Not all systems support this method. Check the \hyperlink{class_ogre_1_1_render_system_capabilities}{Render\+System\+Capabilities} for the R\+S\+C\+\_\+\+S\+C\+I\+S\+S\+O\+R\+\_\+\+T\+E\+ST capability to see if it is supported. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em enabled} & True to enable the scissor test, false to disable it. \\
\hline
{\em left,top,right,bottom} & The location of the corners of the rectangle, expressed in {\itshape pixels}. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_ae0cf822105945ccbdc87a071c220be57}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaab180fa4a2aba714e22ff30d22511d30}\label{group___g_l_e_s2_gaab180fa4a2aba714e22ff30d22511d30}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!clear\+Frame\+Buffer@{clear\+Frame\+Buffer}}
\index{clear\+Frame\+Buffer@{clear\+Frame\+Buffer}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{clear\+Frame\+Buffer()}{clearFrameBuffer()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::clear\+Frame\+Buffer (\begin{DoxyParamCaption}\item[{unsigned int}]{buffers,  }\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{colour = {\ttfamily \hyperlink{class_ogre_1_1_colour_value_a7f8a06f2a9dd645417c36b560f496c1a}{Colour\+Value\+::\+Black}},  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{depth = {\ttfamily 1.0f},  }\item[{unsigned short}]{stencil = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Clears one or more frame buffers on the active render target. 


\begin{DoxyParams}{Parameters}
{\em buffers} & Combination of one or more elements of Frame\+Buffer\+Type denoting which buffers are to be cleared \\
\hline
{\em colour} & The colour to clear the colour buffer with, if enabled \\
\hline
{\em depth} & The value to initialise the depth buffer with, if enabled \\
\hline
{\em stencil} & The value to initialise the stencil buffer with, if enabled. \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_aae6b073aaf42ecea55bb972fd5166f42}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga680c79fd34fbc4b2cce31b2356b6795a}\label{group___g_l_e_s2_ga680c79fd34fbc4b2cce31b2356b6795a}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!create\+Hardware\+Occlusion\+Query@{create\+Hardware\+Occlusion\+Query}}
\index{create\+Hardware\+Occlusion\+Query@{create\+Hardware\+Occlusion\+Query}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{create\+Hardware\+Occlusion\+Query()}{createHardwareOcclusionQuery()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_hardware_occlusion_query}{Hardware\+Occlusion\+Query}$\ast$ Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::create\+Hardware\+Occlusion\+Query (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Create an object for performing hardware occlusion queries. 



Implements \hyperlink{class_ogre_1_1_render_system_a2b7725995f951adff614db3874c8566c}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga852ee2cf631ec79637b4d799727587b8}\label{group___g_l_e_s2_ga852ee2cf631ec79637b4d799727587b8}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!O\+G\+R\+E\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX}}
\index{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{O\+G\+R\+E\+\_\+\+M\+U\+T\+E\+X()}{OGRE\_MUTEX()}}
{\footnotesize\ttfamily Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+O\+G\+R\+E\+\_\+\+M\+U\+T\+EX (\begin{DoxyParamCaption}\item[{m\+Thread\+Init\+Mutex}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group___g_l_e_s2_gaf260eadeba4a0ef3e330a8c0ea73e606}\label{group___g_l_e_s2_gaf260eadeba4a0ef3e330a8c0ea73e606}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!register\+Thread@{register\+Thread}}
\index{register\+Thread@{register\+Thread}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{register\+Thread()}{registerThread()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::register\+Thread (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Register the an additional thread which may make calls to rendersystem-\/related objects. 

\begin{DoxyRemark}{Remarks}
This method should only be called by additional threads during their initialisation. If they intend to use hardware rendering system resources they should call this method before doing anything related to the render system. Some rendering A\+P\+Is require a per-\/thread setup and this method will sort that out. It is also necessary to call unregister\+Thread before the thread shuts down. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This method takes no parameters -\/ it must be called from the thread being registered and that context is enough. 
\end{DoxyNote}


Implements \hyperlink{class_ogre_1_1_render_system_aae6874b97f0b5cb00e0bf32e10652540}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaa6bfad53622bb5f865871a3918bb4fac}\label{group___g_l_e_s2_gaa6bfad53622bb5f865871a3918bb4fac}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!unregister\+Thread@{unregister\+Thread}}
\index{unregister\+Thread@{unregister\+Thread}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{unregister\+Thread()}{unregisterThread()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::unregister\+Thread (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Unregister an additional thread which may make calls to rendersystem-\/related objects. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_render_system_aae6874b97f0b5cb00e0bf32e10652540}{Render\+System\+::register\+Thread} 
\end{DoxySeeAlso}


Implements \hyperlink{class_ogre_1_1_render_system_a64138779fab3c6b157f2de40c3831e10}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga8facb30ed47df20d9df6de77c23c5398}\label{group___g_l_e_s2_ga8facb30ed47df20d9df6de77c23c5398}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!pre\+Extra\+Threads\+Started@{pre\+Extra\+Threads\+Started}}
\index{pre\+Extra\+Threads\+Started@{pre\+Extra\+Threads\+Started}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{pre\+Extra\+Threads\+Started()}{preExtraThreadsStarted()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::pre\+Extra\+Threads\+Started (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Tell the rendersystem to perform any prep tasks it needs to directly before other threads which might access the rendering A\+PI are registered. 

\begin{DoxyRemark}{Remarks}
Call this from your main thread before starting your other threads. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
If you start your own threads, there is a specific startup sequence which must be respected and requires synchronisation between the threads\+:


\begin{DoxyEnumerate}
\item \mbox{[}Main thread\mbox{]} Call \hyperlink{group___g_l_e_s2_ga8facb30ed47df20d9df6de77c23c5398}{pre\+Extra\+Threads\+Started()}
\item \mbox{[}Main thread\mbox{]} Start other thread, wait
\item \mbox{[}Other thread\mbox{]} Call \hyperlink{group___g_l_e_s2_gaf260eadeba4a0ef3e330a8c0ea73e606}{register\+Thread()}, notify main thread \& continue
\item \mbox{[}Main thread\mbox{]} Wake up \& call \hyperlink{group___g_l_e_s2_ga1767016ed55e3877d47464882aef9a27}{post\+Extra\+Threads\+Started()}
\end{DoxyEnumerate}

Once this init sequence is completed the threads are independent but this startup sequence must be respected. 
\end{DoxyNote}


Implements \hyperlink{class_ogre_1_1_render_system_a77766da49c29112c390fde51069f543a}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga1767016ed55e3877d47464882aef9a27}\label{group___g_l_e_s2_ga1767016ed55e3877d47464882aef9a27}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!post\+Extra\+Threads\+Started@{post\+Extra\+Threads\+Started}}
\index{post\+Extra\+Threads\+Started@{post\+Extra\+Threads\+Started}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{post\+Extra\+Threads\+Started()}{postExtraThreadsStarted()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::post\+Extra\+Threads\+Started (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Tell the rendersystem to perform any tasks it needs to directly after other threads which might access the rendering A\+PI are registered. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_render_system_a77766da49c29112c390fde51069f543a}{Render\+System\+::pre\+Extra\+Threads\+Started} 
\end{DoxySeeAlso}


Implements \hyperlink{class_ogre_1_1_render_system_a460fb2b67acdea8e3a72933e0348a82d}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga2a7acd32e8329a1b59f40b7b7742dabf}\label{group___g_l_e_s2_ga2a7acd32e8329a1b59f40b7b7742dabf}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!set\+Clip\+Planes\+Impl@{set\+Clip\+Planes\+Impl}}
\index{set\+Clip\+Planes\+Impl@{set\+Clip\+Planes\+Impl}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{set\+Clip\+Planes\+Impl()}{setClipPlanesImpl()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::set\+Clip\+Planes\+Impl (\begin{DoxyParamCaption}\item[{const \hyperlink{group___math_ga4cfa65f236aec1767fc85022e87059a0}{Ogre\+::\+Plane\+List} \&}]{clip\+Planes }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Internal method used to set the underlying clip planes when needed. 



Implements \hyperlink{class_ogre_1_1_render_system}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaa800af7ac51f670a3b8e4fc4ac320790}\label{group___g_l_e_s2_gaa800af7ac51f670a3b8e4fc4ac320790}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+get\+State\+Cache\+Manager@{\+\_\+get\+State\+Cache\+Manager}}
\index{\+\_\+get\+State\+Cache\+Manager@{\+\_\+get\+State\+Cache\+Manager}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+get\+State\+Cache\+Manager()}{\_getStateCacheManager()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_g_l_e_s2_state_cache_manager}{G\+L\+E\+S2\+State\+Cache\+Manager}$\ast$ Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+get\+State\+Cache\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{group___g_l_e_s2_ga22c282474176319fd19e77f343313c7e}\label{group___g_l_e_s2_ga22c282474176319fd19e77f343313c7e}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+create\+Vao@{\+\_\+create\+Vao}}
\index{\+\_\+create\+Vao@{\+\_\+create\+Vao}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+create\+Vao()}{\_createVao()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+create\+Vao (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Create V\+AO on current context. 



Reimplemented from \hyperlink{class_ogre_1_1_g_l_render_system_common_adcab922f596a9d320f4d7364170630d6}{Ogre\+::\+G\+L\+Render\+System\+Common}.

\mbox{\Hypertarget{group___g_l_e_s2_ga098f0c566b7c08c3d368a7fdb24ddeee}\label{group___g_l_e_s2_ga098f0c566b7c08c3d368a7fdb24ddeee}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+bind\+Vao@{\+\_\+bind\+Vao}}
\index{\+\_\+bind\+Vao@{\+\_\+bind\+Vao}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+bind\+Vao()}{\_bindVao()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+bind\+Vao (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$}]{context,  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{vao }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Bind V\+AO, context should be equal to current context, as V\+A\+Os are not shared. 



Reimplemented from \hyperlink{class_ogre_1_1_g_l_render_system_common_aaff5306b91066a812a20f579b2e45d30}{Ogre\+::\+G\+L\+Render\+System\+Common}.

\mbox{\Hypertarget{group___g_l_e_s2_gacc34de20d4591bb3b990724576663085}\label{group___g_l_e_s2_gacc34de20d4591bb3b990724576663085}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+destroy\+Vao@{\+\_\+destroy\+Vao}}
\index{\+\_\+destroy\+Vao@{\+\_\+destroy\+Vao}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+destroy\+Vao()}{\_destroyVao()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+destroy\+Vao (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$}]{context,  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{vao }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Destroy V\+AO immediately or defer if it was created on other context. 



Reimplemented from \hyperlink{class_ogre_1_1_g_l_render_system_common_ab63c7bbf924aa7d8494c0a2439ce1590}{Ogre\+::\+G\+L\+Render\+System\+Common}.

\mbox{\Hypertarget{group___g_l_e_s2_ga32949aa479b9280d8b1309d22916a0b4}\label{group___g_l_e_s2_ga32949aa479b9280d8b1309d22916a0b4}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+destroy\+Fbo@{\+\_\+destroy\+Fbo}}
\index{\+\_\+destroy\+Fbo@{\+\_\+destroy\+Fbo}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+destroy\+Fbo()}{\_destroyFbo()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+destroy\+Fbo (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$}]{context,  }\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{fbo }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Destroy F\+BO immediately or defer if it was created on other context. 



Reimplemented from \hyperlink{class_ogre_1_1_g_l_render_system_common_ad4d90e3e01ce12f90247e494c21fe8b9}{Ogre\+::\+G\+L\+Render\+System\+Common}.

\mbox{\Hypertarget{group___g_l_e_s2_gab7faf71d5da9f82a2008c0c4207a1ac7}\label{group___g_l_e_s2_gab7faf71d5da9f82a2008c0c4207a1ac7}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+unregister\+Context@{\+\_\+unregister\+Context}}
\index{\+\_\+unregister\+Context@{\+\_\+unregister\+Context}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+unregister\+Context()}{\_unregisterContext()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+unregister\+Context (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$}]{context }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Unregister a render target-\/$>$context mapping. 

If the context of target is the current context, change the context to the main context so it can be destroyed safely.

\begin{DoxyNote}{Note}
This is automatically called by the destructor of \hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context}. 
\end{DoxyNote}


Implements \hyperlink{class_ogre_1_1_g_l_render_system_common_a78261a33573fc3b37170fa4212c4c377}{Ogre\+::\+G\+L\+Render\+System\+Common}.

\mbox{\Hypertarget{group___g_l_e_s2_gaade56a7ee4c9a8149a371618126297dc}\label{group___g_l_e_s2_gaade56a7ee4c9a8149a371618126297dc}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+switch\+Context@{\+\_\+switch\+Context}}
\index{\+\_\+switch\+Context@{\+\_\+switch\+Context}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+switch\+Context()}{\_switchContext()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+switch\+Context (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context} $\ast$}]{context }\end{DoxyParamCaption})}



Switch GL context, dealing with involved internal cached states too. 

\mbox{\Hypertarget{group___g_l_e_s2_ga0a1b6518755d22dd2d6924f0581ae7d7}\label{group___g_l_e_s2_ga0a1b6518755d22dd2d6924f0581ae7d7}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+one\+Time\+Context\+Initialization@{\+\_\+one\+Time\+Context\+Initialization}}
\index{\+\_\+one\+Time\+Context\+Initialization@{\+\_\+one\+Time\+Context\+Initialization}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+one\+Time\+Context\+Initialization()}{\_oneTimeContextInitialization()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+one\+Time\+Context\+Initialization (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



One time initialization for the Render\+State of a context. 

Things that only need to be set once, like the Lighting\+Model can be defined here. \mbox{\Hypertarget{group___g_l_e_s2_gac83a59b0472953bfe4d72104cacadc53}\label{group___g_l_e_s2_gac83a59b0472953bfe4d72104cacadc53}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!initialise\+Context@{initialise\+Context}}
\index{initialise\+Context@{initialise\+Context}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{initialise\+Context()}{initialiseContext()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::initialise\+Context (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_window}{Render\+Window} $\ast$}]{primary }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group___g_l_e_s2_ga432c00c2cb1369b3162c1b4694fb563a}\label{group___g_l_e_s2_ga432c00c2cb1369b3162c1b4694fb563a}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Render\+Target@{\+\_\+set\+Render\+Target}}
\index{\+\_\+set\+Render\+Target@{\+\_\+set\+Render\+Target}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Render\+Target()}{\_setRenderTarget()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Render\+Target (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$}]{target }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Set current render target to target, enabling its GL context if needed. 



Implements \hyperlink{class_ogre_1_1_render_system_ac60a51e4a927728c09243075b32ecfce}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gacadd6b4ab828568d763b707eb4199b93}\label{group___g_l_e_s2_gacadd6b4ab828568d763b707eb4199b93}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!convert\+Compare\+Function@{convert\+Compare\+Function}}
\index{convert\+Compare\+Function@{convert\+Compare\+Function}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{convert\+Compare\+Function()}{convertCompareFunction()}}
{\footnotesize\ttfamily G\+Lint Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::convert\+Compare\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{func }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{group___g_l_e_s2_gae96b47494abeb2761223b9408a37b2b9}\label{group___g_l_e_s2_gae96b47494abeb2761223b9408a37b2b9}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!convert\+Stencil\+Op@{convert\+Stencil\+Op}}
\index{convert\+Stencil\+Op@{convert\+Stencil\+Op}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{convert\+Stencil\+Op()}{convertStencilOp()}}
{\footnotesize\ttfamily G\+Lint Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::convert\+Stencil\+Op (\begin{DoxyParamCaption}\item[{\hyperlink{group___render_system_gae8bb1cb809660de802d1d592ba4adb61}{Stencil\+Operation}}]{op,  }\item[{bool}]{invert = {\ttfamily false} }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{group___g_l_e_s2_gad1b0cf3f7aea1a2f2bb3d8762500282f}\label{group___g_l_e_s2_gad1b0cf3f7aea1a2f2bb3d8762500282f}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!bind\+Gpu\+Program@{bind\+Gpu\+Program}}
\index{bind\+Gpu\+Program@{bind\+Gpu\+Program}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{bind\+Gpu\+Program()}{bindGpuProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::bind\+Gpu\+Program (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program} $\ast$}]{prg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Binds a given \hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program} (but not the parameters). 

\begin{DoxyRemark}{Remarks}
Only one \hyperlink{class_ogre_1_1_gpu_program}{Gpu\+Program} of each type can be bound at once, binding another one will simply replace the existing one. 
\end{DoxyRemark}


Reimplemented from \hyperlink{class_ogre_1_1_render_system_ae8144a770f5bbe9390928abf24d37b16}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga564175c3cb628ac2deeea6d98d4e4bc0}\label{group___g_l_e_s2_ga564175c3cb628ac2deeea6d98d4e4bc0}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!unbind\+Gpu\+Program@{unbind\+Gpu\+Program}}
\index{unbind\+Gpu\+Program@{unbind\+Gpu\+Program}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{unbind\+Gpu\+Program()}{unbindGpuProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::unbind\+Gpu\+Program (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{gptype }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Unbinds Gpu\+Programs of a given Gpu\+Program\+Type. 

\begin{DoxyRemark}{Remarks}
This returns the pipeline to fixed-\/function processing for this type. 
\end{DoxyRemark}


Reimplemented from \hyperlink{class_ogre_1_1_render_system_a045731ce43fe553744e69664d5d648b3}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga733ffc8e541d74e5cdbaff1ae59fb45b}\label{group___g_l_e_s2_ga733ffc8e541d74e5cdbaff1ae59fb45b}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!bind\+Gpu\+Program\+Parameters@{bind\+Gpu\+Program\+Parameters}}
\index{bind\+Gpu\+Program\+Parameters@{bind\+Gpu\+Program\+Parameters}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{bind\+Gpu\+Program\+Parameters()}{bindGpuProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::bind\+Gpu\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{gptype,  }\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{variability\+Mask }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Bind Gpu program parameters. 


\begin{DoxyParams}{Parameters}
{\em gptype} & The type of program to bind the parameters to \\
\hline
{\em params} & The parameters to bind \\
\hline
{\em variability\+Mask} & A mask of Gpu\+Param\+Variability identifying which params need binding \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a6919b64b3dc06d81dd2484f1059449d6}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga9fe72776eaa2437f5a1ad7a2498de7cd}\label{group___g_l_e_s2_ga9fe72776eaa2437f5a1ad7a2498de7cd}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!bind\+Gpu\+Program\+Pass\+Iteration\+Parameters@{bind\+Gpu\+Program\+Pass\+Iteration\+Parameters}}
\index{bind\+Gpu\+Program\+Pass\+Iteration\+Parameters@{bind\+Gpu\+Program\+Pass\+Iteration\+Parameters}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{bind\+Gpu\+Program\+Pass\+Iteration\+Parameters()}{bindGpuProgramPassIterationParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::bind\+Gpu\+Program\+Pass\+Iteration\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{gptype }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Only binds Gpu program parameters used for passes that have more than one iteration rendering. 



Implements \hyperlink{class_ogre_1_1_render_system_ae1f7904fe5f6a1d39fe8a0621dab7509}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga4ca1d78dff99ffe26c008c1a3a6ad330}\label{group___g_l_e_s2_ga4ca1d78dff99ffe26c008c1a3a6ad330}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Scene\+Blending@{\+\_\+set\+Scene\+Blending}}
\index{\+\_\+set\+Scene\+Blending@{\+\_\+set\+Scene\+Blending}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Scene\+Blending()}{\_setSceneBlending()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Scene\+Blending (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{source\+Factor,  }\item[{\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{dest\+Factor,  }\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{op }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the global blending factors for combining subsequent renders with the existing frame contents. 

The result of the blending operation is\+: 

final = (texture $\ast$ source\+Factor) + (pixel $\ast$ dest\+Factor)

Each of the factors is specified as one of a number of options, as specified in the Scene\+Blend\+Factor enumerated type. By changing the operation you can change addition between the source and destination pixels to a different operator. 
\begin{DoxyParams}{Parameters}
{\em source\+Factor} & The source factor in the above calculation, i.\+e. multiplied by the texture colour components. \\
\hline
{\em dest\+Factor} & The destination factor in the above calculation, i.\+e. multiplied by the pixel colour components. \\
\hline
{\em op} & The blend operation mode for combining pixels \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a9835950f83b9f9a9da05da425033c25e}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga2ed07f074ae69826c8090cd8541b67a5}\label{group___g_l_e_s2_ga2ed07f074ae69826c8090cd8541b67a5}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Separate\+Scene\+Blending@{\+\_\+set\+Separate\+Scene\+Blending}}
\index{\+\_\+set\+Separate\+Scene\+Blending@{\+\_\+set\+Separate\+Scene\+Blending}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Separate\+Scene\+Blending()}{\_setSeparateSceneBlending()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Separate\+Scene\+Blending (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{source\+Factor,  }\item[{\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{dest\+Factor,  }\item[{\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{source\+Factor\+Alpha,  }\item[{\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{dest\+Factor\+Alpha,  }\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{op,  }\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{alpha\+Op }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the global blending factors for combining subsequent renders with the existing frame contents. 

The result of the blending operation is\+: 

final = (texture $\ast$ source\+Factor) + (pixel $\ast$ dest\+Factor)

Each of the factors is specified as one of a number of options, as specified in the Scene\+Blend\+Factor enumerated type. 
\begin{DoxyParams}{Parameters}
{\em source\+Factor} & The source factor in the above calculation, i.\+e. multiplied by the texture colour components. \\
\hline
{\em dest\+Factor} & The destination factor in the above calculation, i.\+e. multiplied by the pixel colour components. \\
\hline
{\em source\+Factor\+Alpha} & The source factor in the above calculation for the alpha channel, i.\+e. multiplied by the texture alpha components. \\
\hline
{\em dest\+Factor\+Alpha} & The destination factor in the above calculation for the alpha channel, i.\+e. multiplied by the pixel alpha components. \\
\hline
{\em op} & The blend operation mode for combining pixels \\
\hline
{\em alpha\+Op} & The blend operation mode for combining pixel alpha values \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a00289b710ac8817153afd820827cd49a}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga817c719f6b647354c82559324ecbdc39}\label{group___g_l_e_s2_ga817c719f6b647354c82559324ecbdc39}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Alpha\+Reject\+Settings@{\+\_\+set\+Alpha\+Reject\+Settings}}
\index{\+\_\+set\+Alpha\+Reject\+Settings@{\+\_\+set\+Alpha\+Reject\+Settings}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Alpha\+Reject\+Settings()}{\_setAlphaRejectSettings()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Alpha\+Reject\+Settings (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{func,  }\item[{unsigned char}]{value,  }\item[{bool}]{alpha\+To\+Coverage }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the global alpha rejection approach for future renders. 

By default images are rendered regardless of texture alpha. This method lets you change that. 
\begin{DoxyParams}{Parameters}
{\em func} & The comparison function which must pass for a pixel to be written. \\
\hline
{\em value} & The value to compare each pixels alpha value to (0-\/255) \\
\hline
{\em alpha\+To\+Coverage} & Whether to enable alpha to coverage, if supported \\
\hline
\end{DoxyParams}


Implements \hyperlink{class_ogre_1_1_render_system_a6a3facdc0f1b8c68af65598fd3fd34aa}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga3f58ee26c14bf54639eb2cdaf054c11b}\label{group___g_l_e_s2_ga3f58ee26c14bf54639eb2cdaf054c11b}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!get\+Display\+Monitor\+Count@{get\+Display\+Monitor\+Count}}
\index{get\+Display\+Monitor\+Count@{get\+Display\+Monitor\+Count}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{get\+Display\+Monitor\+Count()}{getDisplayMonitorCount()}}
{\footnotesize\ttfamily unsigned int Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::get\+Display\+Monitor\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}



Gets the number of display monitors. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_root_a14e8da7f3396ba7d22940006c6cba55d}{Root\+::get\+Display\+Monitor\+Count} 
\end{DoxySeeAlso}


Implements \hyperlink{class_ogre_1_1_render_system_aac481d80a88211d8eed2f5f7dc4c6afe}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga3fce8624a7935b6321530f0285348d9d}\label{group___g_l_e_s2_ga3fce8624a7935b6321530f0285348d9d}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Scene\+Blending\+Operation@{\+\_\+set\+Scene\+Blending\+Operation}}
\index{\+\_\+set\+Scene\+Blending\+Operation@{\+\_\+set\+Scene\+Blending\+Operation}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Scene\+Blending\+Operation()}{\_setSceneBlendingOperation()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Scene\+Blending\+Operation (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{op }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group___g_l_e_s2_gad39f35ad1d2e2bb953f5114fb5da3eeb}\label{group___g_l_e_s2_gad39f35ad1d2e2bb953f5114fb5da3eeb}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+set\+Separate\+Scene\+Blending\+Operation@{\+\_\+set\+Separate\+Scene\+Blending\+Operation}}
\index{\+\_\+set\+Separate\+Scene\+Blending\+Operation@{\+\_\+set\+Separate\+Scene\+Blending\+Operation}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+set\+Separate\+Scene\+Blending\+Operation()}{\_setSeparateSceneBlendingOperation()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+set\+Separate\+Scene\+Blending\+Operation (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{op,  }\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{alpha\+Op }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group___g_l_e_s2_ga5ee9e6efc4f43553d59498e31f670690}\label{group___g_l_e_s2_ga5ee9e6efc4f43553d59498e31f670690}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+destroy\+Depth\+Buffer@{\+\_\+destroy\+Depth\+Buffer}}
\index{\+\_\+destroy\+Depth\+Buffer@{\+\_\+destroy\+Depth\+Buffer}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+destroy\+Depth\+Buffer()}{\_destroyDepthBuffer()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+destroy\+Depth\+Buffer (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_render_target}{Render\+Target} $\ast$}]{p\+Render\+Wnd }\end{DoxyParamCaption})}

\mbox{\Hypertarget{group___g_l_e_s2_gaa9d66fa2deb73aa6577716a9e3fc911c}\label{group___g_l_e_s2_gaa9d66fa2deb73aa6577716a9e3fc911c}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!begin\+Profile\+Event@{begin\+Profile\+Event}}
\index{begin\+Profile\+Event@{begin\+Profile\+Event}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{begin\+Profile\+Event()}{beginProfileEvent()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::begin\+Profile\+Event (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{event\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



This marks the beginning of an event for G\+PU profiling. 



Implements \hyperlink{class_ogre_1_1_render_system_acdcb8c0f6316a444b592882e1b7bb6c6}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_ga5bbe15aca9033a03c1e91f8d685484a2}\label{group___g_l_e_s2_ga5bbe15aca9033a03c1e91f8d685484a2}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!end\+Profile\+Event@{end\+Profile\+Event}}
\index{end\+Profile\+Event@{end\+Profile\+Event}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{end\+Profile\+Event()}{endProfileEvent()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::end\+Profile\+Event (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Ends the currently active G\+PU profiling event. 



Implements \hyperlink{class_ogre_1_1_render_system_a1b6abe6712afe1a695d015216ae96459}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaaaf19428429c81faca674b37f578b3c6}\label{group___g_l_e_s2_gaaaf19428429c81faca674b37f578b3c6}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!mark\+Profile\+Event@{mark\+Profile\+Event}}
\index{mark\+Profile\+Event@{mark\+Profile\+Event}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{mark\+Profile\+Event()}{markProfileEvent()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::mark\+Profile\+Event (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{event\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Marks an instantaneous event for graphics profilers. 

This is equivalent to calling \begin{DoxySeeAlso}{See also}
\hyperlink{group___g_l_e_s2_gaa9d66fa2deb73aa6577716a9e3fc911c}{begin\+Profile\+Event} and 

\hyperlink{group___g_l_e_s2_ga5bbe15aca9033a03c1e91f8d685484a2}{end\+Profile\+Event} back to back. 
\end{DoxySeeAlso}


Implements \hyperlink{class_ogre_1_1_render_system_aaafa1dfb6fcf978786add8ee2b02dfb5}{Ogre\+::\+Render\+System}.

\mbox{\Hypertarget{group___g_l_e_s2_gaf2dbe22e9aaa316d7a22892e7efcac61}\label{group___g_l_e_s2_gaf2dbe22e9aaa316d7a22892e7efcac61}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!\+\_\+copy\+Contents\+To\+Memory@{\+\_\+copy\+Contents\+To\+Memory}}
\index{\+\_\+copy\+Contents\+To\+Memory@{\+\_\+copy\+Contents\+To\+Memory}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{\+\_\+copy\+Contents\+To\+Memory()}{\_copyContentsToMemory()}}
{\footnotesize\ttfamily void Ogre\+::\+G\+L\+E\+S2\+Render\+System\+::\+\_\+copy\+Contents\+To\+Memory (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_viewport}{Viewport} $\ast$}]{vp,  }\item[{const \hyperlink{struct_ogre_1_1_box}{Box} \&}]{src,  }\item[{const \hyperlink{class_ogre_1_1_pixel_box}{Pixel\+Box} \&}]{dst,  }\item[{\hyperlink{class_ogre_1_1_render_target_a4b42772d32712767391c749f4745397a}{Render\+Window\+::\+Frame\+Buffer}}]{buffer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Copies the current contents of the render target to a pixelbox. 

\begin{DoxyRemark}{Remarks}
See suggest\+Pixel\+Format for a tip as to the best pixel format to extract into, although you can use whatever format you like and the results will be converted. 
\end{DoxyRemark}


Implements \hyperlink{class_ogre_1_1_g_l_render_system_common_a6ada96dc5fb6db593605aab1e6569377}{Ogre\+::\+G\+L\+Render\+System\+Common}.



\subsection{Friends}
\mbox{\Hypertarget{group___g_l_e_s2_gae3fef941757423683223183c2374e5d9}\label{group___g_l_e_s2_gae3fef941757423683223183c2374e5d9}} 
\index{G\+L\+E\+S2@{G\+L\+E\+S2}!Shader\+Generator\+Technique\+Resolver\+Listener@{Shader\+Generator\+Technique\+Resolver\+Listener}}
\index{Shader\+Generator\+Technique\+Resolver\+Listener@{Shader\+Generator\+Technique\+Resolver\+Listener}!G\+L\+E\+S2@{G\+L\+E\+S2}}
\subsubsection{\texorpdfstring{Shader\+Generator\+Technique\+Resolver\+Listener}{ShaderGeneratorTechniqueResolverListener}}
{\footnotesize\ttfamily friend class Shader\+Generator\+Technique\+Resolver\+Listener\hspace{0.3cm}{\ttfamily [friend]}}

