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

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

adding ogre 1.2 and dependencies

Line 
1<html>
2<head>
3<title>Ogre::HardwareBuffer 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::HardwareBuffer Class Reference</h1>Abstract class defining common features of hardware buffers. 
11<a href="#_details">More...</a>
12<p>
13<code>#include &lt;<a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>&gt;</code>
14<p>
15<p>Inheritance diagram for Ogre::HardwareBuffer:
16<p><center><img src="classOgre_1_1HardwareBuffer.png" usemap="#Ogre::HardwareBuffer_map" border="0" alt=""></center>
17<map name="Ogre::HardwareBuffer_map">
18<area href="classOgre_1_1HardwareIndexBuffer.html" alt="Ogre::HardwareIndexBuffer" shape="rect" coords="0,56,231,80">
19<area href="classOgre_1_1HardwarePixelBuffer.html" alt="Ogre::HardwarePixelBuffer" shape="rect" coords="482,56,713,80">
20<area href="classOgre_1_1HardwareVertexBuffer.html" alt="Ogre::HardwareVertexBuffer" shape="rect" coords="964,56,1195,80">
21<area href="classOgre_1_1D3D9HardwareIndexBuffer.html" alt="Ogre::D3D9HardwareIndexBuffer" shape="rect" coords="241,112,472,136">
22<area href="classOgre_1_1DefaultHardwareIndexBuffer.html" alt="Ogre::DefaultHardwareIndexBuffer" shape="rect" coords="241,168,472,192">
23<area href="classOgre_1_1GLDefaultHardwareIndexBuffer.html" alt="Ogre::GLDefaultHardwareIndexBuffer" shape="rect" coords="241,224,472,248">
24<area href="classOgre_1_1GLHardwareIndexBuffer.html" alt="Ogre::GLHardwareIndexBuffer" shape="rect" coords="241,280,472,304">
25<area href="classOgre_1_1D3D9HardwarePixelBuffer.html" alt="Ogre::D3D9HardwarePixelBuffer" shape="rect" coords="723,112,954,136">
26<area href="classOgre_1_1GLHardwarePixelBuffer.html" alt="Ogre::GLHardwarePixelBuffer" shape="rect" coords="723,168,954,192">
27<area href="classOgre_1_1D3D9HardwareVertexBuffer.html" alt="Ogre::D3D9HardwareVertexBuffer" shape="rect" coords="1205,112,1436,136">
28<area href="classOgre_1_1DefaultHardwareVertexBuffer.html" alt="Ogre::DefaultHardwareVertexBuffer" shape="rect" coords="1205,168,1436,192">
29<area href="classOgre_1_1GLDefaultHardwareVertexBuffer.html" alt="Ogre::GLDefaultHardwareVertexBuffer" shape="rect" coords="1205,224,1436,248">
30<area href="classOgre_1_1GLHardwareVertexBuffer.html" alt="Ogre::GLHardwareVertexBuffer" shape="rect" coords="1205,280,1436,304">
31</map>
32<a href="classOgre_1_1HardwareBuffer-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
33<tr><td></td></tr>
34<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
35<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>
36&nbsp;&nbsp;<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw0">HBU_STATIC</a> =  1,
37<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw1">HBU_DYNAMIC</a> =  2,
38<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw2">HBU_WRITE_ONLY</a> =  4,
39<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw3">HBU_DISCARDABLE</a> =  8,
40<br>
41&nbsp;&nbsp;<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw4">HBU_STATIC_WRITE_ONLY</a> =  5,
42<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw5">HBU_DYNAMIC_WRITE_ONLY</a> =  6,
43<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw6">HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE</a> =  14
44<br>
45 }</td></tr>
46
47<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>
48<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>,
49<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw8">HBL_DISCARD</a>,
50<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw9">HBL_READ_ONLY</a>,
51<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw10">HBL_NO_OVERWRITE</a>
52 }</td></tr>
53
54<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Locking options.  <a href="#Ogre_1_1HardwareVertexBufferw12">More...</a><br><br></td></tr>
55<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
56<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareBuffera0">HardwareBuffer</a> (<a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a> usage, bool systemMemory, bool useShadowBuffer)</td></tr>
57
58<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor, to be called by <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a> only.  <a href="#Ogre_1_1HardwareBuffera0"></a><br><br></td></tr>
59<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareBuffera1">~HardwareBuffer</a> ()</td></tr>
60
61<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>
62
63<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>
64<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>
65
66<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>
67<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>
68
69<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>
70<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>
71
72<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>
73<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>
74
75<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>
76<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>
77
78<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>
79<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>
80
81<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>
82<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>
83
84<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>
85<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>
86
87<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>
88<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>
89
90<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>
91<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>
92
93<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>
94<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>
95
96<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>
97<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>
98
99<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>
100<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
101<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>
102
103<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>
104<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>
105
106<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>
107<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
108<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>
109
110<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>
111
112<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>
113
114<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>
115
116<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>
117
118<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>
119
120<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>
121
122<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>
123
124<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>
125
126<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>
127
128</table>
129<hr><a name="_details"></a><h2>Detailed Description</h2>
130Abstract class defining common features of hardware buffers.
131<p>
132<dl compact><dt><b>Remarks:</b></dt><dd>A 'hardware buffer' is any area of memory held outside of core system ram, and in our case refers mostly to video ram, although in theory this class could be used with other memory areas such as sound card memory, custom coprocessor memory etc. </dd></dl>
133<dl compact><dt><b></b></dt><dd>This reflects the fact that memory held outside of main system RAM must be interacted with in a more formal fashion in order to promote cooperative and optimal usage of the buffers between the various processing units which manipulate them. </dd></dl>
134<dl compact><dt><b></b></dt><dd>This abstract class defines the core interface which is common to all buffers, whether it be vertex buffers, index buffers, texture memory or framebuffer memory etc. </dd></dl>
135<dl compact><dt><b></b></dt><dd>Buffers have the ability to be 'shadowed' in system memory, this is because the kinds of access allowed on hardware buffers is not always as flexible as that allowed for areas of system memory - for example it is often either impossible, or extremely undesirable from a performance standpoint to read from a hardware buffer; when writing to hardware buffers, you should also write every byte and do it sequentially. In situations where this is too restrictive, it is possible to create a hardware, write-only buffer (the most efficient kind) and to back it with a system memory 'shadow' copy which can be read and updated arbitrarily. <a class="el" href="namespaceOgre.html">Ogre</a> handles synchronising this buffer with the real hardware buffer (which should still be created with the HBU_DYNAMIC flag if you intend to update it very frequently). Whilst this approach does have it's own costs, such as increased memory overhead, these costs can often be outweighed by the performance benefits of using a more hardware efficient buffer. You should look for the 'useShadowBuffer' parameter on the creation methods used to create the buffer of the type you require (see <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>) to enable this feature. </dd></dl>
136
137<p>
138
139<p>
140Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00064">64</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.<hr><h2>Member Enumeration Documentation</h2>
141<a class="anchor" name="Ogre_1_1HardwareVertexBufferw12" doxytag="Ogre::HardwareBuffer::LockOptions" ></a><p>
142<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
143  <tr>
144    <td class="mdRow">
145      <table cellpadding="0" cellspacing="0" border="0">
146        <tr>
147          <td class="md" nowrap valign="top"> enum <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">Ogre::HardwareBuffer::LockOptions</a>
148      </table>
149    </td>
150  </tr>
151</table>
152<table cellspacing=5 cellpadding=0 border=0>
153  <tr>
154    <td>
155      &nbsp;
156    </td>
157    <td>
158
159<p>
160Locking options.
161<p>
162<dl compact><dt><b>Enumeration values: </b></dt><dd>
163<table border=0 cellspacing=2 cellpadding=0>
164<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw7" doxytag="HBL_NORMAL" ></a>HBL_NORMAL</em>&nbsp;</td><td>
165Normal mode, ie allows read/write and contents are preserved. </td></tr>
166<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw12Ogre_1_1HardwareVertexBufferw8" doxytag="HBL_DISCARD" ></a>HBL_DISCARD</em>&nbsp;</td><td>
167Discards the <em>entire</em> buffer while locking; this allows optimisation to be performed because synchronisation issues are relaxed.
168<p>
169Only allowed on buffers created with the HBU_DYNAMIC flag.</td></tr>
170<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>
171Lock the buffer for reading only.
172<p>
173Not allowed in buffers which are created with HBU_WRITE_ONLY. Mandatory on statuc buffers, ie those created without the HBU_DYNAMIC flag.</td></tr>
174<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>
175As 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>
176</table>
177</dl>
178
179<p>
180Definition 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>
181  </tr>
182</table>
183<a class="anchor" name="Ogre_1_1HardwareVertexBufferw11" doxytag="Ogre::HardwareBuffer::Usage" ></a><p>
184<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
185  <tr>
186    <td class="mdRow">
187      <table cellpadding="0" cellspacing="0" border="0">
188        <tr>
189          <td class="md" nowrap valign="top"> enum <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Ogre::HardwareBuffer::Usage</a>
190      </table>
191    </td>
192  </tr>
193</table>
194<table cellspacing=5 cellpadding=0 border=0>
195  <tr>
196    <td>
197      &nbsp;
198    </td>
199    <td>
200
201<p>
202Enums describing buffer usage; not mutually exclusive.
203<p>
204<dl compact><dt><b>Enumeration values: </b></dt><dd>
205<table border=0 cellspacing=2 cellpadding=0>
206<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw0" doxytag="HBU_STATIC" ></a>HBU_STATIC</em>&nbsp;</td><td>
207Static buffer which the application rarely modifies once created.
208<p>
209Modifying the contents of this buffer will involve a performance hit. </td></tr>
210<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw1" doxytag="HBU_DYNAMIC" ></a>HBU_DYNAMIC</em>&nbsp;</td><td>
211Indicates the application would like to modify this buffer with the CPU fairly often.
212<p>
213Buffers created with this flag will typically end up in AGP memory rather than video memory.</td></tr>
214<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>
215Indicates the application will never read the contents of the buffer back, it will only ever write data.
216<p>
217Locking 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>
218<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareVertexBufferw11Ogre_1_1HardwareVertexBufferw3" doxytag="HBU_DISCARDABLE" ></a>HBU_DISCARDABLE</em>&nbsp;</td><td>
219Indicates 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.
220<p>
221This allows and additional level of optimisation on the buffer. This option only really makes sense when combined with HBU_DYNAMIC_WRITE_ONLY. </td></tr>
222<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>
223Combination of HBU_STATIC and HBU_WRITE_ONLY. </td></tr>
224<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>
225Combination of HBU_DYNAMIC and HBU_WRITE_ONLY.
226<p>
227If 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>
228<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>
229Combination of HBU_DYNAMIC, HBU_WRITE_ONLY and HBU_DISCARDABLE. </td></tr>
230</table>
231</dl>
232
233<p>
234Definition 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>
235  </tr>
236</table>
237<hr><h2>Constructor &amp; Destructor Documentation</h2>
238<a class="anchor" name="Ogre_1_1HardwareBuffera0" doxytag="Ogre::HardwareBuffer::HardwareBuffer" ></a><p>
239<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
240  <tr>
241    <td class="mdRow">
242      <table cellpadding="0" cellspacing="0" border="0">
243        <tr>
244          <td class="md" nowrap valign="top"> Ogre::HardwareBuffer::HardwareBuffer </td>
245          <td class="md" valign="top">(&nbsp;</td>
246          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a>&nbsp;</td>
247          <td class="mdname" nowrap> <em>usage</em>, </td>
248        </tr>
249        <tr>
250          <td class="md" nowrap align="right"></td>
251          <td></td>
252          <td class="md" nowrap>bool&nbsp;</td>
253          <td class="mdname" nowrap> <em>systemMemory</em>, </td>
254        </tr>
255        <tr>
256          <td class="md" nowrap align="right"></td>
257          <td></td>
258          <td class="md" nowrap>bool&nbsp;</td>
259          <td class="mdname" nowrap> <em>useShadowBuffer</em></td>
260        </tr>
261        <tr>
262          <td></td>
263          <td class="md">)&nbsp;</td>
264          <td class="md" colspan="2"></td>
265        </tr>
266
267      </table>
268    </td>
269  </tr>
270</table>
271<table cellspacing=5 cellpadding=0 border=0>
272  <tr>
273    <td>
274      &nbsp;
275    </td>
276    <td>
277
278<p>
279Constructor, to be called by <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a> only.
280<p>
281
282<p>
283Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00149">149</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
284  </tr>
285</table>
286<a class="anchor" name="Ogre_1_1HardwareBuffera1" doxytag="Ogre::HardwareBuffer::~HardwareBuffer" ></a><p>
287<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
288  <tr>
289    <td class="mdRow">
290      <table cellpadding="0" cellspacing="0" border="0">
291        <tr>
292          <td class="md" nowrap valign="top"> virtual Ogre::HardwareBuffer::~<a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a> </td>
293          <td class="md" valign="top">(&nbsp;</td>
294          <td class="mdname1" valign="top" nowrap>          </td>
295          <td class="md" valign="top">&nbsp;)&nbsp;</td>
296          <td class="md" nowrap><code> [virtual]</code></td>
297        </tr>
298
299      </table>
300    </td>
301  </tr>
302</table>
303<table cellspacing=5 cellpadding=0 border=0>
304  <tr>
305    <td>
306      &nbsp;
307    </td>
308    <td>
309
310<p>
311
312<p>
313Definition at line <a class="el" href="OgreHardwareBuffer_8h-source.html#l00164">164</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
314  </tr>
315</table>
316<hr><h2>Member Function Documentation</h2>
317<a class="anchor" name="Ogre_1_1HardwareVertexBuffera10" doxytag="Ogre::HardwareBuffer::_updateFromShadow" ></a><p>
318<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
319  <tr>
320    <td class="mdRow">
321      <table cellpadding="0" cellspacing="0" border="0">
322        <tr>
323          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::_updateFromShadow </td>
324          <td class="md" valign="top">(&nbsp;</td>
325          <td class="md" nowrap valign="top">void&nbsp;</td>
326          <td class="mdname1" valign="top" nowrap>          </td>
327          <td class="md" valign="top">&nbsp;)&nbsp;</td>
328          <td class="md" nowrap><code> [virtual]</code></td>
329        </tr>
330
331      </table>
332    </td>
333  </tr>
334</table>
335<table cellspacing=5 cellpadding=0 border=0>
336  <tr>
337    <td>
338      &nbsp;
339    </td>
340    <td>
341
342<p>
343Updates the real buffer from the shadow buffer, if required.
344<p>
345
346<p>
347Definition 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>
348  </tr>
349</table>
350<a class="anchor" name="Ogre_1_1HardwareVertexBuffera9" doxytag="Ogre::HardwareBuffer::copyData" ></a><p>
351<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
352  <tr>
353    <td class="mdRow">
354      <table cellpadding="0" cellspacing="0" border="0">
355        <tr>
356          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::copyData </td>
357          <td class="md" valign="top">(&nbsp;</td>
358          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareBuffer.html">HardwareBuffer</a> &amp;&nbsp;</td>
359          <td class="mdname" nowrap> <em>srcBuffer</em>, </td>
360        </tr>
361        <tr>
362          <td class="md" nowrap align="right"></td>
363          <td></td>
364          <td class="md" nowrap>size_t&nbsp;</td>
365          <td class="mdname" nowrap> <em>srcOffset</em>, </td>
366        </tr>
367        <tr>
368          <td class="md" nowrap align="right"></td>
369          <td></td>
370          <td class="md" nowrap>size_t&nbsp;</td>
371          <td class="mdname" nowrap> <em>dstOffset</em>, </td>
372        </tr>
373        <tr>
374          <td class="md" nowrap align="right"></td>
375          <td></td>
376          <td class="md" nowrap>size_t&nbsp;</td>
377          <td class="mdname" nowrap> <em>length</em>, </td>
378        </tr>
379        <tr>
380          <td class="md" nowrap align="right"></td>
381          <td></td>
382          <td class="md" nowrap>bool&nbsp;</td>
383          <td class="mdname" nowrap> <em>discardWholeBuffer</em> = false</td>
384        </tr>
385        <tr>
386          <td></td>
387          <td class="md">)&nbsp;</td>
388          <td class="md" colspan="2"><code> [virtual]</code></td>
389        </tr>
390
391      </table>
392    </td>
393  </tr>
394</table>
395<table cellspacing=5 cellpadding=0 border=0>
396  <tr>
397    <td>
398      &nbsp;
399    </td>
400    <td>
401
402<p>
403Copy data from another buffer into this one.
404<p>
405<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>
406<dl compact><dt><b>Parameters:</b></dt><dd>
407  <table border="0" cellspacing="2" cellpadding="0">
408    <tr><td valign=top><em>srcBuffer</em>&nbsp;</td><td>The buffer from which to read the copied data </td></tr>
409    <tr><td valign=top><em>srcOffset</em>&nbsp;</td><td>Offset in the source buffer at which to start reading </td></tr>
410    <tr><td valign=top><em>dstOffset</em>&nbsp;</td><td>Offset in the destination buffer to start writing </td></tr>
411    <tr><td valign=top><em>length</em>&nbsp;</td><td>Length of the data to copy, in bytes. </td></tr>
412    <tr><td valign=top><em>discardWholeBuffer</em>&nbsp;</td><td>If true, will discard the entire contents of this buffer before copying</td></tr>
413  </table>
414</dl>
415
416<p>
417Definition 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>.
418<p>
419References <a class="el" href="OgreHardwareBuffer_8h-source.html#l00171">lock()</a>, and <a class="el" href="OgreHardwareBuffer_8h-source.html#l00217">unlock()</a>.    </td>
420  </tr>
421</table>
422<a class="anchor" name="Ogre_1_1HardwareVertexBuffera11" doxytag="Ogre::HardwareBuffer::getSizeInBytes" ></a><p>
423<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
424  <tr>
425    <td class="mdRow">
426      <table cellpadding="0" cellspacing="0" border="0">
427        <tr>
428          <td class="md" nowrap valign="top"> size_t Ogre::HardwareBuffer::getSizeInBytes </td>
429          <td class="md" valign="top">(&nbsp;</td>
430          <td class="md" nowrap valign="top">void&nbsp;</td>
431          <td class="mdname1" valign="top" nowrap>          </td>
432          <td class="md" valign="top">&nbsp;)&nbsp;</td>
433          <td class="md" nowrap> const</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>
448Returns the size of this buffer in bytes.
449<p>
450
451<p>
452Definition 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>
453  </tr>
454</table>
455<a class="anchor" name="Ogre_1_1HardwareVertexBuffera12" doxytag="Ogre::HardwareBuffer::getUsage" ></a><p>
456<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
457  <tr>
458    <td class="mdRow">
459      <table cellpadding="0" cellspacing="0" border="0">
460        <tr>
461          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">Usage</a> Ogre::HardwareBuffer::getUsage </td>
462          <td class="md" valign="top">(&nbsp;</td>
463          <td class="md" nowrap valign="top">void&nbsp;</td>
464          <td class="mdname1" valign="top" nowrap>          </td>
465          <td class="md" valign="top">&nbsp;)&nbsp;</td>
466          <td class="md" nowrap> const</td>
467        </tr>
468
469      </table>
470    </td>
471  </tr>
472</table>
473<table cellspacing=5 cellpadding=0 border=0>
474  <tr>
475    <td>
476      &nbsp;
477    </td>
478    <td>
479
480<p>
481Returns the Usage flags with which this buffer was created.
482<p>
483
484<p>
485Definition 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>
486  </tr>
487</table>
488<a class="anchor" name="Ogre_1_1HardwareVertexBuffera14" doxytag="Ogre::HardwareBuffer::hasShadowBuffer" ></a><p>
489<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
490  <tr>
491    <td class="mdRow">
492      <table cellpadding="0" cellspacing="0" border="0">
493        <tr>
494          <td class="md" nowrap valign="top"> bool Ogre::HardwareBuffer::hasShadowBuffer </td>
495          <td class="md" valign="top">(&nbsp;</td>
496          <td class="md" nowrap valign="top">void&nbsp;</td>
497          <td class="mdname1" valign="top" nowrap>          </td>
498          <td class="md" valign="top">&nbsp;)&nbsp;</td>
499          <td class="md" nowrap> const</td>
500        </tr>
501
502      </table>
503    </td>
504  </tr>
505</table>
506<table cellspacing=5 cellpadding=0 border=0>
507  <tr>
508    <td>
509      &nbsp;
510    </td>
511    <td>
512
513<p>
514Returns whether this buffer has a system memory shadow for quicker reading.
515<p>
516
517<p>
518Definition 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>
519  </tr>
520</table>
521<a class="anchor" name="Ogre_1_1HardwareVertexBuffera15" doxytag="Ogre::HardwareBuffer::isLocked" ></a><p>
522<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
523  <tr>
524    <td class="mdRow">
525      <table cellpadding="0" cellspacing="0" border="0">
526        <tr>
527          <td class="md" nowrap valign="top"> bool Ogre::HardwareBuffer::isLocked </td>
528          <td class="md" valign="top">(&nbsp;</td>
529          <td class="md" nowrap valign="top">void&nbsp;</td>
530          <td class="mdname1" valign="top" nowrap>          </td>
531          <td class="md" valign="top">&nbsp;)&nbsp;</td>
532          <td class="md" nowrap> const</td>
533        </tr>
534
535      </table>
536    </td>
537  </tr>
538</table>
539<table cellspacing=5 cellpadding=0 border=0>
540  <tr>
541    <td>
542      &nbsp;
543    </td>
544    <td>
545
546<p>
547Returns whether or not this buffer is currently locked.
548<p>
549
550<p>
551Definition 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>
552  </tr>
553</table>
554<a class="anchor" name="Ogre_1_1HardwareVertexBuffera13" doxytag="Ogre::HardwareBuffer::isSystemMemory" ></a><p>
555<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
556  <tr>
557    <td class="mdRow">
558      <table cellpadding="0" cellspacing="0" border="0">
559        <tr>
560          <td class="md" nowrap valign="top"> bool Ogre::HardwareBuffer::isSystemMemory </td>
561          <td class="md" valign="top">(&nbsp;</td>
562          <td class="md" nowrap valign="top">void&nbsp;</td>
563          <td class="mdname1" valign="top" nowrap>          </td>
564          <td class="md" valign="top">&nbsp;)&nbsp;</td>
565          <td class="md" nowrap> const</td>
566        </tr>
567
568      </table>
569    </td>
570  </tr>
571</table>
572<table cellspacing=5 cellpadding=0 border=0>
573  <tr>
574    <td>
575      &nbsp;
576    </td>
577    <td>
578
579<p>
580Returns whether this buffer is held in system memory.
581<p>
582
583<p>
584Definition 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>
585  </tr>
586</table>
587<a class="anchor" name="Ogre_1_1HardwareVertexBuffera5" doxytag="Ogre::HardwareBuffer::lock" ></a><p>
588<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
589  <tr>
590    <td class="mdRow">
591      <table cellpadding="0" cellspacing="0" border="0">
592        <tr>
593          <td class="md" nowrap valign="top"> void* Ogre::HardwareBuffer::lock </td>
594          <td class="md" valign="top">(&nbsp;</td>
595          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a>&nbsp;</td>
596          <td class="mdname1" valign="top" nowrap> <em>options</em>          </td>
597          <td class="md" valign="top">&nbsp;)&nbsp;</td>
598          <td class="md" nowrap></td>
599        </tr>
600
601      </table>
602    </td>
603  </tr>
604</table>
605<table cellspacing=5 cellpadding=0 border=0>
606  <tr>
607    <td>
608      &nbsp;
609    </td>
610    <td>
611
612<p>
613Lock the entire buffer for (potentially) reading / writing.
614<p>
615<dl compact><dt><b>Parameters:</b></dt><dd>
616  <table border="0" cellspacing="2" cellpadding="0">
617    <tr><td valign=top><em>options</em>&nbsp;</td><td>Locking options </td></tr>
618  </table>
619</dl>
620<dl compact><dt><b>Returns:</b></dt><dd>Pointer to the locked memory </dd></dl>
621
622<p>
623Definition 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>
624  </tr>
625</table>
626<a class="anchor" name="Ogre_1_1HardwareVertexBuffera4" doxytag="Ogre::HardwareBuffer::lock" ></a><p>
627<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
628  <tr>
629    <td class="mdRow">
630      <table cellpadding="0" cellspacing="0" border="0">
631        <tr>
632          <td class="md" nowrap valign="top"> virtual void* Ogre::HardwareBuffer::lock </td>
633          <td class="md" valign="top">(&nbsp;</td>
634          <td class="md" nowrap valign="top">size_t&nbsp;</td>
635          <td class="mdname" nowrap> <em>offset</em>, </td>
636        </tr>
637        <tr>
638          <td class="md" nowrap align="right"></td>
639          <td></td>
640          <td class="md" nowrap>size_t&nbsp;</td>
641          <td class="mdname" nowrap> <em>length</em>, </td>
642        </tr>
643        <tr>
644          <td class="md" nowrap align="right"></td>
645          <td></td>
646          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a>&nbsp;</td>
647          <td class="mdname" nowrap> <em>options</em></td>
648        </tr>
649        <tr>
650          <td></td>
651          <td class="md">)&nbsp;</td>
652          <td class="md" colspan="2"><code> [virtual]</code></td>
653        </tr>
654
655      </table>
656    </td>
657  </tr>
658</table>
659<table cellspacing=5 cellpadding=0 border=0>
660  <tr>
661    <td>
662      &nbsp;
663    </td>
664    <td>
665
666<p>
667Lock the buffer for (potentially) reading / writing.
668<p>
669<dl compact><dt><b>Parameters:</b></dt><dd>
670  <table border="0" cellspacing="2" cellpadding="0">
671    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The byte offset from the start of the buffer to lock </td></tr>
672    <tr><td valign=top><em>length</em>&nbsp;</td><td>The size of the area to lock, in bytes </td></tr>
673    <tr><td valign=top><em>options</em>&nbsp;</td><td>Locking options </td></tr>
674  </table>
675</dl>
676<dl compact><dt><b>Returns:</b></dt><dd>Pointer to the locked memory</dd></dl>
677
678<p>
679Reimplemented 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>.
680<p>
681Definition 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>.
682<p>
683Referenced by <a class="el" href="OgreHardwareBuffer_8h-source.html#l00265">copyData()</a>.    </td>
684  </tr>
685</table>
686<a class="anchor" name="Ogre_1_1HardwareVertexBufferb0" doxytag="Ogre::HardwareBuffer::lockImpl" ></a><p>
687<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
688  <tr>
689    <td class="mdRow">
690      <table cellpadding="0" cellspacing="0" border="0">
691        <tr>
692          <td class="md" nowrap valign="top"> virtual void* Ogre::HardwareBuffer::lockImpl </td>
693          <td class="md" valign="top">(&nbsp;</td>
694          <td class="md" nowrap valign="top">size_t&nbsp;</td>
695          <td class="mdname" nowrap> <em>offset</em>, </td>
696        </tr>
697        <tr>
698          <td class="md" nowrap align="right"></td>
699          <td></td>
700          <td class="md" nowrap>size_t&nbsp;</td>
701          <td class="mdname" nowrap> <em>length</em>, </td>
702        </tr>
703        <tr>
704          <td class="md" nowrap align="right"></td>
705          <td></td>
706          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw12">LockOptions</a>&nbsp;</td>
707          <td class="mdname" nowrap> <em>options</em></td>
708        </tr>
709        <tr>
710          <td></td>
711          <td class="md">)&nbsp;</td>
712          <td class="md" colspan="2"><code> [protected, pure virtual]</code></td>
713        </tr>
714
715      </table>
716    </td>
717  </tr>
718</table>
719<table cellspacing=5 cellpadding=0 border=0>
720  <tr>
721    <td>
722      &nbsp;
723    </td>
724    <td>
725
726<p>
727Internal implementation of <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera4">lock()</a>.
728<p>
729
730<p>
731Implemented 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>
732  </tr>
733</table>
734<a class="anchor" name="Ogre_1_1HardwareVertexBuffera7" doxytag="Ogre::HardwareBuffer::readData" ></a><p>
735<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
736  <tr>
737    <td class="mdRow">
738      <table cellpadding="0" cellspacing="0" border="0">
739        <tr>
740          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::readData </td>
741          <td class="md" valign="top">(&nbsp;</td>
742          <td class="md" nowrap valign="top">size_t&nbsp;</td>
743          <td class="mdname" nowrap> <em>offset</em>, </td>
744        </tr>
745        <tr>
746          <td class="md" nowrap align="right"></td>
747          <td></td>
748          <td class="md" nowrap>size_t&nbsp;</td>
749          <td class="mdname" nowrap> <em>length</em>, </td>
750        </tr>
751        <tr>
752          <td class="md" nowrap align="right"></td>
753          <td></td>
754          <td class="md" nowrap>void *&nbsp;</td>
755          <td class="mdname" nowrap> <em>pDest</em></td>
756        </tr>
757        <tr>
758          <td></td>
759          <td class="md">)&nbsp;</td>
760          <td class="md" colspan="2"><code> [pure virtual]</code></td>
761        </tr>
762
763      </table>
764    </td>
765  </tr>
766</table>
767<table cellspacing=5 cellpadding=0 border=0>
768  <tr>
769    <td>
770      &nbsp;
771    </td>
772    <td>
773
774<p>
775Reads data from the buffer and places it in the memory pointed to by pDest.
776<p>
777<dl compact><dt><b>Parameters:</b></dt><dd>
778  <table border="0" cellspacing="2" cellpadding="0">
779    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The byte offset from the start of the buffer to read </td></tr>
780    <tr><td valign=top><em>length</em>&nbsp;</td><td>The size of the area to read, in bytes </td></tr>
781    <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>
782  </table>
783</dl>
784
785<p>
786Implemented 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>
787  </tr>
788</table>
789<a class="anchor" name="Ogre_1_1HardwareVertexBuffera16" doxytag="Ogre::HardwareBuffer::suppressHardwareUpdate" ></a><p>
790<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
791  <tr>
792    <td class="mdRow">
793      <table cellpadding="0" cellspacing="0" border="0">
794        <tr>
795          <td class="md" nowrap valign="top"> void Ogre::HardwareBuffer::suppressHardwareUpdate </td>
796          <td class="md" valign="top">(&nbsp;</td>
797          <td class="md" nowrap valign="top">bool&nbsp;</td>
798          <td class="mdname1" valign="top" nowrap> <em>suppress</em>          </td>
799          <td class="md" valign="top">&nbsp;)&nbsp;</td>
800          <td class="md" nowrap></td>
801        </tr>
802
803      </table>
804    </td>
805  </tr>
806</table>
807<table cellspacing=5 cellpadding=0 border=0>
808  <tr>
809    <td>
810      &nbsp;
811    </td>
812    <td>
813
814<p>
815<a class="el" href="classOgre_1_1Pass.html">Pass</a> true to suppress hardware upload of shadow buffer changes.
816<p>
817
818<p>
819Definition 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>
820  </tr>
821</table>
822<a class="anchor" name="Ogre_1_1HardwareVertexBuffera6" doxytag="Ogre::HardwareBuffer::unlock" ></a><p>
823<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
824  <tr>
825    <td class="mdRow">
826      <table cellpadding="0" cellspacing="0" border="0">
827        <tr>
828          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::unlock </td>
829          <td class="md" valign="top">(&nbsp;</td>
830          <td class="md" nowrap valign="top">void&nbsp;</td>
831          <td class="mdname1" valign="top" nowrap>          </td>
832          <td class="md" valign="top">&nbsp;)&nbsp;</td>
833          <td class="md" nowrap><code> [virtual]</code></td>
834        </tr>
835
836      </table>
837    </td>
838  </tr>
839</table>
840<table cellspacing=5 cellpadding=0 border=0>
841  <tr>
842    <td>
843      &nbsp;
844    </td>
845    <td>
846
847<p>
848Releases the lock on this buffer.
849<p>
850<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>
851<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>
852
853<p>
854Reimplemented 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>.
855<p>
856Definition 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>.
857<p>
858Referenced by <a class="el" href="OgreHardwareBuffer_8h-source.html#l00265">copyData()</a>.    </td>
859  </tr>
860</table>
861<a class="anchor" name="Ogre_1_1HardwareVertexBufferb1" doxytag="Ogre::HardwareBuffer::unlockImpl" ></a><p>
862<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
863  <tr>
864    <td class="mdRow">
865      <table cellpadding="0" cellspacing="0" border="0">
866        <tr>
867          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::unlockImpl </td>
868          <td class="md" valign="top">(&nbsp;</td>
869          <td class="md" nowrap valign="top">void&nbsp;</td>
870          <td class="mdname1" valign="top" nowrap>          </td>
871          <td class="md" valign="top">&nbsp;)&nbsp;</td>
872          <td class="md" nowrap><code> [protected, pure 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>
887Internal implementation of <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBuffera6">unlock()</a>.
888<p>
889
890<p>
891Implemented 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>
892  </tr>
893</table>
894<a class="anchor" name="Ogre_1_1HardwareVertexBuffera8" doxytag="Ogre::HardwareBuffer::writeData" ></a><p>
895<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
896  <tr>
897    <td class="mdRow">
898      <table cellpadding="0" cellspacing="0" border="0">
899        <tr>
900          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBuffer::writeData </td>
901          <td class="md" valign="top">(&nbsp;</td>
902          <td class="md" nowrap valign="top">size_t&nbsp;</td>
903          <td class="mdname" nowrap> <em>offset</em>, </td>
904        </tr>
905        <tr>
906          <td class="md" nowrap align="right"></td>
907          <td></td>
908          <td class="md" nowrap>size_t&nbsp;</td>
909          <td class="mdname" nowrap> <em>length</em>, </td>
910        </tr>
911        <tr>
912          <td class="md" nowrap align="right"></td>
913          <td></td>
914          <td class="md" nowrap>const void *&nbsp;</td>
915          <td class="mdname" nowrap> <em>pSource</em>, </td>
916        </tr>
917        <tr>
918          <td class="md" nowrap align="right"></td>
919          <td></td>
920          <td class="md" nowrap>bool&nbsp;</td>
921          <td class="mdname" nowrap> <em>discardWholeBuffer</em> = false</td>
922        </tr>
923        <tr>
924          <td></td>
925          <td class="md">)&nbsp;</td>
926          <td class="md" colspan="2"><code> [pure virtual]</code></td>
927        </tr>
928
929      </table>
930    </td>
931  </tr>
932</table>
933<table cellspacing=5 cellpadding=0 border=0>
934  <tr>
935    <td>
936      &nbsp;
937    </td>
938    <td>
939
940<p>
941Writes data to the buffer from an area of system memory; note that you must ensure that your buffer is big enough.
942<p>
943<dl compact><dt><b>Parameters:</b></dt><dd>
944  <table border="0" cellspacing="2" cellpadding="0">
945    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The byte offset from the start of the buffer to start writing </td></tr>
946    <tr><td valign=top><em>length</em>&nbsp;</td><td>The size of the data to write to, in bytes </td></tr>
947    <tr><td valign=top><em>pSource</em>&nbsp;</td><td>The source of the data to be written </td></tr>
948    <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>
949  </table>
950</dl>
951
952<p>
953Implemented 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>
954  </tr>
955</table>
956<hr><h2>Member Data Documentation</h2>
957<a class="anchor" name="Ogre_1_1HardwareVertexBufferp4" doxytag="Ogre::HardwareBuffer::mIsLocked" ></a><p>
958<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
959  <tr>
960    <td class="mdRow">
961      <table cellpadding="0" cellspacing="0" border="0">
962        <tr>
963          <td class="md" nowrap valign="top"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp4">Ogre::HardwareBuffer::mIsLocked</a><code> [protected]</code>
964      </table>
965    </td>
966  </tr>
967</table>
968<table cellspacing=5 cellpadding=0 border=0>
969  <tr>
970    <td>
971      &nbsp;
972    </td>
973    <td>
974
975<p>
976
977<p>
978Definition 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>
979  </tr>
980</table>
981<a class="anchor" name="Ogre_1_1HardwareVertexBufferp6" doxytag="Ogre::HardwareBuffer::mLockSize" ></a><p>
982<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
983  <tr>
984    <td class="mdRow">
985      <table cellpadding="0" cellspacing="0" border="0">
986        <tr>
987          <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]</code>
988      </table>
989    </td>
990  </tr>
991</table>
992<table cellspacing=5 cellpadding=0 border=0>
993  <tr>
994    <td>
995      &nbsp;
996    </td>
997    <td>
998
999<p>
1000
1001<p>
1002Definition 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>
1003  </tr>
1004</table>
1005<a class="anchor" name="Ogre_1_1HardwareVertexBufferp5" doxytag="Ogre::HardwareBuffer::mLockStart" ></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"> size_t <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp5">Ogre::HardwareBuffer::mLockStart</a><code> [protected]</code>
1012      </table>
1013    </td>
1014  </tr>
1015</table>
1016<table cellspacing=5 cellpadding=0 border=0>
1017  <tr>
1018    <td>
1019      &nbsp;
1020    </td>
1021    <td>
1022
1023<p>
1024
1025<p>
1026Definition 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>
1027  </tr>
1028</table>
1029<a class="anchor" name="Ogre_1_1HardwareVertexBufferp9" doxytag="Ogre::HardwareBuffer::mpShadowBuffer" ></a><p>
1030<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1031  <tr>
1032    <td class="mdRow">
1033      <table cellpadding="0" cellspacing="0" border="0">
1034        <tr>
1035          <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]</code>
1036      </table>
1037    </td>
1038  </tr>
1039</table>
1040<table cellspacing=5 cellpadding=0 border=0>
1041  <tr>
1042    <td>
1043      &nbsp;
1044    </td>
1045    <td>
1046
1047<p>
1048
1049<p>
1050Definition 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>
1051  </tr>
1052</table>
1053<a class="anchor" name="Ogre_1_1HardwareVertexBufferp10" doxytag="Ogre::HardwareBuffer::mShadowUpdated" ></a><p>
1054<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1055  <tr>
1056    <td class="mdRow">
1057      <table cellpadding="0" cellspacing="0" border="0">
1058        <tr>
1059          <td class="md" nowrap valign="top"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp10">Ogre::HardwareBuffer::mShadowUpdated</a><code> [protected]</code>
1060      </table>
1061    </td>
1062  </tr>
1063</table>
1064<table cellspacing=5 cellpadding=0 border=0>
1065  <tr>
1066    <td>
1067      &nbsp;
1068    </td>
1069    <td>
1070
1071<p>
1072
1073<p>
1074Definition 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>
1075  </tr>
1076</table>
1077<a class="anchor" name="Ogre_1_1HardwareVertexBufferp2" doxytag="Ogre::HardwareBuffer::mSizeInBytes" ></a><p>
1078<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1079  <tr>
1080    <td class="mdRow">
1081      <table cellpadding="0" cellspacing="0" border="0">
1082        <tr>
1083          <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]</code>
1084      </table>
1085    </td>
1086  </tr>
1087</table>
1088<table cellspacing=5 cellpadding=0 border=0>
1089  <tr>
1090    <td>
1091      &nbsp;
1092    </td>
1093    <td>
1094
1095<p>
1096
1097<p>
1098Definition 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>
1099  </tr>
1100</table>
1101<a class="anchor" name="Ogre_1_1HardwareVertexBufferp11" doxytag="Ogre::HardwareBuffer::mSuppressHardwareUpdate" ></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"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp11">Ogre::HardwareBuffer::mSuppressHardwareUpdate</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="OgreHardwareBuffer_8h-source.html#l00140">140</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1123  </tr>
1124</table>
1125<a class="anchor" name="Ogre_1_1HardwareVertexBufferp7" doxytag="Ogre::HardwareBuffer::mSystemMemory" ></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"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp7">Ogre::HardwareBuffer::mSystemMemory</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="OgreHardwareBuffer_8h-source.html#l00136">136</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1147  </tr>
1148</table>
1149<a class="anchor" name="Ogre_1_1HardwareVertexBufferp3" doxytag="Ogre::HardwareBuffer::mUsage" ></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"> <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]</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#l00132">132</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_1HardwareVertexBufferp8" doxytag="Ogre::HardwareBuffer::mUseShadowBuffer" ></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"> bool <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferp8">Ogre::HardwareBuffer::mUseShadowBuffer</a><code> [protected]</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#l00137">137</a> of file <a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a>.    </td>
1195  </tr>
1196</table>
1197<hr>The documentation for this class was generated from the following file:<ul>
1198<li><a class="el" href="OgreHardwareBuffer_8h-source.html">OgreHardwareBuffer.h</a></ul>
1199<hr>
1200<p>
1201Copyright &copy; 2000-2005 by The OGRE Team<br />
1202<!--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/>
1203This 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/>
1204                <!--/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#">
1205                <Work rdf:about="">
1206                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
1207        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
1208                </Work>
1209                <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> -->
1210
1211Last modified Sun Mar 12 14:39:09 2006
1212</p>
1213</body>
1214</html>
Note: See TracBrowser for help on using the repository browser.