\hypertarget{a00496}{\section{Depth\+Peeling\+Plugin Class Reference}
\label{a00496}\index{Depth\+Peeling\+Plugin@{Depth\+Peeling\+Plugin}}
}
Inheritance diagram for Depth\+Peeling\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a00496}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{a01454}{Viewer\+Resources}
\end{DoxyCompactItemize}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00496_ab353d0e85b3865f4413c0429a72796d5}{Q\+String {\bfseries version} ()}\label{a00496_ab353d0e85b3865f4413c0429a72796d5}

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

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

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a00496_a025b9c0b5a05a1a1af9aea468c1ed5f5}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a00496_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 
\hypertarget{a00496_aa6b38301dfb3e14afa3d947f2bf8194a}{enum \{ \\*
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+W\+I\+R\+E\+F\+R\+A\+M\+E} = 0, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+H\+I\+D\+D\+E\+N\+L\+I\+N\+E} = 1, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+T\+E\+X\+T\+U\+R\+E\+D} = 0x1, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+P\+H\+O\+N\+G} = 0x2, 
\\*
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+G\+O\+U\+R\+A\+U\+D} = 0x4, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+F\+L\+A\+T} = 0x8, 
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+V\+E\+R\+T\+E\+X\+C\+O\+L\+O\+R\+S} = 0x10, 
{\bfseries P\+E\+E\+L\+\_\+\+N\+U\+M\+\_\+\+C\+O\+M\+B\+I\+N\+A\+T\+I\+O\+N\+S} = 0x20, 
\\*
{\bfseries P\+E\+E\+L\+\_\+\+S\+H\+A\+D\+E\+R\+\_\+\+N\+U\+M\+\_\+\+F\+L\+A\+G\+S} = 5
 \}}\label{a00496_aa6b38301dfb3e14afa3d947f2bf8194a}

\item 
\hypertarget{a00496_a52a0f53b8f1c98b7ab86096fd5d4e777}{enum \hyperlink{a00496_a52a0f53b8f1c98b7ab86096fd5d4e777}{Light\+Type} \{ {\bfseries L\+I\+G\+H\+T\+T\+Y\+P\+E\+\_\+\+D\+I\+R\+E\+C\+T\+I\+O\+N\+A\+L} = 0, 
{\bfseries L\+I\+G\+H\+T\+T\+Y\+P\+E\+\_\+\+P\+O\+I\+N\+T}, 
{\bfseries L\+I\+G\+H\+T\+T\+Y\+P\+E\+\_\+\+S\+P\+O\+T}
 \}}\label{a00496_a52a0f53b8f1c98b7ab86096fd5d4e777}

\begin{DoxyCompactList}\small\item\em light type enumeration \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00496_a1d419b100589210e97a8eb034f2b58c7}{void {\bfseries initialize\+Plugin} ()}\label{a00496_a1d419b100589210e97a8eb034f2b58c7}

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

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

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

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

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

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00496_a446d7e3eb13e9c5d1634826f8afdc5bb}{void \hyperlink{a00496_a446d7e3eb13e9c5d1634826f8afdc5bb}{destroy\+Resources} ()}\label{a00496_a446d7e3eb13e9c5d1634826f8afdc5bb}

\begin{DoxyCompactList}\small\item\em free all gl resources \end{DoxyCompactList}\item 
\hypertarget{a00496_ac287da0e0719611be2f1ae3d21d9e049}{void \hyperlink{a00496_ac287da0e0719611be2f1ae3d21d9e049}{destroy\+Resources} (int \+\_\+viewer\+Id)}\label{a00496_ac287da0e0719611be2f1ae3d21d9e049}

\begin{DoxyCompactList}\small\item\em free viewer specific gl resources \end{DoxyCompactList}\item 
\hypertarget{a00496_acbee2e2415ae6d0aaf79d10d44e1021d}{void \hyperlink{a00496_acbee2e2415ae6d0aaf79d10d44e1021d}{reload\+Resources} (int \+\_\+viewer\+Id)}\label{a00496_acbee2e2415ae6d0aaf79d10d44e1021d}

\begin{DoxyCompactList}\small\item\em reload gl resources \end{DoxyCompactList}\item 
\hypertarget{a00496_a2df4ea3fe5a6f5870094468e423592bd}{void \hyperlink{a00496_a2df4ea3fe5a6f5870094468e423592bd}{draw\+Quad\+Proj} (float \+\_\+x0=-\/1.\+0f, float \+\_\+y0=1.\+0f, float \+\_\+w=2.\+0f, float \+\_\+h=2.\+0f)}\label{a00496_a2df4ea3fe5a6f5870094468e423592bd}

\begin{DoxyCompactList}\small\item\em draw a quad in projection space (only positions) \end{DoxyCompactList}\item 
\hypertarget{a00496_a3e698b9055e1288f3a4659cacf990d29}{void \hyperlink{a00496_a3e698b9055e1288f3a4659cacf990d29}{traverse\+Light\+Nodes} (\hyperlink{a02486_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+node)}\label{a00496_a3e698b9055e1288f3a4659cacf990d29}

\begin{DoxyCompactList}\small\item\em find all light nodes in the scene \end{DoxyCompactList}\item 
\hypertarget{a00496_aba1adbb8298b190483f6cc05ef5dbb8e}{void \hyperlink{a00496_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)}\label{a00496_aba1adbb8298b190483f6cc05ef5dbb8e}

\begin{DoxyCompactList}\small\item\em peel shader generator based on lights and texture mode \end{DoxyCompactList}\item 
\hypertarget{a00496_a4749576abf075b9d729eae1c7746c65e}{void \hyperlink{a00496_a4749576abf075b9d729eae1c7746c65e}{update\+Peeling\+Shader\+Set} ()}\label{a00496_a4749576abf075b9d729eae1c7746c65e}

\begin{DoxyCompactList}\small\item\em regenerates peeling shaders based on light nodes in scenegraph \end{DoxyCompactList}\item 
\hypertarget{a00496_aa527553c6e8290bd68a01f8a6d12e26f}{void \hyperlink{a00496_aa527553c6e8290bd68a01f8a6d12e26f}{draw\+Scene\+Pass} (\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a00509}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode, \hyperlink{a02486_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+scene\+Graph\+Root)}\label{a00496_aa527553c6e8290bd68a01f8a6d12e26f}

\begin{DoxyCompactList}\small\item\em draw the current scene \end{DoxyCompactList}\item 
\hypertarget{a00496_a62868a9939a5c82f86fcd9af308c6d42}{void {\bfseries draw\+Scene\+Peel\+Pass} (\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a00509}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode, \hyperlink{a02486_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+scene\+Graph\+Root, int \+\_\+peel\+Pass)}\label{a00496_a62868a9939a5c82f86fcd9af308c6d42}

\item 
\hypertarget{a00496_a7b1266dae69e485570a1ab6ca790475f}{{\footnotesize template$<$class Action $>$ }\\void {\bfseries traverse\+Draw} (\hyperlink{a02486_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action, \hyperlink{a00509}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+global\+Draw\+Mode, int \+\_\+pass, int \+\_\+peel\+Pass)}\label{a00496_a7b1266dae69e485570a1ab6ca790475f}

\item 
\hypertarget{a00496_a7031cf74b8d46bd4388bc9723af239aa}{{\footnotesize template$<$class Action $>$ }\\bool {\bfseries traverse\+Draw\+Apply\+Action} (\hyperlink{a02486_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+node, Action \&\+\_\+action, \hyperlink{a00509}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+global\+Draw\+Mode, int \+\_\+pass, int \+\_\+peel\+Pass)}\label{a00496_a7031cf74b8d46bd4388bc9723af239aa}

\item 
\hypertarget{a00496_ac855ac0834eb77ee525946e7c33f46b6}{unsigned int \hyperlink{a00496_ac855ac0834eb77ee525946e7c33f46b6}{get\+Peel\+Shader\+Index} (\hyperlink{a00509}{A\+C\+G\+::\+Scene\+Graph\+::\+Draw\+Modes\+::\+Draw\+Mode} \+\_\+draw\+Mode)}\label{a00496_ac855ac0834eb77ee525946e7c33f46b6}

\begin{DoxyCompactList}\small\item\em converts a drawmode to the correct shading program index \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00496_a120a3f99ff563ddb09b1f03b5831e11c}{std\+::map$<$ int, \hyperlink{a01454}{Viewer\+Resources} $>$ {\bfseries viewer\+Res\+\_\+}}\label{a00496_a120a3f99ff563ddb09b1f03b5831e11c}

\item 
\hypertarget{a00496_a6fdc4bd149a51b9770392d5da613dbc5}{\hyperlink{a01155}{G\+L\+S\+L\+::\+Shader} $\ast$ \hyperlink{a00496_a6fdc4bd149a51b9770392d5da613dbc5}{blend\+Shaders\+\_\+} \mbox{[}8\mbox{]}}\label{a00496_a6fdc4bd149a51b9770392d5da613dbc5}

\begin{DoxyCompactList}\small\item\em shader resources \end{DoxyCompactList}\item 
\hypertarget{a00496_a76f6409a354607bf64ca7e4e786fb5d1}{\hyperlink{a01020}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a00496_a76f6409a354607bf64ca7e4e786fb5d1}{blend\+Dual\+Peel\+Prog\+\_\+} \mbox{[}4\mbox{]}}\label{a00496_a76f6409a354607bf64ca7e4e786fb5d1}

\begin{DoxyCompactList}\small\item\em depth peeling programs \end{DoxyCompactList}\item 
\hypertarget{a00496_ae7f44acc47391a4e7b28a99a9f6198eb}{\hyperlink{a01155}{G\+L\+S\+L\+::\+Shader} $\ast$ \hyperlink{a00496_ae7f44acc47391a4e7b28a99a9f6198eb}{peel\+Shaders\+\_\+} \mbox{[}P\+E\+E\+L\+\_\+\+N\+U\+M\+\_\+\+C\+O\+M\+B\+I\+N\+A\+T\+I\+O\+N\+S $\ast$3\mbox{]}}\label{a00496_ae7f44acc47391a4e7b28a99a9f6198eb}

\begin{DoxyCompactList}\small\item\em generated shader set \end{DoxyCompactList}\item 
\hypertarget{a00496_a35e7a3389e72cd0962e1339be292c247}{\hyperlink{a01020}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a00496_a35e7a3389e72cd0962e1339be292c247}{peel\+Progs\+\_\+} \mbox{[}P\+E\+E\+L\+\_\+\+N\+U\+M\+\_\+\+C\+O\+M\+B\+I\+N\+A\+T\+I\+O\+N\+S\mbox{]}}\label{a00496_a35e7a3389e72cd0962e1339be292c247}

\begin{DoxyCompactList}\small\item\em generates shader programs \end{DoxyCompactList}\item 
\hypertarget{a00496_aff52c306d2d1a741c8fa32fd99455b74}{G\+Luint \hyperlink{a00496_aff52c306d2d1a741c8fa32fd99455b74}{blend\+Query\+I\+D\+\_\+}}\label{a00496_aff52c306d2d1a741c8fa32fd99455b74}

\begin{DoxyCompactList}\small\item\em fragment query \end{DoxyCompactList}\item 
\hypertarget{a00496_a7461b2446714f85ca8d6a4bd58294172}{\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$ \hyperlink{a00496_a7461b2446714f85ca8d6a4bd58294172}{gl\+State\+Tmp\+\_\+}}\label{a00496_a7461b2446714f85ca8d6a4bd58294172}

\begin{DoxyCompactList}\small\item\em current gl\+State ptr for hiddenline rendering \end{DoxyCompactList}\item 
\hypertarget{a00496_a5e8de253fc47739dcc4701e56ad70e97}{G\+Luint \hyperlink{a00496_a5e8de253fc47739dcc4701e56ad70e97}{num\+Lights\+\_\+}}\label{a00496_a5e8de253fc47739dcc4701e56ad70e97}

\begin{DoxyCompactList}\small\item\em number of used lights in the scene \end{DoxyCompactList}\item 
\hypertarget{a00496_ab81543a39e5b10d666ba53cdca886de2}{\hyperlink{a00496_a52a0f53b8f1c98b7ab86096fd5d4e777}{Light\+Type} \hyperlink{a00496_ab81543a39e5b10d666ba53cdca886de2}{light\+Types\+\_\+} \mbox{[}16\mbox{]}}\label{a00496_ab81543a39e5b10d666ba53cdca886de2}

\begin{DoxyCompactList}\small\item\em registered lights in the scene \end{DoxyCompactList}\item 
\hypertarget{a00496_a769e5b7aae14ace2f07baf27624bdd2f}{G\+Luint \hyperlink{a00496_a769e5b7aae14ace2f07baf27624bdd2f}{gl\+Light\+I\+Ds\+\_\+} \mbox{[}16\mbox{]}}\label{a00496_a769e5b7aae14ace2f07baf27624bdd2f}

\begin{DoxyCompactList}\small\item\em matching G\+L light id \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


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



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


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 84 of file Classic\+Depth\+Peeling.\+hh.

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


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 83 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}
