\hypertarget{class_ogre_1_1_d3_d9_vertex_declaration}{}\section{Ogre\+:\+:D3\+D9\+Vertex\+Declaration Class Reference}
\label{class_ogre_1_1_d3_d9_vertex_declaration}\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}


Specialisation of \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} for D3\+D9.  




{\ttfamily \#include $<$Ogre\+D3\+D9\+Vertex\+Declaration.\+h$>$}



Inheritance diagram for Ogre\+:\+:D3\+D9\+Vertex\+Declaration\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_d3_d9_vertex_declaration__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::list$<$ \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} $>$ \hyperlink{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}{Vertex\+Element\+List}
\begin{DoxyCompactList}\small\item\em Defines the list of vertex elements that makes up this declaration. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_d3_d9_vertex_declaration_a842f42e52d16d44819abb342fc182cad}{D3\+D9\+Vertex\+Declaration} ()
\item 
\hyperlink{class_ogre_1_1_d3_d9_vertex_declaration_a6e35239737da934f62f69fad4c3bd290}{$\sim$\+D3\+D9\+Vertex\+Declaration} ()
\item 
const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} \& \hyperlink{class_ogre_1_1_vertex_declaration_a8b1a5f5fe0b7306da4c8b17357d45fac}{add\+Element} (unsigned short source, size\+\_\+t offset, \hyperlink{group___render_system_ga027109503a988ba85f4c63b55082907f}{Vertex\+Element\+Type} the\+Type, \hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic} semantic, unsigned short index=0)
\begin{DoxyCompactList}\small\item\em Adds a new \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} to this declaration. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} $\ast$ \hyperlink{class_ogre_1_1_vertex_declaration_a3c1091f7ece9bbc4e4f847484fd75a37}{clone} (\hyperlink{class_ogre_1_1_hardware_buffer_manager_base}{Hardware\+Buffer\+Manager\+Base} $\ast$mgr=0) const \hyperlink{_ogre_platform_8h_a11162eebee0099930c48076229cc6f04}{O\+G\+R\+E\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}
\begin{DoxyCompactList}\small\item\em Clones this declaration. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_vertex_declaration_a260ecb704cfc32b82f248e382a53be47}{close\+Gaps\+In\+Source} (void)
\begin{DoxyCompactList}\small\item\em Remove any gaps in the source buffer list used by this declaration. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} $\ast$ \hyperlink{class_ogre_1_1_vertex_declaration_a469bd849411d3f152d700772fab64501}{find\+Element\+By\+Semantic} (\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic} sem, unsigned short index=0) const
\begin{DoxyCompactList}\small\item\em Finds a \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} with the given semantic, and index if there is more than one element with the same semantic. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}{Vertex\+Element\+List} \hyperlink{class_ogre_1_1_vertex_declaration_ada92fbc9ee87b04f8a3c389c71904ce6}{find\+Elements\+By\+Source} (unsigned short source) const
\begin{DoxyCompactList}\small\item\em Based on the current elements, gets the size of the vertex for a given buffer source. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} $\ast$ \hyperlink{class_ogre_1_1_vertex_declaration_a130fa715330d23d0e9d2feef630b460c}{get\+Auto\+Organised\+Declaration} (bool skeletal\+Animation, bool vertex\+Animation, bool vertex\+Animation\+Normals) const
\begin{DoxyCompactList}\small\item\em Generates a new \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} for optimal usage based on the current vertex declaration, which can be used with \hyperlink{class_ogre_1_1_vertex_data_a106603d9d4d6c2f6e0d5eb6c25eb7c32}{Vertex\+Data\+::reorganise\+Buffers} later if you wish, or simply used as a template. \end{DoxyCompactList}\item 
I\+Direct3\+D\+Vertex\+Declaration9 $\ast$ \hyperlink{class_ogre_1_1_d3_d9_vertex_declaration_aa6da7c9f1902145e0725e348cb522699}{get\+D3\+D\+Vertex\+Declaration} (\hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} $\ast$global\+Declaration, bool use\+Global\+Instancing\+Vertex\+Buffer\+Is\+Available)
\begin{DoxyCompactList}\small\item\em Gets the D3\+D9-\/specific vertex declaration. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} $\ast$ \hyperlink{class_ogre_1_1_vertex_declaration_aed9f1ba13a68148ce730fafdb4834ba5}{get\+Element} (unsigned short index) const
\begin{DoxyCompactList}\small\item\em Get a single element. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{class_ogre_1_1_vertex_declaration_a1bc75972c04228ebf539e242d57b7203}{get\+Element\+Count} (void) const
\begin{DoxyCompactList}\small\item\em Get the number of elements in the declaration. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}{Vertex\+Element\+List} \& \hyperlink{class_ogre_1_1_vertex_declaration_a9673b478f78c55754cf410b223c5a06a}{get\+Elements} (void) const
\begin{DoxyCompactList}\small\item\em Gets read-\/only access to the list of vertex elements. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_vertex_declaration_ae8e81e6e6209774c203a0edf44032e65}{get\+Max\+Source} (void) const
\begin{DoxyCompactList}\small\item\em Gets the index of the highest source value referenced by this declaration. \end{DoxyCompactList}\item 
unsigned short \hyperlink{class_ogre_1_1_vertex_declaration_a4f99e40285b5c122843b681477983ab1}{get\+Next\+Free\+Texture\+Coordinate} () const
\begin{DoxyCompactList}\small\item\em Return the index of the next free texture coordinate set which may be added to this declaration. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{class_ogre_1_1_vertex_declaration_ad34cfa2c7ebdadfb5101ce751e6ab039}{get\+Vertex\+Size} (unsigned short source) const
\begin{DoxyCompactList}\small\item\em Gets the vertex size defined by this declaration for a given source. \end{DoxyCompactList}\item 
const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} \& \hyperlink{class_ogre_1_1_vertex_declaration_adb0dd4e0b21379635c0c54f37ef90e1d}{insert\+Element} (unsigned short at\+Position, unsigned short source, size\+\_\+t offset, \hyperlink{group___render_system_ga027109503a988ba85f4c63b55082907f}{Vertex\+Element\+Type} the\+Type, \hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic} semantic, unsigned short index=0)
\begin{DoxyCompactList}\small\item\em Inserts a new \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} at a given position in this declaration. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_vertex_declaration_a3c71e39ce3fe6007e797744c8ef2f339}{modify\+Element} (unsigned short elem\+\_\+index, unsigned short source, size\+\_\+t offset, \hyperlink{group___render_system_ga027109503a988ba85f4c63b55082907f}{Vertex\+Element\+Type} the\+Type, \hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic} semantic, unsigned short index=0)
\begin{DoxyCompactList}\small\item\em Modify an element in-\/place, params as add\+Element. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_d3_d9_vertex_declaration_afe9b5394456063cae5b95d512cc54cc0}{notify\+On\+Device\+Create} (I\+Direct3\+D\+Device9 $\ast$d3d9\+Device)
\item 
virtual void \hyperlink{class_ogre_1_1_d3_d9_vertex_declaration_a5a91d9a841eca45392494b2444968029}{notify\+On\+Device\+Destroy} (I\+Direct3\+D\+Device9 $\ast$d3d9\+Device)
\item 
virtual void \hyperlink{class_ogre_1_1_d3_d9_resource_a8d55f1d5ce61a1b796d8d86dd3c69fdb}{notify\+On\+Device\+Lost} (I\+Direct3\+D\+Device9 $\ast$d3d9\+Device)
\item 
virtual void \hyperlink{class_ogre_1_1_d3_d9_resource_a9008da922e8b8762ac284cc1f08a0749}{notify\+On\+Device\+Reset} (I\+Direct3\+D\+Device9 $\ast$d3d9\+Device)
\item 
bool \hyperlink{class_ogre_1_1_vertex_declaration_a1049733c9da2b8a49590b1f942c1b4ae}{operator!=} (const \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} \&rhs) const
\item 
bool \hyperlink{class_ogre_1_1_vertex_declaration_aa8323ecd73a854f8c72fd6ac2618e3ee}{operator==} (const \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} \&rhs) const
\item 
void \hyperlink{class_ogre_1_1_vertex_declaration_a69505e015a422c94a15831fdfbf87770}{remove\+All\+Elements} (void)
\begin{DoxyCompactList}\small\item\em Remove all elements. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_vertex_declaration_a43113eabfb0d8a80a79a8c7413ad139c}{remove\+Element} (unsigned short elem\+\_\+index)
\begin{DoxyCompactList}\small\item\em Remove the element at the given index from this declaration. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_vertex_declaration_a12fad67983499876ffe66bc087cd7d0b}{remove\+Element} (\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic} semantic, unsigned short index=0)
\begin{DoxyCompactList}\small\item\em Remove the element with the given semantic and usage index. \end{DoxyCompactList}\item 
void \hyperlink{class_ogre_1_1_vertex_declaration_a98cce285a45ba6f4cf817dcf46bfb588}{sort} (void)
\begin{DoxyCompactList}\small\item\em Sorts the elements in this list to be compatible with the maximum number of rendering A\+P\+Is / graphics cards. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{class_ogre_1_1_d3_d9_resource_aa97afae987b0c0f16c3e232a7317fad5}{lock\+Device\+Access} ()
\item 
static void \hyperlink{class_ogre_1_1_d3_d9_resource_a6fc9c0ebe4a4c559b172f25f3b5dc9d8}{unlock\+Device\+Access} ()
\item 
static bool \hyperlink{class_ogre_1_1_vertex_declaration_a670466fe9bcfc426ccefb5395a3a82ef}{vertex\+Element\+Less} (const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} \&e1, const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} \&e2)
\begin{DoxyCompactList}\small\item\em Sort routine for vertex elements. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Specialisation of \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} for D3\+D9. 

\subsection{Member Typedef Documentation}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}\label{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!Vertex\+Element\+List@{Vertex\+Element\+List}}
\index{Vertex\+Element\+List@{Vertex\+Element\+List}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{Vertex\+Element\+List}{VertexElementList}}
{\footnotesize\ttfamily typedef std\+::list$<$\hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element}$>$ \hyperlink{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}{Ogre\+::\+Vertex\+Declaration\+::\+Vertex\+Element\+List}\hspace{0.3cm}{\ttfamily [inherited]}}



Defines the list of vertex elements that makes up this declaration. 



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_d3_d9_vertex_declaration_a842f42e52d16d44819abb342fc182cad}\label{class_ogre_1_1_d3_d9_vertex_declaration_a842f42e52d16d44819abb342fc182cad}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!D3\+D9\+Vertex\+Declaration@{D3\+D9\+Vertex\+Declaration}}
\index{D3\+D9\+Vertex\+Declaration@{D3\+D9\+Vertex\+Declaration}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{D3\+D9\+Vertex\+Declaration()}{D3D9VertexDeclaration()}}
{\footnotesize\ttfamily Ogre\+::\+D3\+D9\+Vertex\+Declaration\+::\+D3\+D9\+Vertex\+Declaration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{class_ogre_1_1_d3_d9_vertex_declaration_a6e35239737da934f62f69fad4c3bd290}\label{class_ogre_1_1_d3_d9_vertex_declaration_a6e35239737da934f62f69fad4c3bd290}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!````~D3\+D9\+Vertex\+Declaration@{$\sim$\+D3\+D9\+Vertex\+Declaration}}
\index{````~D3\+D9\+Vertex\+Declaration@{$\sim$\+D3\+D9\+Vertex\+Declaration}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{$\sim$\+D3\+D9\+Vertex\+Declaration()}{~D3D9VertexDeclaration()}}
{\footnotesize\ttfamily Ogre\+::\+D3\+D9\+Vertex\+Declaration\+::$\sim$\+D3\+D9\+Vertex\+Declaration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_d3_d9_vertex_declaration_afe9b5394456063cae5b95d512cc54cc0}\label{class_ogre_1_1_d3_d9_vertex_declaration_afe9b5394456063cae5b95d512cc54cc0}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!notify\+On\+Device\+Create@{notify\+On\+Device\+Create}}
\index{notify\+On\+Device\+Create@{notify\+On\+Device\+Create}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{notify\+On\+Device\+Create()}{notifyOnDeviceCreate()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+D3\+D9\+Vertex\+Declaration\+::notify\+On\+Device\+Create (\begin{DoxyParamCaption}\item[{I\+Direct3\+D\+Device9 $\ast$}]{d3d9\+Device }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Reimplemented from \hyperlink{class_ogre_1_1_d3_d9_resource_ac2b865b0cd4754552c38fd6c6f83064f}{Ogre\+::\+D3\+D9\+Resource}.

\mbox{\Hypertarget{class_ogre_1_1_d3_d9_vertex_declaration_a5a91d9a841eca45392494b2444968029}\label{class_ogre_1_1_d3_d9_vertex_declaration_a5a91d9a841eca45392494b2444968029}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!notify\+On\+Device\+Destroy@{notify\+On\+Device\+Destroy}}
\index{notify\+On\+Device\+Destroy@{notify\+On\+Device\+Destroy}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{notify\+On\+Device\+Destroy()}{notifyOnDeviceDestroy()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+D3\+D9\+Vertex\+Declaration\+::notify\+On\+Device\+Destroy (\begin{DoxyParamCaption}\item[{I\+Direct3\+D\+Device9 $\ast$}]{d3d9\+Device }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Reimplemented from \hyperlink{class_ogre_1_1_d3_d9_resource_a1ceaf6c7f17b55a2dfb818360bb8a97b}{Ogre\+::\+D3\+D9\+Resource}.

\mbox{\Hypertarget{class_ogre_1_1_d3_d9_vertex_declaration_aa6da7c9f1902145e0725e348cb522699}\label{class_ogre_1_1_d3_d9_vertex_declaration_aa6da7c9f1902145e0725e348cb522699}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+D3\+D\+Vertex\+Declaration@{get\+D3\+D\+Vertex\+Declaration}}
\index{get\+D3\+D\+Vertex\+Declaration@{get\+D3\+D\+Vertex\+Declaration}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+D3\+D\+Vertex\+Declaration()}{getD3DVertexDeclaration()}}
{\footnotesize\ttfamily I\+Direct3\+D\+Vertex\+Declaration9$\ast$ Ogre\+::\+D3\+D9\+Vertex\+Declaration\+::get\+D3\+D\+Vertex\+Declaration (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} $\ast$}]{global\+Declaration,  }\item[{bool}]{use\+Global\+Instancing\+Vertex\+Buffer\+Is\+Available }\end{DoxyParamCaption})}



Gets the D3\+D9-\/specific vertex declaration. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a670466fe9bcfc426ccefb5395a3a82ef}\label{class_ogre_1_1_vertex_declaration_a670466fe9bcfc426ccefb5395a3a82ef}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!vertex\+Element\+Less@{vertex\+Element\+Less}}
\index{vertex\+Element\+Less@{vertex\+Element\+Less}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{vertex\+Element\+Less()}{vertexElementLess()}}
{\footnotesize\ttfamily static bool Ogre\+::\+Vertex\+Declaration\+::vertex\+Element\+Less (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} \&}]{e1,  }\item[{const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} \&}]{e2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [inherited]}}



Sort routine for vertex elements. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a1bc75972c04228ebf539e242d57b7203}\label{class_ogre_1_1_vertex_declaration_a1bc75972c04228ebf539e242d57b7203}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+Element\+Count@{get\+Element\+Count}}
\index{get\+Element\+Count@{get\+Element\+Count}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+Element\+Count()}{getElementCount()}}
{\footnotesize\ttfamily size\+\_\+t Ogre\+::\+Vertex\+Declaration\+::get\+Element\+Count (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}



Get the number of elements in the declaration. 



References O\+G\+R\+E\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD.

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a9673b478f78c55754cf410b223c5a06a}\label{class_ogre_1_1_vertex_declaration_a9673b478f78c55754cf410b223c5a06a}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+Elements@{get\+Elements}}
\index{get\+Elements@{get\+Elements}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+Elements()}{getElements()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}{Vertex\+Element\+List}\& Ogre\+::\+Vertex\+Declaration\+::get\+Elements (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Gets read-\/only access to the list of vertex elements. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_aed9f1ba13a68148ce730fafdb4834ba5}\label{class_ogre_1_1_vertex_declaration_aed9f1ba13a68148ce730fafdb4834ba5}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+Element@{get\+Element}}
\index{get\+Element@{get\+Element}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+Element()}{getElement()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element}$\ast$ Ogre\+::\+Vertex\+Declaration\+::get\+Element (\begin{DoxyParamCaption}\item[{unsigned short}]{index }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Get a single element. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a98cce285a45ba6f4cf817dcf46bfb588}\label{class_ogre_1_1_vertex_declaration_a98cce285a45ba6f4cf817dcf46bfb588}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!sort@{sort}}
\index{sort@{sort}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{sort()}{sort()}}
{\footnotesize\ttfamily void Ogre\+::\+Vertex\+Declaration\+::sort (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Sorts the elements in this list to be compatible with the maximum number of rendering A\+P\+Is / graphics cards. 

\begin{DoxyRemark}{Remarks}
Older graphics cards require vertex data to be presented in a more rigid way, as defined in the main documentation for this class. As well as the ordering being important, where shared source buffers are used, the declaration must list all the elements for each source in turn. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a260ecb704cfc32b82f248e382a53be47}\label{class_ogre_1_1_vertex_declaration_a260ecb704cfc32b82f248e382a53be47}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!close\+Gaps\+In\+Source@{close\+Gaps\+In\+Source}}
\index{close\+Gaps\+In\+Source@{close\+Gaps\+In\+Source}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{close\+Gaps\+In\+Source()}{closeGapsInSource()}}
{\footnotesize\ttfamily void Ogre\+::\+Vertex\+Declaration\+::close\+Gaps\+In\+Source (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Remove any gaps in the source buffer list used by this declaration. 

\begin{DoxyRemark}{Remarks}
This is useful if you\textquotesingle{}ve modified a declaration and want to remove any gaps in the list of buffers being used. Note, however, that if this declaration is already being used with a \hyperlink{class_ogre_1_1_vertex_buffer_binding}{Vertex\+Buffer\+Binding}, you will need to alter that too. This method is mainly useful when reorganising buffers based on an altered declaration. 
\end{DoxyRemark}
\begin{DoxyNote}{Note}
This will cause the vertex declaration to be re-\/sorted. 
\end{DoxyNote}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a130fa715330d23d0e9d2feef630b460c}\label{class_ogre_1_1_vertex_declaration_a130fa715330d23d0e9d2feef630b460c}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+Auto\+Organised\+Declaration@{get\+Auto\+Organised\+Declaration}}
\index{get\+Auto\+Organised\+Declaration@{get\+Auto\+Organised\+Declaration}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+Auto\+Organised\+Declaration()}{getAutoOrganisedDeclaration()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration}$\ast$ Ogre\+::\+Vertex\+Declaration\+::get\+Auto\+Organised\+Declaration (\begin{DoxyParamCaption}\item[{bool}]{skeletal\+Animation,  }\item[{bool}]{vertex\+Animation,  }\item[{bool}]{vertex\+Animation\+Normals }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Generates a new \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} for optimal usage based on the current vertex declaration, which can be used with \hyperlink{class_ogre_1_1_vertex_data_a106603d9d4d6c2f6e0d5eb6c25eb7c32}{Vertex\+Data\+::reorganise\+Buffers} later if you wish, or simply used as a template. 

\begin{DoxyRemark}{Remarks}
Different buffer organisations and buffer usages will be returned depending on the parameters passed to this method. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em skeletal\+Animation} & Whether this vertex data is going to be skeletally animated \\
\hline
{\em vertex\+Animation} & Whether this vertex data is going to be vertex animated \\
\hline
{\em vertex\+Animation\+Normals} & Whether vertex data animation is going to include normals animation \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_ae8e81e6e6209774c203a0edf44032e65}\label{class_ogre_1_1_vertex_declaration_ae8e81e6e6209774c203a0edf44032e65}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+Max\+Source@{get\+Max\+Source}}
\index{get\+Max\+Source@{get\+Max\+Source}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+Max\+Source()}{getMaxSource()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Vertex\+Declaration\+::get\+Max\+Source (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Gets the index of the highest source value referenced by this declaration. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a8b1a5f5fe0b7306da4c8b17357d45fac}\label{class_ogre_1_1_vertex_declaration_a8b1a5f5fe0b7306da4c8b17357d45fac}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!add\+Element@{add\+Element}}
\index{add\+Element@{add\+Element}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{add\+Element()}{addElement()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element}\& Ogre\+::\+Vertex\+Declaration\+::add\+Element (\begin{DoxyParamCaption}\item[{unsigned short}]{source,  }\item[{size\+\_\+t}]{offset,  }\item[{\hyperlink{group___render_system_ga027109503a988ba85f4c63b55082907f}{Vertex\+Element\+Type}}]{the\+Type,  }\item[{\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic}}]{semantic,  }\item[{unsigned short}]{index = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Adds a new \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} to this declaration. 

\begin{DoxyRemark}{Remarks}
This method adds a single element (positions, normals etc) to the end of the vertex declaration. {\bfseries Please read the information in \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} about the importance of ordering and structure for compatibility with older D3D drivers}. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em source} & The binding index of \hyperlink{class_ogre_1_1_hardware_vertex_buffer}{Hardware\+Vertex\+Buffer} which will provide the source for this element. See \hyperlink{class_ogre_1_1_vertex_buffer_binding}{Vertex\+Buffer\+Binding} for full information. \\
\hline
{\em offset} & The offset in bytes where this element is located in the buffer \\
\hline
{\em the\+Type} & The data format of the element (3 floats, a colour etc) \\
\hline
{\em semantic} & The meaning of the data (position, normal, diffuse colour etc) \\
\hline
{\em index} & Optional index for multi-\/input elements like texture coordinates \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} added. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_adb0dd4e0b21379635c0c54f37ef90e1d}\label{class_ogre_1_1_vertex_declaration_adb0dd4e0b21379635c0c54f37ef90e1d}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!insert\+Element@{insert\+Element}}
\index{insert\+Element@{insert\+Element}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{insert\+Element()}{insertElement()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element}\& Ogre\+::\+Vertex\+Declaration\+::insert\+Element (\begin{DoxyParamCaption}\item[{unsigned short}]{at\+Position,  }\item[{unsigned short}]{source,  }\item[{size\+\_\+t}]{offset,  }\item[{\hyperlink{group___render_system_ga027109503a988ba85f4c63b55082907f}{Vertex\+Element\+Type}}]{the\+Type,  }\item[{\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic}}]{semantic,  }\item[{unsigned short}]{index = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Inserts a new \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} at a given position in this declaration. 

\begin{DoxyRemark}{Remarks}
This method adds a single element (positions, normals etc) at a given position in this vertex declaration. {\bfseries Please read the information in \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} about the importance of ordering and structure for compatibility with older D3D drivers}. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em source} & The binding index of \hyperlink{class_ogre_1_1_hardware_vertex_buffer}{Hardware\+Vertex\+Buffer} which will provide the source for this element. See \hyperlink{class_ogre_1_1_vertex_buffer_binding}{Vertex\+Buffer\+Binding} for full information. \\
\hline
{\em offset} & The offset in bytes where this element is located in the buffer \\
\hline
{\em the\+Type} & The data format of the element (3 floats, a colour etc) \\
\hline
{\em semantic} & The meaning of the data (position, normal, diffuse colour etc) \\
\hline
{\em index} & Optional index for multi-\/input elements like texture coordinates \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} added. 
\end{DoxyReturn}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a43113eabfb0d8a80a79a8c7413ad139c}\label{class_ogre_1_1_vertex_declaration_a43113eabfb0d8a80a79a8c7413ad139c}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!remove\+Element@{remove\+Element}}
\index{remove\+Element@{remove\+Element}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{remove\+Element()}{removeElement()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Vertex\+Declaration\+::remove\+Element (\begin{DoxyParamCaption}\item[{unsigned short}]{elem\+\_\+index }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Remove the element at the given index from this declaration. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a12fad67983499876ffe66bc087cd7d0b}\label{class_ogre_1_1_vertex_declaration_a12fad67983499876ffe66bc087cd7d0b}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!remove\+Element@{remove\+Element}}
\index{remove\+Element@{remove\+Element}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{remove\+Element()}{removeElement()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Ogre\+::\+Vertex\+Declaration\+::remove\+Element (\begin{DoxyParamCaption}\item[{\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic}}]{semantic,  }\item[{unsigned short}]{index = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Remove the element with the given semantic and usage index. 

\begin{DoxyRemark}{Remarks}
In this case \textquotesingle{}index\textquotesingle{} means the usage index for repeating elements such as texture coordinates. For other elements this will always be 0 and does not refer to the index in the vector. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a69505e015a422c94a15831fdfbf87770}\label{class_ogre_1_1_vertex_declaration_a69505e015a422c94a15831fdfbf87770}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!remove\+All\+Elements@{remove\+All\+Elements}}
\index{remove\+All\+Elements@{remove\+All\+Elements}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{remove\+All\+Elements()}{removeAllElements()}}
{\footnotesize\ttfamily void Ogre\+::\+Vertex\+Declaration\+::remove\+All\+Elements (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Remove all elements. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a3c71e39ce3fe6007e797744c8ef2f339}\label{class_ogre_1_1_vertex_declaration_a3c71e39ce3fe6007e797744c8ef2f339}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!modify\+Element@{modify\+Element}}
\index{modify\+Element@{modify\+Element}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{modify\+Element()}{modifyElement()}}
{\footnotesize\ttfamily void Ogre\+::\+Vertex\+Declaration\+::modify\+Element (\begin{DoxyParamCaption}\item[{unsigned short}]{elem\+\_\+index,  }\item[{unsigned short}]{source,  }\item[{size\+\_\+t}]{offset,  }\item[{\hyperlink{group___render_system_ga027109503a988ba85f4c63b55082907f}{Vertex\+Element\+Type}}]{the\+Type,  }\item[{\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic}}]{semantic,  }\item[{unsigned short}]{index = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inherited]}}



Modify an element in-\/place, params as add\+Element. 

\begin{DoxyRemark}{Remarks}
{\bfseries Please read the information in \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} about the importance of ordering and structure for compatibility with older D3D drivers}. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a469bd849411d3f152d700772fab64501}\label{class_ogre_1_1_vertex_declaration_a469bd849411d3f152d700772fab64501}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!find\+Element\+By\+Semantic@{find\+Element\+By\+Semantic}}
\index{find\+Element\+By\+Semantic@{find\+Element\+By\+Semantic}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{find\+Element\+By\+Semantic()}{findElementBySemantic()}}
{\footnotesize\ttfamily const \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element}$\ast$ Ogre\+::\+Vertex\+Declaration\+::find\+Element\+By\+Semantic (\begin{DoxyParamCaption}\item[{\hyperlink{group___render_system_ga0a62b3f2ede8992ff365bb013a8bc00d}{Vertex\+Element\+Semantic}}]{sem,  }\item[{unsigned short}]{index = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Finds a \hyperlink{class_ogre_1_1_vertex_element}{Vertex\+Element} with the given semantic, and index if there is more than one element with the same semantic. 

\begin{DoxyRemark}{Remarks}
If the element is not found, this method returns null. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_ada92fbc9ee87b04f8a3c389c71904ce6}\label{class_ogre_1_1_vertex_declaration_ada92fbc9ee87b04f8a3c389c71904ce6}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!find\+Elements\+By\+Source@{find\+Elements\+By\+Source}}
\index{find\+Elements\+By\+Source@{find\+Elements\+By\+Source}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{find\+Elements\+By\+Source()}{findElementsBySource()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_vertex_declaration_a60080b97acb5b645bf3524152d75cc5d}{Vertex\+Element\+List} Ogre\+::\+Vertex\+Declaration\+::find\+Elements\+By\+Source (\begin{DoxyParamCaption}\item[{unsigned short}]{source }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Based on the current elements, gets the size of the vertex for a given buffer source. 


\begin{DoxyParams}{Parameters}
{\em source} & The buffer binding index for which to get the vertex size. Gets a list of elements which use a given source. \\
\hline
\end{DoxyParams}
\begin{DoxyRemark}{Remarks}
Note that the list of elements is returned by value therefore is separate from the declaration as soon as this method returns. 
\end{DoxyRemark}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_ad34cfa2c7ebdadfb5101ce751e6ab039}\label{class_ogre_1_1_vertex_declaration_ad34cfa2c7ebdadfb5101ce751e6ab039}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+Vertex\+Size@{get\+Vertex\+Size}}
\index{get\+Vertex\+Size@{get\+Vertex\+Size}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+Vertex\+Size()}{getVertexSize()}}
{\footnotesize\ttfamily size\+\_\+t Ogre\+::\+Vertex\+Declaration\+::get\+Vertex\+Size (\begin{DoxyParamCaption}\item[{unsigned short}]{source }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Gets the vertex size defined by this declaration for a given source. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a4f99e40285b5c122843b681477983ab1}\label{class_ogre_1_1_vertex_declaration_a4f99e40285b5c122843b681477983ab1}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!get\+Next\+Free\+Texture\+Coordinate@{get\+Next\+Free\+Texture\+Coordinate}}
\index{get\+Next\+Free\+Texture\+Coordinate@{get\+Next\+Free\+Texture\+Coordinate}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{get\+Next\+Free\+Texture\+Coordinate()}{getNextFreeTextureCoordinate()}}
{\footnotesize\ttfamily unsigned short Ogre\+::\+Vertex\+Declaration\+::get\+Next\+Free\+Texture\+Coordinate (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Return the index of the next free texture coordinate set which may be added to this declaration. 

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a3c1091f7ece9bbc4e4f847484fd75a37}\label{class_ogre_1_1_vertex_declaration_a3c1091f7ece9bbc4e4f847484fd75a37}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!clone@{clone}}
\index{clone@{clone}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{clone()}{clone()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration}$\ast$ Ogre\+::\+Vertex\+Declaration\+::clone (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_hardware_buffer_manager_base}{Hardware\+Buffer\+Manager\+Base} $\ast$}]{mgr = {\ttfamily 0} }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inherited]}}



Clones this declaration. 


\begin{DoxyParams}{Parameters}
{\em mgr} & Optional \hyperlink{class_ogre_1_1_hardware_buffer_manager}{Hardware\+Buffer\+Manager} to use for creating the clone (if null, use the current default). \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_aa8323ecd73a854f8c72fd6ac2618e3ee}\label{class_ogre_1_1_vertex_declaration_aa8323ecd73a854f8c72fd6ac2618e3ee}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!operator==@{operator==}}
\index{operator==@{operator==}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{operator==()}{operator==()}}
{\footnotesize\ttfamily bool Ogre\+::\+Vertex\+Declaration\+::operator== (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}

\mbox{\Hypertarget{class_ogre_1_1_vertex_declaration_a1049733c9da2b8a49590b1f942c1b4ae}\label{class_ogre_1_1_vertex_declaration_a1049733c9da2b8a49590b1f942c1b4ae}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!operator"!=@{operator"!=}}
\index{operator"!=@{operator"!=}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{operator"!=()}{operator!=()}}
{\footnotesize\ttfamily bool Ogre\+::\+Vertex\+Declaration\+::operator!= (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vertex_declaration}{Vertex\+Declaration} \&}]{rhs }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [inherited]}}

\mbox{\Hypertarget{class_ogre_1_1_d3_d9_resource_a8d55f1d5ce61a1b796d8d86dd3c69fdb}\label{class_ogre_1_1_d3_d9_resource_a8d55f1d5ce61a1b796d8d86dd3c69fdb}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!notify\+On\+Device\+Lost@{notify\+On\+Device\+Lost}}
\index{notify\+On\+Device\+Lost@{notify\+On\+Device\+Lost}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{notify\+On\+Device\+Lost()}{notifyOnDeviceLost()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+D3\+D9\+Resource\+::notify\+On\+Device\+Lost (\begin{DoxyParamCaption}\item[{I\+Direct3\+D\+Device9 $\ast$}]{d3d9\+Device }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Reimplemented in \hyperlink{class_ogre_1_1_d3_d9_texture_a87c0bc1fea93de0e2cd65fa2dc374fd8}{Ogre\+::\+D3\+D9\+Texture}, \hyperlink{class_ogre_1_1_d3_d9_hardware_occlusion_query_a6dea06e309f77051404ae1e0fb761e39}{Ogre\+::\+D3\+D9\+Hardware\+Occlusion\+Query}, \hyperlink{class_ogre_1_1_d3_d9_hardware_index_buffer_ab23fb340055333aee5801dbabea1fd6d}{Ogre\+::\+D3\+D9\+Hardware\+Index\+Buffer}, and \hyperlink{class_ogre_1_1_d3_d9_hardware_vertex_buffer_ae3e1077c9d54bb6bcb9f8cdc68da1dd1}{Ogre\+::\+D3\+D9\+Hardware\+Vertex\+Buffer}.

\mbox{\Hypertarget{class_ogre_1_1_d3_d9_resource_a9008da922e8b8762ac284cc1f08a0749}\label{class_ogre_1_1_d3_d9_resource_a9008da922e8b8762ac284cc1f08a0749}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!notify\+On\+Device\+Reset@{notify\+On\+Device\+Reset}}
\index{notify\+On\+Device\+Reset@{notify\+On\+Device\+Reset}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{notify\+On\+Device\+Reset()}{notifyOnDeviceReset()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+D3\+D9\+Resource\+::notify\+On\+Device\+Reset (\begin{DoxyParamCaption}\item[{I\+Direct3\+D\+Device9 $\ast$}]{d3d9\+Device }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [inherited]}}



Reimplemented in \hyperlink{class_ogre_1_1_d3_d9_texture_adc3440ed2fd6447de424908e650b86ae}{Ogre\+::\+D3\+D9\+Texture}, \hyperlink{class_ogre_1_1_d3_d9_hardware_occlusion_query_a25a10de153b672d9a7a64278cd57eeae}{Ogre\+::\+D3\+D9\+Hardware\+Occlusion\+Query}, \hyperlink{class_ogre_1_1_d3_d9_hardware_index_buffer_a739f49c9d66d04445cb306cf548fed06}{Ogre\+::\+D3\+D9\+Hardware\+Index\+Buffer}, and \hyperlink{class_ogre_1_1_d3_d9_hardware_vertex_buffer_aa0edb44f392cdaacb8f77acebd16b739}{Ogre\+::\+D3\+D9\+Hardware\+Vertex\+Buffer}.



References O\+G\+R\+E\+\_\+\+S\+T\+A\+T\+I\+C\+\_\+\+M\+U\+T\+EX.

\mbox{\Hypertarget{class_ogre_1_1_d3_d9_resource_aa97afae987b0c0f16c3e232a7317fad5}\label{class_ogre_1_1_d3_d9_resource_aa97afae987b0c0f16c3e232a7317fad5}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!lock\+Device\+Access@{lock\+Device\+Access}}
\index{lock\+Device\+Access@{lock\+Device\+Access}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{lock\+Device\+Access()}{lockDeviceAccess()}}
{\footnotesize\ttfamily static void Ogre\+::\+D3\+D9\+Resource\+::lock\+Device\+Access (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [inherited]}}

\mbox{\Hypertarget{class_ogre_1_1_d3_d9_resource_a6fc9c0ebe4a4c559b172f25f3b5dc9d8}\label{class_ogre_1_1_d3_d9_resource_a6fc9c0ebe4a4c559b172f25f3b5dc9d8}} 
\index{Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}!unlock\+Device\+Access@{unlock\+Device\+Access}}
\index{unlock\+Device\+Access@{unlock\+Device\+Access}!Ogre\+::\+D3\+D9\+Vertex\+Declaration@{Ogre\+::\+D3\+D9\+Vertex\+Declaration}}
\subsubsection{\texorpdfstring{unlock\+Device\+Access()}{unlockDeviceAccess()}}
{\footnotesize\ttfamily static void Ogre\+::\+D3\+D9\+Resource\+::unlock\+Device\+Access (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [inherited]}}



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_d3_d9_vertex_declaration_8h}{Ogre\+D3\+D9\+Vertex\+Declaration.\+h}\end{DoxyCompactItemize}
