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


\mbox{\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=256pt]{class_ogre_1_1_material_manager_1_1_listener__inherit__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \mbox{\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 \mbox{\hyperlink{class_ogre_1_1_material_manager_1_1_listener_a46125aa4d08dc36a9b5759f805c6dbd7}{after\+Illumination\+Passes\+Created}} (\mbox{\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 \mbox{\hyperlink{class_ogre_1_1_material_manager_1_1_listener_aef0450842376d1438af02dce20487890}{before\+Illumination\+Passes\+Cleared}} (\mbox{\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 \mbox{\hyperlink{class_ogre_1_1_technique}{Technique}} $\ast$ \mbox{\hyperlink{class_ogre_1_1_material_manager_1_1_listener_a54bc384ab1102063aa00db4c3a5f3fc4}{handle\+Scheme\+Not\+Found}} (unsigned short scheme\+Index, const \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&scheme\+Name, \mbox{\hyperlink{class_ogre_1_1_material}{Material}} $\ast$original\+Material, unsigned short lod\+Index, const \mbox{\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 \mbox{\hyperlink{class_ogre_1_1_technique}{Technique}} instance manually. \end{DoxyCompactList}\end{DoxyCompactItemize}


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

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


\doxysubsection{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::MaterialManager::Listener@{Ogre::MaterialManager::Listener}!````~Listener@{$\sim$Listener}}
\index{````~Listener@{$\sim$Listener}!Ogre::MaterialManager::Listener@{Ogre::MaterialManager::Listener}}
\doxysubsubsection{\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. 



\doxysubsection{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::MaterialManager::Listener@{Ogre::MaterialManager::Listener}!handleSchemeNotFound@{handleSchemeNotFound}}
\index{handleSchemeNotFound@{handleSchemeNotFound}!Ogre::MaterialManager::Listener@{Ogre::MaterialManager::Listener}}
\doxysubsubsection{\texorpdfstring{handleSchemeNotFound()}{handleSchemeNotFound()}}
{\footnotesize\ttfamily virtual \mbox{\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 \mbox{\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}} \&}]{scheme\+Name,  }\item[{\mbox{\hyperlink{class_ogre_1_1_material}{Material}} $\ast$}]{original\+Material,  }\item[{unsigned short}]{lod\+Index,  }\item[{const \mbox{\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 \mbox{\hyperlink{class_ogre_1_1_technique}{Technique}} instance manually. 

\begin{DoxyRemark}{Remarks}
\mbox{\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 \mbox{\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 \mbox{\hyperlink{class_ogre_1_1_technique}{Technique}} that is supported on this hardware; there are utility methods like \mbox{\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 \mbox{\hyperlink{class_ogre_1_1_renderable}{Renderable}} that is requesting this technique to be used, so this may influence your choice of \mbox{\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::MaterialManager::Listener@{Ogre::MaterialManager::Listener}!afterIlluminationPassesCreated@{afterIlluminationPassesCreated}}
\index{afterIlluminationPassesCreated@{afterIlluminationPassesCreated}!Ogre::MaterialManager::Listener@{Ogre::MaterialManager::Listener}}
\doxysubsubsection{\texorpdfstring{afterIlluminationPassesCreated()}{afterIlluminationPassesCreated()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Material\+Manager\+::\+Listener\+::after\+Illumination\+Passes\+Created (\begin{DoxyParamCaption}\item[{\mbox{\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 \mbox{\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::MaterialManager::Listener@{Ogre::MaterialManager::Listener}!beforeIlluminationPassesCleared@{beforeIlluminationPassesCleared}}
\index{beforeIlluminationPassesCleared@{beforeIlluminationPassesCleared}!Ogre::MaterialManager::Listener@{Ogre::MaterialManager::Listener}}
\doxysubsubsection{\texorpdfstring{beforeIlluminationPassesCleared()}{beforeIlluminationPassesCleared()}}
{\footnotesize\ttfamily virtual bool Ogre\+::\+Material\+Manager\+::\+Listener\+::before\+Illumination\+Passes\+Cleared (\begin{DoxyParamCaption}\item[{\mbox{\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 \mbox{\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 
\mbox{\hyperlink{_ogre_material_manager_8h}{Ogre\+Material\+Manager.\+h}}\end{DoxyCompactItemize}
