\hypertarget{class_ogre_1_1_g_l_depth_buffer_common}{}\doxysection{Ogre\+::G\+L\+Depth\+Buffer\+Common Class Reference}
\label{class_ogre_1_1_g_l_depth_buffer_common}\index{Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}}


Open\+GL supports 3 different methods\+: F\+BO, pbuffer \& Copy.  




{\ttfamily \#include $<$Ogre\+G\+L\+Depth\+Buffer\+Common.\+h$>$}



Inheritance diagram for Ogre\+::G\+L\+Depth\+Buffer\+Common\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_g_l_depth_buffer_common__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group___render_system_ga9854c57374adef41216bae68544a5b7e}{Pool\+Id}} \{ \mbox{\hyperlink{group___render_system_gga9854c57374adef41216bae68544a5b7ea569228ed0fdd8d428a5117026b6d010e}{P\+O\+O\+L\+\_\+\+N\+O\+\_\+\+D\+E\+P\+TH}} = 0, 
\mbox{\hyperlink{group___render_system_gga9854c57374adef41216bae68544a5b7ea2d5409ddce167e1db415f09ee2160440}{P\+O\+O\+L\+\_\+\+M\+A\+N\+U\+A\+L\+\_\+\+U\+S\+A\+GE}} = 0, 
\mbox{\hyperlink{group___render_system_gga9854c57374adef41216bae68544a5b7ea00a687046bfe7a9ebd7f34256d3fbcca}{P\+O\+O\+L\+\_\+\+D\+E\+F\+A\+U\+LT}} = 1
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_g_l_depth_buffer_common_a4c94356412b169cf41b92a83948ab19a}{G\+L\+Depth\+Buffer\+Common}} (\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} pool\+Id, \mbox{\hyperlink{class_ogre_1_1_g_l_render_system_common}{G\+L\+Render\+System\+Common}} $\ast$render\+System, \mbox{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context}} $\ast$creator\+Context, \mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}} $\ast$depth, \mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}} $\ast$stencil, \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} width, \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} height, \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} fsaa, bool \mbox{\hyperlink{group___render_system_ga4a3de78684016598642ad2d00e5caa86}{is\+Manual}})
\item 
virtual \mbox{\hyperlink{class_ogre_1_1_g_l_depth_buffer_common_aa8cd7a0bcbe9a2d2f53dbd78b36d90dc}{$\sim$\+G\+L\+Depth\+Buffer\+Common}} ()
\item 
virtual void \mbox{\hyperlink{group___render_system_ga26c4ce1003ddab1ed7e3befecb0888a1}{\+\_\+notify\+Render\+Target\+Attached}} (\mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} $\ast$render\+Target)
\begin{DoxyCompactList}\small\item\em Called when a \mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} is attaches this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}}. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{group___render_system_ga227b541ef2ae3de53334c10397a08f99}{\+\_\+notify\+Render\+Target\+Detached}} (\mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} $\ast$render\+Target)
\begin{DoxyCompactList}\small\item\em Called when a \mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} is detaches from this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}}. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group___render_system_ga7af5c611687492846891914dcac303d2}{\+\_\+set\+Pool\+Id}} (\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} pool\+Id)
\begin{DoxyCompactList}\small\item\em Sets the pool id in which this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} lives. \end{DoxyCompactList}\item 
virtual \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} \mbox{\hyperlink{group___render_system_ga0da54b20b25ac5313fc8c142e8b35168}{get\+Bit\+Depth}} () const
\item 
\mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_g_l_depth_buffer_common_a951ed15c7bbc60805437d146aa8d9c7e}{get\+Depth\+Buffer}} () const
\item 
\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} \mbox{\hyperlink{group___render_system_ga37ddc9b5fc1fd8c5cf50e1b865d2b2fb}{get\+F\+S\+AA}} () const
\item 
\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} \mbox{\hyperlink{group___render_system_ga242e53843f55de3983e6f070e88c19ae}{get\+Fsaa}} () const
\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{group___render_system_ga9662342362034428346e0676fb9d1ac7}{get\+F\+S\+A\+A\+Hint}} () const
\item 
const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{group___render_system_ga1b4eca5bc2774b80081a2f5aba90c58c}{get\+Fsaa\+Hint}} () const
\item 
\mbox{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_g_l_depth_buffer_common_a176a5640176ef55674da5c092f833492}{get\+G\+L\+Context}} () const
\item 
virtual \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} \mbox{\hyperlink{group___render_system_gaf95e6998e74db40257cb2ca5cab4bdf4}{get\+Height}} () const
\item 
virtual \mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}} \mbox{\hyperlink{group___render_system_ga82b30e2ad5de1ac4678fda52ccbaf28f}{get\+Pool\+Id}} () const
\begin{DoxyCompactList}\small\item\em Gets the pool id in which this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} lives. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_g_l_depth_buffer_common_a17a8517ca1fa47d3338e87a777c1fc2d}{get\+Stencil\+Buffer}} () const
\item 
virtual \mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}} \mbox{\hyperlink{group___render_system_gae5095fe367bf95d08dee2da03810beb2}{get\+Width}} () const
\item 
bool \mbox{\hyperlink{class_ogre_1_1_g_l_depth_buffer_common_ad7eb9c17c142ae7ef3e111250790732a}{is\+Compatible}} (\mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} $\ast$render\+Target) const override
\begin{DoxyCompactList}\small\item\em Returns whether the specified \mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} is compatible with this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} That is, this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} can be attached to that \mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}}. \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{group___render_system_ga4a3de78684016598642ad2d00e5caa86}{is\+Manual}} () const
\begin{DoxyCompactList}\small\item\em Manual Depth\+Buffers are cleared in \mbox{\hyperlink{class_ogre_1_1_render_system}{Render\+System}}\textquotesingle{}s destructor. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Open\+GL supports 3 different methods\+: F\+BO, pbuffer \& Copy. 

Each one has it\textquotesingle{}s own limitations. Non-\/\+F\+BO methods are solved using \char`\"{}dummy\char`\"{} Depth\+Buffers. That is, a \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} pointer is attached to the \mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} (for the sake of consistency) but it doesn\textquotesingle{}t actually contain a Depth surface/renderbuffer (m\+Depth\+Buffer \& m\+Stencil\+Buffer are null pointers all the time) Those dummy Depth\+Buffers are identified thanks to their GL context. Note that F\+B\+Os don\textquotesingle{}t allow sharing with the main window\textquotesingle{}s depth buffer. Therefore even when F\+BO is enabled, a dummy \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} is still used to manage the windows. 

\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_g_l_depth_buffer_common_a4c94356412b169cf41b92a83948ab19a}\label{class_ogre_1_1_g_l_depth_buffer_common_a4c94356412b169cf41b92a83948ab19a}} 
\index{Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}!GLDepthBufferCommon@{GLDepthBufferCommon}}
\index{GLDepthBufferCommon@{GLDepthBufferCommon}!Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}}
\doxysubsubsection{\texorpdfstring{GLDepthBufferCommon()}{GLDepthBufferCommon()}}
{\footnotesize\ttfamily Ogre\+::\+G\+L\+Depth\+Buffer\+Common\+::\+G\+L\+Depth\+Buffer\+Common (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}}]{pool\+Id,  }\item[{\mbox{\hyperlink{class_ogre_1_1_g_l_render_system_common}{G\+L\+Render\+System\+Common}} $\ast$}]{render\+System,  }\item[{\mbox{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context}} $\ast$}]{creator\+Context,  }\item[{\mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}} $\ast$}]{depth,  }\item[{\mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}} $\ast$}]{stencil,  }\item[{\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}}]{width,  }\item[{\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}}]{height,  }\item[{\mbox{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}}]{fsaa,  }\item[{bool}]{is\+Manual }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_g_l_depth_buffer_common_aa8cd7a0bcbe9a2d2f53dbd78b36d90dc}\label{class_ogre_1_1_g_l_depth_buffer_common_aa8cd7a0bcbe9a2d2f53dbd78b36d90dc}} 
\index{Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}!````~GLDepthBufferCommon@{$\sim$GLDepthBufferCommon}}
\index{````~GLDepthBufferCommon@{$\sim$GLDepthBufferCommon}!Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}}
\doxysubsubsection{\texorpdfstring{$\sim$GLDepthBufferCommon()}{~GLDepthBufferCommon()}}
{\footnotesize\ttfamily virtual Ogre\+::\+G\+L\+Depth\+Buffer\+Common\+::$\sim$\+G\+L\+Depth\+Buffer\+Common (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_g_l_depth_buffer_common_ad7eb9c17c142ae7ef3e111250790732a}\label{class_ogre_1_1_g_l_depth_buffer_common_ad7eb9c17c142ae7ef3e111250790732a}} 
\index{Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}!isCompatible@{isCompatible}}
\index{isCompatible@{isCompatible}!Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}}
\doxysubsubsection{\texorpdfstring{isCompatible()}{isCompatible()}}
{\footnotesize\ttfamily bool Ogre\+::\+G\+L\+Depth\+Buffer\+Common\+::is\+Compatible (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} $\ast$}]{render\+Target }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Returns whether the specified \mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}} is compatible with this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} That is, this \mbox{\hyperlink{class_ogre_1_1_depth_buffer}{Depth\+Buffer}} can be attached to that \mbox{\hyperlink{class_ogre_1_1_render_target}{Render\+Target}}. 

\begin{DoxyRemark}{Remarks}
Most A\+P\+Is impose the following restrictions\+: Width \& height must be equal or higher than the render target\textquotesingle{}s They must be of the same bit depth. They need to have the same F\+S\+AA setting 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em render\+Target} & The render target to test against \\
\hline
\end{DoxyParams}


Reimplemented from \mbox{\hyperlink{group___render_system_gae959f6dd77e0e8b6aa9b7c6a3d2d3f5d}{Ogre\+::\+Depth\+Buffer}}.

\mbox{\Hypertarget{class_ogre_1_1_g_l_depth_buffer_common_a176a5640176ef55674da5c092f833492}\label{class_ogre_1_1_g_l_depth_buffer_common_a176a5640176ef55674da5c092f833492}} 
\index{Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}!getGLContext@{getGLContext}}
\index{getGLContext@{getGLContext}!Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}}
\doxysubsubsection{\texorpdfstring{getGLContext()}{getGLContext()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_g_l_context}{G\+L\+Context}}$\ast$ Ogre\+::\+G\+L\+Depth\+Buffer\+Common\+::get\+G\+L\+Context (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_g_l_depth_buffer_common_a951ed15c7bbc60805437d146aa8d9c7e}\label{class_ogre_1_1_g_l_depth_buffer_common_a951ed15c7bbc60805437d146aa8d9c7e}} 
\index{Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}!getDepthBuffer@{getDepthBuffer}}
\index{getDepthBuffer@{getDepthBuffer}!Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}}
\doxysubsubsection{\texorpdfstring{getDepthBuffer()}{getDepthBuffer()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}}$\ast$ Ogre\+::\+G\+L\+Depth\+Buffer\+Common\+::get\+Depth\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_g_l_depth_buffer_common_a17a8517ca1fa47d3338e87a777c1fc2d}\label{class_ogre_1_1_g_l_depth_buffer_common_a17a8517ca1fa47d3338e87a777c1fc2d}} 
\index{Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}!getStencilBuffer@{getStencilBuffer}}
\index{getStencilBuffer@{getStencilBuffer}!Ogre::GLDepthBufferCommon@{Ogre::GLDepthBufferCommon}}
\doxysubsubsection{\texorpdfstring{getStencilBuffer()}{getStencilBuffer()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_ogre_1_1_g_l_hardware_pixel_buffer_common}{G\+L\+Hardware\+Pixel\+Buffer\+Common}}$\ast$ Ogre\+::\+G\+L\+Depth\+Buffer\+Common\+::get\+Stencil\+Buffer (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{_ogre_g_l_depth_buffer_common_8h}{Ogre\+G\+L\+Depth\+Buffer\+Common.\+h}}\end{DoxyCompactItemize}
