source: OGRE/trunk/ogrenew/Docs/api/html/classOgre_1_1VertexDeclaration.html @ 692

Revision 692, 51.2 KB checked in by mattausch, 18 years ago (diff)

adding ogre 1.2 and dependencies

Line 
1<html>
2<head>
3<title>Ogre::VertexDeclaration class Reference - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
4<link type="text/css" rel="stylesheet" href="style.css">
5</head>
6
7<body>
8<!-- Generated by Doxygen 1.3.6 -->
9<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
10<h1>Ogre::VertexDeclaration Class Reference</h1>This class declares the format of a set of vertex inputs, which can be issued to the rendering API through a <a class="el" href="classOgre_1_1RenderOperation.html">RenderOperation</a>. 
11<a href="#_details">More...</a>
12<p>
13<code>#include &lt;<a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>&gt;</code>
14<p>
15<p>Inheritance diagram for Ogre::VertexDeclaration:
16<p><center><img src="classOgre_1_1VertexDeclaration.png" usemap="#Ogre::VertexDeclaration_map" border="0" alt=""></center>
17<map name="Ogre::VertexDeclaration_map">
18<area href="classOgre_1_1D3D9VertexDeclaration.html" alt="Ogre::D3D9VertexDeclaration" shape="rect" coords="0,56,181,80">
19</map>
20<a href="classOgre_1_1VertexDeclaration-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
21<tr><td></td></tr>
22<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
23<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::list&lt; <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">VertexElementList</a></td></tr>
24
25<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Defines the list of vertex elements that makes up this declaration.  <a href="#Ogre_1_1VertexDeclarationw0"></a><br><br></td></tr>
26<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
27<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa0">VertexDeclaration</a> ()</td></tr>
28
29<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Standard constructor, not you should use <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera4">HardwareBufferManager::createVertexDeclaration</a>.  <a href="#Ogre_1_1VertexDeclarationa0"></a><br><br></td></tr>
30<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa1">~VertexDeclaration</a> ()</td></tr>
31
32<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa2">getElementCount</a> (void)</td></tr>
33
34<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of elements in the declaration.  <a href="#Ogre_1_1VertexDeclarationa2"></a><br><br></td></tr>
35<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">VertexElementList</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa3">getElements</a> (void) const </td></tr>
36
37<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets read-only access to the list of vertex elements.  <a href="#Ogre_1_1VertexDeclarationa3"></a><br><br></td></tr>
38<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa4">getElement</a> (unsigned short index)</td></tr>
39
40<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a single element.  <a href="#Ogre_1_1VertexDeclarationa4"></a><br><br></td></tr>
41<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa5">sort</a> (void)</td></tr>
42
43<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sorts the elements in this list to be compatible with the maximum number of rendering APIs / graphics cards.  <a href="#Ogre_1_1VertexDeclarationa5"></a><br><br></td></tr>
44<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa6">closeGapsInSource</a> (void)</td></tr>
45
46<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove any gaps in the source buffer list used by this declaration.  <a href="#Ogre_1_1VertexDeclarationa6"></a><br><br></td></tr>
47<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa7">getAutoOrganisedDeclaration</a> (bool skeletalAnimation, bool vertexAnimation)</td></tr>
48
49<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a new <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> for optimal usage based on the current vertex declaration, which can be used with <a class="el" href="classOgre_1_1VertexData.html#Ogre_1_1VertexDataa4">VertexData::reorganiseBuffers</a> later if you wish, or simply used as a template.  <a href="#Ogre_1_1VertexDeclarationa7"></a><br><br></td></tr>
50<tr><td class="memItemLeft" nowrap align=right valign=top>unsigned short&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa8">getMaxSource</a> (void) const </td></tr>
51
52<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the indeex of the highest source value referenced by this declaration.  <a href="#Ogre_1_1VertexDeclarationa8"></a><br><br></td></tr>
53<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa9">addElement</a> (unsigned short source, size_t offset, <a class="el" href="namespaceOgre.html#a660">VertexElementType</a> theType, <a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a> semantic, unsigned short index=0)</td></tr>
54
55<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a new <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> to this declaration.  <a href="#Ogre_1_1VertexDeclarationa9"></a><br><br></td></tr>
56<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa10">insertElement</a> (unsigned short atPosition, unsigned short source, size_t offset, <a class="el" href="namespaceOgre.html#a660">VertexElementType</a> theType, <a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a> semantic, unsigned short index=0)</td></tr>
57
58<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inserts a new <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> at a given position in this declaration.  <a href="#Ogre_1_1VertexDeclarationa10"></a><br><br></td></tr>
59<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa11">removeElement</a> (unsigned short elem_index)</td></tr>
60
61<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove the element at the given index from this declaration.  <a href="#Ogre_1_1VertexDeclarationa11"></a><br><br></td></tr>
62<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa12">removeElement</a> (<a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a> semantic, unsigned short index=0)</td></tr>
63
64<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove the element with the given semantic and usage index.  <a href="#Ogre_1_1VertexDeclarationa12"></a><br><br></td></tr>
65<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa13">removeAllElements</a> (void)</td></tr>
66
67<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove all elements.  <a href="#Ogre_1_1VertexDeclarationa13"></a><br><br></td></tr>
68<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa14">modifyElement</a> (unsigned short elem_index, unsigned short source, size_t offset, <a class="el" href="namespaceOgre.html#a660">VertexElementType</a> theType, <a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a> semantic, unsigned short index=0)</td></tr>
69
70<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Modify an element in-place, params as addElement.  <a href="#Ogre_1_1VertexDeclarationa14"></a><br><br></td></tr>
71<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa15">findElementBySemantic</a> (<a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a> sem, unsigned short index=0)</td></tr>
72
73<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Finds a <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> with the given semantic, and index if there is more than one element with the same semantic.  <a href="#Ogre_1_1VertexDeclarationa15"></a><br><br></td></tr>
74<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">VertexElementList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa16">findElementsBySource</a> (unsigned short source)</td></tr>
75
76<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets a list of elements which use a given source.  <a href="#Ogre_1_1VertexDeclarationa16"></a><br><br></td></tr>
77<tr><td class="memItemLeft" nowrap align=right valign=top>virtual size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa17">getVertexSize</a> (unsigned short source)</td></tr>
78
79<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the vertex size defined by this declaration for a given source.  <a href="#Ogre_1_1VertexDeclarationa17"></a><br><br></td></tr>
80<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa18">clone</a> (void)</td></tr>
81
82<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clones this declaration.  <a href="#Ogre_1_1VertexDeclarationa18"></a><br><br></td></tr>
83<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa19">operator==</a> (const <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> &amp;rhs) const </td></tr>
84
85<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationa20">operator!=</a> (const <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> &amp;rhs) const </td></tr>
86
87<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
88<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclaratione0">vertexElementLess</a> (const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &amp;e1, const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &amp;e2)</td></tr>
89
90<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sort routine for vertex elements.  <a href="#Ogre_1_1VertexDeclaratione0"></a><br><br></td></tr>
91<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
92<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">VertexElementList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationp0">mElementList</a></td></tr>
93
94</table>
95<hr><a name="_details"></a><h2>Detailed Description</h2>
96This class declares the format of a set of vertex inputs, which can be issued to the rendering API through a <a class="el" href="classOgre_1_1RenderOperation.html">RenderOperation</a>.
97<p>
98<dl compact><dt><b>Remarks:</b></dt><dd>You should be aware that the ordering and structure of the <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> can be very important on DirectX with older cards,so if you want to maintain maximum compatibility with all render systems and all cards you should be careful to follow these rules:<ol>
99<li>
100VertexElements should be added in the following order, and the order of the elements within a shared buffer should be as follows: position, blending weights, normals, diffuse colours, specular colours, texture coordinates (in order, with no gaps) </li>
101<li>
102You must not have unused gaps in your buffers which are not referenced by any <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> </li>
103<li>
104You must not cause the buffer &amp; offset settings of 2 VertexElements to overlap </li>
105</ol>
106Whilst GL and more modern graphics cards in D3D will allow you to defy these rules, sticking to them will ensure that your buffers have the maximum compatibility. </dd></dl>
107<dl compact><dt><b></b></dt><dd>Like the other classes in this functional area, these declarations should be created and destroyed using the <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>. </dd></dl>
108
109<p>
110
111<p>
112Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00287">287</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.<hr><h2>Member Typedef Documentation</h2>
113<a class="anchor" name="Ogre_1_1VertexDeclarationw0" doxytag="Ogre::VertexDeclaration::VertexElementList" ></a><p>
114<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
115  <tr>
116    <td class="mdRow">
117      <table cellpadding="0" cellspacing="0" border="0">
118        <tr>
119          <td class="md" nowrap valign="top"> typedef std::list&lt;<a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a>&gt; <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">Ogre::VertexDeclaration::VertexElementList</a>
120      </table>
121    </td>
122  </tr>
123</table>
124<table cellspacing=5 cellpadding=0 border=0>
125  <tr>
126    <td>
127      &nbsp;
128    </td>
129    <td>
130
131<p>
132Defines the list of vertex elements that makes up this declaration.
133<p>
134
135<p>
136Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00291">291</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.    </td>
137  </tr>
138</table>
139<hr><h2>Constructor &amp; Destructor Documentation</h2>
140<a class="anchor" name="Ogre_1_1VertexDeclarationa0" doxytag="Ogre::VertexDeclaration::VertexDeclaration" ></a><p>
141<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
142  <tr>
143    <td class="mdRow">
144      <table cellpadding="0" cellspacing="0" border="0">
145        <tr>
146          <td class="md" nowrap valign="top"> Ogre::VertexDeclaration::VertexDeclaration </td>
147          <td class="md" valign="top">(&nbsp;</td>
148          <td class="mdname1" valign="top" nowrap>          </td>
149          <td class="md" valign="top">&nbsp;)&nbsp;</td>
150          <td class="md" nowrap></td>
151        </tr>
152
153      </table>
154    </td>
155  </tr>
156</table>
157<table cellspacing=5 cellpadding=0 border=0>
158  <tr>
159    <td>
160      &nbsp;
161    </td>
162    <td>
163
164<p>
165Standard constructor, not you should use <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera4">HardwareBufferManager::createVertexDeclaration</a>.
166<p>
167    </td>
168  </tr>
169</table>
170<a class="anchor" name="Ogre_1_1VertexDeclarationa1" doxytag="Ogre::VertexDeclaration::~VertexDeclaration" ></a><p>
171<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
172  <tr>
173    <td class="mdRow">
174      <table cellpadding="0" cellspacing="0" border="0">
175        <tr>
176          <td class="md" nowrap valign="top"> virtual Ogre::VertexDeclaration::~<a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> </td>
177          <td class="md" valign="top">(&nbsp;</td>
178          <td class="mdname1" valign="top" nowrap>          </td>
179          <td class="md" valign="top">&nbsp;)&nbsp;</td>
180          <td class="md" nowrap><code> [virtual]</code></td>
181        </tr>
182
183      </table>
184    </td>
185  </tr>
186</table>
187<table cellspacing=5 cellpadding=0 border=0>
188  <tr>
189    <td>
190      &nbsp;
191    </td>
192    <td>
193
194<p>
195    </td>
196  </tr>
197</table>
198<hr><h2>Member Function Documentation</h2>
199<a class="anchor" name="Ogre_1_1VertexDeclarationa9" doxytag="Ogre::VertexDeclaration::addElement" ></a><p>
200<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
201  <tr>
202    <td class="mdRow">
203      <table cellpadding="0" cellspacing="0" border="0">
204        <tr>
205          <td class="md" nowrap valign="top"> virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a>&amp; Ogre::VertexDeclaration::addElement </td>
206          <td class="md" valign="top">(&nbsp;</td>
207          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
208          <td class="mdname" nowrap> <em>source</em>, </td>
209        </tr>
210        <tr>
211          <td class="md" nowrap align="right"></td>
212          <td></td>
213          <td class="md" nowrap>size_t&nbsp;</td>
214          <td class="mdname" nowrap> <em>offset</em>, </td>
215        </tr>
216        <tr>
217          <td class="md" nowrap align="right"></td>
218          <td></td>
219          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a660">VertexElementType</a>&nbsp;</td>
220          <td class="mdname" nowrap> <em>theType</em>, </td>
221        </tr>
222        <tr>
223          <td class="md" nowrap align="right"></td>
224          <td></td>
225          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a>&nbsp;</td>
226          <td class="mdname" nowrap> <em>semantic</em>, </td>
227        </tr>
228        <tr>
229          <td class="md" nowrap align="right"></td>
230          <td></td>
231          <td class="md" nowrap>unsigned short&nbsp;</td>
232          <td class="mdname" nowrap> <em>index</em> = 0</td>
233        </tr>
234        <tr>
235          <td></td>
236          <td class="md">)&nbsp;</td>
237          <td class="md" colspan="2"><code> [virtual]</code></td>
238        </tr>
239
240      </table>
241    </td>
242  </tr>
243</table>
244<table cellspacing=5 cellpadding=0 border=0>
245  <tr>
246    <td>
247      &nbsp;
248    </td>
249    <td>
250
251<p>
252Adds a new <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> to this declaration.
253<p>
254<dl compact><dt><b>Remarks:</b></dt><dd>This method adds a single element (positions, normals etc) to the end of the vertex declaration. <b>Please read the information in <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> about the importance of ordering and structure for compatibility with older D3D drivers</b>. </dd></dl>
255<dl compact><dt><b>Parameters:</b></dt><dd>
256  <table border="0" cellspacing="2" cellpadding="0">
257    <tr><td valign=top><em>source</em>&nbsp;</td><td>The binding index of <a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> which will provide the source for this element. See VertexBufferBindingState for full information. </td></tr>
258    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The offset in bytes where this element is located in the buffer </td></tr>
259    <tr><td valign=top><em>theType</em>&nbsp;</td><td>The data format of the element (3 floats, a colour etc) </td></tr>
260    <tr><td valign=top><em>semantic</em>&nbsp;</td><td>The meaning of the data (position, normal, diffuse colour etc) </td></tr>
261    <tr><td valign=top><em>index</em>&nbsp;</td><td>Optional index for multi-input elements like texture coordinates </td></tr>
262  </table>
263</dl>
264<dl compact><dt><b>Returns:</b></dt><dd>A reference to the <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> added. </dd></dl>
265
266<p>
267Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa2">Ogre::D3D9VertexDeclaration</a>.    </td>
268  </tr>
269</table>
270<a class="anchor" name="Ogre_1_1VertexDeclarationa18" doxytag="Ogre::VertexDeclaration::clone" ></a><p>
271<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
272  <tr>
273    <td class="mdRow">
274      <table cellpadding="0" cellspacing="0" border="0">
275        <tr>
276          <td class="md" nowrap valign="top"> virtual <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a>* Ogre::VertexDeclaration::clone </td>
277          <td class="md" valign="top">(&nbsp;</td>
278          <td class="md" nowrap valign="top">void&nbsp;</td>
279          <td class="mdname1" valign="top" nowrap>          </td>
280          <td class="md" valign="top">&nbsp;)&nbsp;</td>
281          <td class="md" nowrap><code> [virtual]</code></td>
282        </tr>
283
284      </table>
285    </td>
286  </tr>
287</table>
288<table cellspacing=5 cellpadding=0 border=0>
289  <tr>
290    <td>
291      &nbsp;
292    </td>
293    <td>
294
295<p>
296Clones this declaration.
297<p>
298    </td>
299  </tr>
300</table>
301<a class="anchor" name="Ogre_1_1VertexDeclarationa6" doxytag="Ogre::VertexDeclaration::closeGapsInSource" ></a><p>
302<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
303  <tr>
304    <td class="mdRow">
305      <table cellpadding="0" cellspacing="0" border="0">
306        <tr>
307          <td class="md" nowrap valign="top"> void Ogre::VertexDeclaration::closeGapsInSource </td>
308          <td class="md" valign="top">(&nbsp;</td>
309          <td class="md" nowrap valign="top">void&nbsp;</td>
310          <td class="mdname1" valign="top" nowrap>          </td>
311          <td class="md" valign="top">&nbsp;)&nbsp;</td>
312          <td class="md" nowrap></td>
313        </tr>
314
315      </table>
316    </td>
317  </tr>
318</table>
319<table cellspacing=5 cellpadding=0 border=0>
320  <tr>
321    <td>
322      &nbsp;
323    </td>
324    <td>
325
326<p>
327Remove any gaps in the source buffer list used by this declaration.
328<p>
329<dl compact><dt><b>Remarks:</b></dt><dd>This is useful if you'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 <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>, you will need to alter that too. This method is mainly useful when reorganising buffers based on an altered declaration. </dd></dl>
330<dl compact><dt><b>Note:</b></dt><dd>This will cause the vertex declaration to be re-sorted. </dd></dl>
331    </td>
332  </tr>
333</table>
334<a class="anchor" name="Ogre_1_1VertexDeclarationa15" doxytag="Ogre::VertexDeclaration::findElementBySemantic" ></a><p>
335<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
336  <tr>
337    <td class="mdRow">
338      <table cellpadding="0" cellspacing="0" border="0">
339        <tr>
340          <td class="md" nowrap valign="top"> virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a>* Ogre::VertexDeclaration::findElementBySemantic </td>
341          <td class="md" valign="top">(&nbsp;</td>
342          <td class="md" nowrap valign="top"><a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a>&nbsp;</td>
343          <td class="mdname" nowrap> <em>sem</em>, </td>
344        </tr>
345        <tr>
346          <td class="md" nowrap align="right"></td>
347          <td></td>
348          <td class="md" nowrap>unsigned short&nbsp;</td>
349          <td class="mdname" nowrap> <em>index</em> = 0</td>
350        </tr>
351        <tr>
352          <td></td>
353          <td class="md">)&nbsp;</td>
354          <td class="md" colspan="2"><code> [virtual]</code></td>
355        </tr>
356
357      </table>
358    </td>
359  </tr>
360</table>
361<table cellspacing=5 cellpadding=0 border=0>
362  <tr>
363    <td>
364      &nbsp;
365    </td>
366    <td>
367
368<p>
369Finds a <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> with the given semantic, and index if there is more than one element with the same semantic.
370<p>
371<dl compact><dt><b>Remarks:</b></dt><dd>If the element is not found, this method returns null.</dd></dl>
372    </td>
373  </tr>
374</table>
375<a class="anchor" name="Ogre_1_1VertexDeclarationa16" doxytag="Ogre::VertexDeclaration::findElementsBySource" ></a><p>
376<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
377  <tr>
378    <td class="mdRow">
379      <table cellpadding="0" cellspacing="0" border="0">
380        <tr>
381          <td class="md" nowrap valign="top"> virtual <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">VertexElementList</a> Ogre::VertexDeclaration::findElementsBySource </td>
382          <td class="md" valign="top">(&nbsp;</td>
383          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
384          <td class="mdname1" valign="top" nowrap> <em>source</em>          </td>
385          <td class="md" valign="top">&nbsp;)&nbsp;</td>
386          <td class="md" nowrap><code> [virtual]</code></td>
387        </tr>
388
389      </table>
390    </td>
391  </tr>
392</table>
393<table cellspacing=5 cellpadding=0 border=0>
394  <tr>
395    <td>
396      &nbsp;
397    </td>
398    <td>
399
400<p>
401Gets a list of elements which use a given source.
402<p>
403<dl compact><dt><b>Remarks:</b></dt><dd>Note that the list of elements is returned by value therefore is separate from the declaration as soon as this method returns.</dd></dl>
404    </td>
405  </tr>
406</table>
407<a class="anchor" name="Ogre_1_1VertexDeclarationa7" doxytag="Ogre::VertexDeclaration::getAutoOrganisedDeclaration" ></a><p>
408<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
409  <tr>
410    <td class="mdRow">
411      <table cellpadding="0" cellspacing="0" border="0">
412        <tr>
413          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a>* Ogre::VertexDeclaration::getAutoOrganisedDeclaration </td>
414          <td class="md" valign="top">(&nbsp;</td>
415          <td class="md" nowrap valign="top">bool&nbsp;</td>
416          <td class="mdname" nowrap> <em>skeletalAnimation</em>, </td>
417        </tr>
418        <tr>
419          <td class="md" nowrap align="right"></td>
420          <td></td>
421          <td class="md" nowrap>bool&nbsp;</td>
422          <td class="mdname" nowrap> <em>vertexAnimation</em></td>
423        </tr>
424        <tr>
425          <td></td>
426          <td class="md">)&nbsp;</td>
427          <td class="md" colspan="2"></td>
428        </tr>
429
430      </table>
431    </td>
432  </tr>
433</table>
434<table cellspacing=5 cellpadding=0 border=0>
435  <tr>
436    <td>
437      &nbsp;
438    </td>
439    <td>
440
441<p>
442Generates a new <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> for optimal usage based on the current vertex declaration, which can be used with <a class="el" href="classOgre_1_1VertexData.html#Ogre_1_1VertexDataa4">VertexData::reorganiseBuffers</a> later if you wish, or simply used as a template.
443<p>
444<dl compact><dt><b>Remarks:</b></dt><dd>Different buffer organisations and buffer usages will be returned depending on the parameters passed to this method. </dd></dl>
445<dl compact><dt><b>Parameters:</b></dt><dd>
446  <table border="0" cellspacing="2" cellpadding="0">
447    <tr><td valign=top><em>skeletalAnimation</em>&nbsp;</td><td>Whether this vertex data is going to be skeletally animated </td></tr>
448    <tr><td valign=top><em>vertexAnimation</em>&nbsp;</td><td>Whether this vertex data is going to be vertex animated </td></tr>
449  </table>
450</dl>
451    </td>
452  </tr>
453</table>
454<a class="anchor" name="Ogre_1_1VertexDeclarationa4" doxytag="Ogre::VertexDeclaration::getElement" ></a><p>
455<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
456  <tr>
457    <td class="mdRow">
458      <table cellpadding="0" cellspacing="0" border="0">
459        <tr>
460          <td class="md" nowrap valign="top"> const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a>* Ogre::VertexDeclaration::getElement </td>
461          <td class="md" valign="top">(&nbsp;</td>
462          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
463          <td class="mdname1" valign="top" nowrap> <em>index</em>          </td>
464          <td class="md" valign="top">&nbsp;)&nbsp;</td>
465          <td class="md" nowrap></td>
466        </tr>
467
468      </table>
469    </td>
470  </tr>
471</table>
472<table cellspacing=5 cellpadding=0 border=0>
473  <tr>
474    <td>
475      &nbsp;
476    </td>
477    <td>
478
479<p>
480Get a single element.
481<p>
482    </td>
483  </tr>
484</table>
485<a class="anchor" name="Ogre_1_1VertexDeclarationa2" doxytag="Ogre::VertexDeclaration::getElementCount" ></a><p>
486<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
487  <tr>
488    <td class="mdRow">
489      <table cellpadding="0" cellspacing="0" border="0">
490        <tr>
491          <td class="md" nowrap valign="top"> size_t Ogre::VertexDeclaration::getElementCount </td>
492          <td class="md" valign="top">(&nbsp;</td>
493          <td class="md" nowrap valign="top">void&nbsp;</td>
494          <td class="mdname1" valign="top" nowrap>          </td>
495          <td class="md" valign="top">&nbsp;)&nbsp;</td>
496          <td class="md" nowrap></td>
497        </tr>
498
499      </table>
500    </td>
501  </tr>
502</table>
503<table cellspacing=5 cellpadding=0 border=0>
504  <tr>
505    <td>
506      &nbsp;
507    </td>
508    <td>
509
510<p>
511Get the number of elements in the declaration.
512<p>
513
514<p>
515Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00302">302</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.    </td>
516  </tr>
517</table>
518<a class="anchor" name="Ogre_1_1VertexDeclarationa3" doxytag="Ogre::VertexDeclaration::getElements" ></a><p>
519<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
520  <tr>
521    <td class="mdRow">
522      <table cellpadding="0" cellspacing="0" border="0">
523        <tr>
524          <td class="md" nowrap valign="top"> const <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">VertexElementList</a>&amp; Ogre::VertexDeclaration::getElements </td>
525          <td class="md" valign="top">(&nbsp;</td>
526          <td class="md" nowrap valign="top">void&nbsp;</td>
527          <td class="mdname1" valign="top" nowrap>          </td>
528          <td class="md" valign="top">&nbsp;)&nbsp;</td>
529          <td class="md" nowrap> const</td>
530        </tr>
531
532      </table>
533    </td>
534  </tr>
535</table>
536<table cellspacing=5 cellpadding=0 border=0>
537  <tr>
538    <td>
539      &nbsp;
540    </td>
541    <td>
542
543<p>
544Gets read-only access to the list of vertex elements.
545<p>
546    </td>
547  </tr>
548</table>
549<a class="anchor" name="Ogre_1_1VertexDeclarationa8" doxytag="Ogre::VertexDeclaration::getMaxSource" ></a><p>
550<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
551  <tr>
552    <td class="mdRow">
553      <table cellpadding="0" cellspacing="0" border="0">
554        <tr>
555          <td class="md" nowrap valign="top"> unsigned short Ogre::VertexDeclaration::getMaxSource </td>
556          <td class="md" valign="top">(&nbsp;</td>
557          <td class="md" nowrap valign="top">void&nbsp;</td>
558          <td class="mdname1" valign="top" nowrap>          </td>
559          <td class="md" valign="top">&nbsp;)&nbsp;</td>
560          <td class="md" nowrap> const</td>
561        </tr>
562
563      </table>
564    </td>
565  </tr>
566</table>
567<table cellspacing=5 cellpadding=0 border=0>
568  <tr>
569    <td>
570      &nbsp;
571    </td>
572    <td>
573
574<p>
575Gets the indeex of the highest source value referenced by this declaration.
576<p>
577    </td>
578  </tr>
579</table>
580<a class="anchor" name="Ogre_1_1VertexDeclarationa17" doxytag="Ogre::VertexDeclaration::getVertexSize" ></a><p>
581<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
582  <tr>
583    <td class="mdRow">
584      <table cellpadding="0" cellspacing="0" border="0">
585        <tr>
586          <td class="md" nowrap valign="top"> virtual size_t Ogre::VertexDeclaration::getVertexSize </td>
587          <td class="md" valign="top">(&nbsp;</td>
588          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
589          <td class="mdname1" valign="top" nowrap> <em>source</em>          </td>
590          <td class="md" valign="top">&nbsp;)&nbsp;</td>
591          <td class="md" nowrap><code> [virtual]</code></td>
592        </tr>
593
594      </table>
595    </td>
596  </tr>
597</table>
598<table cellspacing=5 cellpadding=0 border=0>
599  <tr>
600    <td>
601      &nbsp;
602    </td>
603    <td>
604
605<p>
606Gets the vertex size defined by this declaration for a given source.
607<p>
608    </td>
609  </tr>
610</table>
611<a class="anchor" name="Ogre_1_1VertexDeclarationa10" doxytag="Ogre::VertexDeclaration::insertElement" ></a><p>
612<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
613  <tr>
614    <td class="mdRow">
615      <table cellpadding="0" cellspacing="0" border="0">
616        <tr>
617          <td class="md" nowrap valign="top"> virtual const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a>&amp; Ogre::VertexDeclaration::insertElement </td>
618          <td class="md" valign="top">(&nbsp;</td>
619          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
620          <td class="mdname" nowrap> <em>atPosition</em>, </td>
621        </tr>
622        <tr>
623          <td class="md" nowrap align="right"></td>
624          <td></td>
625          <td class="md" nowrap>unsigned short&nbsp;</td>
626          <td class="mdname" nowrap> <em>source</em>, </td>
627        </tr>
628        <tr>
629          <td class="md" nowrap align="right"></td>
630          <td></td>
631          <td class="md" nowrap>size_t&nbsp;</td>
632          <td class="mdname" nowrap> <em>offset</em>, </td>
633        </tr>
634        <tr>
635          <td class="md" nowrap align="right"></td>
636          <td></td>
637          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a660">VertexElementType</a>&nbsp;</td>
638          <td class="mdname" nowrap> <em>theType</em>, </td>
639        </tr>
640        <tr>
641          <td class="md" nowrap align="right"></td>
642          <td></td>
643          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a>&nbsp;</td>
644          <td class="mdname" nowrap> <em>semantic</em>, </td>
645        </tr>
646        <tr>
647          <td class="md" nowrap align="right"></td>
648          <td></td>
649          <td class="md" nowrap>unsigned short&nbsp;</td>
650          <td class="mdname" nowrap> <em>index</em> = 0</td>
651        </tr>
652        <tr>
653          <td></td>
654          <td class="md">)&nbsp;</td>
655          <td class="md" colspan="2"><code> [virtual]</code></td>
656        </tr>
657
658      </table>
659    </td>
660  </tr>
661</table>
662<table cellspacing=5 cellpadding=0 border=0>
663  <tr>
664    <td>
665      &nbsp;
666    </td>
667    <td>
668
669<p>
670Inserts a new <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> at a given position in this declaration.
671<p>
672<dl compact><dt><b>Remarks:</b></dt><dd>This method adds a single element (positions, normals etc) at a given position in this vertex declaration. <b>Please read the information in <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> about the importance of ordering and structure for compatibility with older D3D drivers</b>. </dd></dl>
673<dl compact><dt><b>Parameters:</b></dt><dd>
674  <table border="0" cellspacing="2" cellpadding="0">
675    <tr><td valign=top><em>source</em>&nbsp;</td><td>The binding index of <a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> which will provide the source for this element. See VertexBufferBindingState for full information. </td></tr>
676    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The offset in bytes where this element is located in the buffer </td></tr>
677    <tr><td valign=top><em>theType</em>&nbsp;</td><td>The data format of the element (3 floats, a colour etc) </td></tr>
678    <tr><td valign=top><em>semantic</em>&nbsp;</td><td>The meaning of the data (position, normal, diffuse colour etc) </td></tr>
679    <tr><td valign=top><em>index</em>&nbsp;</td><td>Optional index for multi-input elements like texture coordinates </td></tr>
680  </table>
681</dl>
682<dl compact><dt><b>Returns:</b></dt><dd>A reference to the <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> added. </dd></dl>
683
684<p>
685Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa3">Ogre::D3D9VertexDeclaration</a>.    </td>
686  </tr>
687</table>
688<a class="anchor" name="Ogre_1_1VertexDeclarationa14" doxytag="Ogre::VertexDeclaration::modifyElement" ></a><p>
689<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
690  <tr>
691    <td class="mdRow">
692      <table cellpadding="0" cellspacing="0" border="0">
693        <tr>
694          <td class="md" nowrap valign="top"> virtual void Ogre::VertexDeclaration::modifyElement </td>
695          <td class="md" valign="top">(&nbsp;</td>
696          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
697          <td class="mdname" nowrap> <em>elem_index</em>, </td>
698        </tr>
699        <tr>
700          <td class="md" nowrap align="right"></td>
701          <td></td>
702          <td class="md" nowrap>unsigned short&nbsp;</td>
703          <td class="mdname" nowrap> <em>source</em>, </td>
704        </tr>
705        <tr>
706          <td class="md" nowrap align="right"></td>
707          <td></td>
708          <td class="md" nowrap>size_t&nbsp;</td>
709          <td class="mdname" nowrap> <em>offset</em>, </td>
710        </tr>
711        <tr>
712          <td class="md" nowrap align="right"></td>
713          <td></td>
714          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a660">VertexElementType</a>&nbsp;</td>
715          <td class="mdname" nowrap> <em>theType</em>, </td>
716        </tr>
717        <tr>
718          <td class="md" nowrap align="right"></td>
719          <td></td>
720          <td class="md" nowrap><a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a>&nbsp;</td>
721          <td class="mdname" nowrap> <em>semantic</em>, </td>
722        </tr>
723        <tr>
724          <td class="md" nowrap align="right"></td>
725          <td></td>
726          <td class="md" nowrap>unsigned short&nbsp;</td>
727          <td class="mdname" nowrap> <em>index</em> = 0</td>
728        </tr>
729        <tr>
730          <td></td>
731          <td class="md">)&nbsp;</td>
732          <td class="md" colspan="2"><code> [virtual]</code></td>
733        </tr>
734
735      </table>
736    </td>
737  </tr>
738</table>
739<table cellspacing=5 cellpadding=0 border=0>
740  <tr>
741    <td>
742      &nbsp;
743    </td>
744    <td>
745
746<p>
747Modify an element in-place, params as addElement.
748<p>
749<dl compact><dt><b>Remarks:</b></dt><dd><b>Please read the information in <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> about the importance of ordering and structure for compatibility with older D3D drivers</b>.</dd></dl>
750
751<p>
752Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa7">Ogre::D3D9VertexDeclaration</a>.    </td>
753  </tr>
754</table>
755<a class="anchor" name="Ogre_1_1VertexDeclarationa20" doxytag="Ogre::VertexDeclaration::operator!=" ></a><p>
756<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
757  <tr>
758    <td class="mdRow">
759      <table cellpadding="0" cellspacing="0" border="0">
760        <tr>
761          <td class="md" nowrap valign="top"> bool Ogre::VertexDeclaration::operator!= </td>
762          <td class="md" valign="top">(&nbsp;</td>
763          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> &amp;&nbsp;</td>
764          <td class="mdname1" valign="top" nowrap> <em>rhs</em>          </td>
765          <td class="md" valign="top">&nbsp;)&nbsp;</td>
766          <td class="md" nowrap> const</td>
767        </tr>
768
769      </table>
770    </td>
771  </tr>
772</table>
773<table cellspacing=5 cellpadding=0 border=0>
774  <tr>
775    <td>
776      &nbsp;
777    </td>
778    <td>
779
780<p>
781
782<p>
783Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00442">442</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.    </td>
784  </tr>
785</table>
786<a class="anchor" name="Ogre_1_1VertexDeclarationa19" doxytag="Ogre::VertexDeclaration::operator==" ></a><p>
787<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
788  <tr>
789    <td class="mdRow">
790      <table cellpadding="0" cellspacing="0" border="0">
791        <tr>
792          <td class="md" nowrap valign="top"> bool Ogre::VertexDeclaration::operator== </td>
793          <td class="md" valign="top">(&nbsp;</td>
794          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> &amp;&nbsp;</td>
795          <td class="mdname1" valign="top" nowrap> <em>rhs</em>          </td>
796          <td class="md" valign="top">&nbsp;)&nbsp;</td>
797          <td class="md" nowrap> const</td>
798        </tr>
799
800      </table>
801    </td>
802  </tr>
803</table>
804<table cellspacing=5 cellpadding=0 border=0>
805  <tr>
806    <td>
807      &nbsp;
808    </td>
809    <td>
810
811<p>
812
813<p>
814Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00425">425</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.
815<p>
816References <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00295">mElementList</a>.    </td>
817  </tr>
818</table>
819<a class="anchor" name="Ogre_1_1VertexDeclarationa13" doxytag="Ogre::VertexDeclaration::removeAllElements" ></a><p>
820<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
821  <tr>
822    <td class="mdRow">
823      <table cellpadding="0" cellspacing="0" border="0">
824        <tr>
825          <td class="md" nowrap valign="top"> virtual void Ogre::VertexDeclaration::removeAllElements </td>
826          <td class="md" valign="top">(&nbsp;</td>
827          <td class="md" nowrap valign="top">void&nbsp;</td>
828          <td class="mdname1" valign="top" nowrap>          </td>
829          <td class="md" valign="top">&nbsp;)&nbsp;</td>
830          <td class="md" nowrap><code> [virtual]</code></td>
831        </tr>
832
833      </table>
834    </td>
835  </tr>
836</table>
837<table cellspacing=5 cellpadding=0 border=0>
838  <tr>
839    <td>
840      &nbsp;
841    </td>
842    <td>
843
844<p>
845Remove all elements.
846<p>
847
848<p>
849Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa6">Ogre::D3D9VertexDeclaration</a>.    </td>
850  </tr>
851</table>
852<a class="anchor" name="Ogre_1_1VertexDeclarationa12" doxytag="Ogre::VertexDeclaration::removeElement" ></a><p>
853<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
854  <tr>
855    <td class="mdRow">
856      <table cellpadding="0" cellspacing="0" border="0">
857        <tr>
858          <td class="md" nowrap valign="top"> virtual void Ogre::VertexDeclaration::removeElement </td>
859          <td class="md" valign="top">(&nbsp;</td>
860          <td class="md" nowrap valign="top"><a class="el" href="namespaceOgre.html#a659">VertexElementSemantic</a>&nbsp;</td>
861          <td class="mdname" nowrap> <em>semantic</em>, </td>
862        </tr>
863        <tr>
864          <td class="md" nowrap align="right"></td>
865          <td></td>
866          <td class="md" nowrap>unsigned short&nbsp;</td>
867          <td class="mdname" nowrap> <em>index</em> = 0</td>
868        </tr>
869        <tr>
870          <td></td>
871          <td class="md">)&nbsp;</td>
872          <td class="md" colspan="2"><code> [virtual]</code></td>
873        </tr>
874
875      </table>
876    </td>
877  </tr>
878</table>
879<table cellspacing=5 cellpadding=0 border=0>
880  <tr>
881    <td>
882      &nbsp;
883    </td>
884    <td>
885
886<p>
887Remove the element with the given semantic and usage index.
888<p>
889<dl compact><dt><b>Remarks:</b></dt><dd>In this case 'index' 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. </dd></dl>
890
891<p>
892Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa5">Ogre::D3D9VertexDeclaration</a>.    </td>
893  </tr>
894</table>
895<a class="anchor" name="Ogre_1_1VertexDeclarationa11" doxytag="Ogre::VertexDeclaration::removeElement" ></a><p>
896<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
897  <tr>
898    <td class="mdRow">
899      <table cellpadding="0" cellspacing="0" border="0">
900        <tr>
901          <td class="md" nowrap valign="top"> virtual void Ogre::VertexDeclaration::removeElement </td>
902          <td class="md" valign="top">(&nbsp;</td>
903          <td class="md" nowrap valign="top">unsigned short&nbsp;</td>
904          <td class="mdname1" valign="top" nowrap> <em>elem_index</em>          </td>
905          <td class="md" valign="top">&nbsp;)&nbsp;</td>
906          <td class="md" nowrap><code> [virtual]</code></td>
907        </tr>
908
909      </table>
910    </td>
911  </tr>
912</table>
913<table cellspacing=5 cellpadding=0 border=0>
914  <tr>
915    <td>
916      &nbsp;
917    </td>
918    <td>
919
920<p>
921Remove the element at the given index from this declaration.
922<p>
923
924<p>
925Reimplemented in <a class="el" href="classOgre_1_1D3D9VertexDeclaration.html#Ogre_1_1D3D9VertexDeclarationa4">Ogre::D3D9VertexDeclaration</a>.    </td>
926  </tr>
927</table>
928<a class="anchor" name="Ogre_1_1VertexDeclarationa5" doxytag="Ogre::VertexDeclaration::sort" ></a><p>
929<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
930  <tr>
931    <td class="mdRow">
932      <table cellpadding="0" cellspacing="0" border="0">
933        <tr>
934          <td class="md" nowrap valign="top"> void Ogre::VertexDeclaration::sort </td>
935          <td class="md" valign="top">(&nbsp;</td>
936          <td class="md" nowrap valign="top">void&nbsp;</td>
937          <td class="mdname1" valign="top" nowrap>          </td>
938          <td class="md" valign="top">&nbsp;)&nbsp;</td>
939          <td class="md" nowrap></td>
940        </tr>
941
942      </table>
943    </td>
944  </tr>
945</table>
946<table cellspacing=5 cellpadding=0 border=0>
947  <tr>
948    <td>
949      &nbsp;
950    </td>
951    <td>
952
953<p>
954Sorts the elements in this list to be compatible with the maximum number of rendering APIs / graphics cards.
955<p>
956<dl compact><dt><b>Remarks:</b></dt><dd>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. </dd></dl>
957    </td>
958  </tr>
959</table>
960<a class="anchor" name="Ogre_1_1VertexDeclaratione0" doxytag="Ogre::VertexDeclaration::vertexElementLess" ></a><p>
961<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
962  <tr>
963    <td class="mdRow">
964      <table cellpadding="0" cellspacing="0" border="0">
965        <tr>
966          <td class="md" nowrap valign="top"> bool Ogre::VertexDeclaration::vertexElementLess </td>
967          <td class="md" valign="top">(&nbsp;</td>
968          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &amp;&nbsp;</td>
969          <td class="mdname" nowrap> <em>e1</em>, </td>
970        </tr>
971        <tr>
972          <td class="md" nowrap align="right"></td>
973          <td></td>
974          <td class="md" nowrap>const <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> &amp;&nbsp;</td>
975          <td class="mdname" nowrap> <em>e2</em></td>
976        </tr>
977        <tr>
978          <td></td>
979          <td class="md">)&nbsp;</td>
980          <td class="md" colspan="2"><code> [static]</code></td>
981        </tr>
982
983      </table>
984    </td>
985  </tr>
986</table>
987<table cellspacing=5 cellpadding=0 border=0>
988  <tr>
989    <td>
990      &nbsp;
991    </td>
992    <td>
993
994<p>
995Sort routine for vertex elements.
996<p>
997    </td>
998  </tr>
999</table>
1000<hr><h2>Member Data Documentation</h2>
1001<a class="anchor" name="Ogre_1_1VertexDeclarationp0" doxytag="Ogre::VertexDeclaration::mElementList" ></a><p>
1002<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1003  <tr>
1004    <td class="mdRow">
1005      <table cellpadding="0" cellspacing="0" border="0">
1006        <tr>
1007          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationw0">VertexElementList</a> <a class="el" href="classOgre_1_1VertexDeclaration.html#Ogre_1_1VertexDeclarationp0">Ogre::VertexDeclaration::mElementList</a><code> [protected]</code>
1008      </table>
1009    </td>
1010  </tr>
1011</table>
1012<table cellspacing=5 cellpadding=0 border=0>
1013  <tr>
1014    <td>
1015      &nbsp;
1016    </td>
1017    <td>
1018
1019<p>
1020
1021<p>
1022Definition at line <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00295">295</a> of file <a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a>.
1023<p>
1024Referenced by <a class="el" href="OgreHardwareVertexBuffer_8h-source.html#l00425">operator==()</a>.    </td>
1025  </tr>
1026</table>
1027<hr>The documentation for this class was generated from the following file:<ul>
1028<li><a class="el" href="OgreHardwareVertexBuffer_8h-source.html">OgreHardwareVertexBuffer.h</a></ul>
1029<hr>
1030<p>
1031Copyright &copy; 2000-2005 by The OGRE Team<br />
1032<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>
1033This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>.<br/>
1034                <!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
1035                <Work rdf:about="">
1036                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
1037        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
1038                </Work>
1039                <License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
1040
1041Last modified Sun Mar 12 14:39:17 2006
1042</p>
1043</body>
1044</html>
Note: See TracBrowser for help on using the repository browser.