\hypertarget{a00495}{\section{Depth\+Peeling Class Reference}
\label{a00495}\index{Depth\+Peeling@{Depth\+Peeling}}
}
Inheritance diagram for Depth\+Peeling\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.947826cm]{a00495}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a01455}{Viewer\+Resources}
\begin{DoxyCompactList}\small\item\em Collection of framebuffers for each viewport. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00495_a68c771b7837b5239d53e49ddb35aff2c}{Q\+String {\bfseries version} ()}\label{a00495_a68c771b7837b5239d53e49ddb35aff2c}

\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00495_a61721fb5e58e34673ba7cf5decd49268}{void {\bfseries log} (\hyperlink{a02444_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)}\label{a00495_a61721fb5e58e34673ba7cf5decd49268}

\item 
\hypertarget{a00495_ae43e6c25e5d06d1b6181815d6b7d781f}{void {\bfseries log} (Q\+String \+\_\+message)}\label{a00495_ae43e6c25e5d06d1b6181815d6b7d781f}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a00495_a2f69e86c77935db464b81c1ee79081ed}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a00495_a1ad6d15e644f42602b8e87d5ee77f867}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\item 
\hypertarget{a00495_ab1d160e4d536a6825d1a1915a0cd7f1d}{void \hyperlink{a00495_ab1d160e4d536a6825d1a1915a0cd7f1d}{add\+Render\+Object} (\hyperlink{a01110}{A\+C\+G\+::\+Render\+Object} $\ast$\+\_\+render\+Object)}\label{a00495_ab1d160e4d536a6825d1a1915a0cd7f1d}

\begin{DoxyCompactList}\small\item\em overide add\+Render\+Object function to include O\+I\+T check \end{DoxyCompactList}\item 
Q\+String \hyperlink{a00495_ac578238f4ba0551f111bbed9c58e588b}{render\+Objects\+Info} (bool \+\_\+output\+Shader\+Info)
\begin{DoxyCompactList}\small\item\em Return a qstring of the current render objects. \end{DoxyCompactList}\item 
Q\+Action $\ast$ \hyperlink{a00495_a14326cc1d6209f84267d7f9fa657381b}{options\+Action} ()
\begin{DoxyCompactList}\small\item\em Return options menu. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00495_a9ae83aa4d1aac2e3841f6bd63f7ce188}{void {\bfseries initialize\+Plugin} ()}\label{a00495_a9ae83aa4d1aac2e3841f6bd63f7ce188}

\item 
\hypertarget{a00495_a4393bb46e6bbd144f7aa523d7e4863cd}{void {\bfseries exit} ()}\label{a00495_a4393bb46e6bbd144f7aa523d7e4863cd}

\item 
\hypertarget{a00495_a36ac29ab0fd17e77b6a9b32f869a15ba}{void {\bfseries render} (\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties)}\label{a00495_a36ac29ab0fd17e77b6a9b32f869a15ba}

\item 
\hypertarget{a00495_ac97ae0072f3ed0aa1effac6d05c68684}{Q\+String {\bfseries renderer\+Name} ()}\label{a00495_ac97ae0072f3ed0aa1effac6d05c68684}

\item 
\hypertarget{a00495_a684ad207dba57cff68af48876d77ca79}{void {\bfseries supported\+Draw\+Modes} (\hyperlink{a00509}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+mode)}\label{a00495_a684ad207dba57cff68af48876d77ca79}

\item 
\hypertarget{a00495_a558488deb29633607979ac1cd31f3ffe}{Q\+String {\bfseries check\+Open\+G\+L} ()}\label{a00495_a558488deb29633607979ac1cd31f3ffe}

\item 
\hypertarget{a00495_aad6a60567470ba686d2eaa7fb7b41463}{void {\bfseries slot\+Mode\+Changed} (Q\+Action $\ast$)}\label{a00495_aad6a60567470ba686d2eaa7fb7b41463}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00495_aa8fbd1b6d76f3142927849964390de39}{void \hyperlink{a00495_aa8fbd1b6d76f3142927849964390de39}{render\+Front\+Peeling} (\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties)}\label{a00495_aa8fbd1b6d76f3142927849964390de39}

\begin{DoxyCompactList}\small\item\em peel the scene from front to back, one layer per pass \end{DoxyCompactList}\item 
\hypertarget{a00495_af2eaba55c54d9d1257729eb3d421f7d3}{void \hyperlink{a00495_af2eaba55c54d9d1257729eb3d421f7d3}{render\+Dual\+Peeling} (\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties)}\label{a00495_af2eaba55c54d9d1257729eb3d421f7d3}

\begin{DoxyCompactList}\small\item\em peel the scene with dual depth peeling, two layers per pass \end{DoxyCompactList}\item 
\hypertarget{a00495_a90ae245caa91649bea5cf33d00c97194}{void \hyperlink{a00495_a90ae245caa91649bea5cf33d00c97194}{init\+Depth\+Peeling} ()}\label{a00495_a90ae245caa91649bea5cf33d00c97194}

\begin{DoxyCompactList}\small\item\em Allocate framebuffers and load shaders for depth-\/peeling. \end{DoxyCompactList}\item 
\hypertarget{a00495_ab5826dbebfdb63e1a3e17befa6a90751}{void \hyperlink{a00495_ab5826dbebfdb63e1a3e17befa6a90751}{init\+Dual\+Depth\+Peeling} ()}\label{a00495_ab5826dbebfdb63e1a3e17befa6a90751}

\begin{DoxyCompactList}\small\item\em Allocate framebuffers and load shaders for dual-\/depth-\/peeling. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00495_a68d40b3708cd373aa33c6886bcd253cb}{int \hyperlink{a00495_a68d40b3708cd373aa33c6886bcd253cb}{peel\+Mode\+\_\+}}\label{a00495_a68d40b3708cd373aa33c6886bcd253cb}

\begin{DoxyCompactList}\small\item\em mode\+: 0 -\/$>$ front to back peeling, 1 -\/$>$ dual peeling \end{DoxyCompactList}\item 
\hypertarget{a00495_a621d3cf6821ac2d2be7a2eeb9b754262}{bool {\bfseries copy\+Front\+Depth\+\_\+}}\label{a00495_a621d3cf6821ac2d2be7a2eeb9b754262}

\item 
\hypertarget{a00495_a6bdfd6b886b9b96ace4e213dc0cef824}{int \hyperlink{a00495_a6bdfd6b886b9b96ace4e213dc0cef824}{max\+Peel\+Count\+\_\+}}\label{a00495_a6bdfd6b886b9b96ace4e213dc0cef824}

\begin{DoxyCompactList}\small\item\em max peel count \end{DoxyCompactList}\item 
\hypertarget{a00495_a43cdddb8f6b8ed96183284f1e9622d82}{\hyperlink{a01020}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a00495_a43cdddb8f6b8ed96183284f1e9622d82}{peel\+Blend\+\_\+}}\label{a00495_a43cdddb8f6b8ed96183284f1e9622d82}

\begin{DoxyCompactList}\small\item\em blends one depth-\/layer into the current scene target \end{DoxyCompactList}\item 
\hypertarget{a00495_a96c6649f67f314f55d040ebb69a17941}{\hyperlink{a01020}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a00495_a96c6649f67f314f55d040ebb69a17941}{peel\+Final\+\_\+}}\label{a00495_a96c6649f67f314f55d040ebb69a17941}

\begin{DoxyCompactList}\small\item\em final copy into back-\/buffer \end{DoxyCompactList}\item 
\hypertarget{a00495_aab5bdd9571568319b81d4c640c1df6ca}{G\+Luint \hyperlink{a00495_aab5bdd9571568319b81d4c640c1df6ca}{peel\+Query\+I\+D\+\_\+}}\label{a00495_aab5bdd9571568319b81d4c640c1df6ca}

\begin{DoxyCompactList}\small\item\em occlusion query determining end of peeling (last layer) \end{DoxyCompactList}\item 
\hypertarget{a00495_adeeda6dc7a25f69c5cb6a5fc8e92c65c}{\hyperlink{a01020}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a00495_adeeda6dc7a25f69c5cb6a5fc8e92c65c}{peel\+Blend\+Dual\+\_\+}}\label{a00495_adeeda6dc7a25f69c5cb6a5fc8e92c65c}

\begin{DoxyCompactList}\small\item\em dual depth peeling shaders \end{DoxyCompactList}\item 
\hypertarget{a00495_a573868d5f797026039f6ade27cee8a10}{\hyperlink{a01020}{G\+L\+S\+L\+::\+Program} $\ast$ {\bfseries peel\+Final\+Dual\+\_\+}}\label{a00495_a573868d5f797026039f6ade27cee8a10}

\item 
std\+::map$<$ int, \hyperlink{a01455}{Viewer\+Resources} $>$ \hyperlink{a00495_a84bb42d1d87dc51203bb32d67af992e2}{viewer\+Res\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}


Definition at line 57 of file Depth\+Peeling.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00495_a1ad6d15e644f42602b8e87d5ee77f867}{\index{Depth\+Peeling@{Depth\+Peeling}!description@{description}}
\index{description@{description}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection[{description}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Depth\+Peeling\+::description (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00495_a1ad6d15e644f42602b8e87d5ee77f867}


Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

Implements \hyperlink{a00322_a43f0d3612695b53c848c14f48fea9a7a}{Base\+Interface}.



Definition at line 79 of file Depth\+Peeling.\+hh.

\hypertarget{a00495_a2f69e86c77935db464b81c1ee79081ed}{\index{Depth\+Peeling@{Depth\+Peeling}!name@{name}}
\index{name@{name}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection[{name}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Depth\+Peeling\+::name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00495_a2f69e86c77935db464b81c1ee79081ed}


Return a name for the plugin. 

This Function has to return the name of the plugin. 

Implements \hyperlink{a00322_a2b351aa6ef0eb368bce735e243235958}{Base\+Interface}.



Definition at line 78 of file Depth\+Peeling.\+hh.

\hypertarget{a00495_a14326cc1d6209f84267d7f9fa657381b}{\index{Depth\+Peeling@{Depth\+Peeling}!options\+Action@{options\+Action}}
\index{options\+Action@{options\+Action}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection[{options\+Action}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Action $\ast$ Depth\+Peeling\+::options\+Action (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00495_a14326cc1d6209f84267d7f9fa657381b}


Return options menu. 

If you want an options \hyperlink{a00802}{Menu} or menu entry, you can return your action here. It will be shown on top of the renderer list in the options menu.

\begin{DoxyReturn}{Returns}
Action for a menu or menu entry 
\end{DoxyReturn}


Reimplemented from \hyperlink{a01107_ade77e083ab999d29a3bec9d2b815aaea}{Render\+Interface}.



Definition at line 60 of file Depth\+Peeling\+\_\+qt.\+cc.

\hypertarget{a00495_ac578238f4ba0551f111bbed9c58e588b}{\index{Depth\+Peeling@{Depth\+Peeling}!render\+Objects\+Info@{render\+Objects\+Info}}
\index{render\+Objects\+Info@{render\+Objects\+Info}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection[{render\+Objects\+Info}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Depth\+Peeling\+::render\+Objects\+Info (
\begin{DoxyParamCaption}
\item[{bool}]{\+\_\+output\+Shader\+Info}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00495_ac578238f4ba0551f111bbed9c58e588b}


Return a qstring of the current render objects. 

In this function your plugin should return a list of the render objects (possibly with additional information). It can be used for debugging purposes.

The I\+Renderer class already has a function called \hyperlink{a00738_ac395090b05b1d750c8240b55b0ddf5cc}{dump\+Current\+Render\+Objects\+To\+String()} which can be used to implement this function.


\begin{DoxyParams}{Parameters}
{\em \+\_\+output\+Shader\+Info} & Output shader code along with the render objects \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string of render objects 
\end{DoxyReturn}


Reimplemented from \hyperlink{a01107_aeb8df2a3aeee771a5e3a3616796d9cab}{Render\+Interface}.



Definition at line 1029 of file Depth\+Peeling.\+cc.



\subsection{Member Data Documentation}
\hypertarget{a00495_a84bb42d1d87dc51203bb32d67af992e2}{\index{Depth\+Peeling@{Depth\+Peeling}!viewer\+Res\+\_\+@{viewer\+Res\+\_\+}}
\index{viewer\+Res\+\_\+@{viewer\+Res\+\_\+}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection[{viewer\+Res\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}std\+::map$<$int, {\bf Viewer\+Resources}$>$ Depth\+Peeling\+::viewer\+Res\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00495_a84bb42d1d87dc51203bb32d67af992e2}
Stores framebuffer resources for each viewport. Mapping\+: viewer\+I\+D -\/$>$ \hyperlink{a01455}{Viewer\+Resources} 

Definition at line 188 of file Depth\+Peeling.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin\+Collection-\/\+Renderers/\+Plugin-\/\+Render-\/\+Depth\+Peeling/Depth\+Peeling.\+hh\item 
Plugin\+Collection-\/\+Renderers/\+Plugin-\/\+Render-\/\+Depth\+Peeling/Depth\+Peeling.\+cc\item 
Plugin\+Collection-\/\+Renderers/\+Plugin-\/\+Render-\/\+Depth\+Peeling/\hyperlink{a03186}{Depth\+Peeling\+\_\+qt.\+cc}\end{DoxyCompactItemize}
