\hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager}{}\section{Ogre\+:\+:R\+T\+Shader\+:\+:Program\+Writer\+Manager Class Reference}
\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager}\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}


{\ttfamily \#include $<$Ogre\+Shader\+Program\+Writer\+Manager.\+h$>$}



Inheritance diagram for Ogre\+:\+:R\+T\+Shader\+:\+:Program\+Writer\+Manager\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_r_t_shader_1_1_program_writer_manager__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::map$<$ \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}, \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_factory}{Program\+Writer\+Factory} $\ast$ $>$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a978eec10b5b76ddddf06a615ecd97563}{Factory\+Map}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aa7d6b319ff45bc9861dba292f9b2ff7a}{Program\+Writer\+Manager} ()
\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a97fa340b976122ebe93939ea47580bc8}{$\sim$\+Program\+Writer\+Manager} ()
\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a58504fc8e566b0172c448249f724522d}{add\+Factory} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_factory}{Program\+Writer\+Factory} $\ast$factory)
\begin{DoxyCompactList}\small\item\em Add a new factory object for high-\/level programs of a given language. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer}{Program\+Writer} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a4729f130076dc7e5746154bdc02600af}{create\+Program\+Writer} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&language)
\begin{DoxyCompactList}\small\item\em Create a new, unloaded \hyperlink{class_ogre_1_1_high_level_gpu_program}{High\+Level\+Gpu\+Program}. \end{DoxyCompactList}\item 
bool \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aab32a8bee0c51620b07d3e1b80eca028}{is\+Language\+Supported} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&lang)
\begin{DoxyCompactList}\small\item\em Returns whether a given high-\/level language is supported. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aa85306b68773fc269737df0ba894f996}{remove\+Factory} (\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_factory}{Program\+Writer\+Factory} $\ast$factory)
\begin{DoxyCompactList}\small\item\em Remove a factory object for high-\/level programs of a given language. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager}{Program\+Writer\+Manager} \& \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aeeff5852f80a31dc9e1e82673fce2aad}{get\+Singleton} ()
\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_program_writer_manager}{Program\+Writer\+Manager} $\ast$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a34d6f0b37469bc6993b93caf7ebbde42}{get\+Singleton\+Ptr} ()
\begin{DoxyCompactList}\small\item\em Get the singleton instance. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a978eec10b5b76ddddf06a615ecd97563}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a978eec10b5b76ddddf06a615ecd97563}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!Factory\+Map@{Factory\+Map}}
\index{Factory\+Map@{Factory\+Map}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{Factory\+Map}{FactoryMap}}
{\footnotesize\ttfamily typedef std\+::map$<$\hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}, \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_factory}{Program\+Writer\+Factory}$\ast$$>$ \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a978eec10b5b76ddddf06a615ecd97563}{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::\+Factory\+Map}}



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aa7d6b319ff45bc9861dba292f9b2ff7a}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aa7d6b319ff45bc9861dba292f9b2ff7a}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!Program\+Writer\+Manager@{Program\+Writer\+Manager}}
\index{Program\+Writer\+Manager@{Program\+Writer\+Manager}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{Program\+Writer\+Manager()}{ProgramWriterManager()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::\+Program\+Writer\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a97fa340b976122ebe93939ea47580bc8}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a97fa340b976122ebe93939ea47580bc8}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!````~Program\+Writer\+Manager@{$\sim$\+Program\+Writer\+Manager}}
\index{````~Program\+Writer\+Manager@{$\sim$\+Program\+Writer\+Manager}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{$\sim$\+Program\+Writer\+Manager()}{~ProgramWriterManager()}}
{\footnotesize\ttfamily Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::$\sim$\+Program\+Writer\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a58504fc8e566b0172c448249f724522d}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a58504fc8e566b0172c448249f724522d}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!add\+Factory@{add\+Factory}}
\index{add\+Factory@{add\+Factory}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{add\+Factory()}{addFactory()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::add\+Factory (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_factory}{Program\+Writer\+Factory} $\ast$}]{factory }\end{DoxyParamCaption})}



Add a new factory object for high-\/level programs of a given language. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aa85306b68773fc269737df0ba894f996}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aa85306b68773fc269737df0ba894f996}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!remove\+Factory@{remove\+Factory}}
\index{remove\+Factory@{remove\+Factory}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{remove\+Factory()}{removeFactory()}}
{\footnotesize\ttfamily void Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::remove\+Factory (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_factory}{Program\+Writer\+Factory} $\ast$}]{factory }\end{DoxyParamCaption})}



Remove a factory object for high-\/level programs of a given language. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aab32a8bee0c51620b07d3e1b80eca028}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aab32a8bee0c51620b07d3e1b80eca028}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!is\+Language\+Supported@{is\+Language\+Supported}}
\index{is\+Language\+Supported@{is\+Language\+Supported}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{is\+Language\+Supported()}{isLanguageSupported()}}
{\footnotesize\ttfamily bool Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::is\+Language\+Supported (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{lang }\end{DoxyParamCaption})}



Returns whether a given high-\/level language is supported. 

\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a4729f130076dc7e5746154bdc02600af}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a4729f130076dc7e5746154bdc02600af}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!create\+Program\+Writer@{create\+Program\+Writer}}
\index{create\+Program\+Writer@{create\+Program\+Writer}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{create\+Program\+Writer()}{createProgramWriter()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer}{Program\+Writer}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::create\+Program\+Writer (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{language }\end{DoxyParamCaption})}



Create a new, unloaded \hyperlink{class_ogre_1_1_high_level_gpu_program}{High\+Level\+Gpu\+Program}. 

\begin{DoxyParagraph}{}
This method creates a new program of the type specified as the second and third parameters. You will have to call further methods on the returned program in order to define the program fully before you can load it. 
\end{DoxyParagraph}

\begin{DoxyParams}{Parameters}
{\em language} & Code of the language to use (e.\+g. \char`\"{}cg\char`\"{}) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aeeff5852f80a31dc9e1e82673fce2aad}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_aeeff5852f80a31dc9e1e82673fce2aad}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!get\+Singleton@{get\+Singleton}}
\index{get\+Singleton@{get\+Singleton}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{get\+Singleton()}{getSingleton()}}
{\footnotesize\ttfamily static \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager}{Program\+Writer\+Manager}\& Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::get\+Singleton (\begin{DoxyParamCaption}{ }\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_program_writer_manager_a34d6f0b37469bc6993b93caf7ebbde42}\label{class_ogre_1_1_r_t_shader_1_1_program_writer_manager_a34d6f0b37469bc6993b93caf7ebbde42}} 
\index{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}!get\+Singleton\+Ptr@{get\+Singleton\+Ptr}}
\index{get\+Singleton\+Ptr@{get\+Singleton\+Ptr}!Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager@{Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager}}
\subsubsection{\texorpdfstring{get\+Singleton\+Ptr()}{getSingletonPtr()}}
{\footnotesize\ttfamily static \hyperlink{class_ogre_1_1_r_t_shader_1_1_program_writer_manager}{Program\+Writer\+Manager}$\ast$ Ogre\+::\+R\+T\+Shader\+::\+Program\+Writer\+Manager\+::get\+Singleton\+Ptr (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Get the singleton instance. 



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