\hypertarget{a07992}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Shader\+Node Class Reference}
\label{a07992}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}}


{\ttfamily \#include $<$A\+C\+G/\+Scenegraph/\+Shader\+Node.\+hh$>$}

Inheritance diagram for A\+CG\+:\+:Scene\+Graph\+:\+:Shader\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a07992}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a07996}{Shader\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a07992_a76bd89560c1927bac19f991519985f6d}\label{a07992_a76bd89560c1927bac19f991519985f6d}} 
\hyperlink{a07992_a76bd89560c1927bac19f991519985f6d}{Shader\+Node} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Shader\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor. Applies all properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a6f97aaf16b7cb3f8a0481607b68e9bf3}\label{a07992_a6f97aaf16b7cb3f8a0481607b68e9bf3}} 
virtual \hyperlink{a07992_a6f97aaf16b7cb3f8a0481607b68e9bf3}{$\sim$\+Shader\+Node} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a19639b11a435fe0778ed1bc0a8bbd0c4}\label{a07992_a19639b11a435fe0778ed1bc0a8bbd0c4}} 
{\bfseries A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (\hyperlink{a07992}{Shader\+Node})
\item 
\mbox{\Hypertarget{a07992_a66d547fbdf96880de8eb9758c2b484c7}\label{a07992_a66d547fbdf96880de8eb9758c2b484c7}} 
void \hyperlink{a07992_a66d547fbdf96880de8eb9758c2b484c7}{enter} (\hyperlink{a07452}{G\+L\+State} \&, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)
\begin{DoxyCompactList}\small\item\em set shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a533a63a471cadbe8468582df464abba8}\label{a07992_a533a63a471cadbe8468582df464abba8}} 
void \hyperlink{a07992_a533a63a471cadbe8468582df464abba8}{leave} (\hyperlink{a07452}{G\+L\+State} \&, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)
\begin{DoxyCompactList}\small\item\em disable shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a54874e6047fb372ca205a27ece3849df}\label{a07992_a54874e6047fb372ca205a27ece3849df}} 
void \hyperlink{a07992_a54874e6047fb372ca205a27ece3849df}{enter\+Pick} (\hyperlink{a07452}{G\+L\+State} \&, \hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)
\begin{DoxyCompactList}\small\item\em set shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a07ba730a1cfd6aa98cb0f7b3a98fc2ea}\label{a07992_a07ba730a1cfd6aa98cb0f7b3a98fc2ea}} 
void \hyperlink{a07992_a07ba730a1cfd6aa98cb0f7b3a98fc2ea}{leave\+Pick} (\hyperlink{a07452}{G\+L\+State} \&, \hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+drawmode)
\begin{DoxyCompactList}\small\item\em disable shader \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a244f1db481c6220a6477e91fae9e5c71}\label{a07992_a244f1db481c6220a6477e91fae9e5c71}} 
void \hyperlink{a07992_a244f1db481c6220a6477e91fae9e5c71}{set\+Shader\+Dir} (std\+::string \+\_\+shader\+Dir)
\begin{DoxyCompactList}\small\item\em Sets the shader dir. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_abff57179e981c6e70c25f675064329f4}\label{a07992_abff57179e981c6e70c25f675064329f4}} 
std\+::string {\bfseries shader\+Dir} ()
\item 
\mbox{\Hypertarget{a07992_a0aeea038375e4153c2c8fbef3933e0de}\label{a07992_a0aeea038375e4153c2c8fbef3933e0de}} 
std\+::string {\bfseries vertex\+Shader\+Name} (\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\item 
\mbox{\Hypertarget{a07992_a3398ecbc9b68934225d1fa113a3219d4}\label{a07992_a3398ecbc9b68934225d1fa113a3219d4}} 
std\+::string {\bfseries fragment\+Shader\+Name} (\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\item 
void \hyperlink{a07992_a88d19e3c0fb3cfd5f28f00a70fa94f8a}{disable\+Shader} (\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode)
\item 
void \hyperlink{a07992_ae35ec62a738c20a22cf9e2ab188c36f9}{set\+Shader} (\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, const std\+::string \&\+\_\+vertex\+Shader, const std\+::string \&\+\_\+fragment\+Shader, std\+::string \+\_\+pick\+Vertex\+Shader=\char`\"{}\char`\"{}, std\+::string \+\_\+pick\+Fragment\+Shader=\char`\"{}\char`\"{})
\item 
\mbox{\Hypertarget{a07992_a7ff7cae3802a7b3d45081131f513707f}\label{a07992_a7ff7cae3802a7b3d45081131f513707f}} 
\hyperlink{a08132}{G\+L\+S\+L\+::\+Ptr\+Program} \hyperlink{a07992_a7ff7cae3802a7b3d45081131f513707f}{get\+Shader} (\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\begin{DoxyCompactList}\small\item\em Get the shader for the given draw\+Mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a3c0803dec3c19514de44b1bde33bc5d6}\label{a07992_a3c0803dec3c19514de44b1bde33bc5d6}} 
bool \hyperlink{a07992_a3c0803dec3c19514de44b1bde33bc5d6}{has\+Shader} (\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \+\_\+drawmode, bool \+\_\+pick=false)
\begin{DoxyCompactList}\small\item\em Check if a shader is available for the given draw\+Mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a07992_a7a0c818cf750e4758822dcbc43a835f1}\label{a07992_a7a0c818cf750e4758822dcbc43a835f1}} 
\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \hyperlink{a07992_a7a0c818cf750e4758822dcbc43a835f1}{available\+Draw\+Modes} () const
\begin{DoxyCompactList}\small\item\em return available draw modes \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a07992_af252df2a6c638db3f50f9ff6b6c5a600}\label{a07992_af252df2a6c638db3f50f9ff6b6c5a600}} 
std\+::string {\bfseries shader\+Dir\+\_\+}
\item 
\mbox{\Hypertarget{a07992_a75c4fd57e4acf12f1bcd73938d548f21}\label{a07992_a75c4fd57e4acf12f1bcd73938d548f21}} 
std\+::map$<$ size\+\_\+t, \hyperlink{a07996}{Shader\+Info} $>$ {\bfseries shaders}
\item 
\mbox{\Hypertarget{a07992_ae52622d8fc0f0b8400135f76c6914538}\label{a07992_ae52622d8fc0f0b8400135f76c6914538}} 
std\+::map$<$ size\+\_\+t, \hyperlink{a07996}{Shader\+Info} $>$ {\bfseries pick\+Shaders}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Set shaders for this node and all its children. All changes will be done in the \hyperlink{a07992_a66d547fbdf96880de8eb9758c2b484c7}{enter()} method undonecd ..cd in the \hyperlink{a07992_a533a63a471cadbe8468582df464abba8}{leave()} method. 

Definition at line 81 of file Shader\+Node.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a07992_a88d19e3c0fb3cfd5f28f00a70fa94f8a}\label{a07992_a88d19e3c0fb3cfd5f28f00a70fa94f8a}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}!disable\+Shader@{disable\+Shader}}
\index{disable\+Shader@{disable\+Shader}!A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}}
\subsubsection{\texorpdfstring{disable\+Shader()}{disableShader()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node\+::disable\+Shader (\begin{DoxyParamCaption}\item[{\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+drawmode }\end{DoxyParamCaption})}

Removes the shader for the given draw mode 
\begin{DoxyParams}{Parameters}
{\em \+\_\+drawmode} & Set the drawmode for which the shader should be deactivated \\
\hline
\end{DoxyParams}


Definition at line 262 of file Shader\+Node.\+cc.

\mbox{\Hypertarget{a07992_ae35ec62a738c20a22cf9e2ab188c36f9}\label{a07992_ae35ec62a738c20a22cf9e2ab188c36f9}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}!set\+Shader@{set\+Shader}}
\index{set\+Shader@{set\+Shader}!A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node}}
\subsubsection{\texorpdfstring{set\+Shader()}{setShader()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Shader\+Node\+::set\+Shader (\begin{DoxyParamCaption}\item[{\hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode}}]{\+\_\+drawmode,  }\item[{const std\+::string \&}]{\+\_\+vertex\+Shader,  }\item[{const std\+::string \&}]{\+\_\+fragment\+Shader,  }\item[{std\+::string}]{\+\_\+pick\+Vertex\+Shader = {\ttfamily \char`\"{}\char`\"{}},  }\item[{std\+::string}]{\+\_\+pick\+Fragment\+Shader = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})}

Sets a Shader for the given draw mode 
\begin{DoxyParams}{Parameters}
{\em \+\_\+drawmode} & Set the drawmode for which the shader should be activated \\
\hline
{\em \+\_\+vertex\+Shader} & filename of the Vertex Shader within the shader directory \\
\hline
{\em \+\_\+fragment\+Shader} & filename of the Fragment Shader within the shader directory \\
\hline
{\em \+\_\+pick\+Vertex\+Shader} & Vertex shader during picking \\
\hline
{\em \+\_\+pick\+Fragment\+Shader} & Fragment shader during picking \\
\hline
\end{DoxyParams}


Definition at line 291 of file Shader\+Node.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Shader\+Node.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Shader\+Node.\+cc\end{DoxyCompactItemize}
