\hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query}{}\section{Ogre\+:\+:D3\+D11\+Hardware\+Occlusion\+Query Class Reference}
\label{class_ogre_1_1_d3_d11_hardware_occlusion_query}\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}


This is a class that is the Direct\+X9 implementation of hardware occlusion testing.  




{\ttfamily \#include $<$Ogre\+D3\+D11\+Hardware\+Occlusion\+Query.\+h$>$}



Inheritance diagram for Ogre\+:\+:D3\+D11\+Hardware\+Occlusion\+Query\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=253pt]{class_ogre_1_1_d3_d11_hardware_occlusion_query__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_af2f609f8488b963340df3c04aedd75d9}{D3\+D11\+Hardware\+Occlusion\+Query} (\hyperlink{class_ogre_1_1_d3_d11_device}{D3\+D11\+Device} \&device)
\begin{DoxyCompactList}\small\item\em Default object constructor. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_aa91b896bee07d9259104c4f59db2d152}{$\sim$\+D3\+D11\+Hardware\+Occlusion\+Query} ()
\begin{DoxyCompactList}\small\item\em Object destructor. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_a25eadd4b2ad1c9c04c4827ee98b52aa2}{begin\+Occlusion\+Query} ()
\begin{DoxyCompactList}\small\item\em Starts the hardware occlusion query. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_a058005d6ae302bf8fe312cbfe31c3aae}{end\+Occlusion\+Query} ()
\begin{DoxyCompactList}\small\item\em Ends the hardware occlusion test. \end{DoxyCompactList}\item 
unsigned int \hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_a95818811808f3175c390e6986e1f4f05}{get\+Last\+Querys\+Pixelcount} ()
\item 
unsigned int \hyperlink{class_ogre_1_1_hardware_occlusion_query_ad1c71c786e262908a3aa805287b815e3}{get\+Last\+Querys\+Pixelcount} () const
\begin{DoxyCompactList}\small\item\em Let\textquotesingle{}s you get the last pixel count with out doing the hardware occlusion test. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_a1d5f33f82af884851ab3e29b7c5cca0c}{is\+Still\+Outstanding} (void)
\begin{DoxyCompactList}\small\item\em Lets you know when query is done, or still be processed by the Hardware. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_a21e4304da998fbaa791d9b343b03f294}{pull\+Occlusion\+Query} (unsigned int $\ast$Num\+Of\+Fragments)
\begin{DoxyCompactList}\small\item\em Pulls the hardware occlusion query. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This is a class that is the Direct\+X9 implementation of hardware occlusion testing. 

\begin{DoxyAuthor}{Author}
Lee Sandberg, email \href{mailto:lee@abcmedia.se}{\tt lee@abcmedia.\+se}
\end{DoxyAuthor}
Updated on 12/7/2004 by Chris Mc\+Guirk Updated on 4/8/2005 by Tuan Kuranes email\+: \href{mailto:tuan.kuranes@free.fr}{\tt tuan.\+kuranes@free.\+fr} 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query_af2f609f8488b963340df3c04aedd75d9}\label{class_ogre_1_1_d3_d11_hardware_occlusion_query_af2f609f8488b963340df3c04aedd75d9}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!D3\+D11\+Hardware\+Occlusion\+Query@{D3\+D11\+Hardware\+Occlusion\+Query}}
\index{D3\+D11\+Hardware\+Occlusion\+Query@{D3\+D11\+Hardware\+Occlusion\+Query}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{D3\+D11\+Hardware\+Occlusion\+Query()}{D3D11HardwareOcclusionQuery()}}
{\footnotesize\ttfamily Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query\+::\+D3\+D11\+Hardware\+Occlusion\+Query (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_d3_d11_device}{D3\+D11\+Device} \&}]{device }\end{DoxyParamCaption})}



Default object constructor. 

\mbox{\Hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query_aa91b896bee07d9259104c4f59db2d152}\label{class_ogre_1_1_d3_d11_hardware_occlusion_query_aa91b896bee07d9259104c4f59db2d152}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!````~D3\+D11\+Hardware\+Occlusion\+Query@{$\sim$\+D3\+D11\+Hardware\+Occlusion\+Query}}
\index{````~D3\+D11\+Hardware\+Occlusion\+Query@{$\sim$\+D3\+D11\+Hardware\+Occlusion\+Query}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{$\sim$\+D3\+D11\+Hardware\+Occlusion\+Query()}{~D3D11HardwareOcclusionQuery()}}
{\footnotesize\ttfamily Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query\+::$\sim$\+D3\+D11\+Hardware\+Occlusion\+Query (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Object destructor. 



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query_a25eadd4b2ad1c9c04c4827ee98b52aa2}\label{class_ogre_1_1_d3_d11_hardware_occlusion_query_a25eadd4b2ad1c9c04c4827ee98b52aa2}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!begin\+Occlusion\+Query@{begin\+Occlusion\+Query}}
\index{begin\+Occlusion\+Query@{begin\+Occlusion\+Query}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{begin\+Occlusion\+Query()}{beginOcclusionQuery()}}
{\footnotesize\ttfamily void Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query\+::begin\+Occlusion\+Query (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Starts the hardware occlusion query. 

\begin{DoxyRemark}{Remarks}
Simple usage\+: Create one or more Occlusion\+Query object one per outstanding query or one per tested object Occlusion\+Query$\ast$ m\+Occlusion\+Query; create\+Occlusion\+Query( \&m\+Occlusion\+Query ); In the rendering loop\+: Draw all occluders m\+Occlusion\+Query-\/$>$start\+Occlusion\+Query(); Draw the polygons to be tested m\+Occlusion\+Query-\/$>$\hyperlink{class_ogre_1_1_d3_d11_hardware_occlusion_query_a058005d6ae302bf8fe312cbfe31c3aae}{end\+Occlusion\+Query()};
\end{DoxyRemark}
Results must be pulled using\+: U\+I\+NT m\+Number\+Of\+Pixels\+Visable; pull\+Occlusion\+Query( \&m\+Number\+Of\+Pixels\+Visable ); 

Implements \hyperlink{class_ogre_1_1_hardware_occlusion_query_a40efe70ae4a5877fadd5ef40b2e5fcf3}{Ogre\+::\+Hardware\+Occlusion\+Query}.

\mbox{\Hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query_a058005d6ae302bf8fe312cbfe31c3aae}\label{class_ogre_1_1_d3_d11_hardware_occlusion_query_a058005d6ae302bf8fe312cbfe31c3aae}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!end\+Occlusion\+Query@{end\+Occlusion\+Query}}
\index{end\+Occlusion\+Query@{end\+Occlusion\+Query}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{end\+Occlusion\+Query()}{endOcclusionQuery()}}
{\footnotesize\ttfamily void Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query\+::end\+Occlusion\+Query (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Ends the hardware occlusion test. 



Implements \hyperlink{class_ogre_1_1_hardware_occlusion_query_aae324a11ce1f97199024d1ee38a297c2}{Ogre\+::\+Hardware\+Occlusion\+Query}.

\mbox{\Hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query_a21e4304da998fbaa791d9b343b03f294}\label{class_ogre_1_1_d3_d11_hardware_occlusion_query_a21e4304da998fbaa791d9b343b03f294}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!pull\+Occlusion\+Query@{pull\+Occlusion\+Query}}
\index{pull\+Occlusion\+Query@{pull\+Occlusion\+Query}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{pull\+Occlusion\+Query()}{pullOcclusionQuery()}}
{\footnotesize\ttfamily bool Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query\+::pull\+Occlusion\+Query (\begin{DoxyParamCaption}\item[{unsigned int $\ast$}]{Num\+Of\+Fragments }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Pulls the hardware occlusion query. 

\begin{DoxyNote}{Note}
Waits until the query result is available; use is\+Still\+Outstanding if just want to test if the result is available. 
\end{DoxyNote}

\begin{DoxyRetVals}{Return values}
{\em Num\+Of\+Fragments} & will get the resulting number of fragments. \\
\hline
\end{DoxyRetVals}
\begin{DoxyReturn}{Returns}
True if success or false if not. 
\end{DoxyReturn}


Implements \hyperlink{class_ogre_1_1_hardware_occlusion_query_ae30ceda53d771c5db266fdcfd14e6c9c}{Ogre\+::\+Hardware\+Occlusion\+Query}.

\mbox{\Hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query_a95818811808f3175c390e6986e1f4f05}\label{class_ogre_1_1_d3_d11_hardware_occlusion_query_a95818811808f3175c390e6986e1f4f05}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!get\+Last\+Querys\+Pixelcount@{get\+Last\+Querys\+Pixelcount}}
\index{get\+Last\+Querys\+Pixelcount@{get\+Last\+Querys\+Pixelcount}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{get\+Last\+Querys\+Pixelcount()}{getLastQuerysPixelcount()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily unsigned int Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query\+::get\+Last\+Querys\+Pixelcount (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_d3_d11_hardware_occlusion_query_a1d5f33f82af884851ab3e29b7c5cca0c}\label{class_ogre_1_1_d3_d11_hardware_occlusion_query_a1d5f33f82af884851ab3e29b7c5cca0c}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!is\+Still\+Outstanding@{is\+Still\+Outstanding}}
\index{is\+Still\+Outstanding@{is\+Still\+Outstanding}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{is\+Still\+Outstanding()}{isStillOutstanding()}}
{\footnotesize\ttfamily bool Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query\+::is\+Still\+Outstanding (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Lets you know when query is done, or still be processed by the Hardware. 

\begin{DoxyReturn}{Returns}
true if query isn\textquotesingle{}t finished. 
\end{DoxyReturn}


Implements \hyperlink{class_ogre_1_1_hardware_occlusion_query_abdc85b8e78de55492c8d2d730150e08d}{Ogre\+::\+Hardware\+Occlusion\+Query}.

\mbox{\Hypertarget{class_ogre_1_1_hardware_occlusion_query_ad1c71c786e262908a3aa805287b815e3}\label{class_ogre_1_1_hardware_occlusion_query_ad1c71c786e262908a3aa805287b815e3}} 
\index{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}!get\+Last\+Querys\+Pixelcount@{get\+Last\+Querys\+Pixelcount}}
\index{get\+Last\+Querys\+Pixelcount@{get\+Last\+Querys\+Pixelcount}!Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query@{Ogre\+::\+D3\+D11\+Hardware\+Occlusion\+Query}}
\subsubsection{\texorpdfstring{get\+Last\+Querys\+Pixelcount()}{getLastQuerysPixelcount()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily unsigned int Ogre\+::\+Hardware\+Occlusion\+Query\+::get\+Last\+Querys\+Pixelcount (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Let\textquotesingle{}s you get the last pixel count with out doing the hardware occlusion test. 

\begin{DoxyReturn}{Returns}
The last fragment count from the last test. Remarks This function won\textquotesingle{}t give you new values, just the old value. 
\end{DoxyReturn}


The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_d3_d11_hardware_occlusion_query_8h}{Ogre\+D3\+D11\+Hardware\+Occlusion\+Query.\+h}\end{DoxyCompactItemize}
