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

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

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

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a01229_aa8252ad9a46aa932e59f598b12cc3d28}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a01229_a463499a4f9e1ff27ff23dd32df9245ce}{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{a01229_a23fbe091e030bbd69fb19e82c15a7004}{enum \{ \\*
{\bfseries P\+R\+O\+G\+\_\+\+I\+N\+I\+T} = 0, 
{\bfseries P\+R\+O\+G\+\_\+\+D\+O\+W\+N\+S\+A\+M\+P\+L\+I\+N\+G}, 
{\bfseries P\+R\+O\+G\+\_\+\+B\+L\+U\+R}, 
{\bfseries P\+R\+O\+G\+\_\+\+S\+S\+A\+O}, 
\\*
{\bfseries P\+R\+O\+G\+\_\+\+F\+I\+N\+A\+L}, 
{\bfseries P\+R\+O\+G\+\_\+\+F\+I\+N\+A\+L\+\_\+\+M\+S\+A\+A}
 \}}\label{a01229_a23fbe091e030bbd69fb19e82c15a7004}

\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01229_af2ff4b3f8a5bd69995857dc1363d1af9}{void {\bfseries initialize\+Plugin} ()}\label{a01229_af2ff4b3f8a5bd69995857dc1363d1af9}

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

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

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

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

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

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

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

\begin{DoxyCompactList}\small\item\em free viewer specific gl resources \end{DoxyCompactList}\item 
\hypertarget{a01229_a83d72e918d94a2b580374ddb3a6b04bf}{void \hyperlink{a01229_a83d72e918d94a2b580374ddb3a6b04bf}{reload\+Resources} (int \+\_\+viewer\+Id, unsigned int \+\_\+scene\+Tex\+Width, unsigned int \+\_\+scene\+Tex\+Height)}\label{a01229_a83d72e918d94a2b580374ddb3a6b04bf}

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

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

\begin{DoxyCompactList}\small\item\em find all light nodes in the scene \end{DoxyCompactList}\item 
\hypertarget{a01229_a41737086852ccdb229e93f5dbd227414}{void \hyperlink{a01229_a41737086852ccdb229e93f5dbd227414}{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, bool \+\_\+textured)}\label{a01229_a41737086852ccdb229e93f5dbd227414}

\begin{DoxyCompactList}\small\item\em peel shader generator based on lights and texture mode \end{DoxyCompactList}\item 
\hypertarget{a01229_a56b2ae35d85d3a88f317292b1cb3536b}{void \hyperlink{a01229_a56b2ae35d85d3a88f317292b1cb3536b}{draw\+Scene\+Pass} (\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$\+\_\+gl\+State, \hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties, \hyperlink{a02486_a5bfac87fd7e6d7cd056e34dbb133de0d}{Base\+Node} $\ast$\+\_\+scene\+Graph\+Root)}\label{a01229_a56b2ae35d85d3a88f317292b1cb3536b}

\begin{DoxyCompactList}\small\item\em draw the current scene \end{DoxyCompactList}\item 
\hypertarget{a01229_ad05535a4a610324525ac79e87b1871a1}{void {\bfseries gaussian\+Blur\+Pass} (const \hyperlink{a01452}{Viewer\+Resources} $\ast$\+\_\+p\+Viewer, const float $\ast$\+\_\+texel\+Size, G\+Lenum \+\_\+target\+Attachement, G\+Luint \+\_\+src\+Texture)}\label{a01229_ad05535a4a610324525ac79e87b1871a1}

\item 
\hypertarget{a01229_a9f2ffd5f46d4d62f1412ea01235950eb}{void \hyperlink{a01229_a9f2ffd5f46d4d62f1412ea01235950eb}{generate\+Sampling\+Kernel} ()}\label{a01229_a9f2ffd5f46d4d62f1412ea01235950eb}

\begin{DoxyCompactList}\small\item\em computes a hemisphere sampling kernel in \mbox{[}0,1\mbox{]} range \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01229_acf0da8cf525022d130c76e8da0693271}{std\+::map$<$ int, \hyperlink{a01452}{Viewer\+Resources} $>$ {\bfseries viewer\+Res\+\_\+}}\label{a01229_acf0da8cf525022d130c76e8da0693271}

\item 
\hypertarget{a01229_a8ce076f565d9041b1090688d31ae0593}{\hyperlink{a01155}{G\+L\+S\+L\+::\+Shader} $\ast$ \hyperlink{a01229_a8ce076f565d9041b1090688d31ae0593}{shaders\+\_\+} \mbox{[}10\mbox{]}}\label{a01229_a8ce076f565d9041b1090688d31ae0593}

\begin{DoxyCompactList}\small\item\em shader resources \end{DoxyCompactList}\item 
\hypertarget{a01229_aead6c9b39e345975a042e21075b733a0}{\hyperlink{a01020}{G\+L\+S\+L\+::\+Program} $\ast$ \hyperlink{a01229_aead6c9b39e345975a042e21075b733a0}{programs\+\_\+} \mbox{[}6\mbox{]}}\label{a01229_aead6c9b39e345975a042e21075b733a0}

\begin{DoxyCompactList}\small\item\em shader programs \end{DoxyCompactList}\item 
\hypertarget{a01229_a14e1a7074f73be1a5a3d9f0b8a796d04}{G\+Luint \hyperlink{a01229_a14e1a7074f73be1a5a3d9f0b8a796d04}{random\+Vec\+Tex\+\_\+}}\label{a01229_a14e1a7074f73be1a5a3d9f0b8a796d04}

\begin{DoxyCompactList}\small\item\em random vector table for sample offset rotation \end{DoxyCompactList}\item 
\hypertarget{a01229_a89a8ccebe25b06b9ed479ad750a3808f}{\hyperlink{a03336_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f} \hyperlink{a01229_a89a8ccebe25b06b9ed479ad750a3808f}{sampling\+Kernel\+\_\+} \mbox{[}128\mbox{]}}\label{a01229_a89a8ccebe25b06b9ed479ad750a3808f}

\begin{DoxyCompactList}\small\item\em ssao sampling kernel \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01229_a10eb5cfa53e06d01e698297bc81a3d15}{static const unsigned int \hyperlink{a01229_a10eb5cfa53e06d01e698297bc81a3d15}{num\+Samples\+\_\+} = 32}\label{a01229_a10eb5cfa53e06d01e698297bc81a3d15}

\begin{DoxyCompactList}\small\item\em number of samples \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 60 of file S\+S\+A\+O.\+hh.



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


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 S\+S\+A\+O.\+hh.

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


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 S\+S\+A\+O.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin\+Collection-\/\+Renderers/\+Plugin-\/\+Render-\/\+S\+S\+A\+O/S\+S\+A\+O.\+hh\item 
Plugin\+Collection-\/\+Renderers/\+Plugin-\/\+Render-\/\+S\+S\+A\+O/S\+S\+A\+O.\+cc\end{DoxyCompactItemize}
