\hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting}{}\doxysection{Ogre\+::R\+T\+Shader\+::F\+F\+P\+Lighting Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting}\index{Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}


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




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



Inheritance diagram for Ogre\+::R\+T\+Shader\+::F\+F\+P\+Lighting\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=235pt]{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a2c0f6b8cb10057e12f22b7d10c08d00c}{F\+F\+P\+Lighting}} ()
\begin{DoxyCompactList}\small\item\em Class default constructor. \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a84fa2416b04dae927f9acbe3aff18615}{copy\+From}} (const \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State}} \&rhs)
\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a4b43c261946926ebbc6456deccc6697a}{create\+Cpu\+Sub\+Programs}} (\mbox{\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 
\mbox{\hyperlink{group___r_t_shader_gaecbe3817ee5b43f1962309c03d39da99}{Sub\+Render\+State\+Accessor\+Ptr}} \mbox{\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 
\mbox{\hyperlink{group___r_t_shader_gaecbe3817ee5b43f1962309c03d39da99}{Sub\+Render\+State\+Accessor\+Ptr}} \mbox{\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 
virtual int \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a11bddfecc7052cf235f1a0321600b7c5}{get\+Execution\+Order}} () const
\item 
virtual const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \& \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a66d25efda1e9fc50f41de5cb284050a8}{get\+Type}} () const
\item 
virtual bool \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a58a11d4b0389a5bd595a092244bb8bdf}{pre\+Add\+To\+Render\+State}} (const \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_render_state}{Render\+State}} $\ast$render\+State, \mbox{\hyperlink{class_ogre_1_1_pass}{Pass}} $\ast$src\+Pass, \mbox{\hyperlink{class_ogre_1_1_pass}{Pass}} $\ast$dst\+Pass)
\item 
void \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a98d8a4dd67c07e121c9e11fb72bf2079}{set\+Normalise\+Enabled}} (bool enable)
\begin{DoxyCompactList}\small\item\em normalise the blinn-\/phong reflection model to make it energy conserving \end{DoxyCompactList}\item 
virtual void \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_adf8e004b962ba95d5d11fb47fe7a7530}{update\+Gpu\+Programs\+Params}} (\mbox{\hyperlink{class_ogre_1_1_renderable}{Renderable}} $\ast$rend, const \mbox{\hyperlink{class_ogre_1_1_pass}{Pass}} $\ast$pass, const \mbox{\hyperlink{class_ogre_1_1_auto_param_data_source}{Auto\+Param\+Data\+Source}} $\ast$source, const \mbox{\hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List}} $\ast$p\+Light\+List)
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_afddadd54341fb6c2a3fd2f0441bceb7d}{Type}}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Lighting sub render state implementation of the Fixed \mbox{\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/bb147178.aspx}{\texttt{ http\+://msdn.\+microsoft.\+com/en-\/us/library/bb147178.\+aspx}} Derives from \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State}} class. 
\end{DoxySeeAlso}


\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a2c0f6b8cb10057e12f22b7d10c08d00c}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a2c0f6b8cb10057e12f22b7d10c08d00c}} 
\index{Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!FFPLighting@{FFPLighting}}
\index{FFPLighting@{FFPLighting}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{FFPLighting()}{FFPLighting()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Lighting\+::\+F\+F\+P\+Lighting (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Class default constructor. 



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

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


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



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_per_pixel_lighting_a8b3626c7011632d6393f91d00e56fb7b}{Ogre\+::\+R\+T\+Shader\+::\+Per\+Pixel\+Lighting}}, and \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_normal_map_lighting_a7f9625974c6ecdf24c1688beafb052a9}{Ogre\+::\+R\+T\+Shader\+::\+Normal\+Map\+Lighting}}.

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

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


Implements \mbox{\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_lighting_adf8e004b962ba95d5d11fb47fe7a7530}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_adf8e004b962ba95d5d11fb47fe7a7530}} 
\index{Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!updateGpuProgramsParams@{updateGpuProgramsParams}}
\index{updateGpuProgramsParams@{updateGpuProgramsParams}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{updateGpuProgramsParams()}{updateGpuProgramsParams()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Lighting\+::update\+Gpu\+Programs\+Params (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{class_ogre_1_1_renderable}{Renderable}} $\ast$}]{rend,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_pass}{Pass}} $\ast$}]{pass,  }\item[{const \mbox{\hyperlink{class_ogre_1_1_auto_param_data_source}{Auto\+Param\+Data\+Source}} $\ast$}]{source,  }\item[{const \mbox{\hyperlink{group___general_gaab30ef14aae93306a6044cb38d835f0c}{Light\+List}} $\ast$}]{p\+Light\+List }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

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


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



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_normal_map_lighting_ac1ae6e2ad7ccdfb4f4ae68fa60cce4a1}{Ogre\+::\+R\+T\+Shader\+::\+Normal\+Map\+Lighting}}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a84fa2416b04dae927f9acbe3aff18615}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a84fa2416b04dae927f9acbe3aff18615}} 
\index{Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!copyFrom@{copyFrom}}
\index{copyFrom@{copyFrom}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{copyFrom()}{copyFrom()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Lighting\+::copy\+From (\begin{DoxyParamCaption}\item[{const \mbox{\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}
\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_a5dfe9f03413e0fe99ea2640f06c1f13c}{Sub\+Render\+State\+::copy\+From}}. 
\end{DoxySeeAlso}


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



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_normal_map_lighting_a77e4353cfba7bda94f1e92e8834c5811}{Ogre\+::\+R\+T\+Shader\+::\+Normal\+Map\+Lighting}}.

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

\begin{DoxySeeAlso}{See also}
\mbox{\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 \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_afd08043cfad43a1ae470c3c1be341ba1}{Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State}}.



Reimplemented in \mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_normal_map_lighting_a843b43b2c134bfb623da7392a5cba3e9}{Ogre\+::\+R\+T\+Shader\+::\+Normal\+Map\+Lighting}}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a98d8a4dd67c07e121c9e11fb72bf2079}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_a98d8a4dd67c07e121c9e11fb72bf2079}} 
\index{Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!setNormaliseEnabled@{setNormaliseEnabled}}
\index{setNormaliseEnabled@{setNormaliseEnabled}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{setNormaliseEnabled()}{setNormaliseEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Lighting\+::set\+Normalise\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enable }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



normalise the blinn-\/phong reflection model to make it energy conserving 

see \href{http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/}{\texttt{ this for details}} \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::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!createCpuSubPrograms@{createCpuSubPrograms}}
\index{createCpuSubPrograms@{createCpuSubPrograms}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{createCpuSubPrograms()}{createCpuSubPrograms()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+::create\+Cpu\+Sub\+Programs (\begin{DoxyParamCaption}\item[{\mbox{\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 \mbox{\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::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!getAccessor@{getAccessor}}
\index{getAccessor@{getAccessor}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{getAccessor()}{getAccessor()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\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}
\mbox{\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::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!getAccessor@{getAccessor}}
\index{getAccessor@{getAccessor}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{getAccessor()}{getAccessor()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \mbox{\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}
\mbox{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_accessor}{Sub\+Render\+State\+Accessor}}. 
\end{DoxySeeAlso}


\doxysubsection{Member Data Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_afddadd54341fb6c2a3fd2f0441bceb7d}\label{class_ogre_1_1_r_t_shader_1_1_f_f_p_lighting_afddadd54341fb6c2a3fd2f0441bceb7d}} 
\index{Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}!Type@{Type}}
\index{Type@{Type}!Ogre::RTShader::FFPLighting@{Ogre::RTShader::FFPLighting}}
\doxysubsubsection{\texorpdfstring{Type}{Type}}
{\footnotesize\ttfamily \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} Ogre\+::\+R\+T\+Shader\+::\+F\+F\+P\+Lighting\+::\+Type\hspace{0.3cm}{\ttfamily [static]}}



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