\hypertarget{class_ogre_1_1_r_t_shader_1_1_target_render_state}{}\section{Ogre\+:\+:R\+T\+Shader\+:\+:Target\+Render\+State Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_target_render_state}\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}


This is the target render state.  




{\ttfamily \#include $<$Ogre\+Shader\+Render\+State.\+h$>$}



Inheritance diagram for Ogre\+:\+:R\+T\+Shader\+:\+:Target\+Render\+State\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=241pt]{class_ogre_1_1_r_t_shader_1_1_target_render_state__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state_af77db1b842b76ad71dd6a8fc1d2cfbfc}{Target\+Render\+State} ()
\begin{DoxyCompactList}\small\item\em Class default constructor. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state_a72b162894e32d917fdde813f40f381e8}{$\sim$\+Target\+Render\+State} ()
\begin{DoxyCompactList}\small\item\em Class destructor. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_af66edaf33c654e03ef89f1eaec384a1f}{add\+Template\+Sub\+Render\+State} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$sub\+Render\+State)
\begin{DoxyCompactList}\small\item\em Add a template sub render state to this render state. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_aca6adb32869d049ca75852d98576d239}{get\+Light\+Count} (int light\+Count\mbox{[}3\mbox{]}) const
\begin{DoxyCompactList}\small\item\em Get the light count per light type. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_ae0a7511e041d89378c5369ba2f42c23d}{get\+Light\+Count\+Auto\+Update} () const
\begin{DoxyCompactList}\small\item\em Return true if this render state override the light count. \end{DoxyCompactList}\item 
const \hyperlink{group___r_t_shader_ga4baf7a0833de141d1d8b8115c75c4794}{Sub\+Render\+State\+List} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_af6e6e0ebfd0bab55093172a795fc61e6}{get\+Template\+Sub\+Render\+State\+List} () const
\begin{DoxyCompactList}\small\item\em Get the list of the template sub render states composing this render state. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state_a48a0f2bf833e3dd562b68e16bdbcfef8}{link} (const \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state}{Render\+State} \&other, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$src\+Pass, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$dst\+Pass)
\begin{DoxyCompactList}\small\item\em Link this target render state with the given render state. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_adf57c1505668d7cd9fc65c33231ee3ff}{remove\+Template\+Sub\+Render\+State} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$sub\+Render\+State)
\begin{DoxyCompactList}\small\item\em Remove a template sub render state from this render state. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_a0ca983d7872dd4af086d73f1685188f1}{reset} ()
\begin{DoxyCompactList}\small\item\em Reset this render state. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_a7d4bfe3ddbb10a94ae9e84d24fdcb5d8}{set\+Light\+Count} (const int light\+Count\mbox{[}3\mbox{]})
\begin{DoxyCompactList}\small\item\em Set the light count per light type. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state_acd05f1eaf224a41f89b4c94823b96877}{set\+Light\+Count\+Auto\+Update} (bool auto\+Update)
\begin{DoxyCompactList}\small\item\em Set the light count auto update state. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state_ad201f02cccf5fe0db97ae3c103aba73b}{update\+Gpu\+Programs\+Params} (\hyperlink{class_ogre_1_1_renderable}{Renderable} $\ast$rend, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$pass, const \hyperlink{class_ogre_1_1_auto_param_data_source}{Auto\+Param\+Data\+Source} $\ast$source, const \hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List} $\ast$p\+Light\+List)
\begin{DoxyCompactList}\small\item\em Update the G\+PU programs constant parameters before a renderable is rendered. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state_a0ebb9db4c085496981b7dbdd61f34fc9}{F\+F\+P\+Render\+State\+Builder}
\item 
class \hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state_ae46e120edae3a1f22dc68ebde7fbcfca}{Program\+Manager}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This is the target render state. 

This class will hold the actual generated C\+P\+U/\+G\+PU programs. It will be initially build from the F\+FP state of a given \hyperlink{class_ogre_1_1_pass}{Pass} by the F\+FP builder and then will be linked with the custom pass render state and the global scheme render state. See Shader\+Generator\+::\+S\+G\+Pass\+::build\+Target\+Render\+State(). 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_target_render_state_af77db1b842b76ad71dd6a8fc1d2cfbfc}\label{class_ogre_1_1_r_t_shader_1_1_target_render_state_af77db1b842b76ad71dd6a8fc1d2cfbfc}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!Target\+Render\+State@{Target\+Render\+State}}
\index{Target\+Render\+State@{Target\+Render\+State}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{Target\+Render\+State()}{TargetRenderState()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State\+::\+Target\+Render\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Class default constructor. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_target_render_state_a72b162894e32d917fdde813f40f381e8}\label{class_ogre_1_1_r_t_shader_1_1_target_render_state_a72b162894e32d917fdde813f40f381e8}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!````~Target\+Render\+State@{$\sim$\+Target\+Render\+State}}
\index{````~Target\+Render\+State@{$\sim$\+Target\+Render\+State}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{$\sim$\+Target\+Render\+State()}{~TargetRenderState()}}
{\footnotesize\ttfamily virtual Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State\+::$\sim$\+Target\+Render\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Class destructor. 



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_target_render_state_a48a0f2bf833e3dd562b68e16bdbcfef8}\label{class_ogre_1_1_r_t_shader_1_1_target_render_state_a48a0f2bf833e3dd562b68e16bdbcfef8}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!link@{link}}
\index{link@{link}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{link()}{link()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State\+::link (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state}{Render\+State} \&}]{other,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{src\+Pass,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{dst\+Pass }\end{DoxyParamCaption})}



Link this target render state with the given render state. 

Only sub render states with execution order that don\textquotesingle{}t exist in this render state will be added. 
\begin{DoxyParams}{Parameters}
{\em other} & The other render state to append to this state. \\
\hline
{\em src\+Pass} & The source pass that this render state is constructed from. \\
\hline
{\em dst\+Pass} & The destination pass that constructed from this render state. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_target_render_state_ad201f02cccf5fe0db97ae3c103aba73b}\label{class_ogre_1_1_r_t_shader_1_1_target_render_state_ad201f02cccf5fe0db97ae3c103aba73b}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!update\+Gpu\+Programs\+Params@{update\+Gpu\+Programs\+Params}}
\index{update\+Gpu\+Programs\+Params@{update\+Gpu\+Programs\+Params}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{update\+Gpu\+Programs\+Params()}{updateGpuProgramsParams()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State\+::update\+Gpu\+Programs\+Params (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_renderable}{Renderable} $\ast$}]{rend,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{pass,  }\item[{const \hyperlink{class_ogre_1_1_auto_param_data_source}{Auto\+Param\+Data\+Source} $\ast$}]{source,  }\item[{const \hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List} $\ast$}]{p\+Light\+List }\end{DoxyParamCaption})}



Update the G\+PU programs constant parameters before a renderable is rendered. 


\begin{DoxyParams}{Parameters}
{\em rend} & The renderable object that is going to be rendered. \\
\hline
{\em pass} & The pass that is used to do the rendering operation. \\
\hline
{\em source} & The auto parameter auto source instance. \\
\hline
{\em p\+Light\+List} & The light list used for the current rendering operation. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_a0ca983d7872dd4af086d73f1685188f1}\label{class_ogre_1_1_r_t_shader_1_1_render_state_a0ca983d7872dd4af086d73f1685188f1}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!reset@{reset}}
\index{reset@{reset}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{reset()}{reset()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::reset (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Reset this render state. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_af66edaf33c654e03ef89f1eaec384a1f}\label{class_ogre_1_1_r_t_shader_1_1_render_state_af66edaf33c654e03ef89f1eaec384a1f}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!add\+Template\+Sub\+Render\+State@{add\+Template\+Sub\+Render\+State}}
\index{add\+Template\+Sub\+Render\+State@{add\+Template\+Sub\+Render\+State}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{add\+Template\+Sub\+Render\+State()}{addTemplateSubRenderState()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::add\+Template\+Sub\+Render\+State (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$}]{sub\+Render\+State }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Add a template sub render state to this render state. 


\begin{DoxyParams}{Parameters}
{\em sub\+Render\+State} & The sub render state template to add. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_adf57c1505668d7cd9fc65c33231ee3ff}\label{class_ogre_1_1_r_t_shader_1_1_render_state_adf57c1505668d7cd9fc65c33231ee3ff}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!remove\+Template\+Sub\+Render\+State@{remove\+Template\+Sub\+Render\+State}}
\index{remove\+Template\+Sub\+Render\+State@{remove\+Template\+Sub\+Render\+State}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{remove\+Template\+Sub\+Render\+State()}{removeTemplateSubRenderState()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::remove\+Template\+Sub\+Render\+State (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$}]{sub\+Render\+State }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Remove a template sub render state from this render state. 


\begin{DoxyParams}{Parameters}
{\em sub\+Render\+State} & The sub render state to remove. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_af6e6e0ebfd0bab55093172a795fc61e6}\label{class_ogre_1_1_r_t_shader_1_1_render_state_af6e6e0ebfd0bab55093172a795fc61e6}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!get\+Template\+Sub\+Render\+State\+List@{get\+Template\+Sub\+Render\+State\+List}}
\index{get\+Template\+Sub\+Render\+State\+List@{get\+Template\+Sub\+Render\+State\+List}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{get\+Template\+Sub\+Render\+State\+List()}{getTemplateSubRenderStateList()}}
{\footnotesize\ttfamily const \hyperlink{group___r_t_shader_ga4baf7a0833de141d1d8b8115c75c4794}{Sub\+Render\+State\+List}\& Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::get\+Template\+Sub\+Render\+State\+List (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Get the list of the template sub render states composing this render state. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_a7d4bfe3ddbb10a94ae9e84d24fdcb5d8}\label{class_ogre_1_1_r_t_shader_1_1_render_state_a7d4bfe3ddbb10a94ae9e84d24fdcb5d8}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!set\+Light\+Count@{set\+Light\+Count}}
\index{set\+Light\+Count@{set\+Light\+Count}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{set\+Light\+Count()}{setLightCount()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::set\+Light\+Count (\begin{DoxyParamCaption}\item[{const int}]{light\+Count\mbox{[}3\mbox{]} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Set the light count per light type. 


\begin{DoxyParams}{Parameters}
{\em light\+Count} & The light count per type. light\+Count\mbox{[}0\mbox{]} defines the point light count. light\+Count\mbox{[}1\mbox{]} defines the directional light count. light\+Count\mbox{[}2\mbox{]} defines the spot light count. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_aca6adb32869d049ca75852d98576d239}\label{class_ogre_1_1_r_t_shader_1_1_render_state_aca6adb32869d049ca75852d98576d239}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!get\+Light\+Count@{get\+Light\+Count}}
\index{get\+Light\+Count@{get\+Light\+Count}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{get\+Light\+Count()}{getLightCount()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::get\+Light\+Count (\begin{DoxyParamCaption}\item[{int}]{light\+Count\mbox{[}3\mbox{]} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Get the light count per light type. 


\begin{DoxyParams}{Parameters}
{\em light\+Count} & The light count per type. light\+Count\mbox{[}0\mbox{]} defines the point light count. light\+Count\mbox{[}1\mbox{]} defines the directional light count. light\+Count\mbox{[}2\mbox{]} defines the spot light count. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_acd05f1eaf224a41f89b4c94823b96877}\label{class_ogre_1_1_r_t_shader_1_1_render_state_acd05f1eaf224a41f89b4c94823b96877}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!set\+Light\+Count\+Auto\+Update@{set\+Light\+Count\+Auto\+Update}}
\index{set\+Light\+Count\+Auto\+Update@{set\+Light\+Count\+Auto\+Update}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{set\+Light\+Count\+Auto\+Update()}{setLightCountAutoUpdate()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::set\+Light\+Count\+Auto\+Update (\begin{DoxyParamCaption}\item[{bool}]{auto\+Update }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Set the light count auto update state. 

If the value is false the light count will remain static for the values that were set by the user. If the value is true the light count will be updated from the owner shader generator scheme based on current scene lights. The default is true. \mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_render_state_ae0a7511e041d89378c5369ba2f42c23d}\label{class_ogre_1_1_r_t_shader_1_1_render_state_ae0a7511e041d89378c5369ba2f42c23d}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!get\+Light\+Count\+Auto\+Update@{get\+Light\+Count\+Auto\+Update}}
\index{get\+Light\+Count\+Auto\+Update@{get\+Light\+Count\+Auto\+Update}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{get\+Light\+Count\+Auto\+Update()}{getLightCountAutoUpdate()}}
{\footnotesize\ttfamily bool Ogre\+::\+R\+T\+Shader\+::\+Render\+State\+::get\+Light\+Count\+Auto\+Update (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Return true if this render state override the light count. 

If light count is not overridden it will be updated from the shader generator based on current scene lights. 

\subsection{Friends And Related Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_target_render_state_ae46e120edae3a1f22dc68ebde7fbcfca}\label{class_ogre_1_1_r_t_shader_1_1_target_render_state_ae46e120edae3a1f22dc68ebde7fbcfca}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!Program\+Manager@{Program\+Manager}}
\index{Program\+Manager@{Program\+Manager}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{Program\+Manager}{ProgramManager}}
{\footnotesize\ttfamily friend class \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_manager}{Program\+Manager}\hspace{0.3cm}{\ttfamily [friend]}}

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_target_render_state_a0ebb9db4c085496981b7dbdd61f34fc9}\label{class_ogre_1_1_r_t_shader_1_1_target_render_state_a0ebb9db4c085496981b7dbdd61f34fc9}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}!F\+F\+P\+Render\+State\+Builder@{F\+F\+P\+Render\+State\+Builder}}
\index{F\+F\+P\+Render\+State\+Builder@{F\+F\+P\+Render\+State\+Builder}!Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State@{Ogre\+::\+R\+T\+Shader\+::\+Target\+Render\+State}}
\subsubsection{\texorpdfstring{F\+F\+P\+Render\+State\+Builder}{FFPRenderStateBuilder}}
{\footnotesize\ttfamily friend class \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder}{F\+F\+P\+Render\+State\+Builder}\hspace{0.3cm}{\ttfamily [friend]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_shader_render_state_8h}{Ogre\+Shader\+Render\+State.\+h}\end{DoxyCompactItemize}
