\hypertarget{a11148}{}\section{Depth\+Peeling\+Plugin Class Reference}
\label{a11148}\index{Depth\+Peeling\+Plugin@{Depth\+Peeling\+Plugin}}
Inheritance diagram for Depth\+Peeling\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a11148}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a11152}{Viewer\+Resources}
\end{DoxyCompactItemize}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11148_ab353d0e85b3865f4413c0429a72796d5}\label{a11148_ab353d0e85b3865f4413c0429a72796d5}} 
Q\+String {\bfseries version} ()
\end{DoxyCompactItemize}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11148_add69894b325d96ecd8590c5c1f5571f3}\label{a11148_add69894b325d96ecd8590c5c1f5571f3}} 
void {\bfseries log} (\hyperlink{a00035_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{a11148_aa64a52639894544a96da4e97d9d2f795}\label{a11148_aa64a52639894544a96da4e97d9d2f795}} 
void {\bfseries log} (Q\+String \+\_\+message)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a11148_a025b9c0b5a05a1a1af9aea468c1ed5f5}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a11148_a2a38c15a5963db622171edee7188e8c2}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11148_a6eea90658f5145e93706a449e29eba27}\label{a11148_a6eea90658f5145e93706a449e29eba27}} 
enum \{ \newline
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+W\+I\+R\+E\+F\+R\+A\+ME} = 0, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+H\+I\+D\+D\+E\+N\+L\+I\+NE} = 1, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+T\+E\+X\+T\+U\+R\+ED} = 0x1, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+P\+H\+O\+NG} = 0x2, 
\newline
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+G\+O\+U\+R\+A\+UD} = 0x4, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+F\+L\+AT} = 0x8, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+V\+E\+R\+T\+E\+X\+C\+O\+L\+O\+RS} = 0x10, 
{\bfseries P\+E\+E\+L\+\_\+\+N\+U\+M\+\_\+\+C\+O\+M\+B\+I\+N\+A\+T\+I\+O\+NS} = 0x20, 
\newline
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+N\+U\+M\+\_\+\+F\+L\+A\+GS} = 5
 \}
\item 
\mbox{\Hypertarget{a11148_a52a0f53b8f1c98b7ab86096fd5d4e777}\label{a11148_a52a0f53b8f1c98b7ab86096fd5d4e777}} 
enum \hyperlink{a11148_a52a0f53b8f1c98b7ab86096fd5d4e777}{Light\+Type} \{ {\bfseries L\+I\+G\+H\+T\+T\+Y\+P\+E\+\_\+\+D\+I\+R\+E\+C\+T\+I\+O\+N\+AL} = 0, 
{\bfseries L\+I\+G\+H\+T\+T\+Y\+P\+E\+\_\+\+P\+O\+I\+NT}, 
{\bfseries L\+I\+G\+H\+T\+T\+Y\+P\+E\+\_\+\+S\+P\+OT}
 \}\begin{DoxyCompactList}\small\item\em light type enumeration \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11148_a1d419b100589210e97a8eb034f2b58c7}\label{a11148_a1d419b100589210e97a8eb034f2b58c7}} 
void {\bfseries initialize\+Plugin} ()
\item 
\mbox{\Hypertarget{a11148_a806946e842d0f5bb73198775ad21bc74}\label{a11148_a806946e842d0f5bb73198775ad21bc74}} 
void {\bfseries exit} ()
\item 
\mbox{\Hypertarget{a11148_ab167d765f3f3586263af9405eb98673d}\label{a11148_ab167d765f3f3586263af9405eb98673d}} 
void {\bfseries render} (\hyperlink{a07452}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a07100}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties)
\item 
\mbox{\Hypertarget{a11148_a558222b8450acdf54afc1530e7274f76}\label{a11148_a558222b8450acdf54afc1530e7274f76}} 
Q\+String {\bfseries renderer\+Name} ()
\item 
\mbox{\Hypertarget{a11148_a8487d66c58126478e4eed728bd02a114}\label{a11148_a8487d66c58126478e4eed728bd02a114}} 
void {\bfseries supported\+Draw\+Modes} (\hyperlink{a07792}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+mode)
\item 
\mbox{\Hypertarget{a11148_aa6e69f66ac55b6d87e66b793577a6a8f}\label{a11148_aa6e69f66ac55b6d87e66b793577a6a8f}} 
Q\+String {\bfseries check\+Open\+GL} ()
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11148_a446d7e3eb13e9c5d1634826f8afdc5bb}\label{a11148_a446d7e3eb13e9c5d1634826f8afdc5bb}} 
void \hyperlink{a11148_a446d7e3eb13e9c5d1634826f8afdc5bb}{destroy\+Resources} ()
\begin{DoxyCompactList}\small\item\em free all gl resources \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_ac287da0e0719611be2f1ae3d21d9e049}\label{a11148_ac287da0e0719611be2f1ae3d21d9e049}} 
void \hyperlink{a11148_ac287da0e0719611be2f1ae3d21d9e049}{destroy\+Resources} (int \+\_\+viewer\+Id)
\begin{DoxyCompactList}\small\item\em free viewer specific gl resources \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_acbee2e2415ae6d0aaf79d10d44e1021d}\label{a11148_acbee2e2415ae6d0aaf79d10d44e1021d}} 
void \hyperlink{a11148_acbee2e2415ae6d0aaf79d10d44e1021d}{reload\+Resources} (int \+\_\+viewer\+Id)
\begin{DoxyCompactList}\small\item\em reload gl resources \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a2df4ea3fe5a6f5870094468e423592bd}\label{a11148_a2df4ea3fe5a6f5870094468e423592bd}} 
void \hyperlink{a11148_a2df4ea3fe5a6f5870094468e423592bd}{draw\+Quad\+Proj} (float \+\_\+x0=-\/1.\+0f, float \+\_\+y0=1.\+0f, float \+\_\+w=2.\+0f, float \+\_\+h=2.\+0f)
\begin{DoxyCompactList}\small\item\em draw a quad in projection space (only positions) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a3e698b9055e1288f3a4659cacf990d29}\label{a11148_a3e698b9055e1288f3a4659cacf990d29}} 
void \hyperlink{a11148_a3e698b9055e1288f3a4659cacf990d29}{traverse\+Light\+Nodes} (\hyperlink{a00182_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+node)
\begin{DoxyCompactList}\small\item\em find all light nodes in the scene \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_aba1adbb8298b190483f6cc05ef5dbb8e}\label{a11148_aba1adbb8298b190483f6cc05ef5dbb8e}} 
void \hyperlink{a11148_aba1adbb8298b190483f6cc05ef5dbb8e}{generate\+Peeling\+Shaders} (G\+L\+S\+L\+::\+String\+List $\ast$\+\_\+str\+Vertex\+Shader\+Out, G\+L\+S\+L\+::\+String\+List $\ast$\+\_\+str\+Fragment\+Shader\+Out, G\+L\+S\+L\+::\+String\+List $\ast$\+\_\+str\+Geometry\+Shader\+Out, bool \+\_\+textured, bool \+\_\+flat\+Shaded, bool \+\_\+phong, bool \+\_\+vertex\+Color, bool \+\_\+wire\+Frame)
\begin{DoxyCompactList}\small\item\em peel shader generator based on lights and texture mode \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a4749576abf075b9d729eae1c7746c65e}\label{a11148_a4749576abf075b9d729eae1c7746c65e}} 
void \hyperlink{a11148_a4749576abf075b9d729eae1c7746c65e}{update\+Peeling\+Shader\+Set} ()
\begin{DoxyCompactList}\small\item\em regenerates peeling shaders based on light nodes in scenegraph \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_aa527553c6e8290bd68a01f8a6d12e26f}\label{a11148_aa527553c6e8290bd68a01f8a6d12e26f}} 
void \hyperlink{a11148_aa527553c6e8290bd68a01f8a6d12e26f}{draw\+Scene\+Pass} (\hyperlink{a07452}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a07792}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode, \hyperlink{a00182_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+scene\+Graph\+Root)
\begin{DoxyCompactList}\small\item\em draw the current scene \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a62868a9939a5c82f86fcd9af308c6d42}\label{a11148_a62868a9939a5c82f86fcd9af308c6d42}} 
void {\bfseries draw\+Scene\+Peel\+Pass} (\hyperlink{a07452}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a07792}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode, \hyperlink{a00182_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+scene\+Graph\+Root, int \+\_\+peel\+Pass)
\item 
\mbox{\Hypertarget{a11148_a7b1266dae69e485570a1ab6ca790475f}\label{a11148_a7b1266dae69e485570a1ab6ca790475f}} 
{\footnotesize template$<$class Action $>$ }\\void {\bfseries traverse\+Draw} (\hyperlink{a00182_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action, \hyperlink{a07792}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+global\+Draw\+Mode, int \+\_\+pass, int \+\_\+peel\+Pass)
\item 
\mbox{\Hypertarget{a11148_a7031cf74b8d46bd4388bc9723af239aa}\label{a11148_a7031cf74b8d46bd4388bc9723af239aa}} 
{\footnotesize template$<$class Action $>$ }\\bool {\bfseries traverse\+Draw\+Apply\+Action} (\hyperlink{a00182_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action, \hyperlink{a07792}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+global\+Draw\+Mode, int \+\_\+pass, int \+\_\+peel\+Pass)
\item 
\mbox{\Hypertarget{a11148_ac855ac0834eb77ee525946e7c33f46b6}\label{a11148_ac855ac0834eb77ee525946e7c33f46b6}} 
unsigned int \hyperlink{a11148_ac855ac0834eb77ee525946e7c33f46b6}{get\+Peel\+Shader\+Index} (\hyperlink{a07792}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode)
\begin{DoxyCompactList}\small\item\em converts a drawmode to the correct shading program index \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11148_a120a3f99ff563ddb09b1f03b5831e11c}\label{a11148_a120a3f99ff563ddb09b1f03b5831e11c}} 
std\+::map$<$ int, \hyperlink{a11152}{Viewer\+Resources} $>$ {\bfseries viewer\+Res\+\_\+}
\item 
\mbox{\Hypertarget{a11148_a6fdc4bd149a51b9770392d5da613dbc5}\label{a11148_a6fdc4bd149a51b9770392d5da613dbc5}} 
\hyperlink{a08108}{G\+L\+S\+L\+::\+Shader} $\ast$ \hyperlink{a11148_a6fdc4bd149a51b9770392d5da613dbc5}{blend\+Shaders\+\_\+} \mbox{[}8\mbox{]}
\begin{DoxyCompactList}\small\item\em shader resources \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a76f6409a354607bf64ca7e4e786fb5d1}\label{a11148_a76f6409a354607bf64ca7e4e786fb5d1}} 
\hyperlink{a08132}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a11148_a76f6409a354607bf64ca7e4e786fb5d1}{blend\+Dual\+Peel\+Prog\+\_\+} \mbox{[}4\mbox{]}
\begin{DoxyCompactList}\small\item\em depth peeling programs \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_ae7f44acc47391a4e7b28a99a9f6198eb}\label{a11148_ae7f44acc47391a4e7b28a99a9f6198eb}} 
\hyperlink{a08108}{G\+L\+S\+L\+::\+Shader} $\ast$ \hyperlink{a11148_ae7f44acc47391a4e7b28a99a9f6198eb}{peel\+Shaders\+\_\+} \mbox{[}P\+E\+E\+L\+\_\+\+N\+U\+M\+\_\+\+C\+O\+M\+B\+I\+N\+A\+T\+I\+O\+NS $\ast$3\mbox{]}
\begin{DoxyCompactList}\small\item\em generated shader set \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a35e7a3389e72cd0962e1339be292c247}\label{a11148_a35e7a3389e72cd0962e1339be292c247}} 
\hyperlink{a08132}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a11148_a35e7a3389e72cd0962e1339be292c247}{peel\+Progs\+\_\+} \mbox{[}P\+E\+E\+L\+\_\+\+N\+U\+M\+\_\+\+C\+O\+M\+B\+I\+N\+A\+T\+I\+O\+NS\mbox{]}
\begin{DoxyCompactList}\small\item\em generates shader programs \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_aff52c306d2d1a741c8fa32fd99455b74}\label{a11148_aff52c306d2d1a741c8fa32fd99455b74}} 
G\+Luint \hyperlink{a11148_aff52c306d2d1a741c8fa32fd99455b74}{blend\+Query\+I\+D\+\_\+}
\begin{DoxyCompactList}\small\item\em fragment query \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a7461b2446714f85ca8d6a4bd58294172}\label{a11148_a7461b2446714f85ca8d6a4bd58294172}} 
\hyperlink{a07452}{A\+C\+G\+::\+G\+L\+State} $\ast$ \hyperlink{a11148_a7461b2446714f85ca8d6a4bd58294172}{gl\+State\+Tmp\+\_\+}
\begin{DoxyCompactList}\small\item\em current gl\+State ptr for hiddenline rendering \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a5e8de253fc47739dcc4701e56ad70e97}\label{a11148_a5e8de253fc47739dcc4701e56ad70e97}} 
G\+Luint \hyperlink{a11148_a5e8de253fc47739dcc4701e56ad70e97}{num\+Lights\+\_\+}
\begin{DoxyCompactList}\small\item\em number of used lights in the scene \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_ab81543a39e5b10d666ba53cdca886de2}\label{a11148_ab81543a39e5b10d666ba53cdca886de2}} 
\hyperlink{a11148_a52a0f53b8f1c98b7ab86096fd5d4e777}{Light\+Type} \hyperlink{a11148_ab81543a39e5b10d666ba53cdca886de2}{light\+Types\+\_\+} \mbox{[}16\mbox{]}
\begin{DoxyCompactList}\small\item\em registered lights in the scene \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11148_a769e5b7aae14ace2f07baf27624bdd2f}\label{a11148_a769e5b7aae14ace2f07baf27624bdd2f}} 
G\+Luint \hyperlink{a11148_a769e5b7aae14ace2f07baf27624bdd2f}{gl\+Light\+I\+Ds\+\_\+} \mbox{[}16\mbox{]}
\begin{DoxyCompactList}\small\item\em matching GL light id \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 55 of file Classic\+Depth\+Peeling.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a11148_a2a38c15a5963db622171edee7188e8c2}\label{a11148_a2a38c15a5963db622171edee7188e8c2}} 
\index{Depth\+Peeling\+Plugin@{Depth\+Peeling\+Plugin}!description@{description}}
\index{description@{description}!Depth\+Peeling\+Plugin@{Depth\+Peeling\+Plugin}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily Q\+String Depth\+Peeling\+Plugin\+::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{a06872_a43f0d3612695b53c848c14f48fea9a7a}{Base\+Interface}.



Definition at line 76 of file Classic\+Depth\+Peeling.\+hh.

\mbox{\Hypertarget{a11148_a025b9c0b5a05a1a1af9aea468c1ed5f5}\label{a11148_a025b9c0b5a05a1a1af9aea468c1ed5f5}} 
\index{Depth\+Peeling\+Plugin@{Depth\+Peeling\+Plugin}!name@{name}}
\index{name@{name}!Depth\+Peeling\+Plugin@{Depth\+Peeling\+Plugin}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily Q\+String Depth\+Peeling\+Plugin\+::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{a06872_a2b351aa6ef0eb368bce735e243235958}{Base\+Interface}.



Definition at line 75 of file Classic\+Depth\+Peeling.\+hh.



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