\hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder}{}\section{Ogre\+:\+:R\+T\+Shader\+:\+:F\+F\+P\+Render\+State\+Builder Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder}\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}


Fixed \hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} Pipeline render state builder.  




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



Inheritance diagram for Ogre\+:\+:R\+T\+Shader\+:\+:F\+F\+P\+Render\+State\+Builder\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a6add17ebb95cd9a20fe018abc78d8fe7}{F\+F\+P\+Render\+State\+Builder} ()
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a3c5dc81d54b0a55b521d714cc0bded6e}{$\sim$\+F\+F\+P\+Render\+State\+Builder} ()
\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a7d7ba7f2dd2a417dcc0603312c1154f9}{build\+Render\+State} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_shader_generator_aa644d456e56ff4fe4179bed69bf54304}{Shader\+Generator\+::\+S\+G\+Pass} $\ast$sg\+Pass, \hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state}{Target\+Render\+State} $\ast$render\+State)
\begin{DoxyCompactList}\small\item\em Build render state from the given pass that emulates the fixed function pipeline behaviour. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_acd2b7abc72daaf831e5bd9a351aa679d}{destroy} ()
\begin{DoxyCompactList}\small\item\em Destroy the F\+FP builder instance. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a364e6e991a2e73a5920b7542979884b2}{initialize} ()
\begin{DoxyCompactList}\small\item\em Initialize the F\+FP builder instance. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder}{F\+F\+P\+Render\+State\+Builder} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a3265735a63f5333be3b8f363f22e667d}{get\+Singleton} ()
\begin{DoxyCompactList}\small\item\em Override standard \hyperlink{class_ogre_1_1_singleton}{Singleton} retrieval. \end{DoxyCompactList}\item 
static \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder}{F\+F\+P\+Render\+State\+Builder} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_af066dbf4082ef7409dfb33ac98ced29d}{get\+Singleton\+Ptr} ()
\begin{DoxyCompactList}\small\item\em Get the singleton instance. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Fixed \hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} Pipeline render state builder. 

This class builds \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state}{Render\+State} from a given pass that represents the fixed function pipeline that the source pass describes. 

\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a6add17ebb95cd9a20fe018abc78d8fe7}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a6add17ebb95cd9a20fe018abc78d8fe7}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}!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\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}
\subsubsection{\texorpdfstring{F\+F\+P\+Render\+State\+Builder()}{FFPRenderStateBuilder()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder\+::\+F\+F\+P\+Render\+State\+Builder (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a3c5dc81d54b0a55b521d714cc0bded6e}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a3c5dc81d54b0a55b521d714cc0bded6e}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}!````~F\+F\+P\+Render\+State\+Builder@{$\sim$\+F\+F\+P\+Render\+State\+Builder}}
\index{````~F\+F\+P\+Render\+State\+Builder@{$\sim$\+F\+F\+P\+Render\+State\+Builder}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}
\subsubsection{\texorpdfstring{$\sim$\+F\+F\+P\+Render\+State\+Builder()}{~FFPRenderStateBuilder()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder\+::$\sim$\+F\+F\+P\+Render\+State\+Builder (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a3265735a63f5333be3b8f363f22e667d}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a3265735a63f5333be3b8f363f22e667d}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}!get\+Singleton@{get\+Singleton}}
\index{get\+Singleton@{get\+Singleton}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}
\subsubsection{\texorpdfstring{get\+Singleton()}{getSingleton()}}
{\footnotesize\ttfamily static \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder}{F\+F\+P\+Render\+State\+Builder}\& Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder\+::get\+Singleton (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Override standard \hyperlink{class_ogre_1_1_singleton}{Singleton} retrieval. 

\begin{DoxyRemark}{Remarks}
Why do we do this? Well, it\textquotesingle{}s because the \hyperlink{class_ogre_1_1_singleton}{Singleton} implementation is in a .h file, which means it gets compiled into anybody who includes it. This is needed for the \hyperlink{class_ogre_1_1_singleton}{Singleton} template to work, but we actually only want it compiled into the implementation of the class based on the \hyperlink{class_ogre_1_1_singleton}{Singleton}, not all of them. If we don\textquotesingle{}t change this, we get link errors when trying to use the Singleton-\/based class from an outside dll. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
This method just delegates to the template version anyway, but the implementation stays in this single compilation unit, preventing link errors. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_af066dbf4082ef7409dfb33ac98ced29d}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_af066dbf4082ef7409dfb33ac98ced29d}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}!get\+Singleton\+Ptr@{get\+Singleton\+Ptr}}
\index{get\+Singleton\+Ptr@{get\+Singleton\+Ptr}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}
\subsubsection{\texorpdfstring{get\+Singleton\+Ptr()}{getSingletonPtr()}}
{\footnotesize\ttfamily static \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder}{F\+F\+P\+Render\+State\+Builder}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder\+::get\+Singleton\+Ptr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the singleton instance. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a364e6e991a2e73a5920b7542979884b2}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a364e6e991a2e73a5920b7542979884b2}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}!initialize@{initialize}}
\index{initialize@{initialize}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}
\subsubsection{\texorpdfstring{initialize()}{initialize()}}
{\footnotesize\ttfamily bool Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder\+::initialize (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Initialize the F\+FP builder instance. 

Return true upon success. \mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_acd2b7abc72daaf831e5bd9a351aa679d}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_acd2b7abc72daaf831e5bd9a351aa679d}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}!destroy@{destroy}}
\index{destroy@{destroy}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}
\subsubsection{\texorpdfstring{destroy()}{destroy()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder\+::destroy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Destroy the F\+FP builder instance. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a7d7ba7f2dd2a417dcc0603312c1154f9}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_render_state_builder_a7d7ba7f2dd2a417dcc0603312c1154f9}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}!build\+Render\+State@{build\+Render\+State}}
\index{build\+Render\+State@{build\+Render\+State}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder}}
\subsubsection{\texorpdfstring{build\+Render\+State()}{buildRenderState()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Render\+State\+Builder\+::build\+Render\+State (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_shader_generator_aa644d456e56ff4fe4179bed69bf54304}{Shader\+Generator\+::\+S\+G\+Pass} $\ast$}]{sg\+Pass,  }\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_target_render_state}{Target\+Render\+State} $\ast$}]{render\+State }\end{DoxyParamCaption})}



Build render state from the given pass that emulates the fixed function pipeline behaviour. 


\begin{DoxyParams}{Parameters}
{\em sg\+Pass} & The shader generator pass representation. Contains both source and destination pass. \\
\hline
{\em render\+State} & The target render state that will hold the given pass F\+FP representation. \\
\hline
\end{DoxyParams}


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