\hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory}{}\section{Ogre\+:\+:R\+T\+Shader\+:\+:Hardware\+Skinning\+Factory Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory}\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}


A factory that enables creation of \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning}{Hardware\+Skinning} instances.  




{\ttfamily \#include $<$Ogre\+Shader\+Ex\+Hardware\+Skinning.\+h$>$}



Inheritance diagram for Ogre\+:\+:R\+T\+Shader\+:\+:Hardware\+Skinning\+Factory\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a3475a3c6970fa475a23df8fbeec8a295}{Hardware\+Skinning\+Factory} ()
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af4cd5b084e60358a05eefa1f97bf30ee}{$\sim$\+Hardware\+Skinning\+Factory} ()
\item 
virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_aa900dc9ee4c35c9e05a0d572072cc6ea}{create\+Instance} (\hyperlink{class_ogre_1_1_script_compiler}{Script\+Compiler} $\ast$compiler, \hyperlink{class_ogre_1_1_property_abstract_node}{Property\+Abstract\+Node} $\ast$prop, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$pass, \hyperlink{class_ogre_1_1_r_t_shader_1_1_s_g_script_translator}{S\+G\+Script\+Translator} $\ast$translator)
\item 
virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a14ce88a3c6833585ec73b77b7536b441}{create\+Instance} () \hyperlink{_ogre_platform_8h_a11162eebee0099930c48076229cc6f04}{O\+G\+R\+E\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}
\begin{DoxyCompactList}\small\item\em Create an instance of the \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} sub class it suppose to create. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a57deb4c224e304fa290247c56e74890e}{create\+Instance} (\hyperlink{class_ogre_1_1_script_compiler}{Script\+Compiler} $\ast$compiler, \hyperlink{class_ogre_1_1_property_abstract_node}{Property\+Abstract\+Node} $\ast$prop, \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$tex\+State, \hyperlink{class_ogre_1_1_r_t_shader_1_1_s_g_script_translator}{S\+G\+Script\+Translator} $\ast$translator) \hyperlink{_ogre_platform_8h_a11162eebee0099930c48076229cc6f04}{O\+G\+R\+E\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}
\begin{DoxyCompactList}\small\item\em Create an instance of the \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} based on script properties. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a54a6f6eba1624fef1de9c20eb7b0a6b5}{create\+Or\+Retrieve\+Instance} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_s_g_script_translator}{S\+G\+Script\+Translator} $\ast$translator)
\begin{DoxyCompactList}\small\item\em Retrieve the previous instance the S\+RS in the script translator or create a new instance if not found. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_ab89670718152dcb35f2428cf5909ed99}{destroy\+All\+Instances} ()
\begin{DoxyCompactList}\small\item\em Destroy all the instances that created by this factory. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a23839e5fc35257e4ffb9076e2aaf9409}{destroy\+Instance} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$sub\+Render\+State)
\begin{DoxyCompactList}\small\item\em Destroy the given instance. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a59a2c7e59dd012324b1fdb42e334996a}{get\+Custom\+Shadow\+Caster\+Material} (const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type} skinning\+Type, \hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort} index) const
\begin{DoxyCompactList}\small\item\em Returns the name of a custom shadow caster material for a given number of weights. \end{DoxyCompactList}\item 
const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a42d37419c53d5c7e083a20ab15d02b1a}{get\+Custom\+Shadow\+Receiver\+Material} (const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type} skinning\+Type, \hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort} index) const
\begin{DoxyCompactList}\small\item\em Returns the name of a custom shadow receiver material for a given number of weights. \end{DoxyCompactList}\item 
\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort} \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a07d48f953c0f1878d9d61a3f433c940a}{get\+Max\+Calculable\+Bone\+Count} () const
\begin{DoxyCompactList}\small\item\em \begin{DoxyVerb}The maximum number of bones for which hardware skinning is performed.\end{DoxyVerb}
 \end{DoxyCompactList}\item 
virtual const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_ab42229a296355221b714e621dd2b328b}{get\+Type} () const
\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_ad14f3b9dbf67722f8e5a8a4fa6513b0e}{prepare\+Entity\+For\+Skinning} (const \hyperlink{class_ogre_1_1_entity}{Entity} $\ast$p\+Entity, \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type} skinning\+Type=\hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1ab979c94e41c61d62d15f4771c5202e3c}{S\+T\+\_\+\+L\+I\+N\+E\+AR}, bool correct\+Antidpodality\+Handling=false, bool shear\+Scale=false)
\begin{DoxyCompactList}\small\item\em \begin{DoxyVerb}Prepares an entity's material for use in the hardware skinning (HS).\end{DoxyVerb}
 \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_ab22415d71a22c1b10191c3f089ab1437}{set\+Custom\+Shadow\+Caster\+Materials} (const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type} skinning\+Type, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&caster1\+Weight, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&caster2\+Weight, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&caster3\+Weight, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&caster4\+Weight)
\begin{DoxyCompactList}\small\item\em Sets the list of custom shadow caster materials. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af4d9f984b5af5e50c841ed0a03a4678c}{set\+Custom\+Shadow\+Receiver\+Materials} (const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type} skinning\+Type, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&receiver1\+Weight, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&receiver2\+Weight, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&receiver3\+Weight, const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&receiver4\+Weight)
\begin{DoxyCompactList}\small\item\em Sets the list of custom shadow receiver materials. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a4e0233a6a8a7482b8b3b5278029354bd}{set\+Max\+Calculable\+Bone\+Count} (\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort} count)
\begin{DoxyCompactList}\small\item\em Sets the maximum number of bones for which hardware skinning is performed. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af5695d48c4d58f91f0939b49a2bbd4cb}{write\+Instance} (\hyperlink{class_ogre_1_1_material_serializer}{Material\+Serializer} $\ast$ser, \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$sub\+Render\+State, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$src\+Pass, \hyperlink{class_ogre_1_1_pass}{Pass} $\ast$dst\+Pass)
\item 
virtual void \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a10b565ec536c0539e44fb1147ef777a4}{write\+Instance} (\hyperlink{class_ogre_1_1_material_serializer}{Material\+Serializer} $\ast$ser, \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$sub\+Render\+State, const \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$src\+Texture\+Unit, const \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$dst\+Texture\+Unit)
\begin{DoxyCompactList}\small\item\em Write the given sub-\/render state instance using the material serializer. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory}{Hardware\+Skinning\+Factory} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a119d4eb9e978007b4b1abc3a8d4573a3}{get\+Singleton} (void)
\begin{DoxyCompactList}\small\item\em Override standard \hyperlink{class_ogre_1_1_singleton}{Singleton} retrieval. \end{DoxyCompactList}\item 
static \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory}{Hardware\+Skinning\+Factory} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a20e571af8c8dcb6cff54ace877bcb300}{get\+Singleton\+Ptr} (void)
\begin{DoxyCompactList}\small\item\em Get the singleton instance. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A factory that enables creation of \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning}{Hardware\+Skinning} instances. 

\begin{DoxyRemark}{Remarks}
Sub class of \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory}{Sub\+Render\+State\+Factory} 
\end{DoxyRemark}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a3475a3c6970fa475a23df8fbeec8a295}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a3475a3c6970fa475a23df8fbeec8a295}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!Hardware\+Skinning\+Factory@{Hardware\+Skinning\+Factory}}
\index{Hardware\+Skinning\+Factory@{Hardware\+Skinning\+Factory}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{Hardware\+Skinning\+Factory()}{HardwareSkinningFactory()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::\+Hardware\+Skinning\+Factory (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af4cd5b084e60358a05eefa1f97bf30ee}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af4cd5b084e60358a05eefa1f97bf30ee}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!````~Hardware\+Skinning\+Factory@{$\sim$\+Hardware\+Skinning\+Factory}}
\index{````~Hardware\+Skinning\+Factory@{$\sim$\+Hardware\+Skinning\+Factory}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{$\sim$\+Hardware\+Skinning\+Factory()}{~HardwareSkinningFactory()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::$\sim$\+Hardware\+Skinning\+Factory (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



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

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


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

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_aa900dc9ee4c35c9e05a0d572072cc6ea}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_aa900dc9ee4c35c9e05a0d572072cc6ea}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!create\+Instance@{create\+Instance}}
\index{create\+Instance@{create\+Instance}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{create\+Instance()}{createInstance()}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::create\+Instance (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_script_compiler}{Script\+Compiler} $\ast$}]{compiler,  }\item[{\hyperlink{class_ogre_1_1_property_abstract_node}{Property\+Abstract\+Node} $\ast$}]{prop,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{pass,  }\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_s_g_script_translator}{S\+G\+Script\+Translator} $\ast$}]{translator }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a14ce88a3c6833585ec73b77b7536b441}{Sub\+Render\+State\+Factory\+::create\+Instance}. 
\end{DoxySeeAlso}


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

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af5695d48c4d58f91f0939b49a2bbd4cb}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af5695d48c4d58f91f0939b49a2bbd4cb}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!write\+Instance@{write\+Instance}}
\index{write\+Instance@{write\+Instance}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{write\+Instance()}{writeInstance()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::write\+Instance (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_material_serializer}{Material\+Serializer} $\ast$}]{ser,  }\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$}]{sub\+Render\+State,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{src\+Pass,  }\item[{\hyperlink{class_ogre_1_1_pass}{Pass} $\ast$}]{dst\+Pass }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_ada31909080bae96784504be42d9bd77c}{Sub\+Render\+State\+Factory\+::write\+Instance}. 
\end{DoxySeeAlso}


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

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_ab22415d71a22c1b10191c3f089ab1437}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_ab22415d71a22c1b10191c3f089ab1437}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!set\+Custom\+Shadow\+Caster\+Materials@{set\+Custom\+Shadow\+Caster\+Materials}}
\index{set\+Custom\+Shadow\+Caster\+Materials@{set\+Custom\+Shadow\+Caster\+Materials}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{set\+Custom\+Shadow\+Caster\+Materials()}{setCustomShadowCasterMaterials()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::set\+Custom\+Shadow\+Caster\+Materials (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type}}]{skinning\+Type,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{caster1\+Weight,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{caster2\+Weight,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{caster3\+Weight,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{caster4\+Weight }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the list of custom shadow caster materials. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af4d9f984b5af5e50c841ed0a03a4678c}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_af4d9f984b5af5e50c841ed0a03a4678c}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!set\+Custom\+Shadow\+Receiver\+Materials@{set\+Custom\+Shadow\+Receiver\+Materials}}
\index{set\+Custom\+Shadow\+Receiver\+Materials@{set\+Custom\+Shadow\+Receiver\+Materials}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{set\+Custom\+Shadow\+Receiver\+Materials()}{setCustomShadowReceiverMaterials()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::set\+Custom\+Shadow\+Receiver\+Materials (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type}}]{skinning\+Type,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{receiver1\+Weight,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{receiver2\+Weight,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{receiver3\+Weight,  }\item[{const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr} \&}]{receiver4\+Weight }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Sets the list of custom shadow receiver materials. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a59a2c7e59dd012324b1fdb42e334996a}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a59a2c7e59dd012324b1fdb42e334996a}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!get\+Custom\+Shadow\+Caster\+Material@{get\+Custom\+Shadow\+Caster\+Material}}
\index{get\+Custom\+Shadow\+Caster\+Material@{get\+Custom\+Shadow\+Caster\+Material}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{get\+Custom\+Shadow\+Caster\+Material()}{getCustomShadowCasterMaterial()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr}\& Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::get\+Custom\+Shadow\+Caster\+Material (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type}}]{skinning\+Type,  }\item[{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}}]{index }\end{DoxyParamCaption}) const}



Returns the name of a custom shadow caster material for a given number of weights. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a42d37419c53d5c7e083a20ab15d02b1a}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a42d37419c53d5c7e083a20ab15d02b1a}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!get\+Custom\+Shadow\+Receiver\+Material@{get\+Custom\+Shadow\+Receiver\+Material}}
\index{get\+Custom\+Shadow\+Receiver\+Material@{get\+Custom\+Shadow\+Receiver\+Material}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{get\+Custom\+Shadow\+Receiver\+Material()}{getCustomShadowReceiverMaterial()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_a57ef769e80226674c3971ce58b58c91d}{Material\+Ptr}\& Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::get\+Custom\+Shadow\+Receiver\+Material (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type}}]{skinning\+Type,  }\item[{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}}]{index }\end{DoxyParamCaption}) const}



Returns the name of a custom shadow receiver material for a given number of weights. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_ad14f3b9dbf67722f8e5a8a4fa6513b0e}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_ad14f3b9dbf67722f8e5a8a4fa6513b0e}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!prepare\+Entity\+For\+Skinning@{prepare\+Entity\+For\+Skinning}}
\index{prepare\+Entity\+For\+Skinning@{prepare\+Entity\+For\+Skinning}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{prepare\+Entity\+For\+Skinning()}{prepareEntityForSkinning()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::prepare\+Entity\+For\+Skinning (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_entity}{Entity} $\ast$}]{p\+Entity,  }\item[{\hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1}{Skinning\+Type}}]{skinning\+Type = {\ttfamily \hyperlink{namespace_ogre_1_1_r_t_shader_a8c100ce939d23573f062f3ad579998a1ab979c94e41c61d62d15f4771c5202e3c}{S\+T\+\_\+\+L\+I\+N\+E\+AR}},  }\item[{bool}]{correct\+Antidpodality\+Handling = {\ttfamily false},  }\item[{bool}]{shear\+Scale = {\ttfamily false} }\end{DoxyParamCaption})}



\begin{DoxyVerb}Prepares an entity's material for use in the hardware skinning (HS).\end{DoxyVerb}
 

This function prepares an entity\textquotesingle{}s material for use by the HS sub-\/render state. This function scans the entity and extracts the information of the amount of bones and weights in the entity. This function replaces the need specify in the material script the amount of bones and weights needed to make the HS work.

Note that this class does not save the the bone and weight count information internally. Rather this information is stored in the entity\textquotesingle{}s materials as a user binded object.


\begin{DoxyParams}{Parameters}
{\em p\+Entity} & A pointer to an entity who\textquotesingle{}s materials need preparing. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a07d48f953c0f1878d9d61a3f433c940a}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a07d48f953c0f1878d9d61a3f433c940a}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!get\+Max\+Calculable\+Bone\+Count@{get\+Max\+Calculable\+Bone\+Count}}
\index{get\+Max\+Calculable\+Bone\+Count@{get\+Max\+Calculable\+Bone\+Count}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{get\+Max\+Calculable\+Bone\+Count()}{getMaxCalculableBoneCount()}}
{\footnotesize\ttfamily \hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort} Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::get\+Max\+Calculable\+Bone\+Count (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



\begin{DoxyVerb}The maximum number of bones for which hardware skinning is performed.\end{DoxyVerb}
 

This number should be limited to avoid problems of using to many parameters in a shader. For example, in pixel shader 3 this should be around 70-\/90 dependent on other sub-\/render states in the shader.

The default value for this property is 70 which correspond to pixel shader model 3 limitations \mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a4e0233a6a8a7482b8b3b5278029354bd}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a4e0233a6a8a7482b8b3b5278029354bd}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!set\+Max\+Calculable\+Bone\+Count@{set\+Max\+Calculable\+Bone\+Count}}
\index{set\+Max\+Calculable\+Bone\+Count@{set\+Max\+Calculable\+Bone\+Count}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{set\+Max\+Calculable\+Bone\+Count()}{setMaxCalculableBoneCount()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::set\+Max\+Calculable\+Bone\+Count (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_af851e71354d841df7138f9877c6f5931}{ushort}}]{count }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Sets the maximum number of bones for which hardware skinning is performed. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a07d48f953c0f1878d9d61a3f433c940a}{get\+Max\+Calculable\+Bone\+Count()} 
\end{DoxySeeAlso}


References H\+S\+\_\+\+M\+A\+X\+\_\+\+W\+E\+I\+G\+H\+T\+\_\+\+C\+O\+U\+NT.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a119d4eb9e978007b4b1abc3a8d4573a3}\label{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory_a119d4eb9e978007b4b1abc3a8d4573a3}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!get\+Singleton@{get\+Singleton}}
\index{get\+Singleton@{get\+Singleton}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{get\+Singleton()}{getSingleton()}}
{\footnotesize\ttfamily static \hyperlink{class_ogre_1_1_r_t_shader_1_1_hardware_skinning_factory}{Hardware\+Skinning\+Factory}\& Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory\+::get\+Singleton (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



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

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



Get the singleton instance. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a14ce88a3c6833585ec73b77b7536b441}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a14ce88a3c6833585ec73b77b7536b441}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!create\+Instance@{create\+Instance}}
\index{create\+Instance@{create\+Instance}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{create\+Instance()}{createInstance()}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+Factory\+::create\+Instance (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Create an instance of the \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} sub class it suppose to create. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a57deb4c224e304fa290247c56e74890e}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a57deb4c224e304fa290247c56e74890e}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!create\+Instance@{create\+Instance}}
\index{create\+Instance@{create\+Instance}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{create\+Instance()}{createInstance()}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+Factory\+::create\+Instance (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_script_compiler}{Script\+Compiler} $\ast$}]{compiler,  }\item[{\hyperlink{class_ogre_1_1_property_abstract_node}{Property\+Abstract\+Node} $\ast$}]{prop,  }\item[{\hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$}]{tex\+State,  }\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_s_g_script_translator}{S\+G\+Script\+Translator} $\ast$}]{translator }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Create an instance of the \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} based on script properties. 

This method is called in the context of script parsing and let this factory the opportunity to create custom \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} instances based on extended script properties. 
\begin{DoxyParams}{Parameters}
{\em compiler} & The compiler instance. \\
\hline
{\em prop} & The abstract property node. \\
\hline
{\em tex\+State} & The pass that is the parent context of this node. \\
\hline
{\em translator} & The translator instance holding existing scripts. \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{class_ogre_1_1_r_t_shader_1_1_layered_blending_factory_a6a40cb7ee8dfafc528d9d35cd04dba69}{Ogre\+::\+R\+T\+Shader\+::\+Layered\+Blending\+Factory}.

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a54a6f6eba1624fef1de9c20eb7b0a6b5}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a54a6f6eba1624fef1de9c20eb7b0a6b5}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!create\+Or\+Retrieve\+Instance@{create\+Or\+Retrieve\+Instance}}
\index{create\+Or\+Retrieve\+Instance@{create\+Or\+Retrieve\+Instance}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{create\+Or\+Retrieve\+Instance()}{createOrRetrieveInstance()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+Factory\+::create\+Or\+Retrieve\+Instance (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_s_g_script_translator}{S\+G\+Script\+Translator} $\ast$}]{translator }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Retrieve the previous instance the S\+RS in the script translator or create a new instance if not found. 


\begin{DoxyParams}{Parameters}
{\em translator} & The translator instance holding existing scripts. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a23839e5fc35257e4ffb9076e2aaf9409}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a23839e5fc35257e4ffb9076e2aaf9409}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!destroy\+Instance@{destroy\+Instance}}
\index{destroy\+Instance@{destroy\+Instance}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{destroy\+Instance()}{destroyInstance()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+Factory\+::destroy\+Instance (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$}]{sub\+Render\+State }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Destroy the given instance. 


\begin{DoxyParams}{Parameters}
{\em sub\+Render\+State} & The instance to destroy. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_ab89670718152dcb35f2428cf5909ed99}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_ab89670718152dcb35f2428cf5909ed99}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!destroy\+All\+Instances@{destroy\+All\+Instances}}
\index{destroy\+All\+Instances@{destroy\+All\+Instances}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{destroy\+All\+Instances()}{destroyAllInstances()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+Factory\+::destroy\+All\+Instances (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [inherited]}}



Destroy all the instances that created by this factory. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a10b565ec536c0539e44fb1147ef777a4}\label{class_ogre_1_1_r_t_shader_1_1_sub_render_state_factory_a10b565ec536c0539e44fb1147ef777a4}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}!write\+Instance@{write\+Instance}}
\index{write\+Instance@{write\+Instance}!Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory@{Ogre\+::\+R\+T\+Shader\+::\+Hardware\+Skinning\+Factory}}
\subsubsection{\texorpdfstring{write\+Instance()}{writeInstance()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily virtual void Ogre\+::\+R\+T\+Shader\+::\+Sub\+Render\+State\+Factory\+::write\+Instance (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_material_serializer}{Material\+Serializer} $\ast$}]{ser,  }\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_sub_render_state}{Sub\+Render\+State} $\ast$}]{sub\+Render\+State,  }\item[{const \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$}]{src\+Texture\+Unit,  }\item[{const \hyperlink{class_ogre_1_1_texture_unit_state}{Texture\+Unit\+State} $\ast$}]{dst\+Texture\+Unit }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Write the given sub-\/render state instance using the material serializer. 

This method is called in the context of material serialization. It is useful for integrating into bigger context of material exporters from various environment that want to take advantage of the RT Shader System. Sub classes of this interface should override in case they need to write custom properties into the script context. 
\begin{DoxyParams}{Parameters}
{\em ser} & The material serializer instance. \\
\hline
{\em sub\+Render\+State} & The sub render state instance to write down. \\
\hline
{\em src\+Texture\+Unit} & The source texture unit state. \\
\hline
{\em dst\+Texture\+Unit} & The generated shader based texture unit state. \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{class_ogre_1_1_r_t_shader_1_1_layered_blending_factory_a8aee377a93249d8bd462f2986018fb04}{Ogre\+::\+R\+T\+Shader\+::\+Layered\+Blending\+Factory}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_shader_ex_hardware_skinning_8h}{Ogre\+Shader\+Ex\+Hardware\+Skinning.\+h}\end{DoxyCompactItemize}
