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

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

adding ogre 1.2 and dependencies

Line 
1<html>
2<head>
3<title>Ogre::HardwareIndexBuffer 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::HardwareIndexBuffer Class Reference</h1>Specialisation of <a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a> for vertex index buffers, still abstract. 
11<a href="#_details">More...</a>
12<p>
13<code>#include &lt;<a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>&gt;</code>
14<p>
15<p>Inheritance diagram for Ogre::HardwareIndexBuffer:
16<p><center><img src="classOgre_1_1HardwareIndexBuffer.png" usemap="#Ogre::HardwareIndexBuffer_map" border="0" alt=""></center>
17<map name="Ogre::HardwareIndexBuffer_map">
18<area href="classOgre_1_1HardwareBuffer.html" alt="Ogre::HardwareBuffer" shape="rect" coords="351,0,575,24">
19<area href="classOgre_1_1D3D9HardwareIndexBuffer.html" alt="Ogre::D3D9HardwareIndexBuffer" shape="rect" coords="0,112,224,136">
20<area href="classOgre_1_1DefaultHardwareIndexBuffer.html" alt="Ogre::DefaultHardwareIndexBuffer" shape="rect" coords="234,112,458,136">
21<area href="classOgre_1_1GLDefaultHardwareIndexBuffer.html" alt="Ogre::GLDefaultHardwareIndexBuffer" shape="rect" coords="468,112,692,136">
22<area href="classOgre_1_1GLHardwareIndexBuffer.html" alt="Ogre::GLHardwareIndexBuffer" shape="rect" coords="702,112,926,136">
23</map>
24<a href="classOgre_1_1HardwareIndexBuffer-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
25<tr><td></td></tr>
26<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
27<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">IndexType</a> { <a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2Ogre_1_1HardwareIndexBufferw0">IT_16BIT</a>,
28<a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2Ogre_1_1HardwareIndexBufferw1">IT_32BIT</a>
29 }</td></tr>
30
31<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a> { <br>
32&nbsp;&nbsp;<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw0">HBU_STATIC</a> =  1,
33<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw1">HBU_DYNAMIC</a> =  2,
34<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw2">HBU_WRITE_ONLY</a> =  4,
35<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw3">HBU_DISCARDABLE</a> =  8,
36<br>
37&nbsp;&nbsp;<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw4">HBU_STATIC_WRITE_ONLY</a> =  5,
38<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw5">HBU_DYNAMIC_WRITE_ONLY</a> =  6,
39<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw6">HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE</a> =  14
40<br>
41 }</td></tr>
42
43<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enums describing buffer usage; not mutually exclusive.  <a href="#Ogre_1_1HardwareVertexBufferw11">More...</a><br><br></td></tr>
44<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a> { <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw7">HBL_NORMAL</a>,
45<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw8">HBL_DISCARD</a>,
46<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw9">HBL_READ_ONLY</a>,
47<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw10">HBL_NO_OVERWRITE</a>
48 }</td></tr>
49
50<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locking options.  <a href="#Ogre_1_1HardwareVertexBufferw12">More...</a><br><br></td></tr>
51<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
52<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBuffera0">HardwareIndexBuffer</a> (<a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">IndexType</a> idxType, size_t numIndexes, <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a> usage, bool useSystemMemory, bool useShadowBuffer)</td></tr>
53
54<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Should be called by <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>.  <a href="#Ogre_1_1HardwareIndexBuffera0"></a><br><br></td></tr>
55<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBuffera1">~HardwareIndexBuffer</a> ()</td></tr>
56
57<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">IndexType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBuffera2">getType</a> (void) const </td></tr>
58
59<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the type of indexes used in this buffer.  <a href="#Ogre_1_1HardwareIndexBuffera2"></a><br><br></td></tr>
60<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBuffera3">getNumIndexes</a> (void) const </td></tr>
61
62<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of indexes in this buffer.  <a href="#Ogre_1_1HardwareIndexBuffera3"></a><br><br></td></tr>
63<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBuffera4">getIndexSize</a> (void) const </td></tr>
64
65<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the size in bytes of each index.  <a href="#Ogre_1_1HardwareIndexBuffera4"></a><br><br></td></tr>
66<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera4">lock</a> (size_t offset, size_t length, <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a> options)</td></tr>
67
68<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock the buffer for (potentially) reading / writing.  <a href="#Ogre_1_1HardwareVertexBuffera4"></a><br><br></td></tr>
69<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera5">lock</a> (<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a> options)</td></tr>
70
71<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Lock the entire buffer for (potentially) reading / writing.  <a href="#Ogre_1_1HardwareVertexBuffera5"></a><br><br></td></tr>
72<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera6">unlock</a> (void)</td></tr>
73
74<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases the lock on this buffer.  <a href="#Ogre_1_1HardwareVertexBuffera6"></a><br><br></td></tr>
75<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera7">readData</a> (size_t offset, size_t length, void *pDest)=0</td></tr>
76
77<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Reads data from the buffer and places it in the memory pointed to by pDest.  <a href="#Ogre_1_1HardwareVertexBuffera7"></a><br><br></td></tr>
78<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera8">writeData</a> (size_t offset, size_t length, const void *pSource, bool discardWholeBuffer=false)=0</td></tr>
79
80<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes data to the buffer from an area of system memory; note that you must ensure that your buffer is big enough.  <a href="#Ogre_1_1HardwareVertexBuffera8"></a><br><br></td></tr>
81<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera9">copyData</a> (<a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a> &amp;srcBuffer, size_t srcOffset, size_t dstOffset, size_t length, bool discardWholeBuffer=false)</td></tr>
82
83<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy data from another buffer into this one.  <a href="#Ogre_1_1HardwareVertexBuffera9"></a><br><br></td></tr>
84<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera10">_updateFromShadow</a> (void)</td></tr>
85
86<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the real buffer from the shadow buffer, if required.  <a href="#Ogre_1_1HardwareVertexBuffera10"></a><br><br></td></tr>
87<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera11">getSizeInBytes</a> (void) const </td></tr>
88
89<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the size of this buffer in bytes.  <a href="#Ogre_1_1HardwareVertexBuffera11"></a><br><br></td></tr>
90<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera12">getUsage</a> (void) const </td></tr>
91
92<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the Usage flags with which this buffer was created.  <a href="#Ogre_1_1HardwareVertexBuffera12"></a><br><br></td></tr>
93<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera13">isSystemMemory</a> (void) const </td></tr>
94
95<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether this buffer is held in system memory.  <a href="#Ogre_1_1HardwareVertexBuffera13"></a><br><br></td></tr>
96<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera14">hasShadowBuffer</a> (void) const </td></tr>
97
98<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether this buffer has a system memory shadow for quicker reading.  <a href="#Ogre_1_1HardwareVertexBuffera14"></a><br><br></td></tr>
99<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera15">isLocked</a> (void) const </td></tr>
100
101<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns whether or not this buffer is currently locked.  <a href="#Ogre_1_1HardwareVertexBuffera15"></a><br><br></td></tr>
102<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera16">suppressHardwareUpdate</a> (bool suppress)</td></tr>
103
104<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classOgre_1_1Pass.html">Pass</a> true to suppress hardware upload of shadow buffer changes.  <a href="#Ogre_1_1HardwareVertexBuffera16"></a><br><br></td></tr>
105<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
106<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferb0">lockImpl</a> (size_t offset, size_t length, <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a> options)=0</td></tr>
107
108<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal implementation of <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera4">lock()</a>.  <a href="#Ogre_1_1HardwareVertexBufferb0"></a><br><br></td></tr>
109<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferb1">unlockImpl</a> (void)=0</td></tr>
110
111<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal implementation of <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera6">unlock()</a>.  <a href="#Ogre_1_1HardwareVertexBufferb1"></a><br><br></td></tr>
112<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
113<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">IndexType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferp0">mIndexType</a></td></tr>
114
115<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferp1">mNumIndexes</a></td></tr>
116
117<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferp2">mIndexSize</a></td></tr>
118
119<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp2">mSizeInBytes</a></td></tr>
120
121<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp3">mUsage</a></td></tr>
122
123<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp4">mIsLocked</a></td></tr>
124
125<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp5">mLockStart</a></td></tr>
126
127<tr><td class="memItemLeft" nowrap align=right valign=top>size_t&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp6">mLockSize</a></td></tr>
128
129<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp7">mSystemMemory</a></td></tr>
130
131<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp8">mUseShadowBuffer</a></td></tr>
132
133<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp9">mpShadowBuffer</a></td></tr>
134
135<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp10">mShadowUpdated</a></td></tr>
136
137<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp11">mSuppressHardwareUpdate</a></td></tr>
138
139</table>
140<hr><a name="_details"></a><h2>Detailed Description</h2>
141Specialisation of <a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a> for vertex index buffers, still abstract.
142<p>
143
144<p>
145Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00036">36</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.<hr><h2>Member Enumeration Documentation</h2>
146<a class="anchor" name="Ogre_1_1HardwareIndexBufferw2" doxytag="Ogre::HardwareIndexBuffer::IndexType" ></a><p>
147<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
148  <tr>
149    <td class="mdRow">
150      <table cellpadding="0" cellspacing="0" border="0">
151        <tr>
152          <td class="md" nowrap valign="top"> enum <a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">Ogre::HardwareIndexBuffer::IndexType</a>
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>
165<dl compact><dt><b>Enumeration values: </b></dt><dd>
166<table border=0 cellspacing=2 cellpadding=0>
167<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareIndexBufferw2Ogre_1_1HardwareIndexBufferw0" doxytag="IT_16BIT" ></a>IT_16BIT</em>&nbsp;</td><td>
168</td></tr>
169<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareIndexBufferw2Ogre_1_1HardwareIndexBufferw1" doxytag="IT_32BIT" ></a>IT_32BIT</em>&nbsp;</td><td>
170</td></tr>
171</table>
172</dl>
173
174<p>
175Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00039">39</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.    </td>
176  </tr>
177</table>
178<a class="anchor" name="Ogre_1_1HardwareVertexBufferw12" doxytag="Ogre::HardwareIndexBuffer::LockOptions" ></a><p>
179<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
180  <tr>
181    <td class="mdRow">
182      <table cellpadding="0" cellspacing="0" border="0">
183        <tr>
184          <td class="md" nowrap valign="top"> enum <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">Ogre::HardwareBuffer::LockOptions</a><code> [inherited]</code>
185      </table>
186    </td>
187  </tr>
188</table>
189<table cellspacing=5 cellpadding=0 border=0>
190  <tr>
191    <td>
192      &nbsp;
193    </td>
194    <td>
195
196<p>
197Locking options.
198<p>
199<dl compact><dt><b>Enumeration values: </b></dt><dd>
200<table border=0 cellspacing=2 cellpadding=0>
201<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw7" doxytag="HBL_NORMAL" ></a>HBL_NORMAL</em>&nbsp;</td><td>
202Normal mode, ie allows read/write and contents are preserved. </td></tr>
203<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw8" doxytag="HBL_DISCARD" ></a>HBL_DISCARD</em>&nbsp;</td><td>
204Discards the <em>entire</em> buffer while locking; this allows optimisation to be performed because synchronisation issues are relaxed.
205<p>
206Only allowed on buffers created with the HBU_DYNAMIC flag.</td></tr>
207<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw9" doxytag="HBL_READ_ONLY" ></a>HBL_READ_ONLY</em>&nbsp;</td><td>
208Lock the buffer for reading only.
209<p>
210Not allowed in buffers which are created with HBU_WRITE_ONLY. Mandatory on statuc buffers, ie those created without the HBU_DYNAMIC flag.</td></tr>
211<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw10" doxytag="HBL_NO_OVERWRITE" ></a>HBL_NO_OVERWRITE</em>&nbsp;</td><td>
212As HBL_NORMAL, except the application guarantees not to overwrite any region of the buffer which has already been used in this frame, can allow some optimisation on some APIs. </td></tr>
213</table>
214</dl>
215
216<p>
217Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00111">111</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
218  </tr>
219</table>
220<a class="anchor" name="Ogre_1_1HardwareVertexBufferw11" doxytag="Ogre::HardwareIndexBuffer::Usage" ></a><p>
221<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
222  <tr>
223    <td class="mdRow">
224      <table cellpadding="0" cellspacing="0" border="0">
225        <tr>
226          <td class="md" nowrap valign="top"> enum <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Ogre::HardwareBuffer::Usage</a><code> [inherited]</code>
227      </table>
228    </td>
229  </tr>
230</table>
231<table cellspacing=5 cellpadding=0 border=0>
232  <tr>
233    <td>
234      &nbsp;
235    </td>
236    <td>
237
238<p>
239Enums describing buffer usage; not mutually exclusive.
240<p>
241<dl compact><dt><b>Enumeration values: </b></dt><dd>
242<table border=0 cellspacing=2 cellpadding=0>
243<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw0" doxytag="HBU_STATIC" ></a>HBU_STATIC</em>&nbsp;</td><td>
244Static buffer which the application rarely modifies once created.
245<p>
246Modifying the contents of this buffer will involve a performance hit. </td></tr>
247<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw1" doxytag="HBU_DYNAMIC" ></a>HBU_DYNAMIC</em>&nbsp;</td><td>
248Indicates the application would like to modify this buffer with the CPU fairly often.
249<p>
250Buffers created with this flag will typically end up in AGP memory rather than video memory.</td></tr>
251<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw2" doxytag="HBU_WRITE_ONLY" ></a>HBU_WRITE_ONLY</em>&nbsp;</td><td>
252Indicates the application will never read the contents of the buffer back, it will only ever write data.
253<p>
254Locking a buffer with this flag will ALWAYS return a pointer to new, blank memory rather than the memory associated with the contents of the buffer; this avoids DMA stalls because you can write to a new memory area while the previous one is being used.</td></tr>
255<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw3" doxytag="HBU_DISCARDABLE" ></a>HBU_DISCARDABLE</em>&nbsp;</td><td>
256Indicates that the application will be refilling the contents of the buffer regularly (not just updating, but generating the contents from scratch), and therefore does not mind if the contents of the buffer are lost somehow and need to be recreated.
257<p>
258This allows and additional level of optimisation on the buffer. This option only really makes sense when combined with HBU_DYNAMIC_WRITE_ONLY. </td></tr>
259<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw4" doxytag="HBU_STATIC_WRITE_ONLY" ></a>HBU_STATIC_WRITE_ONLY</em>&nbsp;</td><td>
260Combination of HBU_STATIC and HBU_WRITE_ONLY. </td></tr>
261<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw5" doxytag="HBU_DYNAMIC_WRITE_ONLY" ></a>HBU_DYNAMIC_WRITE_ONLY</em>&nbsp;</td><td>
262Combination of HBU_DYNAMIC and HBU_WRITE_ONLY.
263<p>
264If you use this, strongly consider using HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE instead if you update the entire contents of the buffer very regularly. </td></tr>
265<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw6" doxytag="HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE" ></a>HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE</em>&nbsp;</td><td>
266Combination of HBU_DYNAMIC, HBU_WRITE_ONLY and HBU_DISCARDABLE. </td></tr>
267</table>
268</dl>
269
270<p>
271Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00069">69</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
272  </tr>
273</table>
274<hr><h2>Constructor &amp; Destructor Documentation</h2>
275<a class="anchor" name="Ogre_1_1HardwareIndexBuffera0" doxytag="Ogre::HardwareIndexBuffer::HardwareIndexBuffer" ></a><p>
276<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
277  <tr>
278    <td class="mdRow">
279      <table cellpadding="0" cellspacing="0" border="0">
280        <tr>
281          <td class="md" nowrap valign="top"> Ogre::HardwareIndexBuffer::HardwareIndexBuffer </td>
282          <td class="md" valign="top">(&nbsp;</td>
283          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">IndexType</a>&nbsp;</td>
284          <td class="mdname" nowrap> <em>idxType</em>, </td>
285        </tr>
286        <tr>
287          <td class="md" nowrap align="right"></td>
288          <td></td>
289          <td class="md" nowrap>size_t&nbsp;</td>
290          <td class="mdname" nowrap> <em>numIndexes</em>, </td>
291        </tr>
292        <tr>
293          <td class="md" nowrap align="right"></td>
294          <td></td>
295          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a>&nbsp;</td>
296          <td class="mdname" nowrap> <em>usage</em>, </td>
297        </tr>
298        <tr>
299          <td class="md" nowrap align="right"></td>
300          <td></td>
301          <td class="md" nowrap>bool&nbsp;</td>
302          <td class="mdname" nowrap> <em>useSystemMemory</em>, </td>
303        </tr>
304        <tr>
305          <td class="md" nowrap align="right"></td>
306          <td></td>
307          <td class="md" nowrap>bool&nbsp;</td>
308          <td class="mdname" nowrap> <em>useShadowBuffer</em></td>
309        </tr>
310        <tr>
311          <td></td>
312          <td class="md">)&nbsp;</td>
313          <td class="md" colspan="2"></td>
314        </tr>
315
316      </table>
317    </td>
318  </tr>
319</table>
320<table cellspacing=5 cellpadding=0 border=0>
321  <tr>
322    <td>
323      &nbsp;
324    </td>
325    <td>
326
327<p>
328Should be called by <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>.
329<p>
330    </td>
331  </tr>
332</table>
333<a class="anchor" name="Ogre_1_1HardwareIndexBuffera1" doxytag="Ogre::HardwareIndexBuffer::~HardwareIndexBuffer" ></a><p>
334<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
335  <tr>
336    <td class="mdRow">
337      <table cellpadding="0" cellspacing="0" border="0">
338        <tr>
339          <td class="md" nowrap valign="top"> Ogre::HardwareIndexBuffer::~<a class="el" href="classOgre_1_1HardwareIndexBuffer.html">HardwareIndexBuffer</a> </td>
340          <td class="md" valign="top">(&nbsp;</td>
341          <td class="mdname1" valign="top" nowrap>          </td>
342          <td class="md" valign="top">&nbsp;)&nbsp;</td>
343          <td class="md" nowrap></td>
344        </tr>
345
346      </table>
347    </td>
348  </tr>
349</table>
350<table cellspacing=5 cellpadding=0 border=0>
351  <tr>
352    <td>
353      &nbsp;
354    </td>
355    <td>
356
357<p>
358    </td>
359  </tr>
360</table>
361<hr><h2>Member Function Documentation</h2>
362<a class="anchor" name="Ogre_1_1HardwareVertexBuffera10" doxytag="Ogre::HardwareIndexBuffer::_updateFromShadow" ></a><p>
363<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
364  <tr>
365    <td class="mdRow">
366      <table cellpadding="0" cellspacing="0" border="0">
367        <tr>
368          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::_updateFromShadow </td>
369          <td class="md" valign="top">(&nbsp;</td>
370          <td class="md" nowrap valign="top">void&nbsp;</td>
371          <td class="mdname1" valign="top" nowrap>          </td>
372          <td class="md" valign="top">&nbsp;)&nbsp;</td>
373          <td class="md" nowrap><code> [virtual, inherited]</code></td>
374        </tr>
375
376      </table>
377    </td>
378  </tr>
379</table>
380<table cellspacing=5 cellpadding=0 border=0>
381  <tr>
382    <td>
383      &nbsp;
384    </td>
385    <td>
386
387<p>
388Updates the real buffer from the shadow buffer, if required.
389<p>
390
391<p>
392Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00275">275</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
393  </tr>
394</table>
395<a class="anchor" name="Ogre_1_1HardwareVertexBuffera9" doxytag="Ogre::HardwareIndexBuffer::copyData" ></a><p>
396<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
397  <tr>
398    <td class="mdRow">
399      <table cellpadding="0" cellspacing="0" border="0">
400        <tr>
401          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::copyData </td>
402          <td class="md" valign="top">(&nbsp;</td>
403          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a> &amp;&nbsp;</td>
404          <td class="mdname" nowrap> <em>srcBuffer</em>, </td>
405        </tr>
406        <tr>
407          <td class="md" nowrap align="right"></td>
408          <td></td>
409          <td class="md" nowrap>size_t&nbsp;</td>
410          <td class="mdname" nowrap> <em>srcOffset</em>, </td>
411        </tr>
412        <tr>
413          <td class="md" nowrap align="right"></td>
414          <td></td>
415          <td class="md" nowrap>size_t&nbsp;</td>
416          <td class="mdname" nowrap> <em>dstOffset</em>, </td>
417        </tr>
418        <tr>
419          <td class="md" nowrap align="right"></td>
420          <td></td>
421          <td class="md" nowrap>size_t&nbsp;</td>
422          <td class="mdname" nowrap> <em>length</em>, </td>
423        </tr>
424        <tr>
425          <td class="md" nowrap align="right"></td>
426          <td></td>
427          <td class="md" nowrap>bool&nbsp;</td>
428          <td class="mdname" nowrap> <em>discardWholeBuffer</em> = false</td>
429        </tr>
430        <tr>
431          <td></td>
432          <td class="md">)&nbsp;</td>
433          <td class="md" colspan="2"><code> [virtual, inherited]</code></td>
434        </tr>
435
436      </table>
437    </td>
438  </tr>
439</table>
440<table cellspacing=5 cellpadding=0 border=0>
441  <tr>
442    <td>
443      &nbsp;
444    </td>
445    <td>
446
447<p>
448Copy data from another buffer into this one.
449<p>
450<dl compact><dt><b>Remarks:</b></dt><dd>Note that the source buffer must not be created with the usage HBU_WRITE_ONLY otherwise this will fail. </dd></dl>
451<dl compact><dt><b>Parameters:</b></dt><dd>
452  <table border="0" cellspacing="2" cellpadding="0">
453    <tr><td valign=top><em>srcBuffer</em>&nbsp;</td><td>The buffer from which to read the copied data </td></tr>
454    <tr><td valign=top><em>srcOffset</em>&nbsp;</td><td>Offset in the source buffer at which to start reading </td></tr>
455    <tr><td valign=top><em>dstOffset</em>&nbsp;</td><td>Offset in the destination buffer to start writing </td></tr>
456    <tr><td valign=top><em>length</em>&nbsp;</td><td>Length of the data to copy, in bytes. </td></tr>
457    <tr><td valign=top><em>discardWholeBuffer</em>&nbsp;</td><td>If true, will discard the entire contents of this buffer before copying</td></tr>
458  </table>
459</dl>
460
461<p>
462Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00265">265</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.
463<p>
464References <a class="el" href="OgreHardwareBuffer_8h-source.html#l00171">Ogre::HardwareBuffer::lock()</a>, and <a class="el" href="OgreHardwareBuffer_8h-source.html#l00217">Ogre::HardwareBuffer::unlock()</a>.    </td>
465  </tr>
466</table>
467<a class="anchor" name="Ogre_1_1HardwareIndexBuffera4" doxytag="Ogre::HardwareIndexBuffer::getIndexSize" ></a><p>
468<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
469  <tr>
470    <td class="mdRow">
471      <table cellpadding="0" cellspacing="0" border="0">
472        <tr>
473          <td class="md" nowrap valign="top"> size_t Ogre::HardwareIndexBuffer::getIndexSize </td>
474          <td class="md" valign="top">(&nbsp;</td>
475          <td class="md" nowrap valign="top">void&nbsp;</td>
476          <td class="mdname1" valign="top" nowrap>          </td>
477          <td class="md" valign="top">&nbsp;)&nbsp;</td>
478          <td class="md" nowrap> const</td>
479        </tr>
480
481      </table>
482    </td>
483  </tr>
484</table>
485<table cellspacing=5 cellpadding=0 border=0>
486  <tr>
487    <td>
488      &nbsp;
489    </td>
490    <td>
491
492<p>
493Get the size in bytes of each index.
494<p>
495
496<p>
497Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00059">59</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.    </td>
498  </tr>
499</table>
500<a class="anchor" name="Ogre_1_1HardwareIndexBuffera3" doxytag="Ogre::HardwareIndexBuffer::getNumIndexes" ></a><p>
501<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
502  <tr>
503    <td class="mdRow">
504      <table cellpadding="0" cellspacing="0" border="0">
505        <tr>
506          <td class="md" nowrap valign="top"> size_t Ogre::HardwareIndexBuffer::getNumIndexes </td>
507          <td class="md" valign="top">(&nbsp;</td>
508          <td class="md" nowrap valign="top">void&nbsp;</td>
509          <td class="mdname1" valign="top" nowrap>          </td>
510          <td class="md" valign="top">&nbsp;)&nbsp;</td>
511          <td class="md" nowrap> const</td>
512        </tr>
513
514      </table>
515    </td>
516  </tr>
517</table>
518<table cellspacing=5 cellpadding=0 border=0>
519  <tr>
520    <td>
521      &nbsp;
522    </td>
523    <td>
524
525<p>
526Get the number of indexes in this buffer.
527<p>
528
529<p>
530Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00057">57</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.    </td>
531  </tr>
532</table>
533<a class="anchor" name="Ogre_1_1HardwareVertexBuffera11" doxytag="Ogre::HardwareIndexBuffer::getSizeInBytes" ></a><p>
534<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
535  <tr>
536    <td class="mdRow">
537      <table cellpadding="0" cellspacing="0" border="0">
538        <tr>
539          <td class="md" nowrap valign="top"> size_t Ogre::HardwareBuffer::getSizeInBytes </td>
540          <td class="md" valign="top">(&nbsp;</td>
541          <td class="md" nowrap valign="top">void&nbsp;</td>
542          <td class="mdname1" valign="top" nowrap>          </td>
543          <td class="md" valign="top">&nbsp;)&nbsp;</td>
544          <td class="md" nowrap> const<code> [inherited]</code></td>
545        </tr>
546
547      </table>
548    </td>
549  </tr>
550</table>
551<table cellspacing=5 cellpadding=0 border=0>
552  <tr>
553    <td>
554      &nbsp;
555    </td>
556    <td>
557
558<p>
559Returns the size of this buffer in bytes.
560<p>
561
562<p>
563Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00300">300</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
564  </tr>
565</table>
566<a class="anchor" name="Ogre_1_1HardwareIndexBuffera2" doxytag="Ogre::HardwareIndexBuffer::getType" ></a><p>
567<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
568  <tr>
569    <td class="mdRow">
570      <table cellpadding="0" cellspacing="0" border="0">
571        <tr>
572          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">IndexType</a> Ogre::HardwareIndexBuffer::getType </td>
573          <td class="md" valign="top">(&nbsp;</td>
574          <td class="md" nowrap valign="top">void&nbsp;</td>
575          <td class="mdname1" valign="top" nowrap>          </td>
576          <td class="md" valign="top">&nbsp;)&nbsp;</td>
577          <td class="md" nowrap> const</td>
578        </tr>
579
580      </table>
581    </td>
582  </tr>
583</table>
584<table cellspacing=5 cellpadding=0 border=0>
585  <tr>
586    <td>
587      &nbsp;
588    </td>
589    <td>
590
591<p>
592Get the type of indexes used in this buffer.
593<p>
594
595<p>
596Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00055">55</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.    </td>
597  </tr>
598</table>
599<a class="anchor" name="Ogre_1_1HardwareVertexBuffera12" doxytag="Ogre::HardwareIndexBuffer::getUsage" ></a><p>
600<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
601  <tr>
602    <td class="mdRow">
603      <table cellpadding="0" cellspacing="0" border="0">
604        <tr>
605          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a> Ogre::HardwareBuffer::getUsage </td>
606          <td class="md" valign="top">(&nbsp;</td>
607          <td class="md" nowrap valign="top">void&nbsp;</td>
608          <td class="mdname1" valign="top" nowrap>          </td>
609          <td class="md" valign="top">&nbsp;)&nbsp;</td>
610          <td class="md" nowrap> const<code> [inherited]</code></td>
611        </tr>
612
613      </table>
614    </td>
615  </tr>
616</table>
617<table cellspacing=5 cellpadding=0 border=0>
618  <tr>
619    <td>
620      &nbsp;
621    </td>
622    <td>
623
624<p>
625Returns the Usage flags with which this buffer was created.
626<p>
627
628<p>
629Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00302">302</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
630  </tr>
631</table>
632<a class="anchor" name="Ogre_1_1HardwareVertexBuffera14" doxytag="Ogre::HardwareIndexBuffer::hasShadowBuffer" ></a><p>
633<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
634  <tr>
635    <td class="mdRow">
636      <table cellpadding="0" cellspacing="0" border="0">
637        <tr>
638          <td class="md" nowrap valign="top"> bool Ogre::HardwareBuffer::hasShadowBuffer </td>
639          <td class="md" valign="top">(&nbsp;</td>
640          <td class="md" nowrap valign="top">void&nbsp;</td>
641          <td class="mdname1" valign="top" nowrap>          </td>
642          <td class="md" valign="top">&nbsp;)&nbsp;</td>
643          <td class="md" nowrap> const<code> [inherited]</code></td>
644        </tr>
645
646      </table>
647    </td>
648  </tr>
649</table>
650<table cellspacing=5 cellpadding=0 border=0>
651  <tr>
652    <td>
653      &nbsp;
654    </td>
655    <td>
656
657<p>
658Returns whether this buffer has a system memory shadow for quicker reading.
659<p>
660
661<p>
662Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00306">306</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
663  </tr>
664</table>
665<a class="anchor" name="Ogre_1_1HardwareVertexBuffera15" doxytag="Ogre::HardwareIndexBuffer::isLocked" ></a><p>
666<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
667  <tr>
668    <td class="mdRow">
669      <table cellpadding="0" cellspacing="0" border="0">
670        <tr>
671          <td class="md" nowrap valign="top"> bool Ogre::HardwareBuffer::isLocked </td>
672          <td class="md" valign="top">(&nbsp;</td>
673          <td class="md" nowrap valign="top">void&nbsp;</td>
674          <td class="mdname1" valign="top" nowrap>          </td>
675          <td class="md" valign="top">&nbsp;)&nbsp;</td>
676          <td class="md" nowrap> const<code> [inherited]</code></td>
677        </tr>
678
679      </table>
680    </td>
681  </tr>
682</table>
683<table cellspacing=5 cellpadding=0 border=0>
684  <tr>
685    <td>
686      &nbsp;
687    </td>
688    <td>
689
690<p>
691Returns whether or not this buffer is currently locked.
692<p>
693
694<p>
695Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00308">308</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
696  </tr>
697</table>
698<a class="anchor" name="Ogre_1_1HardwareVertexBuffera13" doxytag="Ogre::HardwareIndexBuffer::isSystemMemory" ></a><p>
699<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
700  <tr>
701    <td class="mdRow">
702      <table cellpadding="0" cellspacing="0" border="0">
703        <tr>
704          <td class="md" nowrap valign="top"> bool Ogre::HardwareBuffer::isSystemMemory </td>
705          <td class="md" valign="top">(&nbsp;</td>
706          <td class="md" nowrap valign="top">void&nbsp;</td>
707          <td class="mdname1" valign="top" nowrap>          </td>
708          <td class="md" valign="top">&nbsp;)&nbsp;</td>
709          <td class="md" nowrap> const<code> [inherited]</code></td>
710        </tr>
711
712      </table>
713    </td>
714  </tr>
715</table>
716<table cellspacing=5 cellpadding=0 border=0>
717  <tr>
718    <td>
719      &nbsp;
720    </td>
721    <td>
722
723<p>
724Returns whether this buffer is held in system memory.
725<p>
726
727<p>
728Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00304">304</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
729  </tr>
730</table>
731<a class="anchor" name="Ogre_1_1HardwareVertexBuffera5" doxytag="Ogre::HardwareIndexBuffer::lock" ></a><p>
732<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
733  <tr>
734    <td class="mdRow">
735      <table cellpadding="0" cellspacing="0" border="0">
736        <tr>
737          <td class="md" nowrap valign="top"> void* Ogre::HardwareBuffer::lock </td>
738          <td class="md" valign="top">(&nbsp;</td>
739          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a>&nbsp;</td>
740          <td class="mdname1" valign="top" nowrap> <em>options</em>          </td>
741          <td class="md" valign="top">&nbsp;)&nbsp;</td>
742          <td class="md" nowrap><code> [inherited]</code></td>
743        </tr>
744
745      </table>
746    </td>
747  </tr>
748</table>
749<table cellspacing=5 cellpadding=0 border=0>
750  <tr>
751    <td>
752      &nbsp;
753    </td>
754    <td>
755
756<p>
757Lock the entire buffer for (potentially) reading / writing.
758<p>
759<dl compact><dt><b>Parameters:</b></dt><dd>
760  <table border="0" cellspacing="2" cellpadding="0">
761    <tr><td valign=top><em>options</em>&nbsp;</td><td>Locking options </td></tr>
762  </table>
763</dl>
764<dl compact><dt><b>Returns:</b></dt><dd>Pointer to the locked memory </dd></dl>
765
766<p>
767Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00201">201</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
768  </tr>
769</table>
770<a class="anchor" name="Ogre_1_1HardwareVertexBuffera4" doxytag="Ogre::HardwareIndexBuffer::lock" ></a><p>
771<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
772  <tr>
773    <td class="mdRow">
774      <table cellpadding="0" cellspacing="0" border="0">
775        <tr>
776          <td class="md" nowrap valign="top"> virtual void* Ogre::HardwareBuffer::lock </td>
777          <td class="md" valign="top">(&nbsp;</td>
778          <td class="md" nowrap valign="top">size_t&nbsp;</td>
779          <td class="mdname" nowrap> <em>offset</em>, </td>
780        </tr>
781        <tr>
782          <td class="md" nowrap align="right"></td>
783          <td></td>
784          <td class="md" nowrap>size_t&nbsp;</td>
785          <td class="mdname" nowrap> <em>length</em>, </td>
786        </tr>
787        <tr>
788          <td class="md" nowrap align="right"></td>
789          <td></td>
790          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a>&nbsp;</td>
791          <td class="mdname" nowrap> <em>options</em></td>
792        </tr>
793        <tr>
794          <td></td>
795          <td class="md">)&nbsp;</td>
796          <td class="md" colspan="2"><code> [virtual, inherited]</code></td>
797        </tr>
798
799      </table>
800    </td>
801  </tr>
802</table>
803<table cellspacing=5 cellpadding=0 border=0>
804  <tr>
805    <td>
806      &nbsp;
807    </td>
808    <td>
809
810<p>
811Lock the buffer for (potentially) reading / writing.
812<p>
813<dl compact><dt><b>Parameters:</b></dt><dd>
814  <table border="0" cellspacing="2" cellpadding="0">
815    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The byte offset from the start of the buffer to lock </td></tr>
816    <tr><td valign=top><em>length</em>&nbsp;</td><td>The size of the area to lock, in bytes </td></tr>
817    <tr><td valign=top><em>options</em>&nbsp;</td><td>Locking options </td></tr>
818  </table>
819</dl>
820<dl compact><dt><b>Returns:</b></dt><dd>Pointer to the locked memory</dd></dl>
821
822<p>
823Reimplemented in <a class="el" href="classOgre_1_1DefaultHardwareVertexBuffer.html#Ogre_1_1DefaultHardwareVertexBuffera4">Ogre::DefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1DefaultHardwareIndexBuffer.html#Ogre_1_1DefaultHardwareIndexBuffera4">Ogre::DefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1HardwarePixelBuffer.html#Ogre_1_1HardwarePixelBuffera3">Ogre::HardwarePixelBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareVertexBuffer.html#Ogre_1_1GLDefaultHardwareVertexBuffera4">Ogre::GLDefaultHardwareVertexBuffer</a>, and <a class="el" href="classOgre_1_1GLDefaultHardwareIndexBuffer.html#Ogre_1_1GLDefaultHardwareIndexBuffera4">Ogre::GLDefaultHardwareIndexBuffer</a>.
824<p>
825Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00171">171</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.
826<p>
827Referenced by <a class="el" href="OgreHardwareBuffer_8h-source.html#l00265">Ogre::HardwareBuffer::copyData()</a>.    </td>
828  </tr>
829</table>
830<a class="anchor" name="Ogre_1_1HardwareVertexBufferb0" doxytag="Ogre::HardwareIndexBuffer::lockImpl" ></a><p>
831<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
832  <tr>
833    <td class="mdRow">
834      <table cellpadding="0" cellspacing="0" border="0">
835        <tr>
836          <td class="md" nowrap valign="top"> virtual void* Ogre::HardwareBuffer::lockImpl </td>
837          <td class="md" valign="top">(&nbsp;</td>
838          <td class="md" nowrap valign="top">size_t&nbsp;</td>
839          <td class="mdname" nowrap> <em>offset</em>, </td>
840        </tr>
841        <tr>
842          <td class="md" nowrap align="right"></td>
843          <td></td>
844          <td class="md" nowrap>size_t&nbsp;</td>
845          <td class="mdname" nowrap> <em>length</em>, </td>
846        </tr>
847        <tr>
848          <td class="md" nowrap align="right"></td>
849          <td></td>
850          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a>&nbsp;</td>
851          <td class="mdname" nowrap> <em>options</em></td>
852        </tr>
853        <tr>
854          <td></td>
855          <td class="md">)&nbsp;</td>
856          <td class="md" colspan="2"><code> [protected, pure virtual, inherited]</code></td>
857        </tr>
858
859      </table>
860    </td>
861  </tr>
862</table>
863<table cellspacing=5 cellpadding=0 border=0>
864  <tr>
865    <td>
866      &nbsp;
867    </td>
868    <td>
869
870<p>
871Internal implementation of <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera4">lock()</a>.
872<p>
873
874<p>
875Implemented in <a class="el" href="classOgre_1_1DefaultHardwareVertexBuffer.html#Ogre_1_1DefaultHardwareVertexBufferb0">Ogre::DefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1DefaultHardwareIndexBuffer.html#Ogre_1_1DefaultHardwareIndexBufferb0">Ogre::DefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1HardwarePixelBuffer.html#Ogre_1_1HardwarePixelBufferb1">Ogre::HardwarePixelBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareIndexBuffer.html#Ogre_1_1D3D9HardwareIndexBufferb0">Ogre::D3D9HardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareVertexBuffer.html#Ogre_1_1D3D9HardwareVertexBufferb0">Ogre::D3D9HardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareVertexBuffer.html#Ogre_1_1GLDefaultHardwareVertexBufferb0">Ogre::GLDefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareIndexBuffer.html#Ogre_1_1GLDefaultHardwareIndexBufferb0">Ogre::GLDefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1GLHardwareIndexBuffer.html#Ogre_1_1GLHardwareIndexBufferb0">Ogre::GLHardwareIndexBuffer</a>, and <a class="el" href="classOgre_1_1GLHardwareVertexBuffer.html#Ogre_1_1GLHardwareVertexBufferb0">Ogre::GLHardwareVertexBuffer</a>.    </td>
876  </tr>
877</table>
878<a class="anchor" name="Ogre_1_1HardwareVertexBuffera7" doxytag="Ogre::HardwareIndexBuffer::readData" ></a><p>
879<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
880  <tr>
881    <td class="mdRow">
882      <table cellpadding="0" cellspacing="0" border="0">
883        <tr>
884          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::readData </td>
885          <td class="md" valign="top">(&nbsp;</td>
886          <td class="md" nowrap valign="top">size_t&nbsp;</td>
887          <td class="mdname" nowrap> <em>offset</em>, </td>
888        </tr>
889        <tr>
890          <td class="md" nowrap align="right"></td>
891          <td></td>
892          <td class="md" nowrap>size_t&nbsp;</td>
893          <td class="mdname" nowrap> <em>length</em>, </td>
894        </tr>
895        <tr>
896          <td class="md" nowrap align="right"></td>
897          <td></td>
898          <td class="md" nowrap>void *&nbsp;</td>
899          <td class="mdname" nowrap> <em>pDest</em></td>
900        </tr>
901        <tr>
902          <td></td>
903          <td class="md">)&nbsp;</td>
904          <td class="md" colspan="2"><code> [pure virtual, inherited]</code></td>
905        </tr>
906
907      </table>
908    </td>
909  </tr>
910</table>
911<table cellspacing=5 cellpadding=0 border=0>
912  <tr>
913    <td>
914      &nbsp;
915    </td>
916    <td>
917
918<p>
919Reads data from the buffer and places it in the memory pointed to by pDest.
920<p>
921<dl compact><dt><b>Parameters:</b></dt><dd>
922  <table border="0" cellspacing="2" cellpadding="0">
923    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The byte offset from the start of the buffer to read </td></tr>
924    <tr><td valign=top><em>length</em>&nbsp;</td><td>The size of the area to read, in bytes </td></tr>
925    <tr><td valign=top><em>pDest</em>&nbsp;</td><td>The area of memory in which to place the data, must be large enough to accommodate the data! </td></tr>
926  </table>
927</dl>
928
929<p>
930Implemented in <a class="el" href="classOgre_1_1DefaultHardwareVertexBuffer.html#Ogre_1_1DefaultHardwareVertexBuffera2">Ogre::DefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1DefaultHardwareIndexBuffer.html#Ogre_1_1DefaultHardwareIndexBuffera2">Ogre::DefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1HardwarePixelBuffer.html#Ogre_1_1HardwarePixelBuffera5">Ogre::HardwarePixelBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareIndexBuffer.html#Ogre_1_1D3D9HardwareIndexBuffera2">Ogre::D3D9HardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareVertexBuffer.html#Ogre_1_1D3D9HardwareVertexBuffera2">Ogre::D3D9HardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareVertexBuffer.html#Ogre_1_1GLDefaultHardwareVertexBuffera2">Ogre::GLDefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareIndexBuffer.html#Ogre_1_1GLDefaultHardwareIndexBuffera2">Ogre::GLDefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1GLHardwareIndexBuffer.html#Ogre_1_1GLHardwareIndexBuffera2">Ogre::GLHardwareIndexBuffer</a>, and <a class="el" href="classOgre_1_1GLHardwareVertexBuffer.html#Ogre_1_1GLHardwareVertexBuffera2">Ogre::GLHardwareVertexBuffer</a>.    </td>
931  </tr>
932</table>
933<a class="anchor" name="Ogre_1_1HardwareVertexBuffera16" doxytag="Ogre::HardwareIndexBuffer::suppressHardwareUpdate" ></a><p>
934<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
935  <tr>
936    <td class="mdRow">
937      <table cellpadding="0" cellspacing="0" border="0">
938        <tr>
939          <td class="md" nowrap valign="top"> void Ogre::HardwareBuffer::suppressHardwareUpdate </td>
940          <td class="md" valign="top">(&nbsp;</td>
941          <td class="md" nowrap valign="top">bool&nbsp;</td>
942          <td class="mdname1" valign="top" nowrap> <em>suppress</em>          </td>
943          <td class="md" valign="top">&nbsp;)&nbsp;</td>
944          <td class="md" nowrap><code> [inherited]</code></td>
945        </tr>
946
947      </table>
948    </td>
949  </tr>
950</table>
951<table cellspacing=5 cellpadding=0 border=0>
952  <tr>
953    <td>
954      &nbsp;
955    </td>
956    <td>
957
958<p>
959<a class="el" href="classOgre_1_1Pass.html">Pass</a> true to suppress hardware upload of shadow buffer changes.
960<p>
961
962<p>
963Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00312">312</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
964  </tr>
965</table>
966<a class="anchor" name="Ogre_1_1HardwareVertexBuffera6" doxytag="Ogre::HardwareIndexBuffer::unlock" ></a><p>
967<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
968  <tr>
969    <td class="mdRow">
970      <table cellpadding="0" cellspacing="0" border="0">
971        <tr>
972          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::unlock </td>
973          <td class="md" valign="top">(&nbsp;</td>
974          <td class="md" nowrap valign="top">void&nbsp;</td>
975          <td class="mdname1" valign="top" nowrap>          </td>
976          <td class="md" valign="top">&nbsp;)&nbsp;</td>
977          <td class="md" nowrap><code> [virtual, inherited]</code></td>
978        </tr>
979
980      </table>
981    </td>
982  </tr>
983</table>
984<table cellspacing=5 cellpadding=0 border=0>
985  <tr>
986    <td>
987      &nbsp;
988    </td>
989    <td>
990
991<p>
992Releases the lock on this buffer.
993<p>
994<dl compact><dt><b>Remarks:</b></dt><dd>Locking and unlocking a buffer can, in some rare circumstances such as switching video modes whilst the buffer is locked, corrupt the contents of a buffer. This is pretty rare, but if it occurs, this method will throw an exception, meaning you must re-upload the data. </dd></dl>
995<dl compact><dt><b></b></dt><dd>Note that using the 'read' and 'write' forms of updating the buffer does not suffer from this problem, so if you want to be 100% sure your data will not be lost, use the 'read' and 'write' forms instead. </dd></dl>
996
997<p>
998Reimplemented in <a class="el" href="classOgre_1_1DefaultHardwareVertexBuffer.html#Ogre_1_1DefaultHardwareVertexBuffera5">Ogre::DefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1DefaultHardwareIndexBuffer.html#Ogre_1_1DefaultHardwareIndexBuffera5">Ogre::DefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareVertexBuffer.html#Ogre_1_1GLDefaultHardwareVertexBuffera5">Ogre::GLDefaultHardwareVertexBuffer</a>, and <a class="el" href="classOgre_1_1GLDefaultHardwareIndexBuffer.html#Ogre_1_1GLDefaultHardwareIndexBuffera5">Ogre::GLDefaultHardwareIndexBuffer</a>.
999<p>
1000Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00217">217</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.
1001<p>
1002Referenced by <a class="el" href="OgreHardwareBuffer_8h-source.html#l00265">Ogre::HardwareBuffer::copyData()</a>.    </td>
1003  </tr>
1004</table>
1005<a class="anchor" name="Ogre_1_1HardwareVertexBufferb1" doxytag="Ogre::HardwareIndexBuffer::unlockImpl" ></a><p>
1006<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1007  <tr>
1008    <td class="mdRow">
1009      <table cellpadding="0" cellspacing="0" border="0">
1010        <tr>
1011          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::unlockImpl </td>
1012          <td class="md" valign="top">(&nbsp;</td>
1013          <td class="md" nowrap valign="top">void&nbsp;</td>
1014          <td class="mdname1" valign="top" nowrap>          </td>
1015          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1016          <td class="md" nowrap><code> [protected, pure virtual, inherited]</code></td>
1017        </tr>
1018
1019      </table>
1020    </td>
1021  </tr>
1022</table>
1023<table cellspacing=5 cellpadding=0 border=0>
1024  <tr>
1025    <td>
1026      &nbsp;
1027    </td>
1028    <td>
1029
1030<p>
1031Internal implementation of <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera6">unlock()</a>.
1032<p>
1033
1034<p>
1035Implemented in <a class="el" href="classOgre_1_1DefaultHardwareVertexBuffer.html#Ogre_1_1DefaultHardwareVertexBufferb1">Ogre::DefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1DefaultHardwareIndexBuffer.html#Ogre_1_1DefaultHardwareIndexBufferb1">Ogre::DefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareIndexBuffer.html#Ogre_1_1D3D9HardwareIndexBufferb1">Ogre::D3D9HardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwarePixelBuffer.html#Ogre_1_1D3D9HardwarePixelBufferb1">Ogre::D3D9HardwarePixelBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareVertexBuffer.html#Ogre_1_1D3D9HardwareVertexBufferb1">Ogre::D3D9HardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareVertexBuffer.html#Ogre_1_1GLDefaultHardwareVertexBufferb1">Ogre::GLDefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareIndexBuffer.html#Ogre_1_1GLDefaultHardwareIndexBufferb1">Ogre::GLDefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1GLHardwareIndexBuffer.html#Ogre_1_1GLHardwareIndexBufferb1">Ogre::GLHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1GLHardwarePixelBuffer.html#Ogre_1_1GLTextureBufferb2">Ogre::GLHardwarePixelBuffer</a>, and <a class="el" href="classOgre_1_1GLHardwareVertexBuffer.html#Ogre_1_1GLHardwareVertexBufferb1">Ogre::GLHardwareVertexBuffer</a>.    </td>
1036  </tr>
1037</table>
1038<a class="anchor" name="Ogre_1_1HardwareVertexBuffera8" doxytag="Ogre::HardwareIndexBuffer::writeData" ></a><p>
1039<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1040  <tr>
1041    <td class="mdRow">
1042      <table cellpadding="0" cellspacing="0" border="0">
1043        <tr>
1044          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::writeData </td>
1045          <td class="md" valign="top">(&nbsp;</td>
1046          <td class="md" nowrap valign="top">size_t&nbsp;</td>
1047          <td class="mdname" nowrap> <em>offset</em>, </td>
1048        </tr>
1049        <tr>
1050          <td class="md" nowrap align="right"></td>
1051          <td></td>
1052          <td class="md" nowrap>size_t&nbsp;</td>
1053          <td class="mdname" nowrap> <em>length</em>, </td>
1054        </tr>
1055        <tr>
1056          <td class="md" nowrap align="right"></td>
1057          <td></td>
1058          <td class="md" nowrap>const void *&nbsp;</td>
1059          <td class="mdname" nowrap> <em>pSource</em>, </td>
1060        </tr>
1061        <tr>
1062          <td class="md" nowrap align="right"></td>
1063          <td></td>
1064          <td class="md" nowrap>bool&nbsp;</td>
1065          <td class="mdname" nowrap> <em>discardWholeBuffer</em> = false</td>
1066        </tr>
1067        <tr>
1068          <td></td>
1069          <td class="md">)&nbsp;</td>
1070          <td class="md" colspan="2"><code> [pure virtual, inherited]</code></td>
1071        </tr>
1072
1073      </table>
1074    </td>
1075  </tr>
1076</table>
1077<table cellspacing=5 cellpadding=0 border=0>
1078  <tr>
1079    <td>
1080      &nbsp;
1081    </td>
1082    <td>
1083
1084<p>
1085Writes data to the buffer from an area of system memory; note that you must ensure that your buffer is big enough.
1086<p>
1087<dl compact><dt><b>Parameters:</b></dt><dd>
1088  <table border="0" cellspacing="2" cellpadding="0">
1089    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The byte offset from the start of the buffer to start writing </td></tr>
1090    <tr><td valign=top><em>length</em>&nbsp;</td><td>The size of the data to write to, in bytes </td></tr>
1091    <tr><td valign=top><em>pSource</em>&nbsp;</td><td>The source of the data to be written </td></tr>
1092    <tr><td valign=top><em>discardWholeBuffer</em>&nbsp;</td><td>If true, this allows the driver to discard the entire buffer when writing, such that DMA stalls can be avoided; use if you can. </td></tr>
1093  </table>
1094</dl>
1095
1096<p>
1097Implemented in <a class="el" href="classOgre_1_1DefaultHardwareVertexBuffer.html#Ogre_1_1DefaultHardwareVertexBuffera3">Ogre::DefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1DefaultHardwareIndexBuffer.html#Ogre_1_1DefaultHardwareIndexBuffera3">Ogre::DefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1HardwarePixelBuffer.html#Ogre_1_1HardwarePixelBuffera6">Ogre::HardwarePixelBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareIndexBuffer.html#Ogre_1_1D3D9HardwareIndexBuffera3">Ogre::D3D9HardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1D3D9HardwareVertexBuffer.html#Ogre_1_1D3D9HardwareVertexBuffera3">Ogre::D3D9HardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareVertexBuffer.html#Ogre_1_1GLDefaultHardwareVertexBuffera3">Ogre::GLDefaultHardwareVertexBuffer</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareIndexBuffer.html#Ogre_1_1GLDefaultHardwareIndexBuffera3">Ogre::GLDefaultHardwareIndexBuffer</a>, <a class="el" href="classOgre_1_1GLHardwareIndexBuffer.html#Ogre_1_1GLHardwareIndexBuffera3">Ogre::GLHardwareIndexBuffer</a>, and <a class="el" href="classOgre_1_1GLHardwareVertexBuffer.html#Ogre_1_1GLHardwareVertexBuffera3">Ogre::GLHardwareVertexBuffer</a>.    </td>
1098  </tr>
1099</table>
1100<hr><h2>Member Data Documentation</h2>
1101<a class="anchor" name="Ogre_1_1HardwareIndexBufferp2" doxytag="Ogre::HardwareIndexBuffer::mIndexSize" ></a><p>
1102<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1103  <tr>
1104    <td class="mdRow">
1105      <table cellpadding="0" cellspacing="0" border="0">
1106        <tr>
1107          <td class="md" nowrap valign="top"> size_t <a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferp2">Ogre::HardwareIndexBuffer::mIndexSize</a><code> [protected]</code>
1108      </table>
1109    </td>
1110  </tr>
1111</table>
1112<table cellspacing=5 cellpadding=0 border=0>
1113  <tr>
1114    <td>
1115      &nbsp;
1116    </td>
1117    <td>
1118
1119<p>
1120
1121<p>
1122Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00047">47</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.    </td>
1123  </tr>
1124</table>
1125<a class="anchor" name="Ogre_1_1HardwareIndexBufferp0" doxytag="Ogre::HardwareIndexBuffer::mIndexType" ></a><p>
1126<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1127  <tr>
1128    <td class="mdRow">
1129      <table cellpadding="0" cellspacing="0" border="0">
1130        <tr>
1131          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">IndexType</a> <a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferp0">Ogre::HardwareIndexBuffer::mIndexType</a><code> [protected]</code>
1132      </table>
1133    </td>
1134  </tr>
1135</table>
1136<table cellspacing=5 cellpadding=0 border=0>
1137  <tr>
1138    <td>
1139      &nbsp;
1140    </td>
1141    <td>
1142
1143<p>
1144
1145<p>
1146Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00045">45</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.    </td>
1147  </tr>
1148</table>
1149<a class="anchor" name="Ogre_1_1HardwareVertexBufferp4" doxytag="Ogre::HardwareIndexBuffer::mIsLocked" ></a><p>
1150<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1151  <tr>
1152    <td class="mdRow">
1153      <table cellpadding="0" cellspacing="0" border="0">
1154        <tr>
1155          <td class="md" nowrap valign="top"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp4">Ogre::HardwareBuffer::mIsLocked</a><code> [protected, inherited]</code>
1156      </table>
1157    </td>
1158  </tr>
1159</table>
1160<table cellspacing=5 cellpadding=0 border=0>
1161  <tr>
1162    <td>
1163      &nbsp;
1164    </td>
1165    <td>
1166
1167<p>
1168
1169<p>
1170Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00133">133</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1171  </tr>
1172</table>
1173<a class="anchor" name="Ogre_1_1HardwareVertexBufferp6" doxytag="Ogre::HardwareIndexBuffer::mLockSize" ></a><p>
1174<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1175  <tr>
1176    <td class="mdRow">
1177      <table cellpadding="0" cellspacing="0" border="0">
1178        <tr>
1179          <td class="md" nowrap valign="top"> size_t <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp6">Ogre::HardwareBuffer::mLockSize</a><code> [protected, inherited]</code>
1180      </table>
1181    </td>
1182  </tr>
1183</table>
1184<table cellspacing=5 cellpadding=0 border=0>
1185  <tr>
1186    <td>
1187      &nbsp;
1188    </td>
1189    <td>
1190
1191<p>
1192
1193<p>
1194Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00135">135</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1195  </tr>
1196</table>
1197<a class="anchor" name="Ogre_1_1HardwareVertexBufferp5" doxytag="Ogre::HardwareIndexBuffer::mLockStart" ></a><p>
1198<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1199  <tr>
1200    <td class="mdRow">
1201      <table cellpadding="0" cellspacing="0" border="0">
1202        <tr>
1203          <td class="md" nowrap valign="top"> size_t <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp5">Ogre::HardwareBuffer::mLockStart</a><code> [protected, inherited]</code>
1204      </table>
1205    </td>
1206  </tr>
1207</table>
1208<table cellspacing=5 cellpadding=0 border=0>
1209  <tr>
1210    <td>
1211      &nbsp;
1212    </td>
1213    <td>
1214
1215<p>
1216
1217<p>
1218Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00134">134</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1219  </tr>
1220</table>
1221<a class="anchor" name="Ogre_1_1HardwareIndexBufferp1" doxytag="Ogre::HardwareIndexBuffer::mNumIndexes" ></a><p>
1222<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1223  <tr>
1224    <td class="mdRow">
1225      <table cellpadding="0" cellspacing="0" border="0">
1226        <tr>
1227          <td class="md" nowrap valign="top"> size_t <a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferp1">Ogre::HardwareIndexBuffer::mNumIndexes</a><code> [protected]</code>
1228      </table>
1229    </td>
1230  </tr>
1231</table>
1232<table cellspacing=5 cellpadding=0 border=0>
1233  <tr>
1234    <td>
1235      &nbsp;
1236    </td>
1237    <td>
1238
1239<p>
1240
1241<p>
1242Definition at line <a class="el" href="OgreHardwareIndexBuffer_8h-source.html#l00046">46</a> of file <a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a>.    </td>
1243  </tr>
1244</table>
1245<a class="anchor" name="Ogre_1_1HardwareVertexBufferp9" doxytag="Ogre::HardwareIndexBuffer::mpShadowBuffer" ></a><p>
1246<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1247  <tr>
1248    <td class="mdRow">
1249      <table cellpadding="0" cellspacing="0" border="0">
1250        <tr>
1251          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a>* <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp9">Ogre::HardwareBuffer::mpShadowBuffer</a><code> [protected, inherited]</code>
1252      </table>
1253    </td>
1254  </tr>
1255</table>
1256<table cellspacing=5 cellpadding=0 border=0>
1257  <tr>
1258    <td>
1259      &nbsp;
1260    </td>
1261    <td>
1262
1263<p>
1264
1265<p>
1266Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00138">138</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1267  </tr>
1268</table>
1269<a class="anchor" name="Ogre_1_1HardwareVertexBufferp10" doxytag="Ogre::HardwareIndexBuffer::mShadowUpdated" ></a><p>
1270<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1271  <tr>
1272    <td class="mdRow">
1273      <table cellpadding="0" cellspacing="0" border="0">
1274        <tr>
1275          <td class="md" nowrap valign="top"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp10">Ogre::HardwareBuffer::mShadowUpdated</a><code> [protected, inherited]</code>
1276      </table>
1277    </td>
1278  </tr>
1279</table>
1280<table cellspacing=5 cellpadding=0 border=0>
1281  <tr>
1282    <td>
1283      &nbsp;
1284    </td>
1285    <td>
1286
1287<p>
1288
1289<p>
1290Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00139">139</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1291  </tr>
1292</table>
1293<a class="anchor" name="Ogre_1_1HardwareVertexBufferp2" doxytag="Ogre::HardwareIndexBuffer::mSizeInBytes" ></a><p>
1294<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1295  <tr>
1296    <td class="mdRow">
1297      <table cellpadding="0" cellspacing="0" border="0">
1298        <tr>
1299          <td class="md" nowrap valign="top"> size_t <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp2">Ogre::HardwareBuffer::mSizeInBytes</a><code> [protected, inherited]</code>
1300      </table>
1301    </td>
1302  </tr>
1303</table>
1304<table cellspacing=5 cellpadding=0 border=0>
1305  <tr>
1306    <td>
1307      &nbsp;
1308    </td>
1309    <td>
1310
1311<p>
1312
1313<p>
1314Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00131">131</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1315  </tr>
1316</table>
1317<a class="anchor" name="Ogre_1_1HardwareVertexBufferp11" doxytag="Ogre::HardwareIndexBuffer::mSuppressHardwareUpdate" ></a><p>
1318<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1319  <tr>
1320    <td class="mdRow">
1321      <table cellpadding="0" cellspacing="0" border="0">
1322        <tr>
1323          <td class="md" nowrap valign="top"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp11">Ogre::HardwareBuffer::mSuppressHardwareUpdate</a><code> [protected, inherited]</code>
1324      </table>
1325    </td>
1326  </tr>
1327</table>
1328<table cellspacing=5 cellpadding=0 border=0>
1329  <tr>
1330    <td>
1331      &nbsp;
1332    </td>
1333    <td>
1334
1335<p>
1336
1337<p>
1338Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00140">140</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1339  </tr>
1340</table>
1341<a class="anchor" name="Ogre_1_1HardwareVertexBufferp7" doxytag="Ogre::HardwareIndexBuffer::mSystemMemory" ></a><p>
1342<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1343  <tr>
1344    <td class="mdRow">
1345      <table cellpadding="0" cellspacing="0" border="0">
1346        <tr>
1347          <td class="md" nowrap valign="top"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp7">Ogre::HardwareBuffer::mSystemMemory</a><code> [protected, inherited]</code>
1348      </table>
1349    </td>
1350  </tr>
1351</table>
1352<table cellspacing=5 cellpadding=0 border=0>
1353  <tr>
1354    <td>
1355      &nbsp;
1356    </td>
1357    <td>
1358
1359<p>
1360
1361<p>
1362Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00136">136</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1363  </tr>
1364</table>
1365<a class="anchor" name="Ogre_1_1HardwareVertexBufferp3" doxytag="Ogre::HardwareIndexBuffer::mUsage" ></a><p>
1366<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1367  <tr>
1368    <td class="mdRow">
1369      <table cellpadding="0" cellspacing="0" border="0">
1370        <tr>
1371          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a> <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp3">Ogre::HardwareBuffer::mUsage</a><code> [protected, inherited]</code>
1372      </table>
1373    </td>
1374  </tr>
1375</table>
1376<table cellspacing=5 cellpadding=0 border=0>
1377  <tr>
1378    <td>
1379      &nbsp;
1380    </td>
1381    <td>
1382
1383<p>
1384
1385<p>
1386Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00132">132</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1387  </tr>
1388</table>
1389<a class="anchor" name="Ogre_1_1HardwareVertexBufferp8" doxytag="Ogre::HardwareIndexBuffer::mUseShadowBuffer" ></a><p>
1390<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1391  <tr>
1392    <td class="mdRow">
1393      <table cellpadding="0" cellspacing="0" border="0">
1394        <tr>
1395          <td class="md" nowrap valign="top"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp8">Ogre::HardwareBuffer::mUseShadowBuffer</a><code> [protected, inherited]</code>
1396      </table>
1397    </td>
1398  </tr>
1399</table>
1400<table cellspacing=5 cellpadding=0 border=0>
1401  <tr>
1402    <td>
1403      &nbsp;
1404    </td>
1405    <td>
1406
1407<p>
1408
1409<p>
1410Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00137">137</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1411  </tr>
1412</table>
1413<hr>The documentation for this class was generated from the following file:<ul>
1414<li><a class="el" href="OgreHardwareIndexBuffer_8h-source.html">OgreHardwareIndexBuffer.h</a></ul>
1415<hr>
1416<p>
1417Copyright &copy; 2000-2005 by The OGRE Team<br />
1418<!--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/>
1419This 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/>
1420                <!--/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#">
1421                <Work rdf:about="">
1422                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
1423        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
1424                </Work>
1425                <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> -->
1426
1427Last modified Sun Mar 12 14:39:12 2006
1428</p>
1429</body>
1430</html>
Note: See TracBrowser for help on using the repository browser.