\hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog}{}\section{Ogre\+:\+:R\+T\+Shader\+:\+:F\+F\+P\+Fog Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog}\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}


Fog sub render state implementation of the Fixed \hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} Pipeline.  




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



Inheritance diagram for Ogre\+:\+:R\+T\+Shader\+:\+:F\+F\+P\+Fog\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=229pt]{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}{Calc\+Mode} \{ \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24a39da90583dcc011b11b6289951c0c758}{C\+M\+\_\+\+P\+E\+R\+\_\+\+V\+E\+R\+T\+EX} = 1, 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24a8b8afcfcadf47bf10484ebafcc615327}{C\+M\+\_\+\+P\+E\+R\+\_\+\+P\+I\+X\+EL} = 2
 \}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a8a959d87777d1c83ae68f598b26100b9}{F\+F\+P\+Fog} ()
\begin{DoxyCompactList}\small\item\em Class default constructor. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_abd07c284b6bfb0ff25b133e3f6c5a117}{copy\+From} (const \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} \&rhs)
\item 
virtual bool \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a4b43c261946926ebbc6456deccc6697a}{create\+Cpu\+Sub\+Programs} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_set}{Program\+Set} $\ast$program\+Set)
\begin{DoxyCompactList}\small\item\em Create sub programs that represents this sub render state as part of a program set. \end{DoxyCompactList}\item 
\hyperlink{group___r_t_shader_gaecbe3817ee5b43f1962309c03d39da99}{Sub\+Render\+State\+Accessor\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_aa73560a3f1b9117cb8b438867848c255}{get\+Accessor} ()
\begin{DoxyCompactList}\small\item\em Return the accessor object to this sub render state. \end{DoxyCompactList}\item 
\hyperlink{group___r_t_shader_gaecbe3817ee5b43f1962309c03d39da99}{Sub\+Render\+State\+Accessor\+Ptr} \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a9d34ec312d5b8a627be41da5b57382eb}{get\+Accessor} () const
\begin{DoxyCompactList}\small\item\em Return the accessor object to this sub render state. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}{Calc\+Mode} \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a425d90ac6afb80ec193c98044c9f7b42}{get\+Calc\+Mode} () const
\begin{DoxyCompactList}\small\item\em Return the current calculation mode. \end{DoxyCompactList}\item 
virtual int \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a579a251e68889b5f1c7bce34e845095b}{get\+Execution\+Order} () const
\item 
virtual const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_ab6407600682b766be0044f3506832ddc}{get\+Type} () const
\item 
virtual bool \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a16abb7297592de23c6f5b10d39b09925}{pre\+Add\+To\+Render\+State} (const \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state}{Render\+State} $\ast$render\+State, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$src\+Pass, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$dst\+Pass)
\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_ae1b22380673f8f4a4ccadfc350f3ae0f}{set\+Calc\+Mode} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}{Calc\+Mode} calc\+Mode)
\begin{DoxyCompactList}\small\item\em Set the fog calculation mode. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a6e188ab38b23bbdaf5a8b83bcf8cc004}{set\+Fog\+Properties} (\hyperlink{group___general_ga83edeb2e5d33a3ca8f15834ba40020ba}{Fog\+Mode} fog\+Mode, const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&fog\+Colour, float fog\+Start, float fog\+End, float fog\+Density)
\begin{DoxyCompactList}\small\item\em Set the fog properties this fog sub render state should emulate. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a2550c49f486386c8915a08e02b90af24}{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)
\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a440a7bcc86823142c7cb0adc114e33bc}{Type}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Fog sub render state implementation of the Fixed \hyperlink{class_ogre_1_1_r_t_shader_1_1_function}{Function} Pipeline. 

\begin{DoxySeeAlso}{See also}
\href{http://msdn.microsoft.com/en-us/library/bb173398.aspx}{\tt http\+://msdn.\+microsoft.\+com/en-\/us/library/bb173398.\+aspx} Derives from \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} class. 
\end{DoxySeeAlso}


\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!Calc\+Mode@{Calc\+Mode}}
\index{Calc\+Mode@{Calc\+Mode}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{Calc\+Mode}{CalcMode}}
{\footnotesize\ttfamily enum \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::\+Calc\+Mode}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{C\+M\+\_\+\+P\+E\+R\+\_\+\+V\+E\+R\+T\+EX@{C\+M\+\_\+\+P\+E\+R\+\_\+\+V\+E\+R\+T\+EX}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!C\+M\+\_\+\+P\+E\+R\+\_\+\+V\+E\+R\+T\+EX@{C\+M\+\_\+\+P\+E\+R\+\_\+\+V\+E\+R\+T\+EX}}}\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24a39da90583dcc011b11b6289951c0c758}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24a39da90583dcc011b11b6289951c0c758}} 
C\+M\+\_\+\+P\+E\+R\+\_\+\+V\+E\+R\+T\+EX&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{C\+M\+\_\+\+P\+E\+R\+\_\+\+P\+I\+X\+EL@{C\+M\+\_\+\+P\+E\+R\+\_\+\+P\+I\+X\+EL}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!C\+M\+\_\+\+P\+E\+R\+\_\+\+P\+I\+X\+EL@{C\+M\+\_\+\+P\+E\+R\+\_\+\+P\+I\+X\+EL}}}\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24a8b8afcfcadf47bf10484ebafcc615327}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24a8b8afcfcadf47bf10484ebafcc615327}} 
C\+M\+\_\+\+P\+E\+R\+\_\+\+P\+I\+X\+EL&\\
\hline

\end{DoxyEnumFields}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a8a959d87777d1c83ae68f598b26100b9}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a8a959d87777d1c83ae68f598b26100b9}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!F\+F\+P\+Fog@{F\+F\+P\+Fog}}
\index{F\+F\+P\+Fog@{F\+F\+P\+Fog}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{F\+F\+P\+Fog()}{FFPFog()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::\+F\+F\+P\+Fog (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Class default constructor. 



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_ab6407600682b766be0044f3506832ddc}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_ab6407600682b766be0044f3506832ddc}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!get\+Type@{get\+Type}}
\index{get\+Type@{get\+Type}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{get\+Type()}{getType()}}
{\footnotesize\ttfamily virtual const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::get\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_ae91b7b8f76848d67652b6e5832a27a49}{Sub\+Render\+State\+::get\+Type}. 
\end{DoxySeeAlso}


Implements \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_ae91b7b8f76848d67652b6e5832a27a49}{Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a579a251e68889b5f1c7bce34e845095b}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a579a251e68889b5f1c7bce34e845095b}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!get\+Execution\+Order@{get\+Execution\+Order}}
\index{get\+Execution\+Order@{get\+Execution\+Order}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{get\+Execution\+Order()}{getExecutionOrder()}}
{\footnotesize\ttfamily virtual int Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::get\+Execution\+Order (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_ae91b7b8f76848d67652b6e5832a27a49}{Sub\+Render\+State\+::get\+Type}. 
\end{DoxySeeAlso}


Implements \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_acb48c34ee231f0220f68c967fb32f1e5}{Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a2550c49f486386c8915a08e02b90af24}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a2550c49f486386c8915a08e02b90af24}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!update\+Gpu\+Programs\+Params@{update\+Gpu\+Programs\+Params}}
\index{update\+Gpu\+Programs\+Params@{update\+Gpu\+Programs\+Params}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{update\+Gpu\+Programs\+Params()}{updateGpuProgramsParams()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::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})\hspace{0.3cm}{\ttfamily [virtual]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a4c2acbc15e44c3fe42868abce1116ec2}{Sub\+Render\+State\+::update\+Gpu\+Programs\+Params}. 
\end{DoxySeeAlso}


Reimplemented from \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a4c2acbc15e44c3fe42868abce1116ec2}{Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_abd07c284b6bfb0ff25b133e3f6c5a117}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_abd07c284b6bfb0ff25b133e3f6c5a117}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!copy\+From@{copy\+From}}
\index{copy\+From@{copy\+From}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{copy\+From()}{copyFrom()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::copy\+From (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a5dfe9f03413e0fe99ea2640f06c1f13c}{Sub\+Render\+State\+::copy\+From}. 
\end{DoxySeeAlso}


Implements \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a5dfe9f03413e0fe99ea2640f06c1f13c}{Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a16abb7297592de23c6f5b10d39b09925}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a16abb7297592de23c6f5b10d39b09925}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!pre\+Add\+To\+Render\+State@{pre\+Add\+To\+Render\+State}}
\index{pre\+Add\+To\+Render\+State@{pre\+Add\+To\+Render\+State}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{pre\+Add\+To\+Render\+State()}{preAddToRenderState()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::pre\+Add\+To\+Render\+State (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state}{Render\+State} $\ast$}]{render\+State,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{src\+Pass,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{dst\+Pass }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_afd08043cfad43a1ae470c3c1be341ba1}{Sub\+Render\+State\+::pre\+Add\+To\+Render\+State}. 
\end{DoxySeeAlso}


Reimplemented from \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_afd08043cfad43a1ae470c3c1be341ba1}{Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a6e188ab38b23bbdaf5a8b83bcf8cc004}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a6e188ab38b23bbdaf5a8b83bcf8cc004}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!set\+Fog\+Properties@{set\+Fog\+Properties}}
\index{set\+Fog\+Properties@{set\+Fog\+Properties}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{set\+Fog\+Properties()}{setFogProperties()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::set\+Fog\+Properties (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga83edeb2e5d33a3ca8f15834ba40020ba}{Fog\+Mode}}]{fog\+Mode,  }\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{fog\+Colour,  }\item[{float}]{fog\+Start,  }\item[{float}]{fog\+End,  }\item[{float}]{fog\+Density }\end{DoxyParamCaption})}



Set the fog properties this fog sub render state should emulate. 


\begin{DoxyParams}{Parameters}
{\em fog\+Mode} & The fog mode to emulate (F\+O\+G\+\_\+\+N\+O\+NE, F\+O\+G\+\_\+\+E\+XP, F\+O\+G\+\_\+\+E\+X\+P2, F\+O\+G\+\_\+\+L\+I\+N\+E\+AR). \\
\hline
{\em fog\+Colour} & The colour of the fog. \\
\hline
{\em fog\+Start} & Start distance of fog, used for linear mode only. \\
\hline
{\em fog\+End} & End distance of fog, used for linear mode only. \\
\hline
{\em fog\+Density} & Fog density used in exponential modes only. \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\href{http://msdn.microsoft.com/en-us/library/bb173401.aspx}{\tt http\+://msdn.\+microsoft.\+com/en-\/us/library/bb173401.\+aspx} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_ae1b22380673f8f4a4ccadfc350f3ae0f}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_ae1b22380673f8f4a4ccadfc350f3ae0f}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!set\+Calc\+Mode@{set\+Calc\+Mode}}
\index{set\+Calc\+Mode@{set\+Calc\+Mode}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{set\+Calc\+Mode()}{setCalcMode()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::set\+Calc\+Mode (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}{Calc\+Mode}}]{calc\+Mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Set the fog calculation mode. 

Either per vertex or per pixel. 
\begin{DoxyParams}{Parameters}
{\em calc\+Mode} & The calculation mode to set. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a425d90ac6afb80ec193c98044c9f7b42}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a425d90ac6afb80ec193c98044c9f7b42}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!get\+Calc\+Mode@{get\+Calc\+Mode}}
\index{get\+Calc\+Mode@{get\+Calc\+Mode}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{get\+Calc\+Mode()}{getCalcMode()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a3f3fe627121288337ab50fb196b27c24}{Calc\+Mode} Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::get\+Calc\+Mode (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Return the current calculation mode. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a4b43c261946926ebbc6456deccc6697a}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a4b43c261946926ebbc6456deccc6697a}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!create\+Cpu\+Sub\+Programs@{create\+Cpu\+Sub\+Programs}}
\index{create\+Cpu\+Sub\+Programs@{create\+Cpu\+Sub\+Programs}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{create\+Cpu\+Sub\+Programs()}{createCpuSubPrograms()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+::create\+Cpu\+Sub\+Programs (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_set}{Program\+Set} $\ast$}]{program\+Set }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Create sub programs that represents this sub render state as part of a program set. 

The given program set contains C\+PU programs that represents a vertex shader and pixel shader. One should use these program class A\+PI to create a representation of the sub state he wished to implement. 
\begin{DoxyParams}{Parameters}
{\em program\+Set} & container class of C\+PU and G\+PU programs that this sub state will affect on. \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_transform_a92be790cb34c6f56f18cb75e428a0e54}{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Transform}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_aa73560a3f1b9117cb8b438867848c255}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_aa73560a3f1b9117cb8b438867848c255}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!get\+Accessor@{get\+Accessor}}
\index{get\+Accessor@{get\+Accessor}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{get\+Accessor()}{getAccessor()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{group___r_t_shader_gaecbe3817ee5b43f1962309c03d39da99}{Sub\+Render\+State\+Accessor\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+::get\+Accessor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Return the accessor object to this sub render state. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_accessor}{Sub\+Render\+State\+Accessor}. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a9d34ec312d5b8a627be41da5b57382eb}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a9d34ec312d5b8a627be41da5b57382eb}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!get\+Accessor@{get\+Accessor}}
\index{get\+Accessor@{get\+Accessor}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{get\+Accessor()}{getAccessor()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{group___r_t_shader_gaecbe3817ee5b43f1962309c03d39da99}{Sub\+Render\+State\+Accessor\+Ptr} Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+::get\+Accessor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Return the accessor object to this sub render state. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_accessor}{Sub\+Render\+State\+Accessor}. 
\end{DoxySeeAlso}


\subsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a440a7bcc86823142c7cb0adc114e33bc}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_fog_a440a7bcc86823142c7cb0adc114e33bc}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}!Type@{Type}}
\index{Type@{Type}!Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog@{Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog}}
\subsubsection{\texorpdfstring{Type}{Type}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Fog\+::\+Type\hspace{0.3cm}{\ttfamily [static]}}



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