\hypertarget{class_ogre_1_1_material_manager_1_1_listener}{}\section{Ogre\+:\+:Material\+Manager\+:\+:Listener Class Reference}
\label{class_ogre_1_1_material_manager_1_1_listener}\index{Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}}


\hyperlink{class_ogre_1_1_material_manager_1_1_listener}{Listener} on any general material events.  




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



Inheritance diagram for Ogre\+:\+:Material\+Manager\+:\+:Listener\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=255pt]{class_ogre_1_1_material_manager_1_1_listener__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \hyperlink{class_ogre_1_1_material_manager_1_1_listener_aa701d203c20e60133d82305454f366f5}{$\sim$\+Listener} ()
\begin{DoxyCompactList}\small\item\em Virtual destructor needed as class has virtual methods. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_material_manager_1_1_listener_a46125aa4d08dc36a9b5759f805c6dbd7}{after\+Illumination\+Passes\+Created} (\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$technique)
\begin{DoxyCompactList}\small\item\em Called right after illuminated passes were created, so that owner of runtime generated technique can handle this. \end{DoxyCompactList}\item 
virtual bool \hyperlink{class_ogre_1_1_material_manager_1_1_listener_aef0450842376d1438af02dce20487890}{before\+Illumination\+Passes\+Cleared} (\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$technique)
\begin{DoxyCompactList}\small\item\em Called right before illuminated passes would be removed, so that owner of runtime generated technique can handle this. \end{DoxyCompactList}\item 
virtual \hyperlink{class_ogre_1_1_technique}{Technique} $\ast$ \hyperlink{class_ogre_1_1_material_manager_1_1_listener_a54bc384ab1102063aa00db4c3a5f3fc4}{handle\+Scheme\+Not\+Found} (unsigned short scheme\+Index, const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&scheme\+Name, \hyperlink{class_ogre_1_1_material}{Material} $\ast$original\+Material, unsigned short lod\+Index, const \hyperlink{class_ogre_1_1_renderable}{Renderable} $\ast$rend)=0
\begin{DoxyCompactList}\small\item\em Called if a technique for a given scheme is not found within a material, allows the application to specify a \hyperlink{class_ogre_1_1_technique}{Technique} instance manually. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\hyperlink{class_ogre_1_1_material_manager_1_1_listener}{Listener} on any general material events. 

\begin{DoxySeeAlso}{See also}
\hyperlink{class_ogre_1_1_material_manager_a8ac18f4bd2e6302f1d92ae8f64195694}{Material\+Manager\+::add\+Listener} 
\end{DoxySeeAlso}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_material_manager_1_1_listener_aa701d203c20e60133d82305454f366f5}\label{class_ogre_1_1_material_manager_1_1_listener_aa701d203c20e60133d82305454f366f5}} 
\index{Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}!````~Listener@{$\sim$\+Listener}}
\index{````~Listener@{$\sim$\+Listener}!Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}}
\subsubsection{\texorpdfstring{$\sim$\+Listener()}{~Listener()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Material\+Manager\+::\+Listener\+::$\sim$\+Listener (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Virtual destructor needed as class has virtual methods. 



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_material_manager_1_1_listener_a54bc384ab1102063aa00db4c3a5f3fc4}\label{class_ogre_1_1_material_manager_1_1_listener_a54bc384ab1102063aa00db4c3a5f3fc4}} 
\index{Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}!handle\+Scheme\+Not\+Found@{handle\+Scheme\+Not\+Found}}
\index{handle\+Scheme\+Not\+Found@{handle\+Scheme\+Not\+Found}!Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}}
\subsubsection{\texorpdfstring{handle\+Scheme\+Not\+Found()}{handleSchemeNotFound()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_technique}{Technique}$\ast$ Ogre\+::\+Material\+Manager\+::\+Listener\+::handle\+Scheme\+Not\+Found (\begin{DoxyParamCaption}\item[{unsigned short}]{scheme\+Index,  }\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{scheme\+Name,  }\item[{\hyperlink{class_ogre_1_1_material}{Material} $\ast$}]{original\+Material,  }\item[{unsigned short}]{lod\+Index,  }\item[{const \hyperlink{class_ogre_1_1_renderable}{Renderable} $\ast$}]{rend }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Called if a technique for a given scheme is not found within a material, allows the application to specify a \hyperlink{class_ogre_1_1_technique}{Technique} instance manually. 

\begin{DoxyRemark}{Remarks}
\hyperlink{class_ogre_1_1_material}{Material} schemes allow you to switch wholesale between families of techniques on a material. However they require you to define those schemes on the materials up-\/front, which might not be possible or desirable for all materials, particular if, for example, you wanted a simple way to replace all materials with another using a scheme. 
\end{DoxyRemark}
\begin{DoxyParagraph}{}
This callback allows you to handle the case where a scheme is requested but the material doesn\textquotesingle{}t have an entry for it. You can return a \hyperlink{class_ogre_1_1_technique}{Technique} pointer from this method to specify the material technique you\textquotesingle{}d like to be applied instead, which can be from another material entirely (and probably will be). Note that it is critical that you only return a \hyperlink{class_ogre_1_1_technique}{Technique} that is supported on this hardware; there are utility methods like \hyperlink{class_ogre_1_1_material_a37ae7259ce89bdc38828ea1b977bdbcf}{Material\+::get\+Best\+Technique} to help you with this. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em scheme\+Index} & The index of the scheme that was requested -\/ all schemes have a unique index when created that does not alter. \\
\hline
{\em scheme\+Name} & The friendly name of the scheme being requested \\
\hline
{\em original\+Material} & The material that is being processed, that didn\textquotesingle{}t have a specific technique for this scheme \\
\hline
{\em lod\+Index} & The material level-\/of-\/detail that was being asked for, in case you need to use it to determine a technique. \\
\hline
{\em rend} & Pointer to the \hyperlink{class_ogre_1_1_renderable}{Renderable} that is requesting this technique to be used, so this may influence your choice of \hyperlink{class_ogre_1_1_technique}{Technique}. May be null if the technique isn\textquotesingle{}t being requested in that context. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the technique to be used, or N\+U\+LL if you wish to use the default technique for this material 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_material_manager_1_1_listener_a46125aa4d08dc36a9b5759f805c6dbd7}\label{class_ogre_1_1_material_manager_1_1_listener_a46125aa4d08dc36a9b5759f805c6dbd7}} 
\index{Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}!after\+Illumination\+Passes\+Created@{after\+Illumination\+Passes\+Created}}
\index{after\+Illumination\+Passes\+Created@{after\+Illumination\+Passes\+Created}!Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}}
\subsubsection{\texorpdfstring{after\+Illumination\+Passes\+Created()}{afterIlluminationPassesCreated()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Material\+Manager\+::\+Listener\+::after\+Illumination\+Passes\+Created (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$}]{technique }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called right after illuminated passes were created, so that owner of runtime generated technique can handle this. 

\begin{DoxyReturn}{Returns}
True if notification is handled and should not be propagated further. 
\end{DoxyReturn}


Reimplemented in \hyperlink{class_ogre_bites_1_1_s_g_technique_resolver_listener_a0ddc6233ff56b8fcbe2a4242dd923258}{Ogre\+Bites\+::\+S\+G\+Technique\+Resolver\+Listener}.

\mbox{\Hypertarget{class_ogre_1_1_material_manager_1_1_listener_aef0450842376d1438af02dce20487890}\label{class_ogre_1_1_material_manager_1_1_listener_aef0450842376d1438af02dce20487890}} 
\index{Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}!before\+Illumination\+Passes\+Cleared@{before\+Illumination\+Passes\+Cleared}}
\index{before\+Illumination\+Passes\+Cleared@{before\+Illumination\+Passes\+Cleared}!Ogre\+::\+Material\+Manager\+::\+Listener@{Ogre\+::\+Material\+Manager\+::\+Listener}}
\subsubsection{\texorpdfstring{before\+Illumination\+Passes\+Cleared()}{beforeIlluminationPassesCleared()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Material\+Manager\+::\+Listener\+::before\+Illumination\+Passes\+Cleared (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_technique}{Technique} $\ast$}]{technique }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called right before illuminated passes would be removed, so that owner of runtime generated technique can handle this. 

\begin{DoxyReturn}{Returns}
True if notification is handled and should not be propagated further. 
\end{DoxyReturn}


Reimplemented in \hyperlink{class_ogre_bites_1_1_s_g_technique_resolver_listener_a147fca548637ba0382683cde7dc94feb}{Ogre\+Bites\+::\+S\+G\+Technique\+Resolver\+Listener}.



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