\hypertarget{class_ogre_1_1_pass}{}\section{Ogre\+:\+:Pass Class Reference}
\label{class_ogre_1_1_pass}\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}}


Class defining a single pass of a \hyperlink{class_ogre_1_1_technique}{Technique} (of a \hyperlink{class_ogre_1_1_material}{Material}), i.\+e.  




{\ttfamily \#include $<$Ogre\+Pass.\+h$>$}



Inheritance diagram for Ogre\+:\+:Pass\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=148pt]{class_ogre_1_1_pass__inherit__graph}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func}
\begin{DoxyCompactList}\small\item\em Definition of a functor for calculating the hashcode of a \hyperlink{class_ogre_1_1_pass}{Pass}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}{Builtin\+Hash\+Function} \{ \hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4aab72a14d25f118c99dd6e9d40953ca46}{M\+I\+N\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+C\+H\+A\+N\+GE}, 
\hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4a281f843d23df9554e590a19d1a3987e3}{M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE}
 \}\begin{DoxyCompactList}\small\item\em There are some default hash functions used to order passes so that render state changes are minimised, this enumerates them. \end{DoxyCompactList}
\item 
typedef \hyperlink{class_ogre_1_1_const_vector_iterator}{Const\+Vector\+Iterator}$<$ \hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Texture\+Unit\+States} $>$ \hyperlink{class_ogre_1_1_pass_a98b42a4f4304f3f2d08fb9394cbefe83}{Const\+Texture\+Unit\+State\+Iterator}
\item 
typedef std\+::set$<$ \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$ $>$ \hyperlink{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}{Pass\+Set}
\item 
typedef \hyperlink{class_ogre_1_1_vector_iterator}{Vector\+Iterator}$<$ \hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Texture\+Unit\+States} $>$ \hyperlink{class_ogre_1_1_pass_ac7bc2b00e42ad2699a1e2a1de340d3b4}{Texture\+Unit\+State\+Iterator}
\item 
typedef std\+::vector$<$ \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$ $>$ \hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Texture\+Unit\+States}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_pass_a7f36f2c48b62fd29b2abdee4425d6a2c}{Pass} (\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$parent, unsigned short index)
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pass_a2af67ca21bb1a91d6c228db8207384fc}{Pass} (\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$parent, unsigned short index, const \hyperlink{class_ogre_1_1_pass}{Pass} \&oth)
\begin{DoxyCompactList}\small\item\em Copy constructor. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pass_a939fc6e2a02a7d753c84ec11219e97da}{$\sim$\+Pass} ()
\item 
void \hyperlink{class_ogre_1_1_pass_a44c84896039e6a9f3a44da8468591fb3}{\+\_\+dirty\+Hash} (void)
\begin{DoxyCompactList}\small\item\em Mark the hash as dirty. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_pass_a8f69f7e13e3665ba295ce9b4671fdc4c}{\+\_\+get\+Texture\+Unit\+With\+Content\+Type\+Index} (\hyperlink{class_ogre_1_1_texture_unit_state_a35a108a68c71c8267af4af8c1a819030}{Texture\+Unit\+State\+::\+Content\+Type} content\+Type, unsigned short index) const
\begin{DoxyCompactList}\small\item\em Gets the \textquotesingle{}nth\textquotesingle{} texture which references the given content type. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load} (void)
\begin{DoxyCompactList}\small\item\em Internal method for loading this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_afaa52a3826a08569b8263834f043a83f}{\+\_\+notify\+Index} (unsigned short index)
\begin{DoxyCompactList}\small\item\em Internal method to adjust pass index. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a6d9af04b4a643df1d81cc0443ca34ab2}{\+\_\+notify\+Needs\+Recompile} (void)
\begin{DoxyCompactList}\small\item\em Tells the pass that it needs recompilation. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ab85cf60f49c52c53671d5bb5105231e8}{\+\_\+prepare} (void)
\begin{DoxyCompactList}\small\item\em Internal method for preparing to load this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a367a1affcb2e26d61a5b5e3594b0ce6a}{\+\_\+recalculate\+Hash} (void)
\begin{DoxyCompactList}\small\item\em Internal method for recalculating the hash. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$ \hyperlink{class_ogre_1_1_pass_a4934405e476e98dd05912a1ff42b7b2c}{\+\_\+split} (unsigned short num\+Units)
\begin{DoxyCompactList}\small\item\em Splits this \hyperlink{class_ogre_1_1_pass}{Pass} to one which can be handled in the number of texture units specified. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a5766787845b1be6dfbf45cac068fc825}{\+\_\+unload} (void)
\begin{DoxyCompactList}\small\item\em Internal method for unloading this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a928061c8f56d923808add7e8ba9cdee8}{\+\_\+unprepare} (void)
\begin{DoxyCompactList}\small\item\em Internal method for undoing the load preparartion for this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ad17196c5383815e1af157fc9617c474b}{\+\_\+update\+Auto\+Params} (const \hyperlink{class_ogre_1_1_auto_param_data_source}{Auto\+Param\+Data\+Source} $\ast$source, \hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16} variability\+Mask) const
\begin{DoxyCompactList}\small\item\em Update automatic parameters. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a00a4036c87d4778c20d19412e9530ff2}{add\+Texture\+Unit\+State} (\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$state)
\begin{DoxyCompactList}\small\item\em Adds the passed in \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State}, to the existing \hyperlink{class_ogre_1_1_pass}{Pass}. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a264240f8ac08cef3f6cb6e374a03e059}{apply\+Texture\+Aliases} (const \hyperlink{group___general_ga5dafc9e68bde8099ec5ad6c94e4cf19b}{Alias\+Texture\+Name\+Pair\+List} \&alias\+List, const bool apply=true) const
\begin{DoxyCompactList}\small\item\em Applies texture names to \hyperlink{class_ogre_1_1_texture}{Texture} Unit State with matching texture name aliases. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{class_ogre_1_1_pass_a76e0c135dbcacf5d12cc78a15452c7dc}{calculate\+Size} (void) const
\item 
\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$ \hyperlink{class_ogre_1_1_pass_adfee1e1da3564408697f6b1227102c63}{create\+Texture\+Unit\+State} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&texture\+Name, unsigned short tex\+Coord\+Set=0)
\begin{DoxyCompactList}\small\item\em Inserts a new \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} object into the \hyperlink{class_ogre_1_1_pass}{Pass}. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$ \hyperlink{class_ogre_1_1_pass_af8b37124088b574d2cbb2652c0ee4272}{create\+Texture\+Unit\+State} (void)
\item 
\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} \hyperlink{class_ogre_1_1_pass_ae1b0920d6ba670d5e2e85bf2282bd2ef}{get\+Alpha\+Reject\+Function} (void) const
\begin{DoxyCompactList}\small\item\em Gets the alpha reject function. \end{DoxyCompactList}\item 
unsigned char \hyperlink{class_ogre_1_1_pass_a8336a42895b9429c0bbae528fcaa5a43}{get\+Alpha\+Reject\+Value} (void) const
\begin{DoxyCompactList}\small\item\em Gets the alpha reject value. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \& \hyperlink{class_ogre_1_1_pass_a025d29e0df7f5fa8209e37e3dbac057a}{get\+Ambient} (void) const
\begin{DoxyCompactList}\small\item\em Gets the ambient colour reflectance of the pass. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a51d61feca0e3c7cae4c3e1c2988540b0}{get\+Colour\+Write\+Enabled} (void) const
\begin{DoxyCompactList}\small\item\em Determines if colour buffer writing is enabled for this pass i.\+e. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a40b25c9a64b05c3463a2da9e174be901}{get\+Colour\+Write\+Enabled} (bool \&red, bool \&green, bool \&blue, bool \&alpha) const
\begin{DoxyCompactList}\small\item\em Determines which colour buffer channels are enabled for writing for this pass. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a97e4cdfc70411ee066cf68e1c7a817e4}{get\+Compute\+Program} (void) const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_ab06bed97a00cdda2522fff1faadcae27}{get\+Compute\+Program\+Name} (void) const
\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_a879780ade78dc1dce173c51ed5c6b3f2}{get\+Compute\+Program\+Parameters} (void) const
\item 
\hyperlink{group___general_gac173244ed7d950d0acd726e4f323ecdb}{Culling\+Mode} \hyperlink{class_ogre_1_1_pass_aedb647950fbc40f52ae139eb166d602d}{get\+Culling\+Mode} (void) const
\begin{DoxyCompactList}\small\item\em Returns the culling mode for geometry rendered with this pass. \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_pass_a0327eac96a7858951a92d64dbdef8b31}{get\+Depth\+Bias\+Constant} (void) const
\begin{DoxyCompactList}\small\item\em Retrieves the const depth bias value as set by set\+Depth\+Bias. \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_pass_a2639336933c81b101f7b38b02c590518}{get\+Depth\+Bias\+Slope\+Scale} (void) const
\begin{DoxyCompactList}\small\item\em Retrieves the slope-\/scale depth bias value as set by set\+Depth\+Bias. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a648b0f3f74464f4b0e4472e64219f1a1}{get\+Depth\+Check\+Enabled} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether or not this pass renders with depth-\/buffer checking on or not. \end{DoxyCompactList}\item 
\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} \hyperlink{class_ogre_1_1_pass_aed6912e985c09f72d8f8012494f1068a}{get\+Depth\+Function} (void) const
\begin{DoxyCompactList}\small\item\em Returns the function used to compare depth values when depth checking is on. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_ab2d6e2e30826d01e5ec19bef7446f447}{get\+Depth\+Write\+Enabled} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether or not this pass renders with depth-\/buffer writing on or not. \end{DoxyCompactList}\item 
\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} \hyperlink{class_ogre_1_1_pass_a8e61c233c08848aa736bcfa7bdb58158}{get\+Dest\+Blend\+Factor} () const
\begin{DoxyCompactList}\small\item\em Retrieves the destination blending factor for the material (as set using Materiall\+::set\+Scene\+Blending). \end{DoxyCompactList}\item 
\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} \hyperlink{class_ogre_1_1_pass_aa89b9de8338da5bb1944b16145ee2f62}{get\+Dest\+Blend\+Factor\+Alpha} () const
\begin{DoxyCompactList}\small\item\em Retrieves the alpha destination blending factor for the material (as set using Materiall\+::set\+Separate\+Scene\+Blending). \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \& \hyperlink{class_ogre_1_1_pass_ab41a5ed7aadfabec2111e3124f77cf71}{get\+Diffuse} (void) const
\begin{DoxyCompactList}\small\item\em Gets the diffuse colour reflectance of the pass. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \& \hyperlink{class_ogre_1_1_pass_a57c97de91cbc0c86e3ca06ccc22b9a12}{get\+Emissive} (void) const
\begin{DoxyCompactList}\small\item\em Gets the self illumination colour of the pass. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \& \hyperlink{class_ogre_1_1_pass_acc2a614a0b99daa23be0f73d88c1336f}{get\+Fog\+Colour} (void) const
\begin{DoxyCompactList}\small\item\em Returns the fog colour for the scene. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_adefc2b311bd7eda26d6e0d1d514624ac}{get\+Fog\+Density} (void) const
\begin{DoxyCompactList}\small\item\em Returns the fog density for this pass. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_a1e0d1749e26e30e482eb1c9a4d08c6fc}{get\+Fog\+End} (void) const
\begin{DoxyCompactList}\small\item\em Returns the fog end distance for this pass. \end{DoxyCompactList}\item 
\hyperlink{group___general_ga83edeb2e5d33a3ca8f15834ba40020ba}{Fog\+Mode} \hyperlink{class_ogre_1_1_pass_a1713843694cb5213646bfa517875515c}{get\+Fog\+Mode} (void) const
\begin{DoxyCompactList}\small\item\em Returns the fog mode for this pass. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a3a8e2ca7f03f60cf41377da7d79c5d19}{get\+Fog\+Override} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass is to override the scene fog settings. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_a7780316594e2859363329abeec2baf18}{get\+Fog\+Start} (void) const
\begin{DoxyCompactList}\small\item\em Returns the fog start distance for this pass. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a49886b41c8e96ddfaea1d6b1c5264885}{get\+Fragment\+Program} (void) const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a289c78896d2777260cf5722b4cb8fd2d}{get\+Fragment\+Program\+Name} (void) const
\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_a889ed9697e2a990143cb41f953878dd3}{get\+Fragment\+Program\+Parameters} (void) const
\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a72637ef35c39efd6ac000ada7e96bb13}{get\+Geometry\+Program} (void) const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_ac3fdaa6b028d32a0302746ceeb79a6d3}{get\+Geometry\+Program\+Name} (void) const
\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_a48643d1a8dc67e86a712ff32f8371c5e}{get\+Geometry\+Program\+Parameters} (void) const
\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_ac4d96a83679d194ce380ad55b014f69b}{get\+Gpu\+Program} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} program\+Type) const
\begin{DoxyCompactList}\small\item\em Gets the Gpu program used by this pass, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()} \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a91bdef99c065c528a54572c99628841e}{get\+Gpu\+Program\+Name} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} type) const
\begin{DoxyCompactList}\small\item\em Gets the name of the program used by this pass. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a2efc56272065eb16dc629380772d7d7f}{get\+Gpu\+Program\+Parameters} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} type) const
\begin{DoxyCompactList}\small\item\em Gets the Gpu program parameters used by this pass. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_pass_a6096fdb876d7929f8d78d4fabae44a25}{get\+Hash} (void) const
\begin{DoxyCompactList}\small\item\em Gets the \textquotesingle{}hash\textquotesingle{} of this pass, ie a precomputed number to use for sorting. \end{DoxyCompactList}\item 
\hyperlink{group___materials_ga12a2bc4c75c439630241aa279089acb4}{Illumination\+Stage} \hyperlink{class_ogre_1_1_pass_a77551778f0d1989cdf7541cd0a71faf8}{get\+Illumination\+Stage} () const
\begin{DoxyCompactList}\small\item\em Get the manually assigned illumination stage, if any. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_pass_afb3b4e8c3d0058a43cd2b855fc22199c}{get\+Index} (void) const
\begin{DoxyCompactList}\small\item\em Gets the index of this \hyperlink{class_ogre_1_1_pass}{Pass} in the parent \hyperlink{class_ogre_1_1_technique}{Technique}. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a606718035e449c4fdf91ae843adc4894}{get\+Iterate\+Per\+Light} (void) const
\begin{DoxyCompactList}\small\item\em Does this pass run once for every light in range? \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_pass_adcb78aa549dc85cb36bd3dbc8abeee24}{get\+Iteration\+Depth\+Bias} () const
\begin{DoxyCompactList}\small\item\em Gets a factor which derives an additional depth bias from the number of times a pass is iterated. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a0c32f4167d3ac2bfedb5ff536ab87594}{get\+Light\+Clip\+Planes\+Enabled} () const
\begin{DoxyCompactList}\small\item\em Gets whether or not this pass will be clipped by user clips planes bounding the area covered by the light. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_pass_a44cbf809b449b317d01500220b25d82f}{get\+Light\+Count\+Per\+Iteration} (void) const
\begin{DoxyCompactList}\small\item\em If light iteration is enabled, determine the number of lights per iteration. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_abce35807758f26b84d29313cf70593cd}{get\+Lighting\+Enabled} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether or not dynamic lighting is enabled. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} \hyperlink{class_ogre_1_1_pass_a8f7068c8fb5556c150126866373343ac}{get\+Light\+Mask} () const
\begin{DoxyCompactList}\small\item\em Gets the light mask controlling which lights are used for this pass. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a27766dcc987d75b836519d8be88fc6f6}{get\+Light\+Scissoring\+Enabled} () const
\begin{DoxyCompactList}\small\item\em Gets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it. \end{DoxyCompactList}\item 
float \hyperlink{class_ogre_1_1_pass_a788b633913442314683050c34b2c3c9b}{get\+Line\+Width} () const
\item 
\hyperlink{group___general_ga07ec94cf178172a6778223e6f70f23fc}{Manual\+Culling\+Mode} \hyperlink{class_ogre_1_1_pass_acd99aaea7eec3026699bfccdd09310b0}{get\+Manual\+Culling\+Mode} (void) const
\begin{DoxyCompactList}\small\item\em Retrieves the manual culling mode for this pass. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_pass_abd67db27426bb99e6e58e7299424c4bc}{get\+Max\+Simultaneous\+Lights} (void) const
\begin{DoxyCompactList}\small\item\em Gets the maximum number of lights to be used by this pass. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a242acbbf397d9db273dcb42d9e4a653c}{get\+Name} (void) const
\begin{DoxyCompactList}\small\item\em Get the name of the pass. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a858b9c564570fd84e19c77a9b84da557}{get\+Normalise\+Normals} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass has auto-\/normalisation of normals set. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_pass_ae92e29ff81e188b72cadcbb64fd0be8d}{get\+Num\+Texture\+Unit\+States} (void) const
\begin{DoxyCompactList}\small\item\em Returns the number of texture unit settings. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_light_a4f1dea084d1497c6f49e802ade940dbc}{Light\+::\+Light\+Types} \hyperlink{class_ogre_1_1_pass_a371e62569a03de84662a286c875e45cb}{get\+Only\+Light\+Type} () const
\begin{DoxyCompactList}\small\item\em Gets the single light type this pass runs for if get\+Iterate\+Per\+Light and get\+Run\+Only\+For\+One\+Light\+Type are both true. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$ \hyperlink{class_ogre_1_1_pass_a224fe87a1d87d16212184331ef8a4906}{get\+Parent} (void) const
\begin{DoxyCompactList}\small\item\em Gets the parent \hyperlink{class_ogre_1_1_technique}{Technique}. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{class_ogre_1_1_pass_ad51f3602ae69b8d0f219582aa6b16d48}{get\+Pass\+Iteration\+Count} (void) const
\begin{DoxyCompactList}\small\item\em Gets the pass iteration count value. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_ab4d3e24b105ffaf7567b4312bcdc4016}{get\+Point\+Attenuation\+Constant} (void) const
\begin{DoxyCompactList}\small\item\em Returns the constant coefficient of point attenuation. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_ad7c66ac1b199cdd1b1ede0cb35b3fe7c}{get\+Point\+Attenuation\+Linear} (void) const
\begin{DoxyCompactList}\small\item\em Returns the linear coefficient of point attenuation. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_a49d5ee33ff46dd23f5755f41aa726e15}{get\+Point\+Attenuation\+Quadratic} (void) const
\begin{DoxyCompactList}\small\item\em Returns the quadratic coefficient of point attenuation. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_aeaf906d8abba9a4b4dde83f87daa0f4e}{get\+Point\+Max\+Size} (void) const
\begin{DoxyCompactList}\small\item\em Get the maximum point size, when point attenuation is in use. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_a8d799c8e3324a37e70d50f8fd1e5daac}{get\+Point\+Min\+Size} (void) const
\begin{DoxyCompactList}\small\item\em Get the minimum point size, when point attenuation is in use. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_aba2231be0c26100fa1f282c8c9360665}{get\+Point\+Size} (void) const
\begin{DoxyCompactList}\small\item\em Gets the point size of the pass. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_af70ccd332a1df548058917c31021f7df}{get\+Point\+Sprites\+Enabled} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether point sprites are enabled when rendering a point list. \end{DoxyCompactList}\item 
\hyperlink{group___general_ga68866b02aa7f99e3431337511fbb3345}{Polygon\+Mode} \hyperlink{class_ogre_1_1_pass_a4791eea37712b82994052b3e4a360fa0}{get\+Polygon\+Mode} (void) const
\begin{DoxyCompactList}\small\item\em Returns the type of light shading to be used. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_acb5a5d646e84a1d6c0be32f1132419f8}{get\+Polygon\+Mode\+Overrideable} (void) const
\begin{DoxyCompactList}\small\item\em Gets whether this renderable\textquotesingle{}s chosen detail level can be overridden (downgraded) by the camera setting. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a0bd99345b312bfb24c297b147b7665c5}{get\+Resource\+Group} (void) const
\begin{DoxyCompactList}\small\item\em Gets the resource group of the ultimate parent \hyperlink{class_ogre_1_1_material}{Material}. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a0adea673c6a85f5fbc1c7403457c284f}{get\+Run\+Only\+For\+One\+Light\+Type} (void) const
\begin{DoxyCompactList}\small\item\em Does this pass run only for a single light type (if get\+Iterate\+Per\+Light is true). \end{DoxyCompactList}\item 
\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} \hyperlink{class_ogre_1_1_pass_a0e4598b48a3cc36a3a9ac5c7f190440c}{get\+Scene\+Blending\+Operation} () const
\begin{DoxyCompactList}\small\item\em Returns the current blending operation. \end{DoxyCompactList}\item 
\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} \hyperlink{class_ogre_1_1_pass_a1c36e64352bf3b1d0d87a220d05f6dbf}{get\+Scene\+Blending\+Operation\+Alpha} () const
\begin{DoxyCompactList}\small\item\em Returns the current alpha blending operation. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \& \hyperlink{class_ogre_1_1_pass_a21cc793a33a80097900866835aea9abd}{get\+Self\+Illumination} (void) const
\begin{DoxyCompactList}\small\item\em Gets the self illumination colour of the pass. \end{DoxyCompactList}\item 
\hyperlink{group___general_ga7afd4c7d428baaee13f3a0dbcae5f560}{Shade\+Options} \hyperlink{class_ogre_1_1_pass_a5485f8b014bfa01d765a442999ad9ed3}{get\+Shading\+Mode} (void) const
\begin{DoxyCompactList}\small\item\em Returns the type of light shading to be used. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a5a43888d52a70572e771c69aceaf2fc3}{get\+Shadow\+Caster\+Fragment\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Gets the fragment program used by this pass when rendering shadow casters, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a8d626f46f910ebd72c1dc0fc6ef46bd5}{get\+Shadow\+Caster\+Fragment\+Program\+Name} (void) const
\begin{DoxyCompactList}\small\item\em Gets the name of the fragment program used by this pass when rendering shadow casters. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_ac50fb7f2a742128dd915ec6c94493249}{get\+Shadow\+Caster\+Fragment\+Program\+Parameters} (void) const
\begin{DoxyCompactList}\small\item\em Gets the fragment program parameters used by this pass when rendering shadow casters. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a1b77400f0729267d6403afc312738788}{get\+Shadow\+Caster\+Vertex\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Gets the vertex program used by this pass when rendering shadow casters, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a7fe8a6e86af9147b83fc7f80698d5096}{get\+Shadow\+Caster\+Vertex\+Program\+Name} (void) const
\begin{DoxyCompactList}\small\item\em Gets the name of the vertex program used by this pass when rendering shadow casters. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_aad15fe5527342cbcd93aab469024af00}{get\+Shadow\+Caster\+Vertex\+Program\+Parameters} (void) const
\begin{DoxyCompactList}\small\item\em Gets the vertex program parameters used by this pass when rendering shadow casters. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a7093553beb0811c323ac54d45730a9d8}{get\+Shadow\+Receiver\+Fragment\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Gets the fragment program used by this pass when rendering shadow receivers, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_acb379c72f33bd89e771516a4ebc25e08}{get\+Shadow\+Receiver\+Fragment\+Program\+Name} (void) const
\begin{DoxyCompactList}\small\item\em Gets the name of the fragment program used by this pass when rendering shadow receivers. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_a145368fb69cd0b1daa8ef4738d70fc24}{get\+Shadow\+Receiver\+Fragment\+Program\+Parameters} (void) const
\begin{DoxyCompactList}\small\item\em Gets the fragment program parameters used by this pass when rendering shadow receivers. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_aef06bc668729148b9faa79309611cf36}{get\+Shadow\+Receiver\+Vertex\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Gets the vertex program used by this pass when rendering shadow receivers, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a4af5577bec4cfc86ca60f3e04d25fef0}{get\+Shadow\+Receiver\+Vertex\+Program\+Name} (void) const
\begin{DoxyCompactList}\small\item\em Gets the name of the vertex program used by this pass when rendering shadow receivers. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_a830fa419b857cf256059cb3662064484}{get\+Shadow\+Receiver\+Vertex\+Program\+Parameters} (void) const
\begin{DoxyCompactList}\small\item\em Gets the vertex program parameters used by this pass when rendering shadow receivers. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} \hyperlink{class_ogre_1_1_pass_af18dc0bd11d49aacbd053c4772511650}{get\+Shininess} (void) const
\begin{DoxyCompactList}\small\item\em Gets the \textquotesingle{}shininess\textquotesingle{} property of the pass (affects specular highlights). \end{DoxyCompactList}\item 
\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} \hyperlink{class_ogre_1_1_pass_aec14031d3e7e69c7ec4f734dc40f612d}{get\+Source\+Blend\+Factor} () const
\begin{DoxyCompactList}\small\item\em Retrieves the source blending factor for the material (as set using Materiall\+::set\+Scene\+Blending). \end{DoxyCompactList}\item 
\hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} \hyperlink{class_ogre_1_1_pass_a040397cbf641fcd16ad1cc1846ccb0a0}{get\+Source\+Blend\+Factor\+Alpha} () const
\begin{DoxyCompactList}\small\item\em Retrieves the alpha source blending factor for the material (as set using Materiall\+::set\+Separate\+Scene\+Blending). \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \& \hyperlink{class_ogre_1_1_pass_a9847a07e3a202069e91cd0cccc104de7}{get\+Specular} (void) const
\begin{DoxyCompactList}\small\item\em Gets the specular colour reflectance of the pass. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_pass_a53fec71cb3076c1387cc6133f2996c78}{get\+Start\+Light} (void) const
\begin{DoxyCompactList}\small\item\em Gets the light index that this pass will start at in the light list. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_ad5d4c302e116ef27dea2b0a56705ccc4}{get\+Tessellation\+Domain\+Program} (void) const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a0da495acb6aaea4832685156dfbf8975}{get\+Tessellation\+Domain\+Program\+Name} (void) const
\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_a22415cb613dea6b39a7940ceebaca32f}{get\+Tessellation\+Domain\+Program\+Parameters} (void) const
\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_ad218fad32224eca7ed978b92e8b81895}{get\+Tessellation\+Hull\+Program} (void) const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_afb0c89ec1367230c6e74eac585efd993}{get\+Tessellation\+Hull\+Program\+Name} (void) const
\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_abe6e32bc6812ed954daaa2c5518a2ac3}{get\+Tessellation\+Hull\+Program\+Parameters} (void) const
\item 
\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$ \hyperlink{class_ogre_1_1_pass_abc81491af9bf41501f3ec60f4f0bef76}{get\+Texture\+Unit\+State} (unsigned short index) const
\begin{DoxyCompactList}\small\item\em Retrieves a const pointer to a texture unit state. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$ \hyperlink{class_ogre_1_1_pass_afe30c603d0dab1f4194463699c0091ba}{get\+Texture\+Unit\+State} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name) const
\begin{DoxyCompactList}\small\item\em Retrieves the \hyperlink{class_ogre_1_1_texture}{Texture} Unit State matching name. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_pass_a613a1145ae3ee981f223c00fc21b742e}{get\+Texture\+Unit\+State\+Index} (const \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$state) const
\begin{DoxyCompactList}\small\item\em Retrieve the index of the \hyperlink{class_ogre_1_1_texture}{Texture} Unit State in the pass. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pass_ac7bc2b00e42ad2699a1e2a1de340d3b4}{Texture\+Unit\+State\+Iterator} \hyperlink{class_ogre_1_1_pass_ac1513f6d3e1acb9037225d826ec99856}{get\+Texture\+Unit\+State\+Iterator} (void)
\begin{DoxyCompactList}\small\item\em Get an iterator over the Texture\+Unit\+States contained in this \hyperlink{class_ogre_1_1_pass}{Pass}. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pass_a98b42a4f4304f3f2d08fb9394cbefe83}{Const\+Texture\+Unit\+State\+Iterator} \hyperlink{class_ogre_1_1_pass_a185a8f17c108024b5b0683d895d5bcaf}{get\+Texture\+Unit\+State\+Iterator} (void) const
\begin{DoxyCompactList}\small\item\em Get an iterator over the Texture\+Unit\+States contained in this \hyperlink{class_ogre_1_1_pass}{Pass}. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Texture\+Unit\+States} \& \hyperlink{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}{get\+Texture\+Unit\+States} () const
\begin{DoxyCompactList}\small\item\em Get the Texture\+Unit\+States contained in this \hyperlink{class_ogre_1_1_pass}{Pass}. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a4a6ab6d3bce34b620675e9ccd2dfb89f}{get\+Transparent\+Sorting\+Enabled} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether or not transparent sorting is enabled. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a9729c4faa36b1a38ce0a8c14a3627dbe}{get\+Transparent\+Sorting\+Forced} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether or not transparent sorting is forced. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_user_object_bindings}{User\+Object\+Bindings} \& \hyperlink{class_ogre_1_1_pass_adc70de42e8b22b4d8ccedf6868bbbfc0}{get\+User\+Object\+Bindings} ()
\begin{DoxyCompactList}\small\item\em Return an instance of user objects binding associated with this class. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_user_object_bindings}{User\+Object\+Bindings} \& \hyperlink{class_ogre_1_1_pass_a1a272de4bac1f7ab74ad965217f163ec}{get\+User\+Object\+Bindings} () const
\begin{DoxyCompactList}\small\item\em Return an instance of user objects binding associated with this class. \end{DoxyCompactList}\item 
\hyperlink{group___general_gaf3fdba7211d7078a43201a1721532f9e}{Track\+Vertex\+Colour\+Type} \hyperlink{class_ogre_1_1_pass_a36f48ebbf2890d0744443f7da45acab7}{get\+Vertex\+Colour\+Tracking} (void) const
\begin{DoxyCompactList}\small\item\em Gets which material properties follow the vertex colour. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \& \hyperlink{class_ogre_1_1_pass_a9d00b9b7adf3c5b5f78aed3b100cc2ee}{get\+Vertex\+Program} (void) const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_pass_a1789ae3425e0bc04aeb7a1e14583abf9}{get\+Vertex\+Program\+Name} (void) const
\item 
\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \hyperlink{class_ogre_1_1_pass_ac0d16617c07bcfdc4f17e9ffed2f8591}{get\+Vertex\+Program\+Parameters} (void) const
\item 
bool \hyperlink{class_ogre_1_1_pass_ad1d50f9c7cd1b11646ec88f463f0a27f}{has\+Compute\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a programmable compute pipeline. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a85bffe16db4ccd90a26a257ded6e57c4}{has\+Fragment\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a programmable fragment pipeline. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a763b8993d64d234349ffa11932b912e0}{has\+Geometry\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a programmable geometry pipeline. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a50c2b23280ac2eca62b767ecebfa5888}{has\+Gpu\+Program} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} program\+Type) const
\item 
bool \hyperlink{class_ogre_1_1_pass_ab0e7ceb87f4b3dee78fbaaf8ba9e1ade}{has\+Separate\+Scene\+Blending} () const
\begin{DoxyCompactList}\small\item\em Return true if this pass uses separate scene blending. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a8d60b51feac29fa374465b4aa9ad9d8f}{has\+Separate\+Scene\+Blending\+Operations} () const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses separate scene blending operations. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_ae256023496cab7813ac4f0e4105eeb74}{has\+Shadow\+Caster\+Fragment\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a shadow caster fragment program. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a50c6d6fd2006b244a6f94b165d514311}{has\+Shadow\+Caster\+Vertex\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a shadow caster vertex program. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_ad8bc22ce3f99782a7bc7582d7a77dcb9}{has\+Shadow\+Receiver\+Fragment\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a shadow receiver fragment program. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a77250f25ba50f4352009b1805deb038d}{has\+Shadow\+Receiver\+Vertex\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a shadow receiver vertex program. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a7a1d67d993a4b3fdd0eb3719704947bb}{has\+Tessellation\+Domain\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a programmable tessellation control pipeline. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_af2643f7594c827d2f1b8785029de280f}{has\+Tessellation\+Hull\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a programmable tessellation control pipeline. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a61dd187f9201fcf102c26a02d8f85412}{has\+Vertex\+Program} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass uses a programmable vertex pipeline. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_ad7582011f85937446047a843896c8382}{is\+Alpha\+To\+Coverage\+Enabled} () const
\begin{DoxyCompactList}\small\item\em Gets whether to use alpha to coverage (A2C) when blending alpha rejected values. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a8ff736f5d1d0eb3e3caa23b1d7c79997}{is\+Ambient\+Only} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether this pass is ambient only. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a36390b119257048ddb35ab0439eed63d}{is\+Loaded} (void) const
\begin{DoxyCompactList}\small\item\em Is this loaded? \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_af5e358a5fd8a944c9845f8aee4ba54a6}{is\+Point\+Attenuation\+Enabled} (void) const
\begin{DoxyCompactList}\small\item\em Returns whether points are attenuated with distance. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a4a247aa90883ca1435fb949d191d6110}{is\+Programmable} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass is programmable i.\+e. includes either a vertex or fragment program. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_pass_a85a67b777d757d158c6cbc2b4f7ec76e}{is\+Transparent} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if this pass has some element of transparency. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_pass_af23f6b1ae56f9acdcb05f8cbcf0e9153}{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX} (m\+Tex\+Unit\+Change\+Mutex)
\item 
\hyperlink{class_ogre_1_1_pass_ab3af180b9759ea13e557003abc84e594}{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX} (m\+Gpu\+Program\+Change\+Mutex)
\item 
\hyperlink{class_ogre_1_1_pass_a10afa648bf34693a7b6c377e126da20f}{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX} (ms\+Dirty\+Hash\+List\+Mutex)
\item 
\hyperlink{class_ogre_1_1_pass_ab25733e77cd0b2f558d62e5a7ab7592e}{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX} (ms\+Pass\+Graveyard\+Mutex)
\item 
\hyperlink{class_ogre_1_1_pass}{Pass} \& \hyperlink{class_ogre_1_1_pass_a15bb76abae180b60dfcf9a6e1fdcd8fe}{operator=} (const \hyperlink{class_ogre_1_1_pass}{Pass} \&oth)
\begin{DoxyCompactList}\small\item\em Operator = overload. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aeb16b94de537bda3140df7095090cc10}{queue\+For\+Deletion} (void)
\begin{DoxyCompactList}\small\item\em Queue this pass for deletion when appropriate. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a86de1842654eb89c6f48785d02f07688}{remove\+All\+Texture\+Unit\+States} (void)
\begin{DoxyCompactList}\small\item\em Removes all texture unit settings. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a66085d80b0caa39850216b603cec40b1}{remove\+Texture\+Unit\+State} (unsigned short index)
\begin{DoxyCompactList}\small\item\em Removes the indexed texture unit state from this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a4f23af59e5f991f22a224f8e6b336af3}{set\+Alpha\+Reject\+Function} (\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} func)
\begin{DoxyCompactList}\small\item\em Sets the alpha reject function. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a9fe6fc3f542eade6b37d49cd0eadddde}{set\+Alpha\+Reject\+Settings} (\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} func, unsigned char value, bool alpha\+To\+Coverage\+Enabled=false)
\begin{DoxyCompactList}\small\item\em Sets the way the pass will have use alpha to totally reject pixels from the pipeline. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a6e5c5f69be78ddd80cbb202f66649fef}{set\+Alpha\+Reject\+Value} (unsigned char val)
\begin{DoxyCompactList}\small\item\em Gets the alpha reject value. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ae0a98973675e2cf71b286ceb9e73ecd3}{set\+Alpha\+To\+Coverage\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether to use alpha to coverage (A2C) when blending alpha rejected values. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aba057d0d19159c21b9a79485512b6f9d}{set\+Ambient} (float red, float green, float blue)
\begin{DoxyCompactList}\small\item\em Sets the ambient colour reflectance properties of this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_abdcffe5cb7cee6c8c5a5fd4c2f75164d}{set\+Ambient} (const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&ambient)
\item 
void \hyperlink{class_ogre_1_1_pass_a3bbe37daba7e3be4349177374d4e40ee}{set\+Colour\+Write\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not colour buffer writing is enabled for this Pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ae8c85bd4eff471ca7b3c710d20dbf274}{set\+Colour\+Write\+Enabled} (bool red, bool green, bool blue, bool alpha)
\begin{DoxyCompactList}\small\item\em Sets which colour buffer channels are enabled for writing for this \hyperlink{class_ogre_1_1_pass}{Pass}. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a97deab966da4653d248875782b45a3f1}{set\+Compute\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, bool reset\+Params=true)
\item 
void \hyperlink{class_ogre_1_1_pass_ad58bed2ac47d40e65750c61c0ca36af3}{set\+Compute\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\item 
void \hyperlink{class_ogre_1_1_pass_a8942abf3ede0f3cb43584c85c4071734}{set\+Culling\+Mode} (\hyperlink{group___general_gac173244ed7d950d0acd726e4f323ecdb}{Culling\+Mode} mode)
\begin{DoxyCompactList}\small\item\em Sets the culling mode for this pass based on the \textquotesingle{}vertex winding\textquotesingle{}. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aa35a3242a45176f8605bd8c866198b67}{set\+Depth\+Bias} (float constant\+Bias, float slope\+Scale\+Bias=0.\+0f)
\begin{DoxyCompactList}\small\item\em Sets the depth bias to be used for this material. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ae454faee87f8cb0b8540810e48118788}{set\+Depth\+Check\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not this pass renders with depth-\/buffer checking on or not. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aef6c591b069aa6f7c65afc1419d47de6}{set\+Depth\+Function} (\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} func)
\begin{DoxyCompactList}\small\item\em Sets the function used to compare depth values when depth checking is on. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aad3e6c7c7b59e2c303c348b4850b1a3a}{set\+Depth\+Write\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not this pass renders with depth-\/buffer writing on or not. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a823dd0856cf4d8bfa08abc3591c47c02}{set\+Diffuse} (float red, float green, float blue, float alpha)
\begin{DoxyCompactList}\small\item\em Sets the diffuse colour reflectance properties of this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a67e3cb12113b4fc56b8d3d4cee03068a}{set\+Diffuse} (const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&diffuse)
\item 
void \hyperlink{class_ogre_1_1_pass_ae3ad6543e0c24eb7f12b00f46e7124d8}{set\+Emissive} (float red, float green, float blue)
\begin{DoxyCompactList}\small\item\em Sets the amount of self-\/illumination an object has. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ae5653eb7430051fc4a81aa577c031186}{set\+Emissive} (const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&emissive)
\item 
void \hyperlink{class_ogre_1_1_pass_a32b0cabffa642b0f3743ac5d82392a1d}{set\+Fog} (bool override\+Scene, \hyperlink{group___general_ga83edeb2e5d33a3ca8f15834ba40020ba}{Fog\+Mode} mode=\hyperlink{group___general_gga83edeb2e5d33a3ca8f15834ba40020baab7793a21880052c0214d4cc040992310}{F\+O\+G\+\_\+\+N\+O\+NE}, const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&colour=\hyperlink{class_ogre_1_1_colour_value_a8eba66b2908f44f00f8d9c9ec25877de}{Colour\+Value\+::\+White}, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} exp\+Density=0.\+001, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} linear\+Start=0.\+0, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} linear\+End=1.\+0)
\begin{DoxyCompactList}\small\item\em Sets the fogging mode applied to this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a3019e308b0759cc150ac0f45308d69b3}{set\+Fragment\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, bool reset\+Params=true)
\item 
void \hyperlink{class_ogre_1_1_pass_ae8c6cd9d16220e8ef358f8b3e072d261}{set\+Fragment\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\item 
void \hyperlink{class_ogre_1_1_pass_af6b2aab96fb146a8e92043c7dc771de4}{set\+Geometry\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, bool reset\+Params=true)
\item 
void \hyperlink{class_ogre_1_1_pass_afd45b897ebc29d3ee40a2ee307682f35}{set\+Geometry\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\item 
void \hyperlink{class_ogre_1_1_pass_a3d4978eca2f3387a7abec740ec760ad7}{set\+Gpu\+Program} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} type, const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \&prog, bool reset\+Params=true)
\begin{DoxyCompactList}\small\item\em Sets the details of the program to use. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_abee48df0d246eb685780d16b32b7f8f4}{set\+Gpu\+Program} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} type, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, bool reset\+Params=true)
\begin{DoxyCompactList}\small\item\em This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a5e78606a7cd3ea84536ab9f3198fa79f}{set\+Gpu\+Program\+Parameters} (\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type} type, const \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \&params)
\begin{DoxyCompactList}\small\item\em Sets the Gpu program parameters. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a30d680bb28cd69415883313d9f03dc6a}{set\+Illumination\+Stage} (\hyperlink{group___materials_ga12a2bc4c75c439630241aa279089acb4}{Illumination\+Stage} is)
\begin{DoxyCompactList}\small\item\em Manually set which illumination stage this pass is a member of. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aec98c9346a22a4a98acdaf5b8849a5c1}{set\+Iterate\+Per\+Light} (bool enabled, bool only\+For\+One\+Light\+Type=true, \hyperlink{class_ogre_1_1_light_a4f1dea084d1497c6f49e802ade940dbc}{Light\+::\+Light\+Types} light\+Type=\hyperlink{class_ogre_1_1_light_a4f1dea084d1497c6f49e802ade940dbca0d59bfdcfeb338dbfe06e2e2999e752f}{Light\+::\+L\+T\+\_\+\+P\+O\+I\+NT})
\begin{DoxyCompactList}\small\item\em Sets whether or not this pass should iterate per light or number of lights which can affect the object being rendered. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aca462cd8e0708d90c3131ddd39e95674}{set\+Iteration\+Depth\+Bias} (float bias\+Per\+Iteration)
\begin{DoxyCompactList}\small\item\em Sets a factor which derives an additional depth bias from the number of times a pass is iterated. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a20d94474787abfd9eb9b07d5185ded0c}{set\+Light\+Clip\+Planes\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not this pass will be clipped by user clips planes bounding the area covered by the light. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a0e40ca39a238f0afe5e2d3a0db0661ce}{set\+Light\+Count\+Per\+Iteration} (unsigned short c)
\begin{DoxyCompactList}\small\item\em If light iteration is enabled, determine the number of lights per iteration. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}{set\+Lighting\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not dynamic lighting is enabled. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a9f14ed26740158970994057e48e562e9}{set\+Light\+Mask} (\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} mask)
\begin{DoxyCompactList}\small\item\em Sets the light mask which can be matched to specific light flags to be handled by this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a26fe99447102afb8e2002f7f1339dd8c}{set\+Light\+Scissoring\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ab63508d99fef116d0df14c080e0e1129}{set\+Line\+Width} (float width)
\begin{DoxyCompactList}\small\item\em set the line width for this pass \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a3b528827b54f17b72bb204321640a6f7}{set\+Manual\+Culling\+Mode} (\hyperlink{group___general_ga07ec94cf178172a6778223e6f70f23fc}{Manual\+Culling\+Mode} mode)
\begin{DoxyCompactList}\small\item\em Sets the manual culling mode, performed by C\+PU rather than hardware. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a95a7a4006f26528ef4f6ce42ae56b09b}{set\+Max\+Simultaneous\+Lights} (unsigned short max\+Lights)
\begin{DoxyCompactList}\small\item\em Sets the maximum number of lights to be used by this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a03306f735122ec4e7d4c391f1528cf50}{set\+Name} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Set the name of the pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ad00b9d37cf0d5d7af26d23a2a48f5541}{set\+Normalise\+Normals} (bool normalise)
\begin{DoxyCompactList}\small\item\em If set to true, this forces normals to be normalised dynamically by the hardware for this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a28ff8c16ee57201651da61e649ea216b}{set\+Pass\+Iteration\+Count} (const size\+\_\+t count)
\begin{DoxyCompactList}\small\item\em set the number of iterations that this pass should perform when doing fast multi pass operation. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a0d44f9c4a2e69fd31a4687ffe2b8335d}{set\+Point\+Attenuation} (bool enabled, \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} constant=0.\+0f, Real linear=1.\+0f, Real quadratic=0.\+0f)
\begin{DoxyCompactList}\small\item\em Sets how points are attenuated with distance. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a463b59eaa324934370441a98b8b619b3}{set\+Point\+Max\+Size} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} max)
\begin{DoxyCompactList}\small\item\em Set the maximum point size, when point attenuation is in use. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a75a3e18e0d2c3e7f51a47cedcec0246c}{set\+Point\+Min\+Size} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} min)
\begin{DoxyCompactList}\small\item\em Set the minimum point size, when point attenuation is in use. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a2b0cfe1d55b1c03e59c4e3f546d2ec78}{set\+Point\+Size} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} ps)
\begin{DoxyCompactList}\small\item\em Sets the point size of this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a9683c2f40ed7c96b708eb2db5e02c842}{set\+Point\+Sprites\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether points will be rendered as textured quads or plain dots. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a61d996b43e57fa45e660b23013855fe2}{set\+Polygon\+Mode} (\hyperlink{group___general_ga68866b02aa7f99e3431337511fbb3345}{Polygon\+Mode} mode)
\begin{DoxyCompactList}\small\item\em Sets the type of polygon rendering required. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ad681df78f0e0c61e1bc166e3ec85170f}{set\+Polygon\+Mode\+Overrideable} (bool override)
\begin{DoxyCompactList}\small\item\em Sets whether the Polygon\+Mode set on this pass can be downgraded by the camera. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ae21d6f29c89eeff54ab6de5562818c02}{set\+Scene\+Blending} (const \hyperlink{group___materials_gac46c60cf6e5c199220e3b8f26570cb9a}{Scene\+Blend\+Type} sbt)
\begin{DoxyCompactList}\small\item\em Sets the kind of blending this pass has with the existing contents of the scene. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a6ae2b0725a20fe90f1554834bafa7178}{set\+Scene\+Blending} (const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} source\+Factor, const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} dest\+Factor)
\begin{DoxyCompactList}\small\item\em Allows very fine control of blending this \hyperlink{class_ogre_1_1_pass}{Pass} with the existing contents of the scene. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a9ae2570082185c2b6e237a2d46f9bb60}{set\+Scene\+Blending\+Operation} (\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} op)
\begin{DoxyCompactList}\small\item\em Sets the specific operation used to blend source and destination pixels together. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a93c36ae948d9e0357c11adb0ce6d5859}{set\+Self\+Illumination} (float red, float green, float blue)
\begin{DoxyCompactList}\small\item\em Sets the amount of self-\/illumination an object has. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a4ed49cbeb67725747cb25376ca67c2bb}{set\+Self\+Illumination} (const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&self\+Illum)
\item 
void \hyperlink{class_ogre_1_1_pass_aefbd80d762d78838df626482df1ac81b}{set\+Separate\+Scene\+Blending} (const \hyperlink{group___materials_gac46c60cf6e5c199220e3b8f26570cb9a}{Scene\+Blend\+Type} sbt, const \hyperlink{group___materials_gac46c60cf6e5c199220e3b8f26570cb9a}{Scene\+Blend\+Type} sbta)
\begin{DoxyCompactList}\small\item\em Sets the kind of blending this pass has with the existing contents of the scene, separately for color and alpha channels. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aa4bba51e9a0cba1b9708bab99496c1a8}{set\+Separate\+Scene\+Blending} (const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} source\+Factor, const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} dest\+Factor, const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} source\+Factor\+Alpha, const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} dest\+Factor\+Alpha)
\begin{DoxyCompactList}\small\item\em Allows very fine control of blending this \hyperlink{class_ogre_1_1_pass}{Pass} with the existing contents of the scene. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ace4313056341502f87ada68638cae334}{set\+Separate\+Scene\+Blending\+Operation} (\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} op, \hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} alpha\+Op)
\begin{DoxyCompactList}\small\item\em Sets the specific operation used to blend source and destination pixels together. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_ade6c00297cd5d46bb365d981cd1764a6}{set\+Shading\+Mode} (\hyperlink{group___general_ga7afd4c7d428baaee13f3a0dbcae5f560}{Shade\+Options} mode)
\begin{DoxyCompactList}\small\item\em Sets the type of light shading required. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aae19f94be0da24a4b813e5849ecc4fc2}{set\+Shadow\+Caster\+Fragment\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Sets the details of the fragment program to use when rendering as a shadow caster. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a4dfd71fa6c43cdf5c6f3613fdee1a17d}{set\+Shadow\+Caster\+Fragment\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\begin{DoxyCompactList}\small\item\em Sets the fragment program parameters for rendering as a shadow caster. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a6d208f945dbfc60cac0cc4502a8eb3dc}{set\+Shadow\+Caster\+Vertex\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Sets the details of the vertex program to use when rendering as a shadow caster. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a585dc96fdf025aaef00dce27bbf1328b}{set\+Shadow\+Caster\+Vertex\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\begin{DoxyCompactList}\small\item\em Sets the vertex program parameters for rendering as a shadow caster. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_af674d2851440589007add4a41d9e92f3}{set\+Shadow\+Receiver\+Fragment\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em This method allows you to specify a fragment program for use when rendering a texture shadow receiver. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a873f11315e573b7c069f59e822492874}{set\+Shadow\+Receiver\+Fragment\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\begin{DoxyCompactList}\small\item\em Sets the fragment program parameters for rendering as a shadow receiver. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a8be472bada8c2fdaac24fd0349f11964}{set\+Shadow\+Receiver\+Vertex\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name)
\begin{DoxyCompactList}\small\item\em Sets the details of the vertex program to use when rendering as a shadow receiver. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aae8406edd157f8b8b2b1236bbe816f4f}{set\+Shadow\+Receiver\+Vertex\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\begin{DoxyCompactList}\small\item\em Sets the vertex program parameters for rendering as a shadow receiver. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a8202cf155d20602fd9c0ec53273a442f}{set\+Shininess} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} val)
\begin{DoxyCompactList}\small\item\em Sets the shininess of the pass, affecting the size of specular highlights. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a4e47ea4922d6da5b58eb9879f7e9da09}{set\+Specular} (float red, float green, float blue, float alpha)
\begin{DoxyCompactList}\small\item\em Sets the specular colour reflectance properties of this pass. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a66770883c6420a761996a29b9d5f57bc}{set\+Specular} (const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&specular)
\item 
void \hyperlink{class_ogre_1_1_pass_a8b816cdd2b5b5fcc5cbe6744b6bb2dbd}{set\+Start\+Light} (unsigned short start\+Light)
\begin{DoxyCompactList}\small\item\em Sets the light index that this pass will start at in the light list. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a5adb72e47427f59f672e43b709c68038}{set\+Tessellation\+Domain\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, bool reset\+Params=true)
\item 
void \hyperlink{class_ogre_1_1_pass_ae4f6e70258ca9a870e3b0867792000e6}{set\+Tessellation\+Domain\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\item 
void \hyperlink{class_ogre_1_1_pass_a6821e86c7c287fabcd28344117f772d0}{set\+Tessellation\+Hull\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, bool reset\+Params=true)
\item 
void \hyperlink{class_ogre_1_1_pass_a11e6148122bd80d646f75364bbc3cbe0}{set\+Tessellation\+Hull\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\item 
void \hyperlink{class_ogre_1_1_pass_a388afa054c642dd6b0585fd168cd7b1a}{set\+Texture\+Anisotropy} (unsigned int max\+Aniso)
\begin{DoxyCompactList}\small\item\em Sets the anisotropy level to be used for all textures. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a5abbb49b669a575991c17bb67bcae975}{set\+Texture\+Filtering} (\hyperlink{group___general_ga21a0186392e9c9ce16d29c5568a773c5}{Texture\+Filter\+Options} filter\+Type)
\begin{DoxyCompactList}\small\item\em Set texture filtering for every texture unit. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a2b99af55835117cfd4c479ab6c3a2ae5}{set\+Transparent\+Sorting\+Enabled} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not transparent sorting is enabled. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_adc75fe5011be72c0597535cb37d75d57}{set\+Transparent\+Sorting\+Forced} (bool enabled)
\begin{DoxyCompactList}\small\item\em Sets whether or not transparent sorting is forced. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_a30b32d92dd9d316ff9650affd08d16a2}{set\+Vertex\+Colour\+Tracking} (\hyperlink{group___general_gaf3fdba7211d7078a43201a1721532f9e}{Track\+Vertex\+Colour\+Type} tracking)
\begin{DoxyCompactList}\small\item\em Sets which material properties follow the vertex colour. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_pass_aba0003996c1c200db9fb6466a2253a54}{set\+Vertex\+Program} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, bool reset\+Params=true)
\item 
void \hyperlink{class_ogre_1_1_pass_afc41cb1fe9251448002a2405405b8bd9}{set\+Vertex\+Program\+Parameters} (\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} params)
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{class_ogre_1_1_pass_af1992ef39ef97e0b48e878c9aaa2badd}{clear\+Dirty\+Hash\+List} (void)
\begin{DoxyCompactList}\small\item\em Static method to reset the list of passes which need their hash values recalculated. \end{DoxyCompactList}\item 
static \hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func} $\ast$ \hyperlink{class_ogre_1_1_pass_ac2e11c662982c9ce7f2e08a71bc20167}{get\+Builtin\+Hash\+Function} (\hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}{Builtin\+Hash\+Function} builtin)
\begin{DoxyCompactList}\small\item\em Get the builtin hash function. \end{DoxyCompactList}\item 
static const \hyperlink{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}{Pass\+Set} \& \hyperlink{class_ogre_1_1_pass_a5e656ed906b7378c5c74d338575c3f58}{get\+Dirty\+Hash\+List} (void)
\begin{DoxyCompactList}\small\item\em Static method to retrieve all the Passes which need their hash values recalculated. \end{DoxyCompactList}\item 
static \hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func} $\ast$ \hyperlink{class_ogre_1_1_pass_aedf90d0436441d359280b3c939ee1e3c}{get\+Hash\+Function} (void)
\begin{DoxyCompactList}\small\item\em Get the hash function used for all passes. \end{DoxyCompactList}\item 
static const \hyperlink{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}{Pass\+Set} \& \hyperlink{class_ogre_1_1_pass_a8ae403e739ce7fe033bc88ae943135e4}{get\+Pass\+Graveyard} (void)
\begin{DoxyCompactList}\small\item\em Static method to retrieve all the Passes which are pending deletion. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_pass_a989043a45609fd8f82235c3d1c402a23}{process\+Pending\+Pass\+Updates} (void)
\begin{DoxyCompactList}\small\item\em Process all dirty and pending deletion passes. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_pass_a686d4ade1581fba7b32609bc535ad9fc}{set\+Hash\+Function} (\hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}{Builtin\+Hash\+Function} builtin)
\begin{DoxyCompactList}\small\item\em Sets one of the default hash functions to be used. \end{DoxyCompactList}\item 
static void \hyperlink{class_ogre_1_1_pass_aff774d55b700af010f57e2330101a610}{set\+Hash\+Function} (\hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func} $\ast$hash\+Func)
\begin{DoxyCompactList}\small\item\em Set the hash function used for all passes. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Class defining a single pass of a \hyperlink{class_ogre_1_1_technique}{Technique} (of a \hyperlink{class_ogre_1_1_material}{Material}), i.\+e. 

a single rendering call. \begin{DoxyRemark}{Remarks}
Rendering can be repeated with many passes for more complex effects. Each pass is either a fixed-\/function pass (meaning it does not use a vertex or fragment program) or a programmable pass (meaning it does use either a vertex and fragment program, or both). 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Programmable passes are complex to define, because they require custom programs and you have to set all constant inputs to the programs (like the position of lights, any base material colours you wish to use etc), but they do give you much total flexibility over the algorithms used to render your pass, and you can create some effects which are impossible with a fixed-\/function pass. On the other hand, you can define a fixed-\/function pass in very little time, and you can use a range of fixed-\/function effects like environment mapping very easily, plus your pass will be more likely to be compatible with older hardware. There are pros and cons to both, just remember that if you use a programmable pass to create some great effects, allow more time for definition and testing. 
\end{DoxyParagraph}


\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}\label{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!Texture\+Unit\+States@{Texture\+Unit\+States}}
\index{Texture\+Unit\+States@{Texture\+Unit\+States}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{Texture\+Unit\+States}{TextureUnitStates}}
{\footnotesize\ttfamily typedef std\+::vector$<$\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State}$\ast$$>$ \hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Ogre\+::\+Pass\+::\+Texture\+Unit\+States}}

\mbox{\Hypertarget{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}\label{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!Pass\+Set@{Pass\+Set}}
\index{Pass\+Set@{Pass\+Set}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{Pass\+Set}{PassSet}}
{\footnotesize\ttfamily typedef std\+::set$<$\hyperlink{class_ogre_1_1_pass}{Pass}$\ast$$>$ \hyperlink{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}{Ogre\+::\+Pass\+::\+Pass\+Set}}

\mbox{\Hypertarget{class_ogre_1_1_pass_ac7bc2b00e42ad2699a1e2a1de340d3b4}\label{class_ogre_1_1_pass_ac7bc2b00e42ad2699a1e2a1de340d3b4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!Texture\+Unit\+State\+Iterator@{Texture\+Unit\+State\+Iterator}}
\index{Texture\+Unit\+State\+Iterator@{Texture\+Unit\+State\+Iterator}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{Texture\+Unit\+State\+Iterator}{TextureUnitStateIterator}}
{\footnotesize\ttfamily typedef \hyperlink{class_ogre_1_1_vector_iterator}{Vector\+Iterator}$<$\hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Texture\+Unit\+States}$>$ \hyperlink{class_ogre_1_1_pass_ac7bc2b00e42ad2699a1e2a1de340d3b4}{Ogre\+::\+Pass\+::\+Texture\+Unit\+State\+Iterator}}

\mbox{\Hypertarget{class_ogre_1_1_pass_a98b42a4f4304f3f2d08fb9394cbefe83}\label{class_ogre_1_1_pass_a98b42a4f4304f3f2d08fb9394cbefe83}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!Const\+Texture\+Unit\+State\+Iterator@{Const\+Texture\+Unit\+State\+Iterator}}
\index{Const\+Texture\+Unit\+State\+Iterator@{Const\+Texture\+Unit\+State\+Iterator}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{Const\+Texture\+Unit\+State\+Iterator}{ConstTextureUnitStateIterator}}
{\footnotesize\ttfamily typedef \hyperlink{class_ogre_1_1_const_vector_iterator}{Const\+Vector\+Iterator}$<$\hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Texture\+Unit\+States}$>$ \hyperlink{class_ogre_1_1_pass_a98b42a4f4304f3f2d08fb9394cbefe83}{Ogre\+::\+Pass\+::\+Const\+Texture\+Unit\+State\+Iterator}}



\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}\label{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!Builtin\+Hash\+Function@{Builtin\+Hash\+Function}}
\index{Builtin\+Hash\+Function@{Builtin\+Hash\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{Builtin\+Hash\+Function}{BuiltinHashFunction}}
{\footnotesize\ttfamily enum \hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}{Ogre\+::\+Pass\+::\+Builtin\+Hash\+Function}}



There are some default hash functions used to order passes so that render state changes are minimised, this enumerates them. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{M\+I\+N\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+C\+H\+A\+N\+GE@{M\+I\+N\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+C\+H\+A\+N\+GE}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!M\+I\+N\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+C\+H\+A\+N\+GE@{M\+I\+N\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+C\+H\+A\+N\+GE}}}\mbox{\Hypertarget{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4aab72a14d25f118c99dd6e9d40953ca46}\label{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4aab72a14d25f118c99dd6e9d40953ca46}} 
M\+I\+N\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+C\+H\+A\+N\+GE&Try to minimise the number of texture changes. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE@{M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE@{M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE}}}\mbox{\Hypertarget{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4a281f843d23df9554e590a19d1a3987e3}\label{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4a281f843d23df9554e590a19d1a3987e3}} 
M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE&Try to minimise the number of G\+PU program changes. \begin{DoxyNote}{Note}
Only really useful if you use G\+PU programs for all of your materials. 
\end{DoxyNote}
\\
\hline

\end{DoxyEnumFields}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_pass_a7f36f2c48b62fd29b2abdee4425d6a2c}\label{class_ogre_1_1_pass_a7f36f2c48b62fd29b2abdee4425d6a2c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!Pass@{Pass}}
\index{Pass@{Pass}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{Pass()}{Pass()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+Pass\+::\+Pass (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$}]{parent,  }\item[{unsigned short}]{index }\end{DoxyParamCaption})}



Default constructor. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a2af67ca21bb1a91d6c228db8207384fc}\label{class_ogre_1_1_pass_a2af67ca21bb1a91d6c228db8207384fc}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!Pass@{Pass}}
\index{Pass@{Pass}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{Pass()}{Pass()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Pass\+::\+Pass (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$}]{parent,  }\item[{unsigned short}]{index,  }\item[{const \hyperlink{class_ogre_1_1_pass}{Pass} \&}]{oth }\end{DoxyParamCaption})}



Copy constructor. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a939fc6e2a02a7d753c84ec11219e97da}\label{class_ogre_1_1_pass_a939fc6e2a02a7d753c84ec11219e97da}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!````~Pass@{$\sim$\+Pass}}
\index{````~Pass@{$\sim$\+Pass}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{$\sim$\+Pass()}{~Pass()}}
{\footnotesize\ttfamily Ogre\+::\+Pass\+::$\sim$\+Pass (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_pass_a10afa648bf34693a7b6c377e126da20f}\label{class_ogre_1_1_pass_a10afa648bf34693a7b6c377e126da20f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX}}
\index{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+E\+X()}{OGRE\_STATIC\_MUTEX()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+Pass\+::\+O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX (\begin{DoxyParamCaption}\item[{ms\+Dirty\+Hash\+List\+Mutex}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_pass_ab25733e77cd0b2f558d62e5a7ab7592e}\label{class_ogre_1_1_pass_ab25733e77cd0b2f558d62e5a7ab7592e}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX}}
\index{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+E\+X()}{OGRE\_STATIC\_MUTEX()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Pass\+::\+O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX (\begin{DoxyParamCaption}\item[{ms\+Pass\+Graveyard\+Mutex}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_pass_af23f6b1ae56f9acdcb05f8cbcf0e9153}\label{class_ogre_1_1_pass_af23f6b1ae56f9acdcb05f8cbcf0e9153}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!O\+G\+R\+E\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX}}
\index{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{O\+G\+R\+E\+\_\+\+M\+U\+T\+E\+X()}{OGRE\_MUTEX()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Ogre\+::\+Pass\+::\+O\+G\+R\+E\+\_\+\+M\+U\+T\+EX (\begin{DoxyParamCaption}\item[{m\+Tex\+Unit\+Change\+Mutex}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_pass_ab3af180b9759ea13e557003abc84e594}\label{class_ogre_1_1_pass_ab3af180b9759ea13e557003abc84e594}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!O\+G\+R\+E\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX}}
\index{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX@{O\+G\+R\+E\+\_\+\+M\+U\+T\+EX}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{O\+G\+R\+E\+\_\+\+M\+U\+T\+E\+X()}{OGRE\_MUTEX()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Ogre\+::\+Pass\+::\+O\+G\+R\+E\+\_\+\+M\+U\+T\+EX (\begin{DoxyParamCaption}\item[{m\+Gpu\+Program\+Change\+Mutex}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_pass_a15bb76abae180b60dfcf9a6e1fdcd8fe}\label{class_ogre_1_1_pass_a15bb76abae180b60dfcf9a6e1fdcd8fe}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!operator=@{operator=}}
\index{operator=@{operator=}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{operator=()}{operator=()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_pass}{Pass}\& Ogre\+::\+Pass\+::operator= (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_pass}{Pass} \&}]{oth }\end{DoxyParamCaption})}



Operator = overload. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a4a247aa90883ca1435fb949d191d6110}\label{class_ogre_1_1_pass_a4a247aa90883ca1435fb949d191d6110}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!is\+Programmable@{is\+Programmable}}
\index{is\+Programmable@{is\+Programmable}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{is\+Programmable()}{isProgrammable()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::is\+Programmable (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass is programmable i.\+e. includes either a vertex or fragment program. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a61dd187f9201fcf102c26a02d8f85412}\label{class_ogre_1_1_pass_a61dd187f9201fcf102c26a02d8f85412}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Vertex\+Program@{has\+Vertex\+Program}}
\index{has\+Vertex\+Program@{has\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Vertex\+Program()}{hasVertexProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Vertex\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a programmable vertex pipeline. 



References Ogre\+::\+G\+P\+T\+\_\+\+V\+E\+R\+T\+E\+X\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_a85bffe16db4ccd90a26a257ded6e57c4}\label{class_ogre_1_1_pass_a85bffe16db4ccd90a26a257ded6e57c4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Fragment\+Program@{has\+Fragment\+Program}}
\index{has\+Fragment\+Program@{has\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Fragment\+Program()}{hasFragmentProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Fragment\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a programmable fragment pipeline. 



References Ogre\+::\+G\+P\+T\+\_\+\+F\+R\+A\+G\+M\+E\+N\+T\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_a763b8993d64d234349ffa11932b912e0}\label{class_ogre_1_1_pass_a763b8993d64d234349ffa11932b912e0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Geometry\+Program@{has\+Geometry\+Program}}
\index{has\+Geometry\+Program@{has\+Geometry\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Geometry\+Program()}{hasGeometryProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Geometry\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a programmable geometry pipeline. 



References Ogre\+::\+G\+P\+T\+\_\+\+G\+E\+O\+M\+E\+T\+R\+Y\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_af2643f7594c827d2f1b8785029de280f}\label{class_ogre_1_1_pass_af2643f7594c827d2f1b8785029de280f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Tessellation\+Hull\+Program@{has\+Tessellation\+Hull\+Program}}
\index{has\+Tessellation\+Hull\+Program@{has\+Tessellation\+Hull\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Tessellation\+Hull\+Program()}{hasTessellationHullProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Tessellation\+Hull\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a programmable tessellation control pipeline. 



References Ogre\+::\+G\+P\+T\+\_\+\+H\+U\+L\+L\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_a7a1d67d993a4b3fdd0eb3719704947bb}\label{class_ogre_1_1_pass_a7a1d67d993a4b3fdd0eb3719704947bb}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Tessellation\+Domain\+Program@{has\+Tessellation\+Domain\+Program}}
\index{has\+Tessellation\+Domain\+Program@{has\+Tessellation\+Domain\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Tessellation\+Domain\+Program()}{hasTessellationDomainProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Tessellation\+Domain\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a programmable tessellation control pipeline. 



References Ogre\+::\+G\+P\+T\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_ad1d50f9c7cd1b11646ec88f463f0a27f}\label{class_ogre_1_1_pass_ad1d50f9c7cd1b11646ec88f463f0a27f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Compute\+Program@{has\+Compute\+Program}}
\index{has\+Compute\+Program@{has\+Compute\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Compute\+Program()}{hasComputeProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Compute\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a programmable compute pipeline. 



References Ogre\+::\+G\+P\+T\+\_\+\+C\+O\+M\+P\+U\+T\+E\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_a50c6d6fd2006b244a6f94b165d514311}\label{class_ogre_1_1_pass_a50c6d6fd2006b244a6f94b165d514311}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Shadow\+Caster\+Vertex\+Program@{has\+Shadow\+Caster\+Vertex\+Program}}
\index{has\+Shadow\+Caster\+Vertex\+Program@{has\+Shadow\+Caster\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Shadow\+Caster\+Vertex\+Program()}{hasShadowCasterVertexProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Shadow\+Caster\+Vertex\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a shadow caster vertex program. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ae256023496cab7813ac4f0e4105eeb74}\label{class_ogre_1_1_pass_ae256023496cab7813ac4f0e4105eeb74}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Shadow\+Caster\+Fragment\+Program@{has\+Shadow\+Caster\+Fragment\+Program}}
\index{has\+Shadow\+Caster\+Fragment\+Program@{has\+Shadow\+Caster\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Shadow\+Caster\+Fragment\+Program()}{hasShadowCasterFragmentProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Shadow\+Caster\+Fragment\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a shadow caster fragment program. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a77250f25ba50f4352009b1805deb038d}\label{class_ogre_1_1_pass_a77250f25ba50f4352009b1805deb038d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Shadow\+Receiver\+Vertex\+Program@{has\+Shadow\+Receiver\+Vertex\+Program}}
\index{has\+Shadow\+Receiver\+Vertex\+Program@{has\+Shadow\+Receiver\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Shadow\+Receiver\+Vertex\+Program()}{hasShadowReceiverVertexProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Shadow\+Receiver\+Vertex\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a shadow receiver vertex program. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ad8bc22ce3f99782a7bc7582d7a77dcb9}\label{class_ogre_1_1_pass_ad8bc22ce3f99782a7bc7582d7a77dcb9}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Shadow\+Receiver\+Fragment\+Program@{has\+Shadow\+Receiver\+Fragment\+Program}}
\index{has\+Shadow\+Receiver\+Fragment\+Program@{has\+Shadow\+Receiver\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Shadow\+Receiver\+Fragment\+Program()}{hasShadowReceiverFragmentProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Shadow\+Receiver\+Fragment\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass uses a shadow receiver fragment program. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a76e0c135dbcacf5d12cc78a15452c7dc}\label{class_ogre_1_1_pass_a76e0c135dbcacf5d12cc78a15452c7dc}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!calculate\+Size@{calculate\+Size}}
\index{calculate\+Size@{calculate\+Size}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{calculate\+Size()}{calculateSize()}}
{\footnotesize\ttfamily size\+\_\+t Ogre\+::\+Pass\+::calculate\+Size (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_pass_afb3b4e8c3d0058a43cd2b855fc22199c}\label{class_ogre_1_1_pass_afb3b4e8c3d0058a43cd2b855fc22199c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Index@{get\+Index}}
\index{get\+Index@{get\+Index}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Index()}{getIndex()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Pass\+::get\+Index (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the index of this \hyperlink{class_ogre_1_1_pass}{Pass} in the parent \hyperlink{class_ogre_1_1_technique}{Technique}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a03306f735122ec4e7d4c391f1528cf50}\label{class_ogre_1_1_pass_a03306f735122ec4e7d4c391f1528cf50}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Name@{set\+Name}}
\index{set\+Name@{set\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Name()}{setName()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Name (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



Set the name of the pass. 

\begin{DoxyRemark}{Remarks}
The name of the pass is optional. Its useful in material scripts where a material could inherit from another material and only want to modify a particular pass. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a242acbbf397d9db273dcb42d9e4a653c}\label{class_ogre_1_1_pass_a242acbbf397d9db273dcb42d9e4a653c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Name()}{getName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the name of the pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aba057d0d19159c21b9a79485512b6f9d}\label{class_ogre_1_1_pass_aba057d0d19159c21b9a79485512b6f9d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Ambient@{set\+Ambient}}
\index{set\+Ambient@{set\+Ambient}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Ambient()}{setAmbient()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Ambient (\begin{DoxyParamCaption}\item[{float}]{red,  }\item[{float}]{green,  }\item[{float}]{blue }\end{DoxyParamCaption})}



Sets the ambient colour reflectance properties of this pass. 

This property determines how much ambient light (directionless global light) is reflected. The default is full white, meaning objects are completely globally illuminated. Reduce this if you want to see diffuse or specular light effects, or change the blend of colours to make the object have a base colour other than white.

It is also possible to make the ambient reflectance track the vertex colour as defined in the mesh instead of the colour values. \begin{DoxyNote}{Note}
This setting has no effect if dynamic lighting is disabled (see \hyperlink{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}{Ogre\+::\+Pass\+::set\+Lighting\+Enabled}), or, if any texture layer has a \hyperlink{group___materials_ggabcbb38d1ac195e4be401f85b7ab0da8fa870cf51ff1ccd919cf710bcb3b4e6432}{Ogre\+::\+L\+B\+O\+\_\+\+R\+E\+P\+L\+A\+CE} attribute. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_abdcffe5cb7cee6c8c5a5fd4c2f75164d}\label{class_ogre_1_1_pass_abdcffe5cb7cee6c8c5a5fd4c2f75164d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Ambient@{set\+Ambient}}
\index{set\+Ambient@{set\+Ambient}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Ambient()}{setAmbient()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Ambient (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{ambient }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a823dd0856cf4d8bfa08abc3591c47c02}\label{class_ogre_1_1_pass_a823dd0856cf4d8bfa08abc3591c47c02}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Diffuse@{set\+Diffuse}}
\index{set\+Diffuse@{set\+Diffuse}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Diffuse()}{setDiffuse()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Diffuse (\begin{DoxyParamCaption}\item[{float}]{red,  }\item[{float}]{green,  }\item[{float}]{blue,  }\item[{float}]{alpha }\end{DoxyParamCaption})}



Sets the diffuse colour reflectance properties of this pass. 

This property determines how much diffuse light (light from instances of the \hyperlink{class_ogre_1_1_light}{Light} class in the scene) is reflected. The default is full white, meaning objects reflect the maximum white light they can from \hyperlink{class_ogre_1_1_light}{Light} objects.

It is also possible to make the diffuse reflectance track the vertex colour as defined in the mesh instead of the colour values. \begin{DoxyNote}{Note}
This setting has no effect if dynamic lighting is disabled (see \hyperlink{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}{Ogre\+::\+Pass\+::set\+Lighting\+Enabled}), or, if any texture layer has a \hyperlink{group___materials_ggabcbb38d1ac195e4be401f85b7ab0da8fa870cf51ff1ccd919cf710bcb3b4e6432}{Ogre\+::\+L\+B\+O\+\_\+\+R\+E\+P\+L\+A\+CE} attribute. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a67e3cb12113b4fc56b8d3d4cee03068a}\label{class_ogre_1_1_pass_a67e3cb12113b4fc56b8d3d4cee03068a}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Diffuse@{set\+Diffuse}}
\index{set\+Diffuse@{set\+Diffuse}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Diffuse()}{setDiffuse()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Diffuse (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{diffuse }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a4e47ea4922d6da5b58eb9879f7e9da09}\label{class_ogre_1_1_pass_a4e47ea4922d6da5b58eb9879f7e9da09}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Specular@{set\+Specular}}
\index{set\+Specular@{set\+Specular}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Specular()}{setSpecular()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Specular (\begin{DoxyParamCaption}\item[{float}]{red,  }\item[{float}]{green,  }\item[{float}]{blue,  }\item[{float}]{alpha }\end{DoxyParamCaption})}



Sets the specular colour reflectance properties of this pass. 

This property determines how much specular light (highlights from instances of the \hyperlink{class_ogre_1_1_light}{Light} class in the scene) is reflected. The default is to reflect no specular light.

It is also possible to make the specular reflectance track the vertex colour as defined in the mesh instead of the colour values. \begin{DoxyNote}{Note}
The size of the specular highlights is determined by the separate \textquotesingle{}shininess\textquotesingle{} property. 

This setting has no effect if dynamic lighting is disabled (see \hyperlink{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}{Ogre\+::\+Pass\+::set\+Lighting\+Enabled}), or, if any texture layer has a \hyperlink{group___materials_ggabcbb38d1ac195e4be401f85b7ab0da8fa870cf51ff1ccd919cf710bcb3b4e6432}{Ogre\+::\+L\+B\+O\+\_\+\+R\+E\+P\+L\+A\+CE} attribute. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a66770883c6420a761996a29b9d5f57bc}\label{class_ogre_1_1_pass_a66770883c6420a761996a29b9d5f57bc}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Specular@{set\+Specular}}
\index{set\+Specular@{set\+Specular}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Specular()}{setSpecular()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Specular (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{specular }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a8202cf155d20602fd9c0ec53273a442f}\label{class_ogre_1_1_pass_a8202cf155d20602fd9c0ec53273a442f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shininess@{set\+Shininess}}
\index{set\+Shininess@{set\+Shininess}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shininess()}{setShininess()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shininess (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{val }\end{DoxyParamCaption})}



Sets the shininess of the pass, affecting the size of specular highlights. 

The higher the value of the shininess parameter, the sharper the highlight i.\+e. the radius is smaller. Beware of using shininess values in the range of 0 to 1 since this causes the the specular colour to be applied to the whole surface that has the material applied to it. When the viewing angle to the surface changes, ugly flickering will also occur when shininess is in the range of 0 to 1. Shininess values between 1 and 128 work best in both DirectX and Open\+GL renderers. \begin{DoxyNote}{Note}
This setting has no effect if dynamic lighting is disabled (see \hyperlink{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}{Ogre\+::\+Pass\+::set\+Lighting\+Enabled}), or, if any texture layer has a \hyperlink{group___materials_ggabcbb38d1ac195e4be401f85b7ab0da8fa870cf51ff1ccd919cf710bcb3b4e6432}{Ogre\+::\+L\+B\+O\+\_\+\+R\+E\+P\+L\+A\+CE} attribute. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a93c36ae948d9e0357c11adb0ce6d5859}\label{class_ogre_1_1_pass_a93c36ae948d9e0357c11adb0ce6d5859}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Self\+Illumination@{set\+Self\+Illumination}}
\index{set\+Self\+Illumination@{set\+Self\+Illumination}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Self\+Illumination()}{setSelfIllumination()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Self\+Illumination (\begin{DoxyParamCaption}\item[{float}]{red,  }\item[{float}]{green,  }\item[{float}]{blue }\end{DoxyParamCaption})}



Sets the amount of self-\/illumination an object has. 

If an object is self-\/illuminating, it does not need external sources to light it, ambient or otherwise. It\textquotesingle{}s like the object has it\textquotesingle{}s own personal ambient light. This property is rarely useful since you can already specify per-\/pass ambient light, but is here for completeness.

It is also possible to make the emissive reflectance track the vertex colour as defined in the mesh instead of the colour values. \begin{DoxyNote}{Note}
This setting has no effect if dynamic lighting is disabled (see \hyperlink{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}{Ogre\+::\+Pass\+::set\+Lighting\+Enabled}), or, if any texture layer has a \hyperlink{group___materials_ggabcbb38d1ac195e4be401f85b7ab0da8fa870cf51ff1ccd919cf710bcb3b4e6432}{Ogre\+::\+L\+B\+O\+\_\+\+R\+E\+P\+L\+A\+CE} attribute. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a4ed49cbeb67725747cb25376ca67c2bb}\label{class_ogre_1_1_pass_a4ed49cbeb67725747cb25376ca67c2bb}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Self\+Illumination@{set\+Self\+Illumination}}
\index{set\+Self\+Illumination@{set\+Self\+Illumination}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Self\+Illumination()}{setSelfIllumination()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Self\+Illumination (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{self\+Illum }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_ae3ad6543e0c24eb7f12b00f46e7124d8}\label{class_ogre_1_1_pass_ae3ad6543e0c24eb7f12b00f46e7124d8}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Emissive@{set\+Emissive}}
\index{set\+Emissive@{set\+Emissive}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Emissive()}{setEmissive()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Emissive (\begin{DoxyParamCaption}\item[{float}]{red,  }\item[{float}]{green,  }\item[{float}]{blue }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Sets the amount of self-\/illumination an object has. 

If an object is self-\/illuminating, it does not need external sources to light it, ambient or otherwise. It\textquotesingle{}s like the object has it\textquotesingle{}s own personal ambient light. This property is rarely useful since you can already specify per-\/pass ambient light, but is here for completeness.

It is also possible to make the emissive reflectance track the vertex colour as defined in the mesh instead of the colour values. \begin{DoxyNote}{Note}
This setting has no effect if dynamic lighting is disabled (see \hyperlink{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}{Ogre\+::\+Pass\+::set\+Lighting\+Enabled}), or, if any texture layer has a \hyperlink{group___materials_ggabcbb38d1ac195e4be401f85b7ab0da8fa870cf51ff1ccd919cf710bcb3b4e6432}{Ogre\+::\+L\+B\+O\+\_\+\+R\+E\+P\+L\+A\+CE} attribute. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_ae5653eb7430051fc4a81aa577c031186}\label{class_ogre_1_1_pass_ae5653eb7430051fc4a81aa577c031186}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Emissive@{set\+Emissive}}
\index{set\+Emissive@{set\+Emissive}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Emissive()}{setEmissive()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Emissive (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{emissive }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a30b32d92dd9d316ff9650affd08d16a2}\label{class_ogre_1_1_pass_a30b32d92dd9d316ff9650affd08d16a2}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Vertex\+Colour\+Tracking@{set\+Vertex\+Colour\+Tracking}}
\index{set\+Vertex\+Colour\+Tracking@{set\+Vertex\+Colour\+Tracking}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Vertex\+Colour\+Tracking()}{setVertexColourTracking()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Vertex\+Colour\+Tracking (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_gaf3fdba7211d7078a43201a1721532f9e}{Track\+Vertex\+Colour\+Type}}]{tracking }\end{DoxyParamCaption})}



Sets which material properties follow the vertex colour. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ab63508d99fef116d0df14c080e0e1129}\label{class_ogre_1_1_pass_ab63508d99fef116d0df14c080e0e1129}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Line\+Width@{set\+Line\+Width}}
\index{set\+Line\+Width@{set\+Line\+Width}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Line\+Width()}{setLineWidth()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Line\+Width (\begin{DoxyParamCaption}\item[{float}]{width }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



set the line width for this pass 

This property determines what width is used to render lines. \begin{DoxyNote}{Note}
some drivers only support a value of 1.\+0 here 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a788b633913442314683050c34b2c3c9b}\label{class_ogre_1_1_pass_a788b633913442314683050c34b2c3c9b}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Line\+Width@{get\+Line\+Width}}
\index{get\+Line\+Width@{get\+Line\+Width}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Line\+Width()}{getLineWidth()}}
{\footnotesize\ttfamily float Ogre\+::\+Pass\+::get\+Line\+Width (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_pass_aba2231be0c26100fa1f282c8c9360665}\label{class_ogre_1_1_pass_aba2231be0c26100fa1f282c8c9360665}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Point\+Size@{get\+Point\+Size}}
\index{get\+Point\+Size@{get\+Point\+Size}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Point\+Size()}{getPointSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Point\+Size (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the point size of the pass. 

\begin{DoxyRemark}{Remarks}
This property determines what point size is used to render a point list. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a2b0cfe1d55b1c03e59c4e3f546d2ec78}\label{class_ogre_1_1_pass_a2b0cfe1d55b1c03e59c4e3f546d2ec78}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Point\+Size@{set\+Point\+Size}}
\index{set\+Point\+Size@{set\+Point\+Size}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Point\+Size()}{setPointSize()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Point\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{ps }\end{DoxyParamCaption})}



Sets the point size of this pass. 

This setting allows you to change the size of points when rendering a point list, or a list of point sprites. The interpretation of this command depends on the \hyperlink{class_ogre_1_1_pass_a0d44f9c4a2e69fd31a4687ffe2b8335d}{Ogre\+::\+Pass\+::set\+Point\+Attenuation} option -\/ if it is off (the default), the point size is in screen pixels, if it is on, it expressed as normalised screen coordinates (1.\+0 is the height of the screen) when the point is at the origin. \begin{DoxyNote}{Note}
Some drivers have an upper limit on the size of points they support -\/ this can even vary between A\+P\+Is on the same card! Don\textquotesingle{}t rely on point sizes that cause the point sprites to get very large on screen, since they may get clamped on some cards. Upper sizes can range from 64 to 256 pixels. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a9683c2f40ed7c96b708eb2db5e02c842}\label{class_ogre_1_1_pass_a9683c2f40ed7c96b708eb2db5e02c842}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Point\+Sprites\+Enabled@{set\+Point\+Sprites\+Enabled}}
\index{set\+Point\+Sprites\+Enabled@{set\+Point\+Sprites\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Point\+Sprites\+Enabled()}{setPointSpritesEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Point\+Sprites\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether points will be rendered as textured quads or plain dots. 

This setting specifies whether or not hardware point sprite rendering is enabled for this pass. Enabling it means that a point list is rendered as a list of quads rather than a list of dots. It is very useful to use this option if you are using a \hyperlink{class_ogre_1_1_billboard_set}{Billboard\+Set} and only need to use point oriented billboards which are all of the same size. You can also use it for any other point list render. \mbox{\Hypertarget{class_ogre_1_1_pass_af70ccd332a1df548058917c31021f7df}\label{class_ogre_1_1_pass_af70ccd332a1df548058917c31021f7df}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Point\+Sprites\+Enabled@{get\+Point\+Sprites\+Enabled}}
\index{get\+Point\+Sprites\+Enabled@{get\+Point\+Sprites\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Point\+Sprites\+Enabled()}{getPointSpritesEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Point\+Sprites\+Enabled (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether point sprites are enabled when rendering a point list. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a0d44f9c4a2e69fd31a4687ffe2b8335d}\label{class_ogre_1_1_pass_a0d44f9c4a2e69fd31a4687ffe2b8335d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Point\+Attenuation@{set\+Point\+Attenuation}}
\index{set\+Point\+Attenuation@{set\+Point\+Attenuation}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Point\+Attenuation()}{setPointAttenuation()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Point\+Attenuation (\begin{DoxyParamCaption}\item[{bool}]{enabled,  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{constant = {\ttfamily 0.0f},  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{linear = {\ttfamily 1.0f},  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{quadratic = {\ttfamily 0.0f} }\end{DoxyParamCaption})}



Sets how points are attenuated with distance. 

When performing point rendering or point sprite rendering, point size can be attenuated with distance. The equation for doing this is

\$\$attenuation = 1 / (constant + linear $\ast$ dist + quadratic $\ast$ d$^\wedge$2)\$\$

For example, to disable distance attenuation (constant screensize) you would set constant to 1, and linear and quadratic to 0. A standard perspective attenuation would be 0, 1, 0 respectively.

The resulting size is clamped to the minimum and maximum point size. 
\begin{DoxyParams}{Parameters}
{\em enabled} & Whether point attenuation is enabled \\
\hline
{\em constant,linear,quadratic} & Parameters to the attenuation function defined above \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_af5e358a5fd8a944c9845f8aee4ba54a6}\label{class_ogre_1_1_pass_af5e358a5fd8a944c9845f8aee4ba54a6}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!is\+Point\+Attenuation\+Enabled@{is\+Point\+Attenuation\+Enabled}}
\index{is\+Point\+Attenuation\+Enabled@{is\+Point\+Attenuation\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{is\+Point\+Attenuation\+Enabled()}{isPointAttenuationEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::is\+Point\+Attenuation\+Enabled (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether points are attenuated with distance. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ab4d3e24b105ffaf7567b4312bcdc4016}\label{class_ogre_1_1_pass_ab4d3e24b105ffaf7567b4312bcdc4016}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Point\+Attenuation\+Constant@{get\+Point\+Attenuation\+Constant}}
\index{get\+Point\+Attenuation\+Constant@{get\+Point\+Attenuation\+Constant}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Point\+Attenuation\+Constant()}{getPointAttenuationConstant()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Point\+Attenuation\+Constant (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the constant coefficient of point attenuation. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ad7c66ac1b199cdd1b1ede0cb35b3fe7c}\label{class_ogre_1_1_pass_ad7c66ac1b199cdd1b1ede0cb35b3fe7c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Point\+Attenuation\+Linear@{get\+Point\+Attenuation\+Linear}}
\index{get\+Point\+Attenuation\+Linear@{get\+Point\+Attenuation\+Linear}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Point\+Attenuation\+Linear()}{getPointAttenuationLinear()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Point\+Attenuation\+Linear (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the linear coefficient of point attenuation. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a49d5ee33ff46dd23f5755f41aa726e15}\label{class_ogre_1_1_pass_a49d5ee33ff46dd23f5755f41aa726e15}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Point\+Attenuation\+Quadratic@{get\+Point\+Attenuation\+Quadratic}}
\index{get\+Point\+Attenuation\+Quadratic@{get\+Point\+Attenuation\+Quadratic}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Point\+Attenuation\+Quadratic()}{getPointAttenuationQuadratic()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Point\+Attenuation\+Quadratic (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the quadratic coefficient of point attenuation. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a75a3e18e0d2c3e7f51a47cedcec0246c}\label{class_ogre_1_1_pass_a75a3e18e0d2c3e7f51a47cedcec0246c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Point\+Min\+Size@{set\+Point\+Min\+Size}}
\index{set\+Point\+Min\+Size@{set\+Point\+Min\+Size}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Point\+Min\+Size()}{setPointMinSize()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Point\+Min\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{min }\end{DoxyParamCaption})}



Set the minimum point size, when point attenuation is in use. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8d799c8e3324a37e70d50f8fd1e5daac}\label{class_ogre_1_1_pass_a8d799c8e3324a37e70d50f8fd1e5daac}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Point\+Min\+Size@{get\+Point\+Min\+Size}}
\index{get\+Point\+Min\+Size@{get\+Point\+Min\+Size}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Point\+Min\+Size()}{getPointMinSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Point\+Min\+Size (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Get the minimum point size, when point attenuation is in use. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a463b59eaa324934370441a98b8b619b3}\label{class_ogre_1_1_pass_a463b59eaa324934370441a98b8b619b3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Point\+Max\+Size@{set\+Point\+Max\+Size}}
\index{set\+Point\+Max\+Size@{set\+Point\+Max\+Size}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Point\+Max\+Size()}{setPointMaxSize()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Point\+Max\+Size (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{max }\end{DoxyParamCaption})}



Set the maximum point size, when point attenuation is in use. 

\begin{DoxyRemark}{Remarks}
Setting this to 0 indicates the max size supported by the card. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_aeaf906d8abba9a4b4dde83f87daa0f4e}\label{class_ogre_1_1_pass_aeaf906d8abba9a4b4dde83f87daa0f4e}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Point\+Max\+Size@{get\+Point\+Max\+Size}}
\index{get\+Point\+Max\+Size@{get\+Point\+Max\+Size}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Point\+Max\+Size()}{getPointMaxSize()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Point\+Max\+Size (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Get the maximum point size, when point attenuation is in use. 

\begin{DoxyRemark}{Remarks}
0 indicates the max size supported by the card. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a025d29e0df7f5fa8209e37e3dbac057a}\label{class_ogre_1_1_pass_a025d29e0df7f5fa8209e37e3dbac057a}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Ambient@{get\+Ambient}}
\index{get\+Ambient@{get\+Ambient}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Ambient()}{getAmbient()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value}\& Ogre\+::\+Pass\+::get\+Ambient (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the ambient colour reflectance of the pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ab41a5ed7aadfabec2111e3124f77cf71}\label{class_ogre_1_1_pass_ab41a5ed7aadfabec2111e3124f77cf71}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Diffuse@{get\+Diffuse}}
\index{get\+Diffuse@{get\+Diffuse}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Diffuse()}{getDiffuse()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value}\& Ogre\+::\+Pass\+::get\+Diffuse (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the diffuse colour reflectance of the pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a9847a07e3a202069e91cd0cccc104de7}\label{class_ogre_1_1_pass_a9847a07e3a202069e91cd0cccc104de7}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Specular@{get\+Specular}}
\index{get\+Specular@{get\+Specular}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Specular()}{getSpecular()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value}\& Ogre\+::\+Pass\+::get\+Specular (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the specular colour reflectance of the pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a21cc793a33a80097900866835aea9abd}\label{class_ogre_1_1_pass_a21cc793a33a80097900866835aea9abd}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Self\+Illumination@{get\+Self\+Illumination}}
\index{get\+Self\+Illumination@{get\+Self\+Illumination}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Self\+Illumination()}{getSelfIllumination()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value}\& Ogre\+::\+Pass\+::get\+Self\+Illumination (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the self illumination colour of the pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a57c97de91cbc0c86e3ca06ccc22b9a12}\label{class_ogre_1_1_pass_a57c97de91cbc0c86e3ca06ccc22b9a12}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Emissive@{get\+Emissive}}
\index{get\+Emissive@{get\+Emissive}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Emissive()}{getEmissive()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value}\& Ogre\+::\+Pass\+::get\+Emissive (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the self illumination colour of the pass. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_pass_a21cc793a33a80097900866835aea9abd}{get\+Self\+Illumination} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_af18dc0bd11d49aacbd053c4772511650}\label{class_ogre_1_1_pass_af18dc0bd11d49aacbd053c4772511650}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shininess@{get\+Shininess}}
\index{get\+Shininess@{get\+Shininess}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shininess()}{getShininess()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Shininess (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the \textquotesingle{}shininess\textquotesingle{} property of the pass (affects specular highlights). 

\mbox{\Hypertarget{class_ogre_1_1_pass_a36f48ebbf2890d0744443f7da45acab7}\label{class_ogre_1_1_pass_a36f48ebbf2890d0744443f7da45acab7}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Vertex\+Colour\+Tracking@{get\+Vertex\+Colour\+Tracking}}
\index{get\+Vertex\+Colour\+Tracking@{get\+Vertex\+Colour\+Tracking}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Vertex\+Colour\+Tracking()}{getVertexColourTracking()}}
{\footnotesize\ttfamily \hyperlink{group___general_gaf3fdba7211d7078a43201a1721532f9e}{Track\+Vertex\+Colour\+Type} Ogre\+::\+Pass\+::get\+Vertex\+Colour\+Tracking (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets which material properties follow the vertex colour. 

\mbox{\Hypertarget{class_ogre_1_1_pass_adfee1e1da3564408697f6b1227102c63}\label{class_ogre_1_1_pass_adfee1e1da3564408697f6b1227102c63}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!create\+Texture\+Unit\+State@{create\+Texture\+Unit\+State}}
\index{create\+Texture\+Unit\+State@{create\+Texture\+Unit\+State}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{create\+Texture\+Unit\+State()}{createTextureUnitState()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State}$\ast$ Ogre\+::\+Pass\+::create\+Texture\+Unit\+State (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{texture\+Name,  }\item[{unsigned short}]{tex\+Coord\+Set = {\ttfamily 0} }\end{DoxyParamCaption})}



Inserts a new \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} object into the \hyperlink{class_ogre_1_1_pass}{Pass}. 

\begin{DoxyRemark}{Remarks}
This unit is is added on top of all previous units. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em texture\+Name} & The basic name of the texture e.\+g. brickwall.\+jpg, stonefloor.\+png \\
\hline
{\em tex\+Coord\+Set} & The index of the texture coordinate set to use. \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Applies to both fixed-\/function and programmable passes. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_af8b37124088b574d2cbb2652c0ee4272}\label{class_ogre_1_1_pass_af8b37124088b574d2cbb2652c0ee4272}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!create\+Texture\+Unit\+State@{create\+Texture\+Unit\+State}}
\index{create\+Texture\+Unit\+State@{create\+Texture\+Unit\+State}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{create\+Texture\+Unit\+State()}{createTextureUnitState()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State}$\ast$ Ogre\+::\+Pass\+::create\+Texture\+Unit\+State (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a00a4036c87d4778c20d19412e9530ff2}\label{class_ogre_1_1_pass_a00a4036c87d4778c20d19412e9530ff2}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!add\+Texture\+Unit\+State@{add\+Texture\+Unit\+State}}
\index{add\+Texture\+Unit\+State@{add\+Texture\+Unit\+State}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{add\+Texture\+Unit\+State()}{addTextureUnitState()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::add\+Texture\+Unit\+State (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$}]{state }\end{DoxyParamCaption})}



Adds the passed in \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State}, to the existing \hyperlink{class_ogre_1_1_pass}{Pass}. 


\begin{DoxyParams}{Parameters}
{\em state} & The \hyperlink{class_ogre_1_1_texture}{Texture} Unit State to be attached to this pass. It must not be attached to another pass. \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Throws an exception if the \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} is attached to another \hyperlink{class_ogre_1_1_pass}{Pass}. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_abc81491af9bf41501f3ec60f4f0bef76}\label{class_ogre_1_1_pass_abc81491af9bf41501f3ec60f4f0bef76}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Texture\+Unit\+State@{get\+Texture\+Unit\+State}}
\index{get\+Texture\+Unit\+State@{get\+Texture\+Unit\+State}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Texture\+Unit\+State()}{getTextureUnitState()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State}$\ast$ Ogre\+::\+Pass\+::get\+Texture\+Unit\+State (\begin{DoxyParamCaption}\item[{unsigned short}]{index }\end{DoxyParamCaption}) const}



Retrieves a const pointer to a texture unit state. 

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000086}{Deprecated}]use \hyperlink{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}{get\+Texture\+Unit\+States()} \end{DoxyRefDesc}
\mbox{\Hypertarget{class_ogre_1_1_pass_afe30c603d0dab1f4194463699c0091ba}\label{class_ogre_1_1_pass_afe30c603d0dab1f4194463699c0091ba}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Texture\+Unit\+State@{get\+Texture\+Unit\+State}}
\index{get\+Texture\+Unit\+State@{get\+Texture\+Unit\+State}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Texture\+Unit\+State()}{getTextureUnitState()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State}$\ast$ Ogre\+::\+Pass\+::get\+Texture\+Unit\+State (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption}) const}



Retrieves the \hyperlink{class_ogre_1_1_texture}{Texture} Unit State matching name. 

Returns 0 if name match is not found. \mbox{\Hypertarget{class_ogre_1_1_pass_a613a1145ae3ee981f223c00fc21b742e}\label{class_ogre_1_1_pass_a613a1145ae3ee981f223c00fc21b742e}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Texture\+Unit\+State\+Index@{get\+Texture\+Unit\+State\+Index}}
\index{get\+Texture\+Unit\+State\+Index@{get\+Texture\+Unit\+State\+Index}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Texture\+Unit\+State\+Index()}{getTextureUnitStateIndex()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Pass\+::get\+Texture\+Unit\+State\+Index (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$}]{state }\end{DoxyParamCaption}) const}



Retrieve the index of the \hyperlink{class_ogre_1_1_texture}{Texture} Unit State in the pass. 


\begin{DoxyParams}{Parameters}
{\em state} & The \hyperlink{class_ogre_1_1_texture}{Texture} Unit State this is attached to this pass. \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
Throws an exception if the state is not attached to the pass. 
\end{DoxyNote}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000087}{Deprecated}]use \hyperlink{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}{get\+Texture\+Unit\+States()} \end{DoxyRefDesc}
\mbox{\Hypertarget{class_ogre_1_1_pass_ac1513f6d3e1acb9037225d826ec99856}\label{class_ogre_1_1_pass_ac1513f6d3e1acb9037225d826ec99856}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Texture\+Unit\+State\+Iterator@{get\+Texture\+Unit\+State\+Iterator}}
\index{get\+Texture\+Unit\+State\+Iterator@{get\+Texture\+Unit\+State\+Iterator}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Texture\+Unit\+State\+Iterator()}{getTextureUnitStateIterator()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_pass_ac7bc2b00e42ad2699a1e2a1de340d3b4}{Texture\+Unit\+State\+Iterator} Ogre\+::\+Pass\+::get\+Texture\+Unit\+State\+Iterator (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get an iterator over the Texture\+Unit\+States contained in this \hyperlink{class_ogre_1_1_pass}{Pass}. 

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000088}{Deprecated}]use \hyperlink{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}{get\+Texture\+Unit\+States()} \end{DoxyRefDesc}
\mbox{\Hypertarget{class_ogre_1_1_pass_a185a8f17c108024b5b0683d895d5bcaf}\label{class_ogre_1_1_pass_a185a8f17c108024b5b0683d895d5bcaf}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Texture\+Unit\+State\+Iterator@{get\+Texture\+Unit\+State\+Iterator}}
\index{get\+Texture\+Unit\+State\+Iterator@{get\+Texture\+Unit\+State\+Iterator}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Texture\+Unit\+State\+Iterator()}{getTextureUnitStateIterator()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_pass_a98b42a4f4304f3f2d08fb9394cbefe83}{Const\+Texture\+Unit\+State\+Iterator} Ogre\+::\+Pass\+::get\+Texture\+Unit\+State\+Iterator (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Get an iterator over the Texture\+Unit\+States contained in this \hyperlink{class_ogre_1_1_pass}{Pass}. 

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000089}{Deprecated}]use \hyperlink{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}{get\+Texture\+Unit\+States()} \end{DoxyRefDesc}
\mbox{\Hypertarget{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}\label{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Texture\+Unit\+States@{get\+Texture\+Unit\+States}}
\index{get\+Texture\+Unit\+States@{get\+Texture\+Unit\+States}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Texture\+Unit\+States()}{getTextureUnitStates()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_pass_a1054ecda87f96dad530ec49099379755}{Texture\+Unit\+States}\& Ogre\+::\+Pass\+::get\+Texture\+Unit\+States (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the Texture\+Unit\+States contained in this \hyperlink{class_ogre_1_1_pass}{Pass}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a66085d80b0caa39850216b603cec40b1}\label{class_ogre_1_1_pass_a66085d80b0caa39850216b603cec40b1}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!remove\+Texture\+Unit\+State@{remove\+Texture\+Unit\+State}}
\index{remove\+Texture\+Unit\+State@{remove\+Texture\+Unit\+State}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{remove\+Texture\+Unit\+State()}{removeTextureUnitState()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::remove\+Texture\+Unit\+State (\begin{DoxyParamCaption}\item[{unsigned short}]{index }\end{DoxyParamCaption})}



Removes the indexed texture unit state from this pass. 

\begin{DoxyRemark}{Remarks}
Note that removing a texture which is not the topmost will have a larger performance impact. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a86de1842654eb89c6f48785d02f07688}\label{class_ogre_1_1_pass_a86de1842654eb89c6f48785d02f07688}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!remove\+All\+Texture\+Unit\+States@{remove\+All\+Texture\+Unit\+States}}
\index{remove\+All\+Texture\+Unit\+States@{remove\+All\+Texture\+Unit\+States}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{remove\+All\+Texture\+Unit\+States()}{removeAllTextureUnitStates()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::remove\+All\+Texture\+Unit\+States (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Removes all texture unit settings. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ae92e29ff81e188b72cadcbb64fd0be8d}\label{class_ogre_1_1_pass_ae92e29ff81e188b72cadcbb64fd0be8d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Num\+Texture\+Unit\+States@{get\+Num\+Texture\+Unit\+States}}
\index{get\+Num\+Texture\+Unit\+States@{get\+Num\+Texture\+Unit\+States}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Num\+Texture\+Unit\+States()}{getNumTextureUnitStates()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Pass\+::get\+Num\+Texture\+Unit\+States (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns the number of texture unit settings. 

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000090}{Deprecated}]use \hyperlink{class_ogre_1_1_pass_a27a57322ba3813c39d62bbd7a3ba01fb}{get\+Texture\+Unit\+States()} \end{DoxyRefDesc}
\mbox{\Hypertarget{class_ogre_1_1_pass_ae21d6f29c89eeff54ab6de5562818c02}\label{class_ogre_1_1_pass_ae21d6f29c89eeff54ab6de5562818c02}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Scene\+Blending@{set\+Scene\+Blending}}
\index{set\+Scene\+Blending@{set\+Scene\+Blending}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Scene\+Blending()}{setSceneBlending()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Scene\+Blending (\begin{DoxyParamCaption}\item[{const \hyperlink{group___materials_gac46c60cf6e5c199220e3b8f26570cb9a}{Scene\+Blend\+Type}}]{sbt }\end{DoxyParamCaption})}



Sets the kind of blending this pass has with the existing contents of the scene. 

Whereas the texture blending operations seen in the \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} class are concerned with blending between texture layers, this blending is about combining the output of the \hyperlink{class_ogre_1_1_pass}{Pass} as a whole with the existing contents of the rendering target. This blending therefore allows object transparency and other special effects. If all passes in a technique have a scene blend, then the whole technique is considered to be transparent.

This method allows you to select one of a number of predefined blending types. If you require more control than this, use the alternative version of this method which allows you to specify source and destination blend factors. \begin{DoxyNote}{Note}
This method is applicable for both the fixed-\/function and programmable pipelines. 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em sbt} & One of the predefined Scene\+Blend\+Type blending types \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_aefbd80d762d78838df626482df1ac81b}\label{class_ogre_1_1_pass_aefbd80d762d78838df626482df1ac81b}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Separate\+Scene\+Blending@{set\+Separate\+Scene\+Blending}}
\index{set\+Separate\+Scene\+Blending@{set\+Separate\+Scene\+Blending}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Separate\+Scene\+Blending()}{setSeparateSceneBlending()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Separate\+Scene\+Blending (\begin{DoxyParamCaption}\item[{const \hyperlink{group___materials_gac46c60cf6e5c199220e3b8f26570cb9a}{Scene\+Blend\+Type}}]{sbt,  }\item[{const \hyperlink{group___materials_gac46c60cf6e5c199220e3b8f26570cb9a}{Scene\+Blend\+Type}}]{sbta }\end{DoxyParamCaption})}



Sets the kind of blending this pass has with the existing contents of the scene, separately for color and alpha channels. 

This method allows you to select one of a number of predefined blending types. If you require more control than this, use the alternative version of this method which allows you to specify source and destination blend factors.


\begin{DoxyParams}{Parameters}
{\em sbt} & One of the predefined Scene\+Blend\+Type blending types for the color channel \\
\hline
{\em sbta} & One of the predefined Scene\+Blend\+Type blending types for the alpha channel \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_a6ae2b0725a20fe90f1554834bafa7178}\label{class_ogre_1_1_pass_a6ae2b0725a20fe90f1554834bafa7178}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Scene\+Blending@{set\+Scene\+Blending}}
\index{set\+Scene\+Blending@{set\+Scene\+Blending}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Scene\+Blending()}{setSceneBlending()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Scene\+Blending (\begin{DoxyParamCaption}\item[{const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{source\+Factor,  }\item[{const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{dest\+Factor }\end{DoxyParamCaption})}



Allows very fine control of blending this \hyperlink{class_ogre_1_1_pass}{Pass} with the existing contents of the scene. 

This version of the method allows complete control over the blending operation, by specifying the source and destination blending factors. The result of the blending operation is\+:

\$\$final = (pass\+Output $\ast$ source\+Factor) + (frame\+Buffer $\ast$ dest\+Factor)\$\$

Each of the factors is specified as one of a number of options, as specified in the \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Ogre\+::\+Scene\+Blend\+Factor} enumerated type. 
\begin{DoxyParams}{Parameters}
{\em source\+Factor} & The source factor in the above calculation, i.\+e. multiplied by the output of the Pass. \\
\hline
{\em dest\+Factor} & The destination factor in the above calculation, i.\+e. multiplied by the Frame Buffer contents. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_aa4bba51e9a0cba1b9708bab99496c1a8}\label{class_ogre_1_1_pass_aa4bba51e9a0cba1b9708bab99496c1a8}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Separate\+Scene\+Blending@{set\+Separate\+Scene\+Blending}}
\index{set\+Separate\+Scene\+Blending@{set\+Separate\+Scene\+Blending}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Separate\+Scene\+Blending()}{setSeparateSceneBlending()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Separate\+Scene\+Blending (\begin{DoxyParamCaption}\item[{const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{source\+Factor,  }\item[{const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{dest\+Factor,  }\item[{const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{source\+Factor\+Alpha,  }\item[{const \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor}}]{dest\+Factor\+Alpha }\end{DoxyParamCaption})}



Allows very fine control of blending this \hyperlink{class_ogre_1_1_pass}{Pass} with the existing contents of the scene. 

This version of the method allows complete control over the blending operation, by specifying the source and destination blending factors. The result of the blending operation is\+:

\$\$final = (pass\+Output $\ast$ source\+Factor) + (frame\+Buffer $\ast$ dest\+Factor)\$\$

Each of the factors is specified as one of a number of options, as specified in the \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Ogre\+::\+Scene\+Blend\+Factor} enumerated type. 
\begin{DoxyParams}{Parameters}
{\em source\+Factor} & The source factor in the above calculation, i.\+e. multiplied by the output of the Pass. \\
\hline
{\em dest\+Factor} & The destination factor in the above calculation, i.\+e. multiplied by the Frame Buffer contents. \\
\hline
{\em source\+Factor\+Alpha} & The alpha source factor in the above calculation, i.\+e. multiplied by the output of the Pass. \\
\hline
{\em dest\+Factor\+Alpha} & The alpha destination factor in the above calculation, i.\+e. multiplied by the Frame Buffer alpha. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_ab0e7ceb87f4b3dee78fbaaf8ba9e1ade}\label{class_ogre_1_1_pass_ab0e7ceb87f4b3dee78fbaaf8ba9e1ade}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Separate\+Scene\+Blending@{has\+Separate\+Scene\+Blending}}
\index{has\+Separate\+Scene\+Blending@{has\+Separate\+Scene\+Blending}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Separate\+Scene\+Blending()}{hasSeparateSceneBlending()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Separate\+Scene\+Blending (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Return true if this pass uses separate scene blending. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aec14031d3e7e69c7ec4f734dc40f612d}\label{class_ogre_1_1_pass_aec14031d3e7e69c7ec4f734dc40f612d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Source\+Blend\+Factor@{get\+Source\+Blend\+Factor}}
\index{get\+Source\+Blend\+Factor@{get\+Source\+Blend\+Factor}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Source\+Blend\+Factor()}{getSourceBlendFactor()}}
{\footnotesize\ttfamily \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} Ogre\+::\+Pass\+::get\+Source\+Blend\+Factor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Retrieves the source blending factor for the material (as set using Materiall\+::set\+Scene\+Blending). 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8e61c233c08848aa736bcfa7bdb58158}\label{class_ogre_1_1_pass_a8e61c233c08848aa736bcfa7bdb58158}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Dest\+Blend\+Factor@{get\+Dest\+Blend\+Factor}}
\index{get\+Dest\+Blend\+Factor@{get\+Dest\+Blend\+Factor}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Dest\+Blend\+Factor()}{getDestBlendFactor()}}
{\footnotesize\ttfamily \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} Ogre\+::\+Pass\+::get\+Dest\+Blend\+Factor (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Retrieves the destination blending factor for the material (as set using Materiall\+::set\+Scene\+Blending). 

\mbox{\Hypertarget{class_ogre_1_1_pass_a040397cbf641fcd16ad1cc1846ccb0a0}\label{class_ogre_1_1_pass_a040397cbf641fcd16ad1cc1846ccb0a0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Source\+Blend\+Factor\+Alpha@{get\+Source\+Blend\+Factor\+Alpha}}
\index{get\+Source\+Blend\+Factor\+Alpha@{get\+Source\+Blend\+Factor\+Alpha}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Source\+Blend\+Factor\+Alpha()}{getSourceBlendFactorAlpha()}}
{\footnotesize\ttfamily \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} Ogre\+::\+Pass\+::get\+Source\+Blend\+Factor\+Alpha (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Retrieves the alpha source blending factor for the material (as set using Materiall\+::set\+Separate\+Scene\+Blending). 

\mbox{\Hypertarget{class_ogre_1_1_pass_aa89b9de8338da5bb1944b16145ee2f62}\label{class_ogre_1_1_pass_aa89b9de8338da5bb1944b16145ee2f62}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Dest\+Blend\+Factor\+Alpha@{get\+Dest\+Blend\+Factor\+Alpha}}
\index{get\+Dest\+Blend\+Factor\+Alpha@{get\+Dest\+Blend\+Factor\+Alpha}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Dest\+Blend\+Factor\+Alpha()}{getDestBlendFactorAlpha()}}
{\footnotesize\ttfamily \hyperlink{group___materials_ga41c76d419d6c9c205a6c1d3b42872213}{Scene\+Blend\+Factor} Ogre\+::\+Pass\+::get\+Dest\+Blend\+Factor\+Alpha (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Retrieves the alpha destination blending factor for the material (as set using Materiall\+::set\+Separate\+Scene\+Blending). 

\mbox{\Hypertarget{class_ogre_1_1_pass_a9ae2570082185c2b6e237a2d46f9bb60}\label{class_ogre_1_1_pass_a9ae2570082185c2b6e237a2d46f9bb60}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Scene\+Blending\+Operation@{set\+Scene\+Blending\+Operation}}
\index{set\+Scene\+Blending\+Operation@{set\+Scene\+Blending\+Operation}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Scene\+Blending\+Operation()}{setSceneBlendingOperation()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Scene\+Blending\+Operation (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{op }\end{DoxyParamCaption})}



Sets the specific operation used to blend source and destination pixels together. 

By default this operation is \hyperlink{group___materials_ggaa7a12a72231aedf6e33d58aafc11214aa188aee58620b3275f1a45c7c80df4bc7}{Ogre\+::\+S\+B\+O\+\_\+\+A\+DD}, which creates this equation

\$\$final = (pass\+Output $\ast$ source\+Factor) + (frame\+Buffer $\ast$ dest\+Factor)\$\$

By setting this to something other than S\+B\+O\+\_\+\+A\+DD you can change the operation to achieve a different effect. 
\begin{DoxyParams}{Parameters}
{\em op} & The blending operation mode to use for this pass \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_ace4313056341502f87ada68638cae334}\label{class_ogre_1_1_pass_ace4313056341502f87ada68638cae334}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Separate\+Scene\+Blending\+Operation@{set\+Separate\+Scene\+Blending\+Operation}}
\index{set\+Separate\+Scene\+Blending\+Operation@{set\+Separate\+Scene\+Blending\+Operation}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Separate\+Scene\+Blending\+Operation()}{setSeparateSceneBlendingOperation()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Separate\+Scene\+Blending\+Operation (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{op,  }\item[{\hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation}}]{alpha\+Op }\end{DoxyParamCaption})}



Sets the specific operation used to blend source and destination pixels together. 

This function allows more control over blending since it allows you to select different blending modes for the color and alpha channels

By default this operation is \hyperlink{group___materials_ggaa7a12a72231aedf6e33d58aafc11214aa188aee58620b3275f1a45c7c80df4bc7}{Ogre\+::\+S\+B\+O\+\_\+\+A\+DD}, which creates this equation

\$\$final = (pass\+Output $\ast$ source\+Factor) + (frame\+Buffer $\ast$ dest\+Factor)\$\$

By setting this to something other than S\+B\+O\+\_\+\+A\+DD you can change the operation to achieve a different effect. 
\begin{DoxyParams}{Parameters}
{\em op} & The blending operation mode to use for this pass \\
\hline
{\em alpha\+Op} & The blending operation mode to use for alpha channels in this pass \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_a8d60b51feac29fa374465b4aa9ad9d8f}\label{class_ogre_1_1_pass_a8d60b51feac29fa374465b4aa9ad9d8f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Separate\+Scene\+Blending\+Operations@{has\+Separate\+Scene\+Blending\+Operations}}
\index{has\+Separate\+Scene\+Blending\+Operations@{has\+Separate\+Scene\+Blending\+Operations}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Separate\+Scene\+Blending\+Operations()}{hasSeparateSceneBlendingOperations()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Separate\+Scene\+Blending\+Operations (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Returns true if this pass uses separate scene blending operations. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a0e4598b48a3cc36a3a9ac5c7f190440c}\label{class_ogre_1_1_pass_a0e4598b48a3cc36a3a9ac5c7f190440c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Scene\+Blending\+Operation@{get\+Scene\+Blending\+Operation}}
\index{get\+Scene\+Blending\+Operation@{get\+Scene\+Blending\+Operation}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Scene\+Blending\+Operation()}{getSceneBlendingOperation()}}
{\footnotesize\ttfamily \hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} Ogre\+::\+Pass\+::get\+Scene\+Blending\+Operation (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Returns the current blending operation. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a1c36e64352bf3b1d0d87a220d05f6dbf}\label{class_ogre_1_1_pass_a1c36e64352bf3b1d0d87a220d05f6dbf}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Scene\+Blending\+Operation\+Alpha@{get\+Scene\+Blending\+Operation\+Alpha}}
\index{get\+Scene\+Blending\+Operation\+Alpha@{get\+Scene\+Blending\+Operation\+Alpha}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Scene\+Blending\+Operation\+Alpha()}{getSceneBlendingOperationAlpha()}}
{\footnotesize\ttfamily \hyperlink{group___materials_gaa7a12a72231aedf6e33d58aafc11214a}{Scene\+Blend\+Operation} Ogre\+::\+Pass\+::get\+Scene\+Blending\+Operation\+Alpha (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Returns the current alpha blending operation. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a85a67b777d757d158c6cbc2b4f7ec76e}\label{class_ogre_1_1_pass_a85a67b777d757d158c6cbc2b4f7ec76e}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!is\+Transparent@{is\+Transparent}}
\index{is\+Transparent@{is\+Transparent}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{is\+Transparent()}{isTransparent()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::is\+Transparent (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns true if this pass has some element of transparency. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ae454faee87f8cb0b8540810e48118788}\label{class_ogre_1_1_pass_ae454faee87f8cb0b8540810e48118788}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Depth\+Check\+Enabled@{set\+Depth\+Check\+Enabled}}
\index{set\+Depth\+Check\+Enabled@{set\+Depth\+Check\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Depth\+Check\+Enabled()}{setDepthCheckEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Depth\+Check\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether or not this pass renders with depth-\/buffer checking on or not. 

If depth-\/buffer checking is on, whenever a pixel is about to be written to the frame buffer the depth buffer is checked to see if the pixel is in front of all other pixels written at that point. If not, the pixel is not written.

If depth checking is off, pixels are written no matter what has been rendered before. Also see set\+Depth\+Function for more advanced depth check configuration. \begin{DoxySeeAlso}{See also}
\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Ogre\+::\+Compare\+Function} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_a648b0f3f74464f4b0e4472e64219f1a1}\label{class_ogre_1_1_pass_a648b0f3f74464f4b0e4472e64219f1a1}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Depth\+Check\+Enabled@{get\+Depth\+Check\+Enabled}}
\index{get\+Depth\+Check\+Enabled@{get\+Depth\+Check\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Depth\+Check\+Enabled()}{getDepthCheckEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Depth\+Check\+Enabled (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether or not this pass renders with depth-\/buffer checking on or not. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aad3e6c7c7b59e2c303c348b4850b1a3a}\label{class_ogre_1_1_pass_aad3e6c7c7b59e2c303c348b4850b1a3a}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Depth\+Write\+Enabled@{set\+Depth\+Write\+Enabled}}
\index{set\+Depth\+Write\+Enabled@{set\+Depth\+Write\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Depth\+Write\+Enabled()}{setDepthWriteEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Depth\+Write\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether or not this pass renders with depth-\/buffer writing on or not. 

If depth-\/buffer writing is on, whenever a pixel is written to the frame buffer the depth buffer is updated with the depth value of that new pixel, thus affecting future rendering operations if future pixels are behind this one.

If depth writing is off, pixels are written without updating the depth buffer Depth writing should normally be on but can be turned off when rendering static backgrounds or when rendering a collection of transparent objects at the end of a scene so that they overlap each other correctly. \mbox{\Hypertarget{class_ogre_1_1_pass_ab2d6e2e30826d01e5ec19bef7446f447}\label{class_ogre_1_1_pass_ab2d6e2e30826d01e5ec19bef7446f447}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Depth\+Write\+Enabled@{get\+Depth\+Write\+Enabled}}
\index{get\+Depth\+Write\+Enabled@{get\+Depth\+Write\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Depth\+Write\+Enabled()}{getDepthWriteEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Depth\+Write\+Enabled (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether or not this pass renders with depth-\/buffer writing on or not. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aef6c591b069aa6f7c65afc1419d47de6}\label{class_ogre_1_1_pass_aef6c591b069aa6f7c65afc1419d47de6}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Depth\+Function@{set\+Depth\+Function}}
\index{set\+Depth\+Function@{set\+Depth\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Depth\+Function()}{setDepthFunction()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Depth\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{func }\end{DoxyParamCaption})}



Sets the function used to compare depth values when depth checking is on. 

If depth checking is enabled (see set\+Depth\+Check\+Enabled) a comparison occurs between the depth value of the pixel to be written and the current contents of the buffer. This comparison is normally \hyperlink{group___general_gga0212b4eb264f207d84c1df9425208c7aa2272d0faefcf5a2e08bbf7d232d7520b}{Ogre\+::\+C\+M\+P\+F\+\_\+\+L\+E\+S\+S\+\_\+\+E\+Q\+U\+AL}. \mbox{\Hypertarget{class_ogre_1_1_pass_aed6912e985c09f72d8f8012494f1068a}\label{class_ogre_1_1_pass_aed6912e985c09f72d8f8012494f1068a}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Depth\+Function@{get\+Depth\+Function}}
\index{get\+Depth\+Function@{get\+Depth\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Depth\+Function()}{getDepthFunction()}}
{\footnotesize\ttfamily \hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} Ogre\+::\+Pass\+::get\+Depth\+Function (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the function used to compare depth values when depth checking is on. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_pass_aef6c591b069aa6f7c65afc1419d47de6}{set\+Depth\+Function} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_a3bbe37daba7e3be4349177374d4e40ee}\label{class_ogre_1_1_pass_a3bbe37daba7e3be4349177374d4e40ee}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Colour\+Write\+Enabled@{set\+Colour\+Write\+Enabled}}
\index{set\+Colour\+Write\+Enabled@{set\+Colour\+Write\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Colour\+Write\+Enabled()}{setColourWriteEnabled()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Colour\+Write\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether or not colour buffer writing is enabled for this Pass. 

If colour writing is off no visible pixels are written to the screen during this pass. You might think this is useless, but if you render with colour writing off, and with very minimal other settings, you can use this pass to initialise the depth buffer before subsequently rendering other passes which fill in the colour data. This can give you significant performance boosts on some newer cards, especially when using complex fragment programs, because if the depth check fails then the fragment program is never run. \mbox{\Hypertarget{class_ogre_1_1_pass_a51d61feca0e3c7cae4c3e1c2988540b0}\label{class_ogre_1_1_pass_a51d61feca0e3c7cae4c3e1c2988540b0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Colour\+Write\+Enabled@{get\+Colour\+Write\+Enabled}}
\index{get\+Colour\+Write\+Enabled@{get\+Colour\+Write\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Colour\+Write\+Enabled()}{getColourWriteEnabled()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Colour\+Write\+Enabled (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Determines if colour buffer writing is enabled for this pass i.\+e. 

when at least one colour channel is enabled for writing. \mbox{\Hypertarget{class_ogre_1_1_pass_ae8c85bd4eff471ca7b3c710d20dbf274}\label{class_ogre_1_1_pass_ae8c85bd4eff471ca7b3c710d20dbf274}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Colour\+Write\+Enabled@{set\+Colour\+Write\+Enabled}}
\index{set\+Colour\+Write\+Enabled@{set\+Colour\+Write\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Colour\+Write\+Enabled()}{setColourWriteEnabled()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Colour\+Write\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{red,  }\item[{bool}]{green,  }\item[{bool}]{blue,  }\item[{bool}]{alpha }\end{DoxyParamCaption})}



Sets which colour buffer channels are enabled for writing for this \hyperlink{class_ogre_1_1_pass}{Pass}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a40b25c9a64b05c3463a2da9e174be901}\label{class_ogre_1_1_pass_a40b25c9a64b05c3463a2da9e174be901}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Colour\+Write\+Enabled@{get\+Colour\+Write\+Enabled}}
\index{get\+Colour\+Write\+Enabled@{get\+Colour\+Write\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Colour\+Write\+Enabled()}{getColourWriteEnabled()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::get\+Colour\+Write\+Enabled (\begin{DoxyParamCaption}\item[{bool \&}]{red,  }\item[{bool \&}]{green,  }\item[{bool \&}]{blue,  }\item[{bool \&}]{alpha }\end{DoxyParamCaption}) const}



Determines which colour buffer channels are enabled for writing for this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8942abf3ede0f3cb43584c85c4071734}\label{class_ogre_1_1_pass_a8942abf3ede0f3cb43584c85c4071734}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Culling\+Mode@{set\+Culling\+Mode}}
\index{set\+Culling\+Mode@{set\+Culling\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Culling\+Mode()}{setCullingMode()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Culling\+Mode (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_gac173244ed7d950d0acd726e4f323ecdb}{Culling\+Mode}}]{mode }\end{DoxyParamCaption})}



Sets the culling mode for this pass based on the \textquotesingle{}vertex winding\textquotesingle{}. 

A typical way for the rendering engine to cull triangles is based on the \textquotesingle{}vertex winding\textquotesingle{} of triangles. Vertex winding refers to the direction in which the vertices are passed or indexed to in the rendering operation as viewed from the camera, and will wither be clockwise or anticlockwise (that\textquotesingle{}s \textquotesingle{}counterclockwise\textquotesingle{} for you Americans out there ;) The default is \hyperlink{group___general_ggac173244ed7d950d0acd726e4f323ecdba50170ef4a0a12b9fc6bf0c53e582bdf0}{Ogre\+::\+C\+U\+L\+L\+\_\+\+C\+L\+O\+C\+K\+W\+I\+SE} i.\+e. that only triangles whose vertices are passed/indexed in anticlockwise order are rendered -\/ this is a common approach and is used in 3D studio models for example. You can alter this culling mode if you wish but it is not advised unless you know what you are doing.

You may wish to use the \hyperlink{group___general_ggac173244ed7d950d0acd726e4f323ecdba7868e61bf90df40d5e04e3a951729248}{Ogre\+::\+C\+U\+L\+L\+\_\+\+N\+O\+NE} option for mesh data that you cull yourself where the vertex winding is uncertain or for creating 2-\/sided passes. \mbox{\Hypertarget{class_ogre_1_1_pass_aedb647950fbc40f52ae139eb166d602d}\label{class_ogre_1_1_pass_aedb647950fbc40f52ae139eb166d602d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Culling\+Mode@{get\+Culling\+Mode}}
\index{get\+Culling\+Mode@{get\+Culling\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Culling\+Mode()}{getCullingMode()}}
{\footnotesize\ttfamily \hyperlink{group___general_gac173244ed7d950d0acd726e4f323ecdb}{Culling\+Mode} Ogre\+::\+Pass\+::get\+Culling\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the culling mode for geometry rendered with this pass. 

See set\+Culling\+Mode for more information. \mbox{\Hypertarget{class_ogre_1_1_pass_a3b528827b54f17b72bb204321640a6f7}\label{class_ogre_1_1_pass_a3b528827b54f17b72bb204321640a6f7}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Manual\+Culling\+Mode@{set\+Manual\+Culling\+Mode}}
\index{set\+Manual\+Culling\+Mode@{set\+Manual\+Culling\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Manual\+Culling\+Mode()}{setManualCullingMode()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Manual\+Culling\+Mode (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga07ec94cf178172a6778223e6f70f23fc}{Manual\+Culling\+Mode}}]{mode }\end{DoxyParamCaption})}



Sets the manual culling mode, performed by C\+PU rather than hardware. 

In some situations you want to use manual culling of triangles rather than sending the triangles to the hardware and letting it cull them. This setting only takes effect on \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager}\textquotesingle{}s that use it (since it is best used on large groups of planar world geometry rather than on movable geometry since this would be expensive), but if used can cull geometry before it is sent to the hardware.

In this case the culling is based on whether the ’back’ or ’front’ of the triangle is facing the camera -\/ this definition is based on the face normal (a vector which sticks out of the front side of the polygon perpendicular to the face). Since Ogre expects face normals to be on anticlockwise side of the face, \hyperlink{group___general_gga07ec94cf178172a6778223e6f70f23fcadbebf0c209be54ddb19d6097d4f7042f}{Ogre\+::\+M\+A\+N\+U\+A\+L\+\_\+\+C\+U\+L\+L\+\_\+\+B\+A\+CK} is the software equivalent of \hyperlink{group___general_ggac173244ed7d950d0acd726e4f323ecdba50170ef4a0a12b9fc6bf0c53e582bdf0}{Ogre\+::\+C\+U\+L\+L\+\_\+\+C\+L\+O\+C\+K\+W\+I\+SE} setting, which is why they are both the default. The naming is different to reflect the way the culling is done though, since most of the time face normals are pre-\/calculated and they don’t have to be the way Ogre expects -\/ you could set \hyperlink{group___general_ggac173244ed7d950d0acd726e4f323ecdba7868e61bf90df40d5e04e3a951729248}{Ogre\+::\+C\+U\+L\+L\+\_\+\+N\+O\+NE} and completely cull in software based on your own face normals, if you have the right \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} which uses them. \mbox{\Hypertarget{class_ogre_1_1_pass_acd99aaea7eec3026699bfccdd09310b0}\label{class_ogre_1_1_pass_acd99aaea7eec3026699bfccdd09310b0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Manual\+Culling\+Mode@{get\+Manual\+Culling\+Mode}}
\index{get\+Manual\+Culling\+Mode@{get\+Manual\+Culling\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Manual\+Culling\+Mode()}{getManualCullingMode()}}
{\footnotesize\ttfamily \hyperlink{group___general_ga07ec94cf178172a6778223e6f70f23fc}{Manual\+Culling\+Mode} Ogre\+::\+Pass\+::get\+Manual\+Culling\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Retrieves the manual culling mode for this pass. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_pass_a3b528827b54f17b72bb204321640a6f7}{set\+Manual\+Culling\+Mode} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}\label{class_ogre_1_1_pass_a6285f13a06eb7f00b83ea2754e434623}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Lighting\+Enabled@{set\+Lighting\+Enabled}}
\index{set\+Lighting\+Enabled@{set\+Lighting\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Lighting\+Enabled()}{setLightingEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Lighting\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether or not dynamic lighting is enabled. 

Turning dynamic lighting off makes any ambient, diffuse, specular, emissive and shading properties for this pass redundant. If lighting is turned off, all objects rendered using the pass will be fully lit. When lighting is turned on, objects are lit according to their vertex normals for diffuse and specular light, and globally for ambient and emissive. \mbox{\Hypertarget{class_ogre_1_1_pass_abce35807758f26b84d29313cf70593cd}\label{class_ogre_1_1_pass_abce35807758f26b84d29313cf70593cd}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Lighting\+Enabled@{get\+Lighting\+Enabled}}
\index{get\+Lighting\+Enabled@{get\+Lighting\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Lighting\+Enabled()}{getLightingEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Lighting\+Enabled (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether or not dynamic lighting is enabled. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a95a7a4006f26528ef4f6ce42ae56b09b}\label{class_ogre_1_1_pass_a95a7a4006f26528ef4f6ce42ae56b09b}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Max\+Simultaneous\+Lights@{set\+Max\+Simultaneous\+Lights}}
\index{set\+Max\+Simultaneous\+Lights@{set\+Max\+Simultaneous\+Lights}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Max\+Simultaneous\+Lights()}{setMaxSimultaneousLights()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Max\+Simultaneous\+Lights (\begin{DoxyParamCaption}\item[{unsigned short}]{max\+Lights }\end{DoxyParamCaption})}



Sets the maximum number of lights to be used by this pass. 

\begin{DoxyRemark}{Remarks}
During rendering, if lighting is enabled (or if the pass uses an automatic program parameter based on a light) the engine will request the nearest lights to the object being rendered in order to work out which ones to use. This parameter sets the limit on the number of lights which should apply to objects rendered with this pass. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_abd67db27426bb99e6e58e7299424c4bc}\label{class_ogre_1_1_pass_abd67db27426bb99e6e58e7299424c4bc}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Max\+Simultaneous\+Lights@{get\+Max\+Simultaneous\+Lights}}
\index{get\+Max\+Simultaneous\+Lights@{get\+Max\+Simultaneous\+Lights}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Max\+Simultaneous\+Lights()}{getMaxSimultaneousLights()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Pass\+::get\+Max\+Simultaneous\+Lights (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the maximum number of lights to be used by this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8b816cdd2b5b5fcc5cbe6744b6bb2dbd}\label{class_ogre_1_1_pass_a8b816cdd2b5b5fcc5cbe6744b6bb2dbd}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Start\+Light@{set\+Start\+Light}}
\index{set\+Start\+Light@{set\+Start\+Light}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Start\+Light()}{setStartLight()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Start\+Light (\begin{DoxyParamCaption}\item[{unsigned short}]{start\+Light }\end{DoxyParamCaption})}



Sets the light index that this pass will start at in the light list. 

Normally the lights passed to a pass will start from the beginning of the light list for this object. This option allows you to make this pass start from a higher light index, for example if one of your earlier passes could deal with lights 0-\/3, and this pass dealt with lights 4+. This option also has an interaction with pass iteration, in that if you choose to iterate this pass per light too, the iteration will only begin from light 4. \mbox{\Hypertarget{class_ogre_1_1_pass_a53fec71cb3076c1387cc6133f2996c78}\label{class_ogre_1_1_pass_a53fec71cb3076c1387cc6133f2996c78}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Start\+Light@{get\+Start\+Light}}
\index{get\+Start\+Light@{get\+Start\+Light}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Start\+Light()}{getStartLight()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Pass\+::get\+Start\+Light (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the light index that this pass will start at in the light list. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a9f14ed26740158970994057e48e562e9}\label{class_ogre_1_1_pass_a9f14ed26740158970994057e48e562e9}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Light\+Mask@{set\+Light\+Mask}}
\index{set\+Light\+Mask@{set\+Light\+Mask}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Light\+Mask()}{setLightMask()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Light\+Mask (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32}}]{mask }\end{DoxyParamCaption})}



Sets the light mask which can be matched to specific light flags to be handled by this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8f7068c8fb5556c150126866373343ac}\label{class_ogre_1_1_pass_a8f7068c8fb5556c150126866373343ac}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Light\+Mask@{get\+Light\+Mask}}
\index{get\+Light\+Mask@{get\+Light\+Mask}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Light\+Mask()}{getLightMask()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Pass\+::get\+Light\+Mask (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Gets the light mask controlling which lights are used for this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ade6c00297cd5d46bb365d981cd1764a6}\label{class_ogre_1_1_pass_ade6c00297cd5d46bb365d981cd1764a6}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shading\+Mode@{set\+Shading\+Mode}}
\index{set\+Shading\+Mode@{set\+Shading\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shading\+Mode()}{setShadingMode()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shading\+Mode (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga7afd4c7d428baaee13f3a0dbcae5f560}{Shade\+Options}}]{mode }\end{DoxyParamCaption})}



Sets the type of light shading required. 

When dynamic lighting is turned on, the effect is to generate colour values at each vertex. Whether these values are interpolated across the face (and how) depends on this setting. The default shading method is \hyperlink{group___general_gga7afd4c7d428baaee13f3a0dbcae5f560a2973848ded9ca7c0f93a329e12181feb}{Ogre\+::\+S\+O\+\_\+\+G\+O\+U\+R\+A\+UD}. \mbox{\Hypertarget{class_ogre_1_1_pass_a5485f8b014bfa01d765a442999ad9ed3}\label{class_ogre_1_1_pass_a5485f8b014bfa01d765a442999ad9ed3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shading\+Mode@{get\+Shading\+Mode}}
\index{get\+Shading\+Mode@{get\+Shading\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shading\+Mode()}{getShadingMode()}}
{\footnotesize\ttfamily \hyperlink{group___general_ga7afd4c7d428baaee13f3a0dbcae5f560}{Shade\+Options} Ogre\+::\+Pass\+::get\+Shading\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the type of light shading to be used. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a61d996b43e57fa45e660b23013855fe2}\label{class_ogre_1_1_pass_a61d996b43e57fa45e660b23013855fe2}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Polygon\+Mode@{set\+Polygon\+Mode}}
\index{set\+Polygon\+Mode@{set\+Polygon\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Polygon\+Mode()}{setPolygonMode()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Polygon\+Mode (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga68866b02aa7f99e3431337511fbb3345}{Polygon\+Mode}}]{mode }\end{DoxyParamCaption})}



Sets the type of polygon rendering required. 

Sets how polygons should be rasterised, i.\+e. whether they should be filled in, or just drawn as lines or points. The default shading method is \hyperlink{group___general_gga68866b02aa7f99e3431337511fbb3345a7e87bf8ec063f4e7bf022a7396346211}{Ogre\+::\+P\+M\+\_\+\+S\+O\+L\+ID}. \mbox{\Hypertarget{class_ogre_1_1_pass_a4791eea37712b82994052b3e4a360fa0}\label{class_ogre_1_1_pass_a4791eea37712b82994052b3e4a360fa0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Polygon\+Mode@{get\+Polygon\+Mode}}
\index{get\+Polygon\+Mode@{get\+Polygon\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Polygon\+Mode()}{getPolygonMode()}}
{\footnotesize\ttfamily \hyperlink{group___general_ga68866b02aa7f99e3431337511fbb3345}{Polygon\+Mode} Ogre\+::\+Pass\+::get\+Polygon\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the type of light shading to be used. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ad681df78f0e0c61e1bc166e3ec85170f}\label{class_ogre_1_1_pass_ad681df78f0e0c61e1bc166e3ec85170f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Polygon\+Mode\+Overrideable@{set\+Polygon\+Mode\+Overrideable}}
\index{set\+Polygon\+Mode\+Overrideable@{set\+Polygon\+Mode\+Overrideable}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Polygon\+Mode\+Overrideable()}{setPolygonModeOverrideable()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Polygon\+Mode\+Overrideable (\begin{DoxyParamCaption}\item[{bool}]{override }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Sets whether the Polygon\+Mode set on this pass can be downgraded by the camera. 


\begin{DoxyParams}{Parameters}
{\em override} & If set to false, this pass will always be rendered at its own chosen polygon mode no matter what the camera says. The default is true. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_acb5a5d646e84a1d6c0be32f1132419f8}\label{class_ogre_1_1_pass_acb5a5d646e84a1d6c0be32f1132419f8}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Polygon\+Mode\+Overrideable@{get\+Polygon\+Mode\+Overrideable}}
\index{get\+Polygon\+Mode\+Overrideable@{get\+Polygon\+Mode\+Overrideable}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Polygon\+Mode\+Overrideable()}{getPolygonModeOverrideable()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Polygon\+Mode\+Overrideable (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets whether this renderable\textquotesingle{}s chosen detail level can be overridden (downgraded) by the camera setting. 



References Ogre\+::\+F\+O\+G\+\_\+\+N\+O\+NE, and Ogre\+::\+Colour\+Value\+::\+White.

\mbox{\Hypertarget{class_ogre_1_1_pass_a32b0cabffa642b0f3743ac5d82392a1d}\label{class_ogre_1_1_pass_a32b0cabffa642b0f3743ac5d82392a1d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Fog@{set\+Fog}}
\index{set\+Fog@{set\+Fog}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Fog()}{setFog()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Fog (\begin{DoxyParamCaption}\item[{bool}]{override\+Scene,  }\item[{\hyperlink{group___general_ga83edeb2e5d33a3ca8f15834ba40020ba}{Fog\+Mode}}]{mode = {\ttfamily \hyperlink{group___general_gga83edeb2e5d33a3ca8f15834ba40020baab7793a21880052c0214d4cc040992310}{F\+O\+G\+\_\+\+N\+O\+NE}},  }\item[{const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value} \&}]{colour = {\ttfamily \hyperlink{class_ogre_1_1_colour_value_a8eba66b2908f44f00f8d9c9ec25877de}{Colour\+Value\+::\+White}},  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{exp\+Density = {\ttfamily 0.001},  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{linear\+Start = {\ttfamily 0.0},  }\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{linear\+End = {\ttfamily 1.0} }\end{DoxyParamCaption})}



Sets the fogging mode applied to this pass. 

\begin{DoxyRemark}{Remarks}
Fogging is an effect that is applied as polys are rendered. Sometimes, you want fog to be applied to an entire scene. Other times, you want it to be applied to a few polygons only. This pass-\/level specification of fog parameters lets you easily manage both. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
The \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} class also has a set\+Fog method which applies scene-\/level fog. This method lets you change the fog behaviour for this pass compared to the standard scene-\/level fog. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em override\+Scene} & If true, you authorise this pass to override the scene\textquotesingle{}s fog params with it\textquotesingle{}s own settings. If you specify false, so other parameters are necessary, and this is the default behaviour for passes. \\
\hline
{\em mode} & Only applicable if override\+Scene is true. You can disable fog which is turned on for the rest of the scene by specifying F\+O\+G\+\_\+\+N\+O\+NE. Otherwise, set a pass-\/specific fog mode as defined in the enum Fog\+Mode. \\
\hline
{\em colour} & The colour of the fog. Either set this to the same as your viewport background colour, or to blend in with a skydome or skybox. \\
\hline
{\em exp\+Density} & The density of the fog in F\+O\+G\+\_\+\+E\+XP or F\+O\+G\+\_\+\+E\+X\+P2 mode, as a value between 0 and 1. The default is 0.\+001. \\
\hline
{\em linear\+Start} & Distance in world units at which linear fog starts to encroach. Only applicable if mode is F\+O\+G\+\_\+\+L\+I\+N\+E\+AR. \\
\hline
{\em linear\+End} & Distance in world units at which linear fog becomes completely opaque. Only applicable if mode is F\+O\+G\+\_\+\+L\+I\+N\+E\+AR. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_a3a8e2ca7f03f60cf41377da7d79c5d19}\label{class_ogre_1_1_pass_a3a8e2ca7f03f60cf41377da7d79c5d19}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fog\+Override@{get\+Fog\+Override}}
\index{get\+Fog\+Override@{get\+Fog\+Override}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fog\+Override()}{getFogOverride()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Fog\+Override (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns true if this pass is to override the scene fog settings. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a1713843694cb5213646bfa517875515c}\label{class_ogre_1_1_pass_a1713843694cb5213646bfa517875515c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fog\+Mode@{get\+Fog\+Mode}}
\index{get\+Fog\+Mode@{get\+Fog\+Mode}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fog\+Mode()}{getFogMode()}}
{\footnotesize\ttfamily \hyperlink{group___general_ga83edeb2e5d33a3ca8f15834ba40020ba}{Fog\+Mode} Ogre\+::\+Pass\+::get\+Fog\+Mode (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the fog mode for this pass. 

\begin{DoxyNote}{Note}
Only valid if get\+Fog\+Override is true. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_acc2a614a0b99daa23be0f73d88c1336f}\label{class_ogre_1_1_pass_acc2a614a0b99daa23be0f73d88c1336f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fog\+Colour@{get\+Fog\+Colour}}
\index{get\+Fog\+Colour@{get\+Fog\+Colour}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fog\+Colour()}{getFogColour()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_colour_value}{Colour\+Value}\& Ogre\+::\+Pass\+::get\+Fog\+Colour (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the fog colour for the scene. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a7780316594e2859363329abeec2baf18}\label{class_ogre_1_1_pass_a7780316594e2859363329abeec2baf18}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fog\+Start@{get\+Fog\+Start}}
\index{get\+Fog\+Start@{get\+Fog\+Start}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fog\+Start()}{getFogStart()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Fog\+Start (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the fog start distance for this pass. 

\begin{DoxyNote}{Note}
Only valid if get\+Fog\+Override is true. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a1e0d1749e26e30e482eb1c9a4d08c6fc}\label{class_ogre_1_1_pass_a1e0d1749e26e30e482eb1c9a4d08c6fc}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fog\+End@{get\+Fog\+End}}
\index{get\+Fog\+End@{get\+Fog\+End}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fog\+End()}{getFogEnd()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Fog\+End (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the fog end distance for this pass. 

\begin{DoxyNote}{Note}
Only valid if get\+Fog\+Override is true. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_adefc2b311bd7eda26d6e0d1d514624ac}\label{class_ogre_1_1_pass_adefc2b311bd7eda26d6e0d1d514624ac}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fog\+Density@{get\+Fog\+Density}}
\index{get\+Fog\+Density@{get\+Fog\+Density}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fog\+Density()}{getFogDensity()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} Ogre\+::\+Pass\+::get\+Fog\+Density (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns the fog density for this pass. 

\begin{DoxyNote}{Note}
Only valid if get\+Fog\+Override is true. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_aa35a3242a45176f8605bd8c866198b67}\label{class_ogre_1_1_pass_aa35a3242a45176f8605bd8c866198b67}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Depth\+Bias@{set\+Depth\+Bias}}
\index{set\+Depth\+Bias@{set\+Depth\+Bias}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Depth\+Bias()}{setDepthBias()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Depth\+Bias (\begin{DoxyParamCaption}\item[{float}]{constant\+Bias,  }\item[{float}]{slope\+Scale\+Bias = {\ttfamily 0.0f} }\end{DoxyParamCaption})}



Sets the depth bias to be used for this material. 

When polygons are coplanar, you can get problems with \textquotesingle{}depth fighting\textquotesingle{} where the pixels from the two polys compete for the same screen pixel. This is particularly a problem for decals (polys attached to another surface to represent details such as bulletholes etc.).

A way to combat this problem is to use a depth bias to adjust the depth buffer value used for the decal such that it is slightly higher than the true value, ensuring that the decal appears on top. There are two aspects to the biasing, a constant bias value and a slope-\/relative biasing value, which varies according to the maximum depth slope relative to the camera, ie\+:

\$\$final\+Bias = max\+Slope $\ast$ slope\+Scale\+Bias + constant\+Bias\$\$

Slope scale biasing is relative to the angle of the polygon to the camera, which makes for a more appropriate bias value, but this is ignored on some older hardware. Constant biasing is expressed as a factor of the minimum depth value, so a value of 1 will nudge the depth by one ’notch’ if you will. 
\begin{DoxyParams}{Parameters}
{\em constant\+Bias} & The constant bias value \\
\hline
{\em slope\+Scale\+Bias} & The slope-\/relative bias value \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_a0327eac96a7858951a92d64dbdef8b31}\label{class_ogre_1_1_pass_a0327eac96a7858951a92d64dbdef8b31}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Depth\+Bias\+Constant@{get\+Depth\+Bias\+Constant}}
\index{get\+Depth\+Bias\+Constant@{get\+Depth\+Bias\+Constant}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Depth\+Bias\+Constant()}{getDepthBiasConstant()}}
{\footnotesize\ttfamily float Ogre\+::\+Pass\+::get\+Depth\+Bias\+Constant (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Retrieves the const depth bias value as set by set\+Depth\+Bias. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a2639336933c81b101f7b38b02c590518}\label{class_ogre_1_1_pass_a2639336933c81b101f7b38b02c590518}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Depth\+Bias\+Slope\+Scale@{get\+Depth\+Bias\+Slope\+Scale}}
\index{get\+Depth\+Bias\+Slope\+Scale@{get\+Depth\+Bias\+Slope\+Scale}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Depth\+Bias\+Slope\+Scale()}{getDepthBiasSlopeScale()}}
{\footnotesize\ttfamily float Ogre\+::\+Pass\+::get\+Depth\+Bias\+Slope\+Scale (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Retrieves the slope-\/scale depth bias value as set by set\+Depth\+Bias. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aca462cd8e0708d90c3131ddd39e95674}\label{class_ogre_1_1_pass_aca462cd8e0708d90c3131ddd39e95674}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Iteration\+Depth\+Bias@{set\+Iteration\+Depth\+Bias}}
\index{set\+Iteration\+Depth\+Bias@{set\+Iteration\+Depth\+Bias}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Iteration\+Depth\+Bias()}{setIterationDepthBias()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Iteration\+Depth\+Bias (\begin{DoxyParamCaption}\item[{float}]{bias\+Per\+Iteration }\end{DoxyParamCaption})}



Sets a factor which derives an additional depth bias from the number of times a pass is iterated. 

\begin{DoxyRemark}{Remarks}
The Final depth bias will be the constant depth bias as set through set\+Depth\+Bias, plus this value times the iteration number. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_adcb78aa549dc85cb36bd3dbc8abeee24}\label{class_ogre_1_1_pass_adcb78aa549dc85cb36bd3dbc8abeee24}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Iteration\+Depth\+Bias@{get\+Iteration\+Depth\+Bias}}
\index{get\+Iteration\+Depth\+Bias@{get\+Iteration\+Depth\+Bias}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Iteration\+Depth\+Bias()}{getIterationDepthBias()}}
{\footnotesize\ttfamily float Ogre\+::\+Pass\+::get\+Iteration\+Depth\+Bias (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}



Gets a factor which derives an additional depth bias from the number of times a pass is iterated. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a9fe6fc3f542eade6b37d49cd0eadddde}\label{class_ogre_1_1_pass_a9fe6fc3f542eade6b37d49cd0eadddde}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Alpha\+Reject\+Settings@{set\+Alpha\+Reject\+Settings}}
\index{set\+Alpha\+Reject\+Settings@{set\+Alpha\+Reject\+Settings}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Alpha\+Reject\+Settings()}{setAlphaRejectSettings()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Alpha\+Reject\+Settings (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{func,  }\item[{unsigned char}]{value,  }\item[{bool}]{alpha\+To\+Coverage\+Enabled = {\ttfamily false} }\end{DoxyParamCaption})}



Sets the way the pass will have use alpha to totally reject pixels from the pipeline. 

\begin{DoxyRemark}{Remarks}
The default is C\+M\+P\+F\+\_\+\+A\+L\+W\+A\+Y\+S\+\_\+\+P\+A\+SS i.\+e. alpha is not used to reject pixels. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em func} & The comparison which must pass for the pixel to be written. \\
\hline
{\em value} & 1 byte value against which alpha values will be tested(0-\/255) \\
\hline
{\em alpha\+To\+Coverage\+Enabled} & Whether to enable alpha to coverage support \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This option applies in both the fixed function and the programmable pipeline. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a4f23af59e5f991f22a224f8e6b336af3}\label{class_ogre_1_1_pass_a4f23af59e5f991f22a224f8e6b336af3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Alpha\+Reject\+Function@{set\+Alpha\+Reject\+Function}}
\index{set\+Alpha\+Reject\+Function@{set\+Alpha\+Reject\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Alpha\+Reject\+Function()}{setAlphaRejectFunction()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Alpha\+Reject\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function}}]{func }\end{DoxyParamCaption})}



Sets the alpha reject function. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_pass_a9fe6fc3f542eade6b37d49cd0eadddde}{set\+Alpha\+Reject\+Settings} for more information. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_a6e5c5f69be78ddd80cbb202f66649fef}\label{class_ogre_1_1_pass_a6e5c5f69be78ddd80cbb202f66649fef}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Alpha\+Reject\+Value@{set\+Alpha\+Reject\+Value}}
\index{set\+Alpha\+Reject\+Value@{set\+Alpha\+Reject\+Value}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Alpha\+Reject\+Value()}{setAlphaRejectValue()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Alpha\+Reject\+Value (\begin{DoxyParamCaption}\item[{unsigned char}]{val }\end{DoxyParamCaption})}



Gets the alpha reject value. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_pass_a9fe6fc3f542eade6b37d49cd0eadddde}{set\+Alpha\+Reject\+Settings} for more information. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_ae1b0920d6ba670d5e2e85bf2282bd2ef}\label{class_ogre_1_1_pass_ae1b0920d6ba670d5e2e85bf2282bd2ef}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Alpha\+Reject\+Function@{get\+Alpha\+Reject\+Function}}
\index{get\+Alpha\+Reject\+Function@{get\+Alpha\+Reject\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Alpha\+Reject\+Function()}{getAlphaRejectFunction()}}
{\footnotesize\ttfamily \hyperlink{group___general_ga0212b4eb264f207d84c1df9425208c7a}{Compare\+Function} Ogre\+::\+Pass\+::get\+Alpha\+Reject\+Function (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the alpha reject function. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_pass_a9fe6fc3f542eade6b37d49cd0eadddde}{set\+Alpha\+Reject\+Settings} for more information. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_a8336a42895b9429c0bbae528fcaa5a43}\label{class_ogre_1_1_pass_a8336a42895b9429c0bbae528fcaa5a43}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Alpha\+Reject\+Value@{get\+Alpha\+Reject\+Value}}
\index{get\+Alpha\+Reject\+Value@{get\+Alpha\+Reject\+Value}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Alpha\+Reject\+Value()}{getAlphaRejectValue()}}
{\footnotesize\ttfamily unsigned char Ogre\+::\+Pass\+::get\+Alpha\+Reject\+Value (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the alpha reject value. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_pass_a9fe6fc3f542eade6b37d49cd0eadddde}{set\+Alpha\+Reject\+Settings} for more information. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_ae0a98973675e2cf71b286ceb9e73ecd3}\label{class_ogre_1_1_pass_ae0a98973675e2cf71b286ceb9e73ecd3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Alpha\+To\+Coverage\+Enabled@{set\+Alpha\+To\+Coverage\+Enabled}}
\index{set\+Alpha\+To\+Coverage\+Enabled@{set\+Alpha\+To\+Coverage\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Alpha\+To\+Coverage\+Enabled()}{setAlphaToCoverageEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Alpha\+To\+Coverage\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether to use alpha to coverage (A2C) when blending alpha rejected values. 

Alpha to coverage performs multisampling on the edges of alpha-\/rejected textures to produce a smoother result. It is only supported when multisampling is already enabled on the render target, and when the hardware supports alpha to coverage (see \hyperlink{class_ogre_1_1_render_system_capabilities}{Render\+System\+Capabilities}). The common use for alpha to coverage is foliage rendering and chain-\/link fence style textures. \mbox{\Hypertarget{class_ogre_1_1_pass_ad7582011f85937446047a843896c8382}\label{class_ogre_1_1_pass_ad7582011f85937446047a843896c8382}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!is\+Alpha\+To\+Coverage\+Enabled@{is\+Alpha\+To\+Coverage\+Enabled}}
\index{is\+Alpha\+To\+Coverage\+Enabled@{is\+Alpha\+To\+Coverage\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{is\+Alpha\+To\+Coverage\+Enabled()}{isAlphaToCoverageEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::is\+Alpha\+To\+Coverage\+Enabled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets whether to use alpha to coverage (A2C) when blending alpha rejected values. 



References Ogre\+::\+Light\+::\+L\+T\+\_\+\+P\+O\+I\+NT.

\mbox{\Hypertarget{class_ogre_1_1_pass_a2b99af55835117cfd4c479ab6c3a2ae5}\label{class_ogre_1_1_pass_a2b99af55835117cfd4c479ab6c3a2ae5}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Transparent\+Sorting\+Enabled@{set\+Transparent\+Sorting\+Enabled}}
\index{set\+Transparent\+Sorting\+Enabled@{set\+Transparent\+Sorting\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Transparent\+Sorting\+Enabled()}{setTransparentSortingEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Transparent\+Sorting\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether or not transparent sorting is enabled. 


\begin{DoxyParams}{Parameters}
{\em enabled} & If false depth sorting of this material will be disabled. \\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
By default all transparent materials are sorted such that renderables furthest away from the camera are rendered first. This is usually the desired behaviour but in certain cases this depth sorting may be unnecessary and undesirable. If for example it is necessary to ensure the rendering order does not change from one frame to the next. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This will have no effect on non-\/transparent materials. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a4a6ab6d3bce34b620675e9ccd2dfb89f}\label{class_ogre_1_1_pass_a4a6ab6d3bce34b620675e9ccd2dfb89f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Transparent\+Sorting\+Enabled@{get\+Transparent\+Sorting\+Enabled}}
\index{get\+Transparent\+Sorting\+Enabled@{get\+Transparent\+Sorting\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Transparent\+Sorting\+Enabled()}{getTransparentSortingEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Transparent\+Sorting\+Enabled (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether or not transparent sorting is enabled. 

\mbox{\Hypertarget{class_ogre_1_1_pass_adc75fe5011be72c0597535cb37d75d57}\label{class_ogre_1_1_pass_adc75fe5011be72c0597535cb37d75d57}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Transparent\+Sorting\+Forced@{set\+Transparent\+Sorting\+Forced}}
\index{set\+Transparent\+Sorting\+Forced@{set\+Transparent\+Sorting\+Forced}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Transparent\+Sorting\+Forced()}{setTransparentSortingForced()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Transparent\+Sorting\+Forced (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})}



Sets whether or not transparent sorting is forced. 


\begin{DoxyParams}{Parameters}
{\em enabled} & If true depth sorting of this material will be depend only on the value of \hyperlink{class_ogre_1_1_pass_a4a6ab6d3bce34b620675e9ccd2dfb89f}{get\+Transparent\+Sorting\+Enabled()}. \\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
By default even if transparent sorting is enabled, depth sorting will only be performed when the material is transparent and depth write/check are disabled. This function disables these extra conditions. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a9729c4faa36b1a38ce0a8c14a3627dbe}\label{class_ogre_1_1_pass_a9729c4faa36b1a38ce0a8c14a3627dbe}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Transparent\+Sorting\+Forced@{get\+Transparent\+Sorting\+Forced}}
\index{get\+Transparent\+Sorting\+Forced@{get\+Transparent\+Sorting\+Forced}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Transparent\+Sorting\+Forced()}{getTransparentSortingForced()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Transparent\+Sorting\+Forced (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether or not transparent sorting is forced. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aec98c9346a22a4a98acdaf5b8849a5c1}\label{class_ogre_1_1_pass_aec98c9346a22a4a98acdaf5b8849a5c1}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Iterate\+Per\+Light@{set\+Iterate\+Per\+Light}}
\index{set\+Iterate\+Per\+Light@{set\+Iterate\+Per\+Light}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Iterate\+Per\+Light()}{setIteratePerLight()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Iterate\+Per\+Light (\begin{DoxyParamCaption}\item[{bool}]{enabled,  }\item[{bool}]{only\+For\+One\+Light\+Type = {\ttfamily true},  }\item[{\hyperlink{class_ogre_1_1_light_a4f1dea084d1497c6f49e802ade940dbc}{Light\+::\+Light\+Types}}]{light\+Type = {\ttfamily \hyperlink{class_ogre_1_1_light_a4f1dea084d1497c6f49e802ade940dbca0d59bfdcfeb338dbfe06e2e2999e752f}{Light\+::\+L\+T\+\_\+\+P\+O\+I\+NT}} }\end{DoxyParamCaption})}



Sets whether or not this pass should iterate per light or number of lights which can affect the object being rendered. 

\begin{DoxyRemark}{Remarks}
The default behaviour for a pass (when this option is \textquotesingle{}false\textquotesingle{}), is for a pass to be rendered only once (or the number of times set in set\+Pass\+Iteration\+Count), with all the lights which could affect this object set at the same time (up to the maximum lights allowed in the render system, which is typically 8). 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Setting this option to \textquotesingle{}true\textquotesingle{} changes this behaviour, such that instead of trying to issue render this pass once per object, it is run {\bfseries per light}, or for a group of \textquotesingle{}n\textquotesingle{} lights each time which can affect this object, the number of times set in set\+Pass\+Iteration\+Count (default is once). In this case, only light index 0 is ever used, and is a different light every time the pass is issued, up to the total number of lights which is affecting this object. This has 2 advantages\+: 
\begin{DoxyItemize}
\item There is no limit on the number of lights which can be supported 
\item It\textquotesingle{}s easier to write vertex / fragment programs for this because a single program can be used for any number of lights 
\end{DoxyItemize}However, this technique is more expensive, and typically you will want an additional ambient pass, because if no lights are affecting the object it will not be rendered at all, which will look odd even if ambient light is zero (imagine if there are lit objects behind it -\/ the objects silhouette would not show up). Therefore, use this option with care, and you would be well advised to provide a less expensive fallback technique for use in the distance. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
The number of times this pass runs is still limited by the maximum number of lights allowed as set in set\+Max\+Simultaneous\+Lights, so you will never get more passes than this. Also, the iteration is started from the \textquotesingle{}start light\textquotesingle{} as set in \hyperlink{class_ogre_1_1_pass_a8b816cdd2b5b5fcc5cbe6744b6bb2dbd}{Pass\+::set\+Start\+Light}, and the number of passes is the number of lights to iterate over divided by the number of lights per iteration (default 1, set by set\+Light\+Count\+Per\+Iteration). 
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em enabled} & Whether this feature is enabled \\
\hline
{\em only\+For\+One\+Light\+Type} & If true, the pass will only be run for a single type of light, other light types will be ignored. \\
\hline
{\em light\+Type} & The single light type which will be considered for this pass \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_a606718035e449c4fdf91ae843adc4894}\label{class_ogre_1_1_pass_a606718035e449c4fdf91ae843adc4894}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Iterate\+Per\+Light@{get\+Iterate\+Per\+Light}}
\index{get\+Iterate\+Per\+Light@{get\+Iterate\+Per\+Light}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Iterate\+Per\+Light()}{getIteratePerLight()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Iterate\+Per\+Light (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Does this pass run once for every light in range? 

\mbox{\Hypertarget{class_ogre_1_1_pass_a0adea673c6a85f5fbc1c7403457c284f}\label{class_ogre_1_1_pass_a0adea673c6a85f5fbc1c7403457c284f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Run\+Only\+For\+One\+Light\+Type@{get\+Run\+Only\+For\+One\+Light\+Type}}
\index{get\+Run\+Only\+For\+One\+Light\+Type@{get\+Run\+Only\+For\+One\+Light\+Type}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Run\+Only\+For\+One\+Light\+Type()}{getRunOnlyForOneLightType()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Run\+Only\+For\+One\+Light\+Type (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Does this pass run only for a single light type (if get\+Iterate\+Per\+Light is true). 

\mbox{\Hypertarget{class_ogre_1_1_pass_a371e62569a03de84662a286c875e45cb}\label{class_ogre_1_1_pass_a371e62569a03de84662a286c875e45cb}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Only\+Light\+Type@{get\+Only\+Light\+Type}}
\index{get\+Only\+Light\+Type@{get\+Only\+Light\+Type}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Only\+Light\+Type()}{getOnlyLightType()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_light_a4f1dea084d1497c6f49e802ade940dbc}{Light\+::\+Light\+Types} Ogre\+::\+Pass\+::get\+Only\+Light\+Type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the single light type this pass runs for if get\+Iterate\+Per\+Light and get\+Run\+Only\+For\+One\+Light\+Type are both true. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a0e40ca39a238f0afe5e2d3a0db0661ce}\label{class_ogre_1_1_pass_a0e40ca39a238f0afe5e2d3a0db0661ce}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Light\+Count\+Per\+Iteration@{set\+Light\+Count\+Per\+Iteration}}
\index{set\+Light\+Count\+Per\+Iteration@{set\+Light\+Count\+Per\+Iteration}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Light\+Count\+Per\+Iteration()}{setLightCountPerIteration()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Light\+Count\+Per\+Iteration (\begin{DoxyParamCaption}\item[{unsigned short}]{c }\end{DoxyParamCaption})}



If light iteration is enabled, determine the number of lights per iteration. 

\begin{DoxyRemark}{Remarks}
The default for this setting is 1, so if you enable light iteration (\hyperlink{class_ogre_1_1_pass_aec98c9346a22a4a98acdaf5b8849a5c1}{Pass\+::set\+Iterate\+Per\+Light}), the pass is rendered once per light. If you set this value higher, the passes will occur once per \textquotesingle{}n\textquotesingle{} lights. The start of the iteration is set by \hyperlink{class_ogre_1_1_pass_a8b816cdd2b5b5fcc5cbe6744b6bb2dbd}{Pass\+::set\+Start\+Light} and the end by \hyperlink{class_ogre_1_1_pass_a95a7a4006f26528ef4f6ce42ae56b09b}{Pass\+::set\+Max\+Simultaneous\+Lights}. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a44cbf809b449b317d01500220b25d82f}\label{class_ogre_1_1_pass_a44cbf809b449b317d01500220b25d82f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Light\+Count\+Per\+Iteration@{get\+Light\+Count\+Per\+Iteration}}
\index{get\+Light\+Count\+Per\+Iteration@{get\+Light\+Count\+Per\+Iteration}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Light\+Count\+Per\+Iteration()}{getLightCountPerIteration()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Pass\+::get\+Light\+Count\+Per\+Iteration (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



If light iteration is enabled, determine the number of lights per iteration. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a224fe87a1d87d16212184331ef8a4906}\label{class_ogre_1_1_pass_a224fe87a1d87d16212184331ef8a4906}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Parent@{get\+Parent}}
\index{get\+Parent@{get\+Parent}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Parent()}{getParent()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_technique}{Technique}$\ast$ Ogre\+::\+Pass\+::get\+Parent (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the parent \hyperlink{class_ogre_1_1_technique}{Technique}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a0bd99345b312bfb24c297b147b7665c5}\label{class_ogre_1_1_pass_a0bd99345b312bfb24c297b147b7665c5}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Resource\+Group@{get\+Resource\+Group}}
\index{get\+Resource\+Group@{get\+Resource\+Group}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Resource\+Group()}{getResourceGroup()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Resource\+Group (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the resource group of the ultimate parent \hyperlink{class_ogre_1_1_material}{Material}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ac4d96a83679d194ce380ad55b014f69b}\label{class_ogre_1_1_pass_ac4d96a83679d194ce380ad55b014f69b}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Gpu\+Program@{get\+Gpu\+Program}}
\index{get\+Gpu\+Program@{get\+Gpu\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Gpu\+Program()}{getGpuProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Gpu\+Program (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{program\+Type }\end{DoxyParamCaption}) const}



Gets the Gpu program used by this pass, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()} 

\mbox{\Hypertarget{class_ogre_1_1_pass_a9d00b9b7adf3c5b5f78aed3b100cc2ee}\label{class_ogre_1_1_pass_a9d00b9b7adf3c5b5f78aed3b100cc2ee}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Vertex\+Program@{get\+Vertex\+Program}}
\index{get\+Vertex\+Program@{get\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Vertex\+Program()}{getVertexProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Vertex\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a49886b41c8e96ddfaea1d6b1c5264885}\label{class_ogre_1_1_pass_a49886b41c8e96ddfaea1d6b1c5264885}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fragment\+Program@{get\+Fragment\+Program}}
\index{get\+Fragment\+Program@{get\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fragment\+Program()}{getFragmentProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Fragment\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a72637ef35c39efd6ac000ada7e96bb13}\label{class_ogre_1_1_pass_a72637ef35c39efd6ac000ada7e96bb13}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Geometry\+Program@{get\+Geometry\+Program}}
\index{get\+Geometry\+Program@{get\+Geometry\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Geometry\+Program()}{getGeometryProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Geometry\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_ad218fad32224eca7ed978b92e8b81895}\label{class_ogre_1_1_pass_ad218fad32224eca7ed978b92e8b81895}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Tessellation\+Hull\+Program@{get\+Tessellation\+Hull\+Program}}
\index{get\+Tessellation\+Hull\+Program@{get\+Tessellation\+Hull\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Tessellation\+Hull\+Program()}{getTessellationHullProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Tessellation\+Hull\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_ad5d4c302e116ef27dea2b0a56705ccc4}\label{class_ogre_1_1_pass_ad5d4c302e116ef27dea2b0a56705ccc4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Tessellation\+Domain\+Program@{get\+Tessellation\+Domain\+Program}}
\index{get\+Tessellation\+Domain\+Program@{get\+Tessellation\+Domain\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Tessellation\+Domain\+Program()}{getTessellationDomainProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Tessellation\+Domain\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a97e4cdfc70411ee066cf68e1c7a817e4}\label{class_ogre_1_1_pass_a97e4cdfc70411ee066cf68e1c7a817e4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Compute\+Program@{get\+Compute\+Program}}
\index{get\+Compute\+Program@{get\+Compute\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Compute\+Program()}{getComputeProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Compute\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a50c2b23280ac2eca62b767ecebfa5888}\label{class_ogre_1_1_pass_a50c2b23280ac2eca62b767ecebfa5888}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!has\+Gpu\+Program@{has\+Gpu\+Program}}
\index{has\+Gpu\+Program@{has\+Gpu\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{has\+Gpu\+Program()}{hasGpuProgram()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::has\+Gpu\+Program (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{program\+Type }\end{DoxyParamCaption}) const}

\mbox{\Hypertarget{class_ogre_1_1_pass_a6d208f945dbfc60cac0cc4502a8eb3dc}\label{class_ogre_1_1_pass_a6d208f945dbfc60cac0cc4502a8eb3dc}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Caster\+Vertex\+Program@{set\+Shadow\+Caster\+Vertex\+Program}}
\index{set\+Shadow\+Caster\+Vertex\+Program@{set\+Shadow\+Caster\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Caster\+Vertex\+Program()}{setShadowCasterVertexProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Caster\+Vertex\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



Sets the details of the vertex program to use when rendering as a shadow caster. 

\begin{DoxyRemark}{Remarks}
Texture-\/based shadows require that the caster is rendered to a texture in a solid colour (the shadow colour in the case of modulative texture shadows). Whilst \hyperlink{namespace_ogre}{Ogre} can arrange this for the fixed function pipeline, passes which use vertex programs might need the vertex programs still to run in order to preserve any deformation etc that it does. However, lighting calculations must be a lot simpler, with only the ambient colour being used (which the engine will ensure is bound to the shadow colour). 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Therefore, it is up to implementors of vertex programs to provide an alternative vertex program which can be used to render the object to a shadow texture. Do all the same vertex transforms, but set the colour of the vertex to the ambient colour, as bound using the standard auto parameter binding mechanism. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
Some vertex programs will work without doing this, because \hyperlink{namespace_ogre}{Ogre} ensures that all lights except for ambient are set black. However, the chances are that your vertex program is doing a lot of unnecessary work in this case, since the other lights are having no effect, and it is good practice to supply an alternative. 

This is only applicable to programmable passes. 
\end{DoxyNote}
\begin{DoxyParagraph}{}
The default behaviour is for \hyperlink{namespace_ogre}{Ogre} to switch to fixed-\/function rendering if an explicit vertex program alternative is not set. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_pass_a585dc96fdf025aaef00dce27bbf1328b}\label{class_ogre_1_1_pass_a585dc96fdf025aaef00dce27bbf1328b}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Caster\+Vertex\+Program\+Parameters@{set\+Shadow\+Caster\+Vertex\+Program\+Parameters}}
\index{set\+Shadow\+Caster\+Vertex\+Program\+Parameters@{set\+Shadow\+Caster\+Vertex\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Caster\+Vertex\+Program\+Parameters()}{setShadowCasterVertexProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Caster\+Vertex\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}



Sets the vertex program parameters for rendering as a shadow caster. 

\begin{DoxyRemark}{Remarks}
Only applicable to programmable passes, and this particular call is designed for low-\/level programs; use the named parameter methods for setting high-\/level program parameters. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a7fe8a6e86af9147b83fc7f80698d5096}\label{class_ogre_1_1_pass_a7fe8a6e86af9147b83fc7f80698d5096}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Caster\+Vertex\+Program\+Name@{get\+Shadow\+Caster\+Vertex\+Program\+Name}}
\index{get\+Shadow\+Caster\+Vertex\+Program\+Name@{get\+Shadow\+Caster\+Vertex\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Caster\+Vertex\+Program\+Name()}{getShadowCasterVertexProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Shadow\+Caster\+Vertex\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the name of the vertex program used by this pass when rendering shadow casters. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aad15fe5527342cbcd93aab469024af00}\label{class_ogre_1_1_pass_aad15fe5527342cbcd93aab469024af00}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Caster\+Vertex\+Program\+Parameters@{get\+Shadow\+Caster\+Vertex\+Program\+Parameters}}
\index{get\+Shadow\+Caster\+Vertex\+Program\+Parameters@{get\+Shadow\+Caster\+Vertex\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Caster\+Vertex\+Program\+Parameters()}{getShadowCasterVertexProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Shadow\+Caster\+Vertex\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the vertex program parameters used by this pass when rendering shadow casters. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a1b77400f0729267d6403afc312738788}\label{class_ogre_1_1_pass_a1b77400f0729267d6403afc312738788}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Caster\+Vertex\+Program@{get\+Shadow\+Caster\+Vertex\+Program}}
\index{get\+Shadow\+Caster\+Vertex\+Program@{get\+Shadow\+Caster\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Caster\+Vertex\+Program()}{getShadowCasterVertexProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Shadow\+Caster\+Vertex\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the vertex program used by this pass when rendering shadow casters, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aae19f94be0da24a4b813e5849ecc4fc2}\label{class_ogre_1_1_pass_aae19f94be0da24a4b813e5849ecc4fc2}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Caster\+Fragment\+Program@{set\+Shadow\+Caster\+Fragment\+Program}}
\index{set\+Shadow\+Caster\+Fragment\+Program@{set\+Shadow\+Caster\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Caster\+Fragment\+Program()}{setShadowCasterFragmentProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Caster\+Fragment\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



Sets the details of the fragment program to use when rendering as a shadow caster. 

\begin{DoxyRemark}{Remarks}
Texture-\/based shadows require that the caster is rendered to a texture in a solid colour (the shadow colour in the case of modulative texture shadows). Whilst \hyperlink{namespace_ogre}{Ogre} can arrange this for the fixed function pipeline, passes which use vertex programs might need the vertex programs still to run in order to preserve any deformation etc that it does. However, lighting calculations must be a lot simpler, with only the ambient colour being used (which the engine will ensure is bound to the shadow colour). 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Therefore, it is up to implementors of vertex programs to provide an alternative vertex program which can be used to render the object to a shadow texture. Do all the same vertex transforms, but set the colour of the vertex to the ambient colour, as bound using the standard auto parameter binding mechanism. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
Some vertex programs will work without doing this, because \hyperlink{namespace_ogre}{Ogre} ensures that all lights except for ambient are set black. However, the chances are that your vertex program is doing a lot of unnecessary work in this case, since the other lights are having no effect, and it is good practice to supply an alternative. 

This is only applicable to programmable passes. 
\end{DoxyNote}
\begin{DoxyParagraph}{}
The default behaviour is for \hyperlink{namespace_ogre}{Ogre} to switch to fixed-\/function rendering if an explicit fragment program alternative is not set. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_pass_a4dfd71fa6c43cdf5c6f3613fdee1a17d}\label{class_ogre_1_1_pass_a4dfd71fa6c43cdf5c6f3613fdee1a17d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Caster\+Fragment\+Program\+Parameters@{set\+Shadow\+Caster\+Fragment\+Program\+Parameters}}
\index{set\+Shadow\+Caster\+Fragment\+Program\+Parameters@{set\+Shadow\+Caster\+Fragment\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Caster\+Fragment\+Program\+Parameters()}{setShadowCasterFragmentProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Caster\+Fragment\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}



Sets the fragment program parameters for rendering as a shadow caster. 

\begin{DoxyRemark}{Remarks}
Only applicable to programmable passes, and this particular call is designed for low-\/level programs; use the named parameter methods for setting high-\/level program parameters. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a8d626f46f910ebd72c1dc0fc6ef46bd5}\label{class_ogre_1_1_pass_a8d626f46f910ebd72c1dc0fc6ef46bd5}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Caster\+Fragment\+Program\+Name@{get\+Shadow\+Caster\+Fragment\+Program\+Name}}
\index{get\+Shadow\+Caster\+Fragment\+Program\+Name@{get\+Shadow\+Caster\+Fragment\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Caster\+Fragment\+Program\+Name()}{getShadowCasterFragmentProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Shadow\+Caster\+Fragment\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the name of the fragment program used by this pass when rendering shadow casters. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ac50fb7f2a742128dd915ec6c94493249}\label{class_ogre_1_1_pass_ac50fb7f2a742128dd915ec6c94493249}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Caster\+Fragment\+Program\+Parameters@{get\+Shadow\+Caster\+Fragment\+Program\+Parameters}}
\index{get\+Shadow\+Caster\+Fragment\+Program\+Parameters@{get\+Shadow\+Caster\+Fragment\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Caster\+Fragment\+Program\+Parameters()}{getShadowCasterFragmentProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Shadow\+Caster\+Fragment\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the fragment program parameters used by this pass when rendering shadow casters. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a5a43888d52a70572e771c69aceaf2fc3}\label{class_ogre_1_1_pass_a5a43888d52a70572e771c69aceaf2fc3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Caster\+Fragment\+Program@{get\+Shadow\+Caster\+Fragment\+Program}}
\index{get\+Shadow\+Caster\+Fragment\+Program@{get\+Shadow\+Caster\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Caster\+Fragment\+Program()}{getShadowCasterFragmentProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Shadow\+Caster\+Fragment\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the fragment program used by this pass when rendering shadow casters, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8be472bada8c2fdaac24fd0349f11964}\label{class_ogre_1_1_pass_a8be472bada8c2fdaac24fd0349f11964}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Receiver\+Vertex\+Program@{set\+Shadow\+Receiver\+Vertex\+Program}}
\index{set\+Shadow\+Receiver\+Vertex\+Program@{set\+Shadow\+Receiver\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Receiver\+Vertex\+Program()}{setShadowReceiverVertexProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Receiver\+Vertex\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



Sets the details of the vertex program to use when rendering as a shadow receiver. 

\begin{DoxyRemark}{Remarks}
Texture-\/based shadows require that the shadow receiver is rendered using a projective texture. Whilst \hyperlink{namespace_ogre}{Ogre} can arrange this for the fixed function pipeline, passes which use vertex programs might need the vertex programs still to run in order to preserve any deformation etc that it does. So in this case, we need a vertex program which does the appropriate vertex transformation, but generates projective texture coordinates. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
Therefore, it is up to implementors of vertex programs to provide an alternative vertex program which can be used to render the object as a shadow receiver. Do all the same vertex transforms, but generate {\bfseries 2 sets} of texture coordinates using the auto parameter A\+C\+T\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+V\+I\+E\+W\+P\+R\+O\+J\+\_\+\+M\+A\+T\+R\+IX, which \hyperlink{namespace_ogre}{Ogre} will bind to the parameter name / index you supply as the second parameter to this method. 2 texture sets are needed because \hyperlink{namespace_ogre}{Ogre} needs to use 2 texture units for some shadow effects. 
\end{DoxyParagraph}
\begin{DoxyNote}{Note}
This is only applicable to programmable passes. 
\end{DoxyNote}
\begin{DoxyParagraph}{}
The default behaviour is for \hyperlink{namespace_ogre}{Ogre} to switch to fixed-\/function rendering if an explict vertex program alternative is not set. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_pass_aae8406edd157f8b8b2b1236bbe816f4f}\label{class_ogre_1_1_pass_aae8406edd157f8b8b2b1236bbe816f4f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Receiver\+Vertex\+Program\+Parameters@{set\+Shadow\+Receiver\+Vertex\+Program\+Parameters}}
\index{set\+Shadow\+Receiver\+Vertex\+Program\+Parameters@{set\+Shadow\+Receiver\+Vertex\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Receiver\+Vertex\+Program\+Parameters()}{setShadowReceiverVertexProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Receiver\+Vertex\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}



Sets the vertex program parameters for rendering as a shadow receiver. 

\begin{DoxyRemark}{Remarks}
Only applicable to programmable passes, and this particular call is designed for low-\/level programs; use the named parameter methods for setting high-\/level program parameters. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_af674d2851440589007add4a41d9e92f3}\label{class_ogre_1_1_pass_af674d2851440589007add4a41d9e92f3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Receiver\+Fragment\+Program@{set\+Shadow\+Receiver\+Fragment\+Program}}
\index{set\+Shadow\+Receiver\+Fragment\+Program@{set\+Shadow\+Receiver\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Receiver\+Fragment\+Program()}{setShadowReceiverFragmentProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Receiver\+Fragment\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name }\end{DoxyParamCaption})}



This method allows you to specify a fragment program for use when rendering a texture shadow receiver. 

\begin{DoxyRemark}{Remarks}
\hyperlink{class_ogre_1_1_texture}{Texture} shadows are applied by rendering the receiver. Modulative texture shadows are performed as a post-\/render darkening pass, and as such fragment programs are generally not required per-\/object. Additive texture shadows, however, are applied by accumulating light masked out using a texture shadow (black \& white by default, unless you customise this using Scene\+Manager\+::set\+Custom\+Shadow\+Caster\+Material). O\+G\+RE can do this for you for most materials, but if you use a custom lighting program (e.\+g. per pixel lighting) then you\textquotesingle{}ll need to provide a custom version for receiving shadows. You don\textquotesingle{}t need to provide this for shadow casters if you don\textquotesingle{}t use self-\/shadowing since they will never be shadow receivers too. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
The shadow texture is always bound to texture unit 0 when rendering texture shadow passes. Therefore your custom shadow receiver program may well just need to shift it\textquotesingle{}s texture unit usage up by one unit, and take the shadow texture into account in its calculations. 
\end{DoxyParagraph}
\mbox{\Hypertarget{class_ogre_1_1_pass_a873f11315e573b7c069f59e822492874}\label{class_ogre_1_1_pass_a873f11315e573b7c069f59e822492874}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Shadow\+Receiver\+Fragment\+Program\+Parameters@{set\+Shadow\+Receiver\+Fragment\+Program\+Parameters}}
\index{set\+Shadow\+Receiver\+Fragment\+Program\+Parameters@{set\+Shadow\+Receiver\+Fragment\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Shadow\+Receiver\+Fragment\+Program\+Parameters()}{setShadowReceiverFragmentProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Shadow\+Receiver\+Fragment\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}



Sets the fragment program parameters for rendering as a shadow receiver. 

\begin{DoxyRemark}{Remarks}
Only applicable to programmable passes, and this particular call is designed for low-\/level programs; use the named parameter methods for setting high-\/level program parameters. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a4af5577bec4cfc86ca60f3e04d25fef0}\label{class_ogre_1_1_pass_a4af5577bec4cfc86ca60f3e04d25fef0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Receiver\+Vertex\+Program\+Name@{get\+Shadow\+Receiver\+Vertex\+Program\+Name}}
\index{get\+Shadow\+Receiver\+Vertex\+Program\+Name@{get\+Shadow\+Receiver\+Vertex\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Receiver\+Vertex\+Program\+Name()}{getShadowReceiverVertexProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Shadow\+Receiver\+Vertex\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the name of the vertex program used by this pass when rendering shadow receivers. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a830fa419b857cf256059cb3662064484}\label{class_ogre_1_1_pass_a830fa419b857cf256059cb3662064484}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Receiver\+Vertex\+Program\+Parameters@{get\+Shadow\+Receiver\+Vertex\+Program\+Parameters}}
\index{get\+Shadow\+Receiver\+Vertex\+Program\+Parameters@{get\+Shadow\+Receiver\+Vertex\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Receiver\+Vertex\+Program\+Parameters()}{getShadowReceiverVertexProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Shadow\+Receiver\+Vertex\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the vertex program parameters used by this pass when rendering shadow receivers. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aef06bc668729148b9faa79309611cf36}\label{class_ogre_1_1_pass_aef06bc668729148b9faa79309611cf36}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Receiver\+Vertex\+Program@{get\+Shadow\+Receiver\+Vertex\+Program}}
\index{get\+Shadow\+Receiver\+Vertex\+Program@{get\+Shadow\+Receiver\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Receiver\+Vertex\+Program()}{getShadowReceiverVertexProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Shadow\+Receiver\+Vertex\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the vertex program used by this pass when rendering shadow receivers, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_acb379c72f33bd89e771516a4ebc25e08}\label{class_ogre_1_1_pass_acb379c72f33bd89e771516a4ebc25e08}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Receiver\+Fragment\+Program\+Name@{get\+Shadow\+Receiver\+Fragment\+Program\+Name}}
\index{get\+Shadow\+Receiver\+Fragment\+Program\+Name@{get\+Shadow\+Receiver\+Fragment\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Receiver\+Fragment\+Program\+Name()}{getShadowReceiverFragmentProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Shadow\+Receiver\+Fragment\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the name of the fragment program used by this pass when rendering shadow receivers. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a145368fb69cd0b1daa8ef4738d70fc24}\label{class_ogre_1_1_pass_a145368fb69cd0b1daa8ef4738d70fc24}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Receiver\+Fragment\+Program\+Parameters@{get\+Shadow\+Receiver\+Fragment\+Program\+Parameters}}
\index{get\+Shadow\+Receiver\+Fragment\+Program\+Parameters@{get\+Shadow\+Receiver\+Fragment\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Receiver\+Fragment\+Program\+Parameters()}{getShadowReceiverFragmentProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Shadow\+Receiver\+Fragment\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the fragment program parameters used by this pass when rendering shadow receivers. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a7093553beb0811c323ac54d45730a9d8}\label{class_ogre_1_1_pass_a7093553beb0811c323ac54d45730a9d8}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Shadow\+Receiver\+Fragment\+Program@{get\+Shadow\+Receiver\+Fragment\+Program}}
\index{get\+Shadow\+Receiver\+Fragment\+Program@{get\+Shadow\+Receiver\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Shadow\+Receiver\+Fragment\+Program()}{getShadowReceiverFragmentProgram()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr}\& Ogre\+::\+Pass\+::get\+Shadow\+Receiver\+Fragment\+Program (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Gets the fragment program used by this pass when rendering shadow receivers, only available after \hyperlink{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}{\+\_\+load()}. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a3d4978eca2f3387a7abec740ec760ad7}\label{class_ogre_1_1_pass_a3d4978eca2f3387a7abec740ec760ad7}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Gpu\+Program@{set\+Gpu\+Program}}
\index{set\+Gpu\+Program@{set\+Gpu\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Gpu\+Program()}{setGpuProgram()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Gpu\+Program (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{type,  }\item[{const \hyperlink{namespace_ogre_a2c452533979dfdf73a296288e94d920b}{Gpu\+Program\+Ptr} \&}]{prog,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}



Sets the details of the program to use. 

\begin{DoxyRemark}{Remarks}
Only applicable to programmable passes, this sets the details of the program to use in this pass. The program will not be loaded until the parent \hyperlink{class_ogre_1_1_material}{Material} is loaded. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em reset\+Params} & If true, this will create a fresh set of parameters from the new program being linked, so if you had previously set parameters you will have to set them again. If you set this to false, you must be absolutely sure that the parameters match perfectly, and in the case of named parameters refers to the indexes underlying them, not just the names. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_abee48df0d246eb685780d16b32b7f8f4}\label{class_ogre_1_1_pass_abee48df0d246eb685780d16b32b7f8f4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Gpu\+Program@{set\+Gpu\+Program}}
\index{set\+Gpu\+Program@{set\+Gpu\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Gpu\+Program()}{setGpuProgram()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Gpu\+Program (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{type,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}



This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 


\begin{DoxyParams}{Parameters}
{\em name} & The name of the program -\/ this must have been created using \hyperlink{class_ogre_1_1_gpu_program_manager}{Gpu\+Program\+Manager} by the time that this \hyperlink{class_ogre_1_1_pass}{Pass} is loaded. If this parameter is blank, any program of the type in this pass is disabled. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_a3019e308b0759cc150ac0f45308d69b3}\label{class_ogre_1_1_pass_a3019e308b0759cc150ac0f45308d69b3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Fragment\+Program@{set\+Fragment\+Program}}
\index{set\+Fragment\+Program@{set\+Fragment\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Fragment\+Program()}{setFragmentProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Fragment\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_af6b2aab96fb146a8e92043c7dc771de4}\label{class_ogre_1_1_pass_af6b2aab96fb146a8e92043c7dc771de4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Geometry\+Program@{set\+Geometry\+Program}}
\index{set\+Geometry\+Program@{set\+Geometry\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Geometry\+Program()}{setGeometryProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Geometry\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a5adb72e47427f59f672e43b709c68038}\label{class_ogre_1_1_pass_a5adb72e47427f59f672e43b709c68038}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Tessellation\+Domain\+Program@{set\+Tessellation\+Domain\+Program}}
\index{set\+Tessellation\+Domain\+Program@{set\+Tessellation\+Domain\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Tessellation\+Domain\+Program()}{setTessellationDomainProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Tessellation\+Domain\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a6821e86c7c287fabcd28344117f772d0}\label{class_ogre_1_1_pass_a6821e86c7c287fabcd28344117f772d0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Tessellation\+Hull\+Program@{set\+Tessellation\+Hull\+Program}}
\index{set\+Tessellation\+Hull\+Program@{set\+Tessellation\+Hull\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Tessellation\+Hull\+Program()}{setTessellationHullProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Tessellation\+Hull\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_aba0003996c1c200db9fb6466a2253a54}\label{class_ogre_1_1_pass_aba0003996c1c200db9fb6466a2253a54}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Vertex\+Program@{set\+Vertex\+Program}}
\index{set\+Vertex\+Program@{set\+Vertex\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Vertex\+Program()}{setVertexProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Vertex\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a97deab966da4653d248875782b45a3f1}\label{class_ogre_1_1_pass_a97deab966da4653d248875782b45a3f1}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Compute\+Program@{set\+Compute\+Program}}
\index{set\+Compute\+Program@{set\+Compute\+Program}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Compute\+Program()}{setComputeProgram()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Compute\+Program (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{bool}]{reset\+Params = {\ttfamily true} }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a91bdef99c065c528a54572c99628841e}\label{class_ogre_1_1_pass_a91bdef99c065c528a54572c99628841e}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Gpu\+Program\+Name@{get\+Gpu\+Program\+Name}}
\index{get\+Gpu\+Program\+Name@{get\+Gpu\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Gpu\+Program\+Name()}{getGpuProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Gpu\+Program\+Name (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{type }\end{DoxyParamCaption}) const}



Gets the name of the program used by this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a289c78896d2777260cf5722b4cb8fd2d}\label{class_ogre_1_1_pass_a289c78896d2777260cf5722b4cb8fd2d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fragment\+Program\+Name@{get\+Fragment\+Program\+Name}}
\index{get\+Fragment\+Program\+Name@{get\+Fragment\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fragment\+Program\+Name()}{getFragmentProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Fragment\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+::\+G\+P\+T\+\_\+\+F\+R\+A\+G\+M\+E\+N\+T\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_ac3fdaa6b028d32a0302746ceeb79a6d3}\label{class_ogre_1_1_pass_ac3fdaa6b028d32a0302746ceeb79a6d3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Geometry\+Program\+Name@{get\+Geometry\+Program\+Name}}
\index{get\+Geometry\+Program\+Name@{get\+Geometry\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Geometry\+Program\+Name()}{getGeometryProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Geometry\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+::\+G\+P\+T\+\_\+\+G\+E\+O\+M\+E\+T\+R\+Y\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_a0da495acb6aaea4832685156dfbf8975}\label{class_ogre_1_1_pass_a0da495acb6aaea4832685156dfbf8975}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Tessellation\+Domain\+Program\+Name@{get\+Tessellation\+Domain\+Program\+Name}}
\index{get\+Tessellation\+Domain\+Program\+Name@{get\+Tessellation\+Domain\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Tessellation\+Domain\+Program\+Name()}{getTessellationDomainProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Tessellation\+Domain\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+::\+G\+P\+T\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_afb0c89ec1367230c6e74eac585efd993}\label{class_ogre_1_1_pass_afb0c89ec1367230c6e74eac585efd993}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Tessellation\+Hull\+Program\+Name@{get\+Tessellation\+Hull\+Program\+Name}}
\index{get\+Tessellation\+Hull\+Program\+Name@{get\+Tessellation\+Hull\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Tessellation\+Hull\+Program\+Name()}{getTessellationHullProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Tessellation\+Hull\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+::\+G\+P\+T\+\_\+\+H\+U\+L\+L\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_a1789ae3425e0bc04aeb7a1e14583abf9}\label{class_ogre_1_1_pass_a1789ae3425e0bc04aeb7a1e14583abf9}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Vertex\+Program\+Name@{get\+Vertex\+Program\+Name}}
\index{get\+Vertex\+Program\+Name@{get\+Vertex\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Vertex\+Program\+Name()}{getVertexProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Vertex\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+::\+G\+P\+T\+\_\+\+V\+E\+R\+T\+E\+X\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_ab06bed97a00cdda2522fff1faadcae27}\label{class_ogre_1_1_pass_ab06bed97a00cdda2522fff1faadcae27}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Compute\+Program\+Name@{get\+Compute\+Program\+Name}}
\index{get\+Compute\+Program\+Name@{get\+Compute\+Program\+Name}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Compute\+Program\+Name()}{getComputeProgramName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Pass\+::get\+Compute\+Program\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. 

References Ogre\+::\+G\+P\+T\+\_\+\+C\+O\+M\+P\+U\+T\+E\+\_\+\+P\+R\+O\+G\+R\+AM.

\mbox{\Hypertarget{class_ogre_1_1_pass_a5e78606a7cd3ea84536ab9f3198fa79f}\label{class_ogre_1_1_pass_a5e78606a7cd3ea84536ab9f3198fa79f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Gpu\+Program\+Parameters@{set\+Gpu\+Program\+Parameters}}
\index{set\+Gpu\+Program\+Parameters@{set\+Gpu\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Gpu\+Program\+Parameters()}{setGpuProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Gpu\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{type,  }\item[{const \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} \&}]{params }\end{DoxyParamCaption})}



Sets the Gpu program parameters. 

\begin{DoxyRemark}{Remarks}
Only applicable to programmable passes, and this particular call is designed for low-\/level programs; use the named parameter methods for setting high-\/level program parameters. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_afc41cb1fe9251448002a2405405b8bd9}\label{class_ogre_1_1_pass_afc41cb1fe9251448002a2405405b8bd9}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Vertex\+Program\+Parameters@{set\+Vertex\+Program\+Parameters}}
\index{set\+Vertex\+Program\+Parameters@{set\+Vertex\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Vertex\+Program\+Parameters()}{setVertexProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Vertex\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_ae8c6cd9d16220e8ef358f8b3e072d261}\label{class_ogre_1_1_pass_ae8c6cd9d16220e8ef358f8b3e072d261}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Fragment\+Program\+Parameters@{set\+Fragment\+Program\+Parameters}}
\index{set\+Fragment\+Program\+Parameters@{set\+Fragment\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Fragment\+Program\+Parameters()}{setFragmentProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Fragment\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_afd45b897ebc29d3ee40a2ee307682f35}\label{class_ogre_1_1_pass_afd45b897ebc29d3ee40a2ee307682f35}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Geometry\+Program\+Parameters@{set\+Geometry\+Program\+Parameters}}
\index{set\+Geometry\+Program\+Parameters@{set\+Geometry\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Geometry\+Program\+Parameters()}{setGeometryProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Geometry\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a11e6148122bd80d646f75364bbc3cbe0}\label{class_ogre_1_1_pass_a11e6148122bd80d646f75364bbc3cbe0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Tessellation\+Hull\+Program\+Parameters@{set\+Tessellation\+Hull\+Program\+Parameters}}
\index{set\+Tessellation\+Hull\+Program\+Parameters@{set\+Tessellation\+Hull\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Tessellation\+Hull\+Program\+Parameters()}{setTessellationHullProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Tessellation\+Hull\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_ae4f6e70258ca9a870e3b0867792000e6}\label{class_ogre_1_1_pass_ae4f6e70258ca9a870e3b0867792000e6}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Tessellation\+Domain\+Program\+Parameters@{set\+Tessellation\+Domain\+Program\+Parameters}}
\index{set\+Tessellation\+Domain\+Program\+Parameters@{set\+Tessellation\+Domain\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Tessellation\+Domain\+Program\+Parameters()}{setTessellationDomainProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Tessellation\+Domain\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_ad58bed2ac47d40e65750c61c0ca36af3}\label{class_ogre_1_1_pass_ad58bed2ac47d40e65750c61c0ca36af3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Compute\+Program\+Parameters@{set\+Compute\+Program\+Parameters}}
\index{set\+Compute\+Program\+Parameters@{set\+Compute\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Compute\+Program\+Parameters()}{setComputeProgramParameters()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Compute\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}}]{params }\end{DoxyParamCaption})}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a2efc56272065eb16dc629380772d7d7f}\label{class_ogre_1_1_pass_a2efc56272065eb16dc629380772d7d7f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Gpu\+Program\+Parameters@{get\+Gpu\+Program\+Parameters}}
\index{get\+Gpu\+Program\+Parameters@{get\+Gpu\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Gpu\+Program\+Parameters()}{getGpuProgramParameters()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr}\& Ogre\+::\+Pass\+::get\+Gpu\+Program\+Parameters (\begin{DoxyParamCaption}\item[{\hyperlink{group___resources_gad08e89fa63e81d061ea9e2f37664976e}{Gpu\+Program\+Type}}]{type }\end{DoxyParamCaption}) const}



Gets the Gpu program parameters used by this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ac0d16617c07bcfdc4f17e9ffed2f8591}\label{class_ogre_1_1_pass_ac0d16617c07bcfdc4f17e9ffed2f8591}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Vertex\+Program\+Parameters@{get\+Vertex\+Program\+Parameters}}
\index{get\+Vertex\+Program\+Parameters@{get\+Vertex\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Vertex\+Program\+Parameters()}{getVertexProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Vertex\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a889ed9697e2a990143cb41f953878dd3}\label{class_ogre_1_1_pass_a889ed9697e2a990143cb41f953878dd3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Fragment\+Program\+Parameters@{get\+Fragment\+Program\+Parameters}}
\index{get\+Fragment\+Program\+Parameters@{get\+Fragment\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Fragment\+Program\+Parameters()}{getFragmentProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Fragment\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a48643d1a8dc67e86a712ff32f8371c5e}\label{class_ogre_1_1_pass_a48643d1a8dc67e86a712ff32f8371c5e}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Geometry\+Program\+Parameters@{get\+Geometry\+Program\+Parameters}}
\index{get\+Geometry\+Program\+Parameters@{get\+Geometry\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Geometry\+Program\+Parameters()}{getGeometryProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Geometry\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_abe6e32bc6812ed954daaa2c5518a2ac3}\label{class_ogre_1_1_pass_abe6e32bc6812ed954daaa2c5518a2ac3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Tessellation\+Hull\+Program\+Parameters@{get\+Tessellation\+Hull\+Program\+Parameters}}
\index{get\+Tessellation\+Hull\+Program\+Parameters@{get\+Tessellation\+Hull\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Tessellation\+Hull\+Program\+Parameters()}{getTessellationHullProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Tessellation\+Hull\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a22415cb613dea6b39a7940ceebaca32f}\label{class_ogre_1_1_pass_a22415cb613dea6b39a7940ceebaca32f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Tessellation\+Domain\+Program\+Parameters@{get\+Tessellation\+Domain\+Program\+Parameters}}
\index{get\+Tessellation\+Domain\+Program\+Parameters@{get\+Tessellation\+Domain\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Tessellation\+Domain\+Program\+Parameters()}{getTessellationDomainProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Tessellation\+Domain\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a879780ade78dc1dce173c51ed5c6b3f2}\label{class_ogre_1_1_pass_a879780ade78dc1dce173c51ed5c6b3f2}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Compute\+Program\+Parameters@{get\+Compute\+Program\+Parameters}}
\index{get\+Compute\+Program\+Parameters@{get\+Compute\+Program\+Parameters}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Compute\+Program\+Parameters()}{getComputeProgramParameters()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_aebab7cecf3f3ae81a1fbfa08ab36f2b5}{Gpu\+Program\+Parameters\+Shared\+Ptr} Ogre\+::\+Pass\+::get\+Compute\+Program\+Parameters (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. \mbox{\Hypertarget{class_ogre_1_1_pass_a4934405e476e98dd05912a1ff42b7b2c}\label{class_ogre_1_1_pass_a4934405e476e98dd05912a1ff42b7b2c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+split@{\+\_\+split}}
\index{\+\_\+split@{\+\_\+split}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+split()}{\_split()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_pass}{Pass}$\ast$ Ogre\+::\+Pass\+::\+\_\+split (\begin{DoxyParamCaption}\item[{unsigned short}]{num\+Units }\end{DoxyParamCaption})}



Splits this \hyperlink{class_ogre_1_1_pass}{Pass} to one which can be handled in the number of texture units specified. 

\begin{DoxyRemark}{Remarks}
Only works on non-\/programmable passes, programmable passes cannot be split, it\textquotesingle{}s up to the author to ensure that there is a fallback \hyperlink{class_ogre_1_1_technique}{Technique} for less capable cards. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em num\+Units} & The target number of texture units \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A new \hyperlink{class_ogre_1_1_pass}{Pass} which contains the remaining units, and a scene\+\_\+blend setting appropriate to approximate the multitexture. This \hyperlink{class_ogre_1_1_pass}{Pass} will be attached to the parent \hyperlink{class_ogre_1_1_technique}{Technique} of this \hyperlink{class_ogre_1_1_pass}{Pass}. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_pass_afaa52a3826a08569b8263834f043a83f}\label{class_ogre_1_1_pass_afaa52a3826a08569b8263834f043a83f}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+notify\+Index@{\+\_\+notify\+Index}}
\index{\+\_\+notify\+Index@{\+\_\+notify\+Index}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+notify\+Index()}{\_notifyIndex()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+notify\+Index (\begin{DoxyParamCaption}\item[{unsigned short}]{index }\end{DoxyParamCaption})}



Internal method to adjust pass index. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ab85cf60f49c52c53671d5bb5105231e8}\label{class_ogre_1_1_pass_ab85cf60f49c52c53671d5bb5105231e8}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+prepare@{\+\_\+prepare}}
\index{\+\_\+prepare@{\+\_\+prepare}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+prepare()}{\_prepare()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+prepare (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Internal method for preparing to load this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a928061c8f56d923808add7e8ba9cdee8}\label{class_ogre_1_1_pass_a928061c8f56d923808add7e8ba9cdee8}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+unprepare@{\+\_\+unprepare}}
\index{\+\_\+unprepare@{\+\_\+unprepare}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+unprepare()}{\_unprepare()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+unprepare (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Internal method for undoing the load preparartion for this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}\label{class_ogre_1_1_pass_ac1e07d3bccdb7f6c437c107c92e4ae46}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+load@{\+\_\+load}}
\index{\+\_\+load@{\+\_\+load}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+load()}{\_load()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+load (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Internal method for loading this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a5766787845b1be6dfbf45cac068fc825}\label{class_ogre_1_1_pass_a5766787845b1be6dfbf45cac068fc825}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+unload@{\+\_\+unload}}
\index{\+\_\+unload@{\+\_\+unload}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+unload()}{\_unload()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+unload (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Internal method for unloading this pass. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a36390b119257048ddb35ab0439eed63d}\label{class_ogre_1_1_pass_a36390b119257048ddb35ab0439eed63d}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!is\+Loaded@{is\+Loaded}}
\index{is\+Loaded@{is\+Loaded}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{is\+Loaded()}{isLoaded()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::is\+Loaded (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Is this loaded? 

\mbox{\Hypertarget{class_ogre_1_1_pass_a6096fdb876d7929f8d78d4fabae44a25}\label{class_ogre_1_1_pass_a6096fdb876d7929f8d78d4fabae44a25}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Hash@{get\+Hash}}
\index{get\+Hash@{get\+Hash}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Hash()}{getHash()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_adf2a0cf2e77143b5ee1d38a75e289545}{uint32} Ogre\+::\+Pass\+::get\+Hash (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the \textquotesingle{}hash\textquotesingle{} of this pass, ie a precomputed number to use for sorting. 

\begin{DoxyRemark}{Remarks}
This hash is used to sort passes, and for this reason the pass is hashed using firstly its index (so that all passes are rendered in order), then by the textures which it\textquotesingle{}s \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} instances are using. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a44c84896039e6a9f3a44da8468591fb3}\label{class_ogre_1_1_pass_a44c84896039e6a9f3a44da8468591fb3}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+dirty\+Hash@{\+\_\+dirty\+Hash}}
\index{\+\_\+dirty\+Hash@{\+\_\+dirty\+Hash}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+dirty\+Hash()}{\_dirtyHash()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+dirty\+Hash (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Mark the hash as dirty. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a367a1affcb2e26d61a5b5e3594b0ce6a}\label{class_ogre_1_1_pass_a367a1affcb2e26d61a5b5e3594b0ce6a}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+recalculate\+Hash@{\+\_\+recalculate\+Hash}}
\index{\+\_\+recalculate\+Hash@{\+\_\+recalculate\+Hash}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+recalculate\+Hash()}{\_recalculateHash()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+recalculate\+Hash (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Internal method for recalculating the hash. 

\begin{DoxyRemark}{Remarks}
Do not call this unless you are sure the old hash is not still being used by anything. If in doubt, call \+\_\+dirty\+Hash if you want to force recalculation of the has next time. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a6d9af04b4a643df1d81cc0443ca34ab2}\label{class_ogre_1_1_pass_a6d9af04b4a643df1d81cc0443ca34ab2}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+notify\+Needs\+Recompile@{\+\_\+notify\+Needs\+Recompile}}
\index{\+\_\+notify\+Needs\+Recompile@{\+\_\+notify\+Needs\+Recompile}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+notify\+Needs\+Recompile()}{\_notifyNeedsRecompile()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+notify\+Needs\+Recompile (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Tells the pass that it needs recompilation. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ad17196c5383815e1af157fc9617c474b}\label{class_ogre_1_1_pass_ad17196c5383815e1af157fc9617c474b}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+update\+Auto\+Params@{\+\_\+update\+Auto\+Params}}
\index{\+\_\+update\+Auto\+Params@{\+\_\+update\+Auto\+Params}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+update\+Auto\+Params()}{\_updateAutoParams()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::\+\_\+update\+Auto\+Params (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_auto_param_data_source}{Auto\+Param\+Data\+Source} $\ast$}]{source,  }\item[{\hyperlink{namespace_ogre_aa8263b218e7d187ad5ef03a73a6ad7fd}{uint16}}]{variability\+Mask }\end{DoxyParamCaption}) const}



Update automatic parameters. 


\begin{DoxyParams}{Parameters}
{\em source} & The source of the parameters \\
\hline
{\em variability\+Mask} & A mask of Gpu\+Param\+Variability which identifies which autos will need updating \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_a8f69f7e13e3665ba295ce9b4671fdc4c}\label{class_ogre_1_1_pass_a8f69f7e13e3665ba295ce9b4671fdc4c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!\+\_\+get\+Texture\+Unit\+With\+Content\+Type\+Index@{\+\_\+get\+Texture\+Unit\+With\+Content\+Type\+Index}}
\index{\+\_\+get\+Texture\+Unit\+With\+Content\+Type\+Index@{\+\_\+get\+Texture\+Unit\+With\+Content\+Type\+Index}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{\+\_\+get\+Texture\+Unit\+With\+Content\+Type\+Index()}{\_getTextureUnitWithContentTypeIndex()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Pass\+::\+\_\+get\+Texture\+Unit\+With\+Content\+Type\+Index (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_texture_unit_state_a35a108a68c71c8267af4af8c1a819030}{Texture\+Unit\+State\+::\+Content\+Type}}]{content\+Type,  }\item[{unsigned short}]{index }\end{DoxyParamCaption}) const}



Gets the \textquotesingle{}nth\textquotesingle{} texture which references the given content type. 

\begin{DoxyRemark}{Remarks}
If the \textquotesingle{}nth\textquotesingle{} texture unit which references the content type doesn\textquotesingle{}t exist, then this method returns an arbitrary high-\/value outside the valid range to index texture units. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a5abbb49b669a575991c17bb67bcae975}\label{class_ogre_1_1_pass_a5abbb49b669a575991c17bb67bcae975}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Texture\+Filtering@{set\+Texture\+Filtering}}
\index{set\+Texture\+Filtering@{set\+Texture\+Filtering}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Texture\+Filtering()}{setTextureFiltering()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Texture\+Filtering (\begin{DoxyParamCaption}\item[{\hyperlink{group___general_ga21a0186392e9c9ce16d29c5568a773c5}{Texture\+Filter\+Options}}]{filter\+Type }\end{DoxyParamCaption})}



Set texture filtering for every texture unit. 

\begin{DoxyNote}{Note}
This property actually exists on the \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} class For simplicity, this method allows you to set these properties for every current Teexture\+Unit\+State, If you need more precision, retrieve the \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} instance and set the property there. 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_texture_unit_state_a30757c168b734902d03720e3f36c27d4}{Texture\+Unit\+State\+::set\+Texture\+Filtering} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_a388afa054c642dd6b0585fd168cd7b1a}\label{class_ogre_1_1_pass_a388afa054c642dd6b0585fd168cd7b1a}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Texture\+Anisotropy@{set\+Texture\+Anisotropy}}
\index{set\+Texture\+Anisotropy@{set\+Texture\+Anisotropy}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Texture\+Anisotropy()}{setTextureAnisotropy()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Texture\+Anisotropy (\begin{DoxyParamCaption}\item[{unsigned int}]{max\+Aniso }\end{DoxyParamCaption})}



Sets the anisotropy level to be used for all textures. 

\begin{DoxyNote}{Note}
This property has been moved to the \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} class, which is accessible via the \hyperlink{class_ogre_1_1_technique}{Technique} and \hyperlink{class_ogre_1_1_pass}{Pass}. For simplicity, this method allows you to set these properties for every current Teexture\+Unit\+State, If you need more precision, retrieve the \hyperlink{class_ogre_1_1_technique}{Technique}, \hyperlink{class_ogre_1_1_pass}{Pass} and \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} instances and set the property there. 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_texture_unit_state_abb2bc03bc72f2098e37c4240f637c5e5}{Texture\+Unit\+State\+::set\+Texture\+Anisotropy} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_ad00b9d37cf0d5d7af26d23a2a48f5541}\label{class_ogre_1_1_pass_ad00b9d37cf0d5d7af26d23a2a48f5541}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Normalise\+Normals@{set\+Normalise\+Normals}}
\index{set\+Normalise\+Normals@{set\+Normalise\+Normals}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Normalise\+Normals()}{setNormaliseNormals()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Normalise\+Normals (\begin{DoxyParamCaption}\item[{bool}]{normalise }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



If set to true, this forces normals to be normalised dynamically by the hardware for this pass. 

This option can be used to prevent lighting variations when scaling an object -\/ normally because this scaling is hardware based, the normals get scaled too which causes lighting to become inconsistent. By default the \hyperlink{class_ogre_1_1_scene_manager}{Scene\+Manager} detects scaled objects and does this for you, but this has an overhead so you might want to turn that off through Ogre\+::\+Scene\+Manager\+::set\+Normalise\+Normals\+On\+Scale(false) and only do it per-\/\+Pass when you need to. \mbox{\Hypertarget{class_ogre_1_1_pass_a858b9c564570fd84e19c77a9b84da557}\label{class_ogre_1_1_pass_a858b9c564570fd84e19c77a9b84da557}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Normalise\+Normals@{get\+Normalise\+Normals}}
\index{get\+Normalise\+Normals@{get\+Normalise\+Normals}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Normalise\+Normals()}{getNormaliseNormals()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Normalise\+Normals (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Returns true if this pass has auto-\/normalisation of normals set. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a5e656ed906b7378c5c74d338575c3f58}\label{class_ogre_1_1_pass_a5e656ed906b7378c5c74d338575c3f58}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Dirty\+Hash\+List@{get\+Dirty\+Hash\+List}}
\index{get\+Dirty\+Hash\+List@{get\+Dirty\+Hash\+List}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Dirty\+Hash\+List()}{getDirtyHashList()}}
{\footnotesize\ttfamily static const \hyperlink{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}{Pass\+Set}\& Ogre\+::\+Pass\+::get\+Dirty\+Hash\+List (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Static method to retrieve all the Passes which need their hash values recalculated. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8ae403e739ce7fe033bc88ae943135e4}\label{class_ogre_1_1_pass_a8ae403e739ce7fe033bc88ae943135e4}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Pass\+Graveyard@{get\+Pass\+Graveyard}}
\index{get\+Pass\+Graveyard@{get\+Pass\+Graveyard}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Pass\+Graveyard()}{getPassGraveyard()}}
{\footnotesize\ttfamily static const \hyperlink{class_ogre_1_1_pass_aaedba8526ffd478f5d731507c4779caf}{Pass\+Set}\& Ogre\+::\+Pass\+::get\+Pass\+Graveyard (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Static method to retrieve all the Passes which are pending deletion. 

\mbox{\Hypertarget{class_ogre_1_1_pass_af1992ef39ef97e0b48e878c9aaa2badd}\label{class_ogre_1_1_pass_af1992ef39ef97e0b48e878c9aaa2badd}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!clear\+Dirty\+Hash\+List@{clear\+Dirty\+Hash\+List}}
\index{clear\+Dirty\+Hash\+List@{clear\+Dirty\+Hash\+List}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{clear\+Dirty\+Hash\+List()}{clearDirtyHashList()}}
{\footnotesize\ttfamily static void Ogre\+::\+Pass\+::clear\+Dirty\+Hash\+List (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Static method to reset the list of passes which need their hash values recalculated. 

\begin{DoxyRemark}{Remarks}
For performance, the dirty list is not updated progressively as the hashes are recalculated, instead we expect the processor of the dirty hash list to clear the list when they are done. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_pass_a989043a45609fd8f82235c3d1c402a23}\label{class_ogre_1_1_pass_a989043a45609fd8f82235c3d1c402a23}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!process\+Pending\+Pass\+Updates@{process\+Pending\+Pass\+Updates}}
\index{process\+Pending\+Pass\+Updates@{process\+Pending\+Pass\+Updates}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{process\+Pending\+Pass\+Updates()}{processPendingPassUpdates()}}
{\footnotesize\ttfamily static void Ogre\+::\+Pass\+::process\+Pending\+Pass\+Updates (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Process all dirty and pending deletion passes. 

\mbox{\Hypertarget{class_ogre_1_1_pass_aeb16b94de537bda3140df7095090cc10}\label{class_ogre_1_1_pass_aeb16b94de537bda3140df7095090cc10}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!queue\+For\+Deletion@{queue\+For\+Deletion}}
\index{queue\+For\+Deletion@{queue\+For\+Deletion}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{queue\+For\+Deletion()}{queueForDeletion()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::queue\+For\+Deletion (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Queue this pass for deletion when appropriate. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a8ff736f5d1d0eb3e3caa23b1d7c79997}\label{class_ogre_1_1_pass_a8ff736f5d1d0eb3e3caa23b1d7c79997}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!is\+Ambient\+Only@{is\+Ambient\+Only}}
\index{is\+Ambient\+Only@{is\+Ambient\+Only}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{is\+Ambient\+Only()}{isAmbientOnly()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::is\+Ambient\+Only (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const}



Returns whether this pass is ambient only. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a28ff8c16ee57201651da61e649ea216b}\label{class_ogre_1_1_pass_a28ff8c16ee57201651da61e649ea216b}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Pass\+Iteration\+Count@{set\+Pass\+Iteration\+Count}}
\index{set\+Pass\+Iteration\+Count@{set\+Pass\+Iteration\+Count}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Pass\+Iteration\+Count()}{setPassIterationCount()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Pass\+Iteration\+Count (\begin{DoxyParamCaption}\item[{const size\+\_\+t}]{count }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



set the number of iterations that this pass should perform when doing fast multi pass operation. 

\begin{DoxyRemark}{Remarks}
Only applicable for programmable passes. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em count} & number of iterations to perform fast multi pass operations. A value greater than 1 will cause the pass to be executed count number of times without changing the render state. This is very useful for passes that use programmable shaders that have to iterate more than once but don\textquotesingle{}t need a render state change. Using multi pass can dramatically speed up rendering for materials that do things like fur, blur. A value of 1 turns off multi pass operation and the pass does the normal pass operation. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_pass_ad51f3602ae69b8d0f219582aa6b16d48}\label{class_ogre_1_1_pass_ad51f3602ae69b8d0f219582aa6b16d48}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Pass\+Iteration\+Count@{get\+Pass\+Iteration\+Count}}
\index{get\+Pass\+Iteration\+Count@{get\+Pass\+Iteration\+Count}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Pass\+Iteration\+Count()}{getPassIterationCount()}}
{\footnotesize\ttfamily size\+\_\+t Ogre\+::\+Pass\+::get\+Pass\+Iteration\+Count (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets the pass iteration count value. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a264240f8ac08cef3f6cb6e374a03e059}\label{class_ogre_1_1_pass_a264240f8ac08cef3f6cb6e374a03e059}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!apply\+Texture\+Aliases@{apply\+Texture\+Aliases}}
\index{apply\+Texture\+Aliases@{apply\+Texture\+Aliases}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{apply\+Texture\+Aliases()}{applyTextureAliases()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::apply\+Texture\+Aliases (\begin{DoxyParamCaption}\item[{const \hyperlink{group___general_ga5dafc9e68bde8099ec5ad6c94e4cf19b}{Alias\+Texture\+Name\+Pair\+List} \&}]{alias\+List,  }\item[{const bool}]{apply = {\ttfamily true} }\end{DoxyParamCaption}) const}



Applies texture names to \hyperlink{class_ogre_1_1_texture}{Texture} Unit State with matching texture name aliases. 

All \hyperlink{class_ogre_1_1_texture}{Texture} Unit States within the pass are checked. If matching texture aliases are found then true is returned.


\begin{DoxyParams}{Parameters}
{\em alias\+List} & is a map container of texture alias, texture name pairs \\
\hline
{\em apply} & set true to apply the texture aliases else just test to see if texture alias matches are found. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if matching texture aliases were found in the pass. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_pass_a26fe99447102afb8e2002f7f1339dd8c}\label{class_ogre_1_1_pass_a26fe99447102afb8e2002f7f1339dd8c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Light\+Scissoring\+Enabled@{set\+Light\+Scissoring\+Enabled}}
\index{set\+Light\+Scissoring\+Enabled@{set\+Light\+Scissoring\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Light\+Scissoring\+Enabled()}{setLightScissoringEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Light\+Scissoring\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Sets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it. 

In order to cut down on fillrate when you have a number of fixed-\/range lights in the scene, you can enable this option to request that during rendering, only the region of the screen which is covered by the lights is rendered. This region is the screen-\/space rectangle covering the union of the spheres making up the light ranges. Directional lights are ignored for this.

This is only likely to be useful for multipass additive lighting algorithms, where the scene has already been \textquotesingle{}seeded\textquotesingle{} with an ambient pass and this pass is just adding light in affected areas.

When using \hyperlink{group___general_gga79dcd426d291c31072c1ad6f183715d6af6e22c7a699e9d05015cecff7b68c52a}{Ogre\+::\+S\+H\+A\+D\+O\+W\+T\+Y\+P\+E\+\_\+\+S\+T\+E\+N\+C\+I\+L\+\_\+\+A\+D\+D\+I\+T\+I\+VE} or \hyperlink{group___general_gga79dcd426d291c31072c1ad6f183715d6a8a2b43e30e6d8d590e6853e4f46b8103}{Ogre\+::\+S\+H\+A\+D\+O\+W\+T\+Y\+P\+E\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+A\+D\+D\+I\+T\+I\+VE}, this option is implicitly used for all per-\/light passes and does not need to be specified. If you are not using shadows or are using a modulative or an integrated shadow technique then this could be useful. \mbox{\Hypertarget{class_ogre_1_1_pass_a27766dcc987d75b836519d8be88fc6f6}\label{class_ogre_1_1_pass_a27766dcc987d75b836519d8be88fc6f6}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Light\+Scissoring\+Enabled@{get\+Light\+Scissoring\+Enabled}}
\index{get\+Light\+Scissoring\+Enabled@{get\+Light\+Scissoring\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Light\+Scissoring\+Enabled()}{getLightScissoringEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Light\+Scissoring\+Enabled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets whether or not this pass will be clipped by a scissor rectangle encompassing the lights that are being used in it. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a20d94474787abfd9eb9b07d5185ded0c}\label{class_ogre_1_1_pass_a20d94474787abfd9eb9b07d5185ded0c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Light\+Clip\+Planes\+Enabled@{set\+Light\+Clip\+Planes\+Enabled}}
\index{set\+Light\+Clip\+Planes\+Enabled@{set\+Light\+Clip\+Planes\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Light\+Clip\+Planes\+Enabled()}{setLightClipPlanesEnabled()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Light\+Clip\+Planes\+Enabled (\begin{DoxyParamCaption}\item[{bool}]{enabled }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Sets whether or not this pass will be clipped by user clips planes bounding the area covered by the light. 

This option will only function if there is a single non-\/directional light being used in this pass. If there is more than one light, or only directional lights, then no clipping will occur. If there are no lights at all then the objects won’t be rendered at all.

In order to cut down on the geometry set up to render this pass when you have a single fixed-\/range light being rendered through it, you can enable this option to request that during triangle setup, clip planes are defined to bound the range of the light. In the case of a point light these planes form a cube, and in the case of a spotlight they form a pyramid. Directional lights are never clipped.

This option is only likely to be useful for multipass additive lighting algorithms, where the scene has already been \textquotesingle{}seeded\textquotesingle{} with an ambient pass and this pass is just adding light in affected areas. In addition, it will only be honoured if there is exactly one non-\/directional light being used in this pass. Also, these clip planes override any user clip planes set on \hyperlink{class_ogre_1_1_camera}{Camera}.

When using \hyperlink{group___general_gga79dcd426d291c31072c1ad6f183715d6af6e22c7a699e9d05015cecff7b68c52a}{Ogre\+::\+S\+H\+A\+D\+O\+W\+T\+Y\+P\+E\+\_\+\+S\+T\+E\+N\+C\+I\+L\+\_\+\+A\+D\+D\+I\+T\+I\+VE} or \hyperlink{group___general_gga79dcd426d291c31072c1ad6f183715d6a8a2b43e30e6d8d590e6853e4f46b8103}{Ogre\+::\+S\+H\+A\+D\+O\+W\+T\+Y\+P\+E\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+A\+D\+D\+I\+T\+I\+VE}, this option is automatically used for all per-\/light passes if you enable \hyperlink{class_ogre_1_1_scene_manager_a40f296de8599657b70b7072921cbaa16}{Ogre\+::\+Scene\+Manager\+::set\+Shadow\+Use\+Light\+Clip\+Planes} and does not need to be specified. It is disabled by default since clip planes have a cost of their own which may not always exceed the benefits they give you. Generally the smaller your lights are the more chance you’ll see a benefit rather than a penalty from clipping.

\begin{DoxyNote}{Note}
A specific note about Open\+GL\+: user clip planes are completely ignored when you use an A\+RB vertex program. This means light clip planes won’t help much if you use A\+RB vertex programs on GL, although O\+G\+RE will perform some optimisation of its own, in that if it sees that the clip volume is completely off-\/screen, it won’t perform a render at all. When using \hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL}, user clipping can be used but you have to use gl\+\_\+\+Clip\+Vertex in your shader, see the \hyperlink{namespace_ogre_1_1_g_l_s_l}{G\+L\+SL} documentation for more information. In Direct3D user clip planes are always respected. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_pass_a0c32f4167d3ac2bfedb5ff536ab87594}\label{class_ogre_1_1_pass_a0c32f4167d3ac2bfedb5ff536ab87594}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Light\+Clip\+Planes\+Enabled@{get\+Light\+Clip\+Planes\+Enabled}}
\index{get\+Light\+Clip\+Planes\+Enabled@{get\+Light\+Clip\+Planes\+Enabled}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Light\+Clip\+Planes\+Enabled()}{getLightClipPlanesEnabled()}}
{\footnotesize\ttfamily bool Ogre\+::\+Pass\+::get\+Light\+Clip\+Planes\+Enabled (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Gets whether or not this pass will be clipped by user clips planes bounding the area covered by the light. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a30d680bb28cd69415883313d9f03dc6a}\label{class_ogre_1_1_pass_a30d680bb28cd69415883313d9f03dc6a}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Illumination\+Stage@{set\+Illumination\+Stage}}
\index{set\+Illumination\+Stage@{set\+Illumination\+Stage}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Illumination\+Stage()}{setIlluminationStage()}}
{\footnotesize\ttfamily void Ogre\+::\+Pass\+::set\+Illumination\+Stage (\begin{DoxyParamCaption}\item[{\hyperlink{group___materials_ga12a2bc4c75c439630241aa279089acb4}{Illumination\+Stage}}]{is }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Manually set which illumination stage this pass is a member of. 

When using an additive lighting mode (\hyperlink{group___general_gga79dcd426d291c31072c1ad6f183715d6af6e22c7a699e9d05015cecff7b68c52a}{Ogre\+::\+S\+H\+A\+D\+O\+W\+T\+Y\+P\+E\+\_\+\+S\+T\+E\+N\+C\+I\+L\+\_\+\+A\+D\+D\+I\+T\+I\+VE} or \hyperlink{group___general_gga79dcd426d291c31072c1ad6f183715d6a8a2b43e30e6d8d590e6853e4f46b8103}{Ogre\+::\+S\+H\+A\+D\+O\+W\+T\+Y\+P\+E\+\_\+\+T\+E\+X\+T\+U\+R\+E\+\_\+\+A\+D\+D\+I\+T\+I\+VE}), the scene is rendered in 3 discrete stages, ambient (or pre-\/lighting), per-\/light (once per light, with shadowing) and decal (or post-\/lighting). Usually O\+G\+RE figures out how to categorise your passes automatically, but there are some effects you cannot achieve without manually controlling the illumination. For example specular effects are muted by the typical sequence because all textures are saved until the \hyperlink{group___materials_gga12a2bc4c75c439630241aa279089acb4a55b9a19dea33fdf42c614c99c136a52e}{Ogre\+::\+I\+S\+\_\+\+D\+E\+C\+AL} stage which mutes the specular effect. Instead, you could do texturing within the per-\/light stage if it\textquotesingle{}s possible for your material and thus add the specular on after the decal texturing, and have no post-\/light rendering.

If you assign an illumination stage to a pass you have to assign it to all passes in the technique otherwise it will be ignored. Also note that whilst you can have more than one pass in each group, they cannot alternate, ie all ambient passes will be before all per-\/light passes, which will also be before all decal passes. Within their categories the passes will retain their ordering though. \mbox{\Hypertarget{class_ogre_1_1_pass_a77551778f0d1989cdf7541cd0a71faf8}\label{class_ogre_1_1_pass_a77551778f0d1989cdf7541cd0a71faf8}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Illumination\+Stage@{get\+Illumination\+Stage}}
\index{get\+Illumination\+Stage@{get\+Illumination\+Stage}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Illumination\+Stage()}{getIlluminationStage()}}
{\footnotesize\ttfamily \hyperlink{group___materials_ga12a2bc4c75c439630241aa279089acb4}{Illumination\+Stage} Ogre\+::\+Pass\+::get\+Illumination\+Stage (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the manually assigned illumination stage, if any. 

\mbox{\Hypertarget{class_ogre_1_1_pass_a686d4ade1581fba7b32609bc535ad9fc}\label{class_ogre_1_1_pass_a686d4ade1581fba7b32609bc535ad9fc}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Hash\+Function@{set\+Hash\+Function}}
\index{set\+Hash\+Function@{set\+Hash\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Hash\+Function()}{setHashFunction()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily static void Ogre\+::\+Pass\+::set\+Hash\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}{Builtin\+Hash\+Function}}]{builtin }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Sets one of the default hash functions to be used. 

\begin{DoxyRemark}{Remarks}
You absolutely must not change the hash function whilst any \hyperlink{class_ogre_1_1_pass}{Pass} instances exist in the render queue. The only time you can do this is either before you render anything, or directly after you manuall call Render\+Queue\+::clear(true) to completely destroy the queue structures. The default is M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
You can also implement your own hash function, see the alternate version of this method. 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_aff774d55b700af010f57e2330101a610}\label{class_ogre_1_1_pass_aff774d55b700af010f57e2330101a610}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!set\+Hash\+Function@{set\+Hash\+Function}}
\index{set\+Hash\+Function@{set\+Hash\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{set\+Hash\+Function()}{setHashFunction()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily static void Ogre\+::\+Pass\+::set\+Hash\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func} $\ast$}]{hash\+Func }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Set the hash function used for all passes. 

\begin{DoxyRemark}{Remarks}
You absolutely must not change the hash function whilst any \hyperlink{class_ogre_1_1_pass}{Pass} instances exist in the render queue. The only time you can do this is either before you render anything, or directly after you manuall call Render\+Queue\+::clear(true) to completely destroy the queue structures. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
You can also use one of the built-\/in hash functions, see the alternate version of this method. The default is M\+I\+N\+\_\+\+G\+P\+U\+\_\+\+P\+R\+O\+G\+R\+A\+M\+\_\+\+C\+H\+A\+N\+GE. 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_aedf90d0436441d359280b3c939ee1e3c}\label{class_ogre_1_1_pass_aedf90d0436441d359280b3c939ee1e3c}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Hash\+Function@{get\+Hash\+Function}}
\index{get\+Hash\+Function@{get\+Hash\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Hash\+Function()}{getHashFunction()}}
{\footnotesize\ttfamily static \hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func}$\ast$ Ogre\+::\+Pass\+::get\+Hash\+Function (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Get the hash function used for all passes. 

\mbox{\Hypertarget{class_ogre_1_1_pass_ac2e11c662982c9ce7f2e08a71bc20167}\label{class_ogre_1_1_pass_ac2e11c662982c9ce7f2e08a71bc20167}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+Builtin\+Hash\+Function@{get\+Builtin\+Hash\+Function}}
\index{get\+Builtin\+Hash\+Function@{get\+Builtin\+Hash\+Function}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+Builtin\+Hash\+Function()}{getBuiltinHashFunction()}}
{\footnotesize\ttfamily static \hyperlink{struct_ogre_1_1_pass_1_1_hash_func}{Hash\+Func}$\ast$ Ogre\+::\+Pass\+::get\+Builtin\+Hash\+Function (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_pass_a1d30a3c04994e1bd0e1de8cb343341a4}{Builtin\+Hash\+Function}}]{builtin }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the builtin hash function. 

\mbox{\Hypertarget{class_ogre_1_1_pass_adc70de42e8b22b4d8ccedf6868bbbfc0}\label{class_ogre_1_1_pass_adc70de42e8b22b4d8ccedf6868bbbfc0}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+User\+Object\+Bindings@{get\+User\+Object\+Bindings}}
\index{get\+User\+Object\+Bindings@{get\+User\+Object\+Bindings}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+User\+Object\+Bindings()}{getUserObjectBindings()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_user_object_bindings}{User\+Object\+Bindings}\& Ogre\+::\+Pass\+::get\+User\+Object\+Bindings (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Return an instance of user objects binding associated with this class. 

You can use it to associate one or more custom objects with this class instance. \begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_user_object_bindings_ac6d05bbca44c5c3b44860c36205f9a68}{User\+Object\+Bindings\+::set\+User\+Any}. 
\end{DoxySeeAlso}
\mbox{\Hypertarget{class_ogre_1_1_pass_a1a272de4bac1f7ab74ad965217f163ec}\label{class_ogre_1_1_pass_a1a272de4bac1f7ab74ad965217f163ec}} 
\index{Ogre\+::\+Pass@{Ogre\+::\+Pass}!get\+User\+Object\+Bindings@{get\+User\+Object\+Bindings}}
\index{get\+User\+Object\+Bindings@{get\+User\+Object\+Bindings}!Ogre\+::\+Pass@{Ogre\+::\+Pass}}
\subsubsection{\texorpdfstring{get\+User\+Object\+Bindings()}{getUserObjectBindings()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_user_object_bindings}{User\+Object\+Bindings}\& Ogre\+::\+Pass\+::get\+User\+Object\+Bindings (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Return an instance of user objects binding associated with this class. 

You can use it to associate one or more custom objects with this class instance. \begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_user_object_bindings_ac6d05bbca44c5c3b44860c36205f9a68}{User\+Object\+Bindings\+::set\+User\+Any}. 
\end{DoxySeeAlso}


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