\hypertarget{classDepthPeeling}{}\section{Depth\+Peeling Class Reference}
\label{classDepthPeeling}\index{Depth\+Peeling@{Depth\+Peeling}}
Inheritance diagram for Depth\+Peeling\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.947826cm]{classDepthPeeling}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structDepthPeeling_1_1ViewerResources}{Viewer\+Resources}
\begin{DoxyCompactList}\small\item\em Collection of framebuffers for each viewport. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classDepthPeeling_a68c771b7837b5239d53e49ddb35aff2c}\label{classDepthPeeling_a68c771b7837b5239d53e49ddb35aff2c}} 
Q\+String {\bfseries version} ()
\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classDepthPeeling_a61721fb5e58e34673ba7cf5decd49268}\label{classDepthPeeling_a61721fb5e58e34673ba7cf5decd49268}} 
void {\bfseries log} (\hyperlink{LoggingInterface_8hh_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{classDepthPeeling_ae43e6c25e5d06d1b6181815d6b7d781f}\label{classDepthPeeling_ae43e6c25e5d06d1b6181815d6b7d781f}} 
void {\bfseries log} (Q\+String \+\_\+message)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{classDepthPeeling_a2f69e86c77935db464b81c1ee79081ed}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{classDepthPeeling_a1ad6d15e644f42602b8e87d5ee77f867}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_ab1d160e4d536a6825d1a1915a0cd7f1d}\label{classDepthPeeling_ab1d160e4d536a6825d1a1915a0cd7f1d}} 
void \hyperlink{classDepthPeeling_ab1d160e4d536a6825d1a1915a0cd7f1d}{add\+Render\+Object} (\hyperlink{structACG_1_1RenderObject}{A\+C\+G\+::\+Render\+Object} $\ast$\+\_\+render\+Object)
\begin{DoxyCompactList}\small\item\em overide add\+Render\+Object function to include O\+IT check \end{DoxyCompactList}\item 
Q\+String \hyperlink{classDepthPeeling_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{classDepthPeeling_a14326cc1d6209f84267d7f9fa657381b}{options\+Action} ()
\begin{DoxyCompactList}\small\item\em Return options menu. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classDepthPeeling_a9ae83aa4d1aac2e3841f6bd63f7ce188}\label{classDepthPeeling_a9ae83aa4d1aac2e3841f6bd63f7ce188}} 
void {\bfseries initialize\+Plugin} ()
\item 
\mbox{\Hypertarget{classDepthPeeling_a4393bb46e6bbd144f7aa523d7e4863cd}\label{classDepthPeeling_a4393bb46e6bbd144f7aa523d7e4863cd}} 
void {\bfseries exit} ()
\item 
\mbox{\Hypertarget{classDepthPeeling_a36ac29ab0fd17e77b6a9b32f869a15ba}\label{classDepthPeeling_a36ac29ab0fd17e77b6a9b32f869a15ba}} 
void {\bfseries render} (\hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{classViewer_1_1ViewerProperties}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties)
\item 
\mbox{\Hypertarget{classDepthPeeling_ac97ae0072f3ed0aa1effac6d05c68684}\label{classDepthPeeling_ac97ae0072f3ed0aa1effac6d05c68684}} 
Q\+String {\bfseries renderer\+Name} ()
\item 
\mbox{\Hypertarget{classDepthPeeling_a684ad207dba57cff68af48876d77ca79}\label{classDepthPeeling_a684ad207dba57cff68af48876d77ca79}} 
void {\bfseries supported\+Draw\+Modes} (\hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+mode)
\item 
\mbox{\Hypertarget{classDepthPeeling_a558488deb29633607979ac1cd31f3ffe}\label{classDepthPeeling_a558488deb29633607979ac1cd31f3ffe}} 
Q\+String {\bfseries check\+Open\+GL} ()
\item 
\mbox{\Hypertarget{classDepthPeeling_aad6a60567470ba686d2eaa7fb7b41463}\label{classDepthPeeling_aad6a60567470ba686d2eaa7fb7b41463}} 
void {\bfseries slot\+Mode\+Changed} (Q\+Action $\ast$)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classDepthPeeling_aa8fbd1b6d76f3142927849964390de39}\label{classDepthPeeling_aa8fbd1b6d76f3142927849964390de39}} 
void \hyperlink{classDepthPeeling_aa8fbd1b6d76f3142927849964390de39}{render\+Front\+Peeling} (\hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{classViewer_1_1ViewerProperties}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties)
\begin{DoxyCompactList}\small\item\em peel the scene from front to back, one layer per pass \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_af2eaba55c54d9d1257729eb3d421f7d3}\label{classDepthPeeling_af2eaba55c54d9d1257729eb3d421f7d3}} 
void \hyperlink{classDepthPeeling_af2eaba55c54d9d1257729eb3d421f7d3}{render\+Dual\+Peeling} (\hyperlink{classACG_1_1GLState}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{classViewer_1_1ViewerProperties}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties)
\begin{DoxyCompactList}\small\item\em peel the scene with dual depth peeling, two layers per pass \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_a90ae245caa91649bea5cf33d00c97194}\label{classDepthPeeling_a90ae245caa91649bea5cf33d00c97194}} 
void \hyperlink{classDepthPeeling_a90ae245caa91649bea5cf33d00c97194}{init\+Depth\+Peeling} ()
\begin{DoxyCompactList}\small\item\em Allocate framebuffers and load shaders for depth-\/peeling. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_ab5826dbebfdb63e1a3e17befa6a90751}\label{classDepthPeeling_ab5826dbebfdb63e1a3e17befa6a90751}} 
void \hyperlink{classDepthPeeling_ab5826dbebfdb63e1a3e17befa6a90751}{init\+Dual\+Depth\+Peeling} ()
\begin{DoxyCompactList}\small\item\em Allocate framebuffers and load shaders for dual-\/depth-\/peeling. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classDepthPeeling_a68d40b3708cd373aa33c6886bcd253cb}\label{classDepthPeeling_a68d40b3708cd373aa33c6886bcd253cb}} 
int \hyperlink{classDepthPeeling_a68d40b3708cd373aa33c6886bcd253cb}{peel\+Mode\+\_\+}
\begin{DoxyCompactList}\small\item\em mode\+: 0 -\/$>$ front to back peeling, 1 -\/$>$ dual peeling \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_a621d3cf6821ac2d2be7a2eeb9b754262}\label{classDepthPeeling_a621d3cf6821ac2d2be7a2eeb9b754262}} 
bool {\bfseries copy\+Front\+Depth\+\_\+}
\item 
\mbox{\Hypertarget{classDepthPeeling_a6bdfd6b886b9b96ace4e213dc0cef824}\label{classDepthPeeling_a6bdfd6b886b9b96ace4e213dc0cef824}} 
int \hyperlink{classDepthPeeling_a6bdfd6b886b9b96ace4e213dc0cef824}{max\+Peel\+Count\+\_\+}
\begin{DoxyCompactList}\small\item\em max peel count \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_a43cdddb8f6b8ed96183284f1e9622d82}\label{classDepthPeeling_a43cdddb8f6b8ed96183284f1e9622d82}} 
\hyperlink{classGLSL_1_1Program}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{classDepthPeeling_a43cdddb8f6b8ed96183284f1e9622d82}{peel\+Blend\+\_\+}
\begin{DoxyCompactList}\small\item\em blends one depth-\/layer into the current scene target \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_a96c6649f67f314f55d040ebb69a17941}\label{classDepthPeeling_a96c6649f67f314f55d040ebb69a17941}} 
\hyperlink{classGLSL_1_1Program}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{classDepthPeeling_a96c6649f67f314f55d040ebb69a17941}{peel\+Final\+\_\+}
\begin{DoxyCompactList}\small\item\em final copy into back-\/buffer \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_aab5bdd9571568319b81d4c640c1df6ca}\label{classDepthPeeling_aab5bdd9571568319b81d4c640c1df6ca}} 
G\+Luint \hyperlink{classDepthPeeling_aab5bdd9571568319b81d4c640c1df6ca}{peel\+Query\+I\+D\+\_\+}
\begin{DoxyCompactList}\small\item\em occlusion query determining end of peeling (last layer) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_adeeda6dc7a25f69c5cb6a5fc8e92c65c}\label{classDepthPeeling_adeeda6dc7a25f69c5cb6a5fc8e92c65c}} 
\hyperlink{classGLSL_1_1Program}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{classDepthPeeling_adeeda6dc7a25f69c5cb6a5fc8e92c65c}{peel\+Blend\+Dual\+\_\+}
\begin{DoxyCompactList}\small\item\em dual depth peeling shaders \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDepthPeeling_a573868d5f797026039f6ade27cee8a10}\label{classDepthPeeling_a573868d5f797026039f6ade27cee8a10}} 
\hyperlink{classGLSL_1_1Program}{G\+L\+S\+L\+::\+Program} $\ast$ {\bfseries peel\+Final\+Dual\+\_\+}
\item 
std\+::map$<$ int, \hyperlink{structDepthPeeling_1_1ViewerResources}{Viewer\+Resources} $>$ \hyperlink{classDepthPeeling_a84bb42d1d87dc51203bb32d67af992e2}{viewer\+Res\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}


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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classDepthPeeling_a1ad6d15e644f42602b8e87d5ee77f867}\label{classDepthPeeling_a1ad6d15e644f42602b8e87d5ee77f867}} 
\index{Depth\+Peeling@{Depth\+Peeling}!description@{description}}
\index{description@{description}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily Q\+String Depth\+Peeling\+::description (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

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



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

\mbox{\Hypertarget{classDepthPeeling_a2f69e86c77935db464b81c1ee79081ed}\label{classDepthPeeling_a2f69e86c77935db464b81c1ee79081ed}} 
\index{Depth\+Peeling@{Depth\+Peeling}!name@{name}}
\index{name@{name}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily Q\+String Depth\+Peeling\+::name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a name for the plugin. 

This Function has to return the name of the plugin. 

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



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

\mbox{\Hypertarget{classDepthPeeling_a14326cc1d6209f84267d7f9fa657381b}\label{classDepthPeeling_a14326cc1d6209f84267d7f9fa657381b}} 
\index{Depth\+Peeling@{Depth\+Peeling}!options\+Action@{options\+Action}}
\index{options\+Action@{options\+Action}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection{\texorpdfstring{options\+Action()}{optionsAction()}}
{\footnotesize\ttfamily Q\+Action $\ast$ Depth\+Peeling\+::options\+Action (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Return options menu. 

If you want an options \hyperlink{classMenu}{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{classRenderInterface_ade77e083ab999d29a3bec9d2b815aaea}{Render\+Interface}.



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

\mbox{\Hypertarget{classDepthPeeling_ac578238f4ba0551f111bbed9c58e588b}\label{classDepthPeeling_ac578238f4ba0551f111bbed9c58e588b}} 
\index{Depth\+Peeling@{Depth\+Peeling}!render\+Objects\+Info@{render\+Objects\+Info}}
\index{render\+Objects\+Info@{render\+Objects\+Info}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection{\texorpdfstring{render\+Objects\+Info()}{renderObjectsInfo()}}
{\footnotesize\ttfamily Q\+String Depth\+Peeling\+::render\+Objects\+Info (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+output\+Shader\+Info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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{classACG_1_1IRenderer_ad6553af076266eaecb48b59dc968897e}{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{classRenderInterface_aeb8df2a3aeee771a5e3a3616796d9cab}{Render\+Interface}.



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



\subsection{Member Data Documentation}
\mbox{\Hypertarget{classDepthPeeling_a84bb42d1d87dc51203bb32d67af992e2}\label{classDepthPeeling_a84bb42d1d87dc51203bb32d67af992e2}} 
\index{Depth\+Peeling@{Depth\+Peeling}!viewer\+Res\+\_\+@{viewer\+Res\+\_\+}}
\index{viewer\+Res\+\_\+@{viewer\+Res\+\_\+}!Depth\+Peeling@{Depth\+Peeling}}
\subsubsection{\texorpdfstring{viewer\+Res\+\_\+}{viewerRes\_}}
{\footnotesize\ttfamily std\+::map$<$int, \hyperlink{structDepthPeeling_1_1ViewerResources}{Viewer\+Resources}$>$ Depth\+Peeling\+::viewer\+Res\+\_\+\hspace{0.3cm}{\ttfamily [private]}}

Stores framebuffer resources for each viewport. Mapping\+: viewer\+ID -\/$>$ \hyperlink{structDepthPeeling_1_1ViewerResources}{Viewer\+Resources} 

Definition at line 187 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{DepthPeeling__qt_8cc}{Depth\+Peeling\+\_\+qt.\+cc}\end{DoxyCompactItemize}
