source: OGRE/trunk/ogrenew/Docs/api/html/classOgre_1_1HardwareBufferManager.html @ 657

Revision 657, 75.5 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

Line 
1<html>
2<head>
3<title>Ogre::HardwareBufferManager 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::HardwareBufferManager Class Reference</h1>Abstract singleton class for managing hardware buffers, a concrete instance of this will be created by the <a class="el" href="classOgre_1_1RenderSystem.html">RenderSystem</a>. 
11<a href="#_details">More...</a>
12<p>
13<code>#include &lt;<a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>&gt;</code>
14<p>
15<p>Inheritance diagram for Ogre::HardwareBufferManager:
16<p><center><img src="classOgre_1_1HardwareBufferManager.png" usemap="#Ogre::HardwareBufferManager_map" border="0" alt=""></center>
17<map name="Ogre::HardwareBufferManager_map">
18<area href="classOgre_1_1Singleton.html" alt="Ogre::Singleton< HardwareBufferManager >" shape="rect" coords="412,0,677,24">
19<area href="classOgre_1_1D3D9HardwareBufferManager.html" alt="Ogre::D3D9HardwareBufferManager" shape="rect" coords="0,112,265,136">
20<area href="classOgre_1_1DefaultHardwareBufferManager.html" alt="Ogre::DefaultHardwareBufferManager" shape="rect" coords="275,112,540,136">
21<area href="classOgre_1_1GLDefaultHardwareBufferManager.html" alt="Ogre::GLDefaultHardwareBufferManager" shape="rect" coords="550,112,815,136">
22<area href="classOgre_1_1GLHardwareBufferManager.html" alt="Ogre::GLHardwareBufferManager" shape="rect" coords="825,112,1090,136">
23<area href="classOgre_1_1D3D7HardwareBufferManager.html" alt="Ogre::D3D7HardwareBufferManager" shape="rect" coords="275,168,540,192">
24</map>
25<a href="classOgre_1_1HardwareBufferManager-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0>
26<tr><td></td></tr>
27<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
28<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerw2">BufferLicenseType</a> { <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerw2Ogre_1_1HardwareBufferManagerw0">BLT_MANUAL_RELEASE</a>,
29<a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerw2Ogre_1_1HardwareBufferManagerw1">BLT_AUTOMATIC_RELEASE</a>
30 }</td></tr>
31
32<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
33<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera0">HardwareBufferManager</a> ()</td></tr>
34
35<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera1">~HardwareBufferManager</a> ()</td></tr>
36
37<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera2">createVertexBuffer</a> (size_t vertexSize, size_t numVerts, <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a> usage, bool useShadowBuffer=false)=0</td></tr>
38
39<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a hardware vertex buffer.  <a href="#Ogre_1_1HardwareBufferManagera2"></a><br><br></td></tr>
40<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1HardwareIndexBufferSharedPtr.html">HardwareIndexBufferSharedPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera3">createIndexBuffer</a> (<a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">HardwareIndexBuffer::IndexType</a> itype, size_t numIndexes, <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a> usage, bool useShadowBuffer=false)=0</td></tr>
41
42<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a hardware index buffer.  <a href="#Ogre_1_1HardwareBufferManagera3"></a><br><br></td></tr>
43<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera4">createVertexDeclaration</a> (void)</td></tr>
44
45<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a vertex declaration, may be overridden by certain rendering APIs.  <a href="#Ogre_1_1HardwareBufferManagera4"></a><br><br></td></tr>
46<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera5">destroyVertexDeclaration</a> (<a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> *decl)</td></tr>
47
48<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys a vertex declaration, may be overridden by certain rendering APIs.  <a href="#Ogre_1_1HardwareBufferManagera5"></a><br><br></td></tr>
49<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera6">createVertexBufferBinding</a> (void)</td></tr>
50
51<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>.  <a href="#Ogre_1_1HardwareBufferManagera6"></a><br><br></td></tr>
52<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera7">destroyVertexBufferBinding</a> (<a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a> *binding)</td></tr>
53
54<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroys a <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>.  <a href="#Ogre_1_1HardwareBufferManagera7"></a><br><br></td></tr>
55<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera8">registerVertexBufferSourceAndCopy</a> (const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;sourceBuffer, const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;copy)</td></tr>
56
57<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Registers a vertex buffer as a copy of another.  <a href="#Ogre_1_1HardwareBufferManagera8"></a><br><br></td></tr>
58<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera9">allocateVertexBufferCopy</a> (const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;sourceBuffer, <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerw2">BufferLicenseType</a> licenseType, <a class="el" href="classOgre_1_1HardwareBufferLicensee.html">HardwareBufferLicensee</a> *licensee, bool copyData=false)</td></tr>
59
60<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocates a copy of a given vertex buffer.  <a href="#Ogre_1_1HardwareBufferManagera9"></a><br><br></td></tr>
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_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera10">releaseVertexBufferCopy</a> (const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;bufferCopy)</td></tr>
62
63<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Manually release a vertex buffer copy for others to subsequently use.  <a href="#Ogre_1_1HardwareBufferManagera10"></a><br><br></td></tr>
64<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera11">_releaseBufferCopies</a> (void)</td></tr>
65
66<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal method for releasing all temporary buffers which have been allocated using BLT_AUTOMATIC_RELEASE; is called by OGRE.  <a href="#Ogre_1_1HardwareBufferManagera11"></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_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera12">_forceReleaseBufferCopies</a> (const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;sourceBuffer)</td></tr>
68
69<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal method that forces the release of copies of a given buffer.  <a href="#Ogre_1_1HardwareBufferManagera12"></a><br><br></td></tr>
70<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera13">_forceReleaseBufferCopies</a> (<a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> *sourceBuffer)</td></tr>
71
72<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Internal method that forces the release of copies of a given buffer.  <a href="#Ogre_1_1HardwareBufferManagera13"></a><br><br></td></tr>
73<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera14">_notifyVertexBufferDestroyed</a> (<a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> *buf)</td></tr>
74
75<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Notification that a hardware vertex buffer has been destroyed.  <a href="#Ogre_1_1HardwareBufferManagera14"></a><br><br></td></tr>
76<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagera15">_notifyIndexBufferDestroyed</a> (<a class="el" href="classOgre_1_1HardwareIndexBuffer.html">HardwareIndexBuffer</a> *buf)</td></tr>
77
78<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Notification that a hardware index buffer has been destroyed.  <a href="#Ogre_1_1HardwareBufferManagera15"></a><br><br></td></tr>
79<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
80<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagere0">getSingleton</a> (void)</td></tr>
81
82<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Override standard <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> retrieval.  <a href="#Ogre_1_1HardwareBufferManagere0"></a><br><br></td></tr>
83<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagere1">getSingletonPtr</a> (void)</td></tr>
84
85<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Override standard <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> retrieval.  <a href="#Ogre_1_1HardwareBufferManagere1"></a><br><br></td></tr>
86<tr><td colspan=2><br><h2>Protected Types</h2></td></tr>
87<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::list&lt; <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx0">VertexDeclarationList</a></td></tr>
88
89<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::list&lt; <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx1">VertexBufferBindingList</a></td></tr>
90
91<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx2">FreeTemporaryVertexBufferList</a></td></tr>
92
93<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of free temporary vertex buffers.  <a href="#Ogre_1_1HardwareBufferManagerx2"></a><br><br></td></tr>
94<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::map&lt; <a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> *,<br>
95 <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx2">FreeTemporaryVertexBufferList</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx3">FreeTemporaryVertexBufferMap</a></td></tr>
96
97<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map from original buffer to list of temporary buffers.  <a href="#Ogre_1_1HardwareBufferManagerx3"></a><br><br></td></tr>
98<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector&lt; <a class="el" href="classOgre_1_1HardwareBufferManager_1_1VertexBufferLicense.html">VertexBufferLicense</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx4">TemporaryVertexBufferLicenseList</a></td></tr>
99
100<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of currently licensed temp buffers.  <a href="#Ogre_1_1HardwareBufferManagerx4"></a><br><br></td></tr>
101<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::set&lt; <a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx5">VertexBufferList</a></td></tr>
102
103<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::set&lt; <a class="el" href="classOgre_1_1HardwareIndexBuffer.html">HardwareIndexBuffer</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx6">IndexBufferList</a></td></tr>
104
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_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerb0">destroyAllDeclarations</a> (void)</td></tr>
107
108<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerb1">destroyAllBindings</a> (void)</td></tr>
109
110<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerb2">makeBufferCopy</a> (const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;source, <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a> usage, bool useShadowBuffer)</td></tr>
111
112<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new buffer as a copy of the source, does not copy data.  <a href="#Ogre_1_1HardwareBufferManagerb2"></a><br><br></td></tr>
113<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
114<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx0">VertexDeclarationList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp0">mVertexDeclarations</a></td></tr>
115
116<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx1">VertexBufferBindingList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp1">mVertexBufferBindings</a></td></tr>
117
118<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx3">FreeTemporaryVertexBufferMap</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp2">mFreeTempVertexBufferMap</a></td></tr>
119
120<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Map of current available temp buffers.  <a href="#Ogre_1_1HardwareBufferManagerp2"></a><br><br></td></tr>
121<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx4">TemporaryVertexBufferLicenseList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp3">mTempVertexBufferLicenses</a></td></tr>
122
123<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of currently licensed temp buffers.  <a href="#Ogre_1_1HardwareBufferManagerp3"></a><br><br></td></tr>
124<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx5">VertexBufferList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp4">mVertexBuffers</a></td></tr>
125
126<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx6">IndexBufferList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp5">mIndexBuffers</a></td></tr>
127
128<tr><td colspan=2><br><h2>Static Protected Attributes</h2></td></tr>
129<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1Singleton.html#Ogre_1_1Singletont0">ms_Singleton</a></td></tr>
130
131<tr><td colspan=2><br><h2>Friends</h2></td></tr>
132<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagern0">HardwareVertexBufferSharedPtr</a></td></tr>
133
134<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagern1">HardwareIndexBufferSharedPtr</a></td></tr>
135
136</table>
137<hr><a name="_details"></a><h2>Detailed Description</h2>
138Abstract singleton class for managing hardware buffers, a concrete instance of this will be created by the <a class="el" href="classOgre_1_1RenderSystem.html">RenderSystem</a>.
139<p>
140
141<p>
142Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00086">86</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.<hr><h2>Member Typedef Documentation</h2>
143<a class="anchor" name="Ogre_1_1HardwareBufferManagerx2" doxytag="Ogre::HardwareBufferManager::FreeTemporaryVertexBufferList" ></a><p>
144<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
145  <tr>
146    <td class="mdRow">
147      <table cellpadding="0" cellspacing="0" border="0">
148        <tr>
149          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a>&gt; <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx2">Ogre::HardwareBufferManager::FreeTemporaryVertexBufferList</a><code> [protected]</code>
150      </table>
151    </td>
152  </tr>
153</table>
154<table cellspacing=5 cellpadding=0 border=0>
155  <tr>
156    <td>
157      &nbsp;
158    </td>
159    <td>
160
161<p>
162List of free temporary vertex buffers.
163<p>
164
165<p>
166Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00130">130</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
167  </tr>
168</table>
169<a class="anchor" name="Ogre_1_1HardwareBufferManagerx3" doxytag="Ogre::HardwareBufferManager::FreeTemporaryVertexBufferMap" ></a><p>
170<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
171  <tr>
172    <td class="mdRow">
173      <table cellpadding="0" cellspacing="0" border="0">
174        <tr>
175          <td class="md" nowrap valign="top"> typedef std::map&lt;<a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a>*, <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx2">FreeTemporaryVertexBufferList</a>*&gt; <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx3">Ogre::HardwareBufferManager::FreeTemporaryVertexBufferMap</a><code> [protected]</code>
176      </table>
177    </td>
178  </tr>
179</table>
180<table cellspacing=5 cellpadding=0 border=0>
181  <tr>
182    <td>
183      &nbsp;
184    </td>
185    <td>
186
187<p>
188Map from original buffer to list of temporary buffers.
189<p>
190
191<p>
192Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00132">132</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
193  </tr>
194</table>
195<a class="anchor" name="Ogre_1_1HardwareBufferManagerx6" doxytag="Ogre::HardwareBufferManager::IndexBufferList" ></a><p>
196<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
197  <tr>
198    <td class="mdRow">
199      <table cellpadding="0" cellspacing="0" border="0">
200        <tr>
201          <td class="md" nowrap valign="top"> typedef std::set&lt;<a class="el" href="classOgre_1_1HardwareIndexBuffer.html">HardwareIndexBuffer</a>*&gt; <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx6">Ogre::HardwareBufferManager::IndexBufferList</a><code> [protected]</code>
202      </table>
203    </td>
204  </tr>
205</table>
206<table cellspacing=5 cellpadding=0 border=0>
207  <tr>
208    <td>
209      &nbsp;
210    </td>
211    <td>
212
213<p>
214
215<p>
216Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00141">141</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
217  </tr>
218</table>
219<a class="anchor" name="Ogre_1_1HardwareBufferManagerx4" doxytag="Ogre::HardwareBufferManager::TemporaryVertexBufferLicenseList" ></a><p>
220<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
221  <tr>
222    <td class="mdRow">
223      <table cellpadding="0" cellspacing="0" border="0">
224        <tr>
225          <td class="md" nowrap valign="top"> typedef std::vector&lt;<a class="el" href="classOgre_1_1HardwareBufferManager_1_1VertexBufferLicense.html">VertexBufferLicense</a>&gt; <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx4">Ogre::HardwareBufferManager::TemporaryVertexBufferLicenseList</a><code> [protected]</code>
226      </table>
227    </td>
228  </tr>
229</table>
230<table cellspacing=5 cellpadding=0 border=0>
231  <tr>
232    <td>
233      &nbsp;
234    </td>
235    <td>
236
237<p>
238List of currently licensed temp buffers.
239<p>
240
241<p>
242Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00136">136</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
243  </tr>
244</table>
245<a class="anchor" name="Ogre_1_1HardwareBufferManagerx1" doxytag="Ogre::HardwareBufferManager::VertexBufferBindingList" ></a><p>
246<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
247  <tr>
248    <td class="mdRow">
249      <table cellpadding="0" cellspacing="0" border="0">
250        <tr>
251          <td class="md" nowrap valign="top"> typedef std::list&lt;<a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>*&gt; <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx1">Ogre::HardwareBufferManager::VertexBufferBindingList</a><code> [protected]</code>
252      </table>
253    </td>
254  </tr>
255</table>
256<table cellspacing=5 cellpadding=0 border=0>
257  <tr>
258    <td>
259      &nbsp;
260    </td>
261    <td>
262
263<p>
264
265<p>
266Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00092">92</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
267  </tr>
268</table>
269<a class="anchor" name="Ogre_1_1HardwareBufferManagerx5" doxytag="Ogre::HardwareBufferManager::VertexBufferList" ></a><p>
270<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
271  <tr>
272    <td class="mdRow">
273      <table cellpadding="0" cellspacing="0" border="0">
274        <tr>
275          <td class="md" nowrap valign="top"> typedef std::set&lt;<a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a>*&gt; <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx5">Ogre::HardwareBufferManager::VertexBufferList</a><code> [protected]</code>
276      </table>
277    </td>
278  </tr>
279</table>
280<table cellspacing=5 cellpadding=0 border=0>
281  <tr>
282    <td>
283      &nbsp;
284    </td>
285    <td>
286
287<p>
288
289<p>
290Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00140">140</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
291  </tr>
292</table>
293<a class="anchor" name="Ogre_1_1HardwareBufferManagerx0" doxytag="Ogre::HardwareBufferManager::VertexDeclarationList" ></a><p>
294<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
295  <tr>
296    <td class="mdRow">
297      <table cellpadding="0" cellspacing="0" border="0">
298        <tr>
299          <td class="md" nowrap valign="top"> typedef std::list&lt;<a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a>*&gt; <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx0">Ogre::HardwareBufferManager::VertexDeclarationList</a><code> [protected]</code>
300      </table>
301    </td>
302  </tr>
303</table>
304<table cellspacing=5 cellpadding=0 border=0>
305  <tr>
306    <td>
307      &nbsp;
308    </td>
309    <td>
310
311<p>
312
313<p>
314Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00091">91</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
315  </tr>
316</table>
317<hr><h2>Member Enumeration Documentation</h2>
318<a class="anchor" name="Ogre_1_1HardwareBufferManagerw2" doxytag="Ogre::HardwareBufferManager::BufferLicenseType" ></a><p>
319<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
320  <tr>
321    <td class="mdRow">
322      <table cellpadding="0" cellspacing="0" border="0">
323        <tr>
324          <td class="md" nowrap valign="top"> enum <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerw2">Ogre::HardwareBufferManager::BufferLicenseType</a>
325      </table>
326    </td>
327  </tr>
328</table>
329<table cellspacing=5 cellpadding=0 border=0>
330  <tr>
331    <td>
332      &nbsp;
333    </td>
334    <td>
335
336<p>
337<dl compact><dt><b>Enumeration values: </b></dt><dd>
338<table border=0 cellspacing=2 cellpadding=0>
339<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareBufferManagerw2Ogre_1_1HardwareBufferManagerw0" doxytag="BLT_MANUAL_RELEASE" ></a>BLT_MANUAL_RELEASE</em>&nbsp;</td><td>
340Licensee will only release buffer when it says so. </td></tr>
341<tr><td valign=top><em><a class="anchor" name="Ogre_1_1HardwareBufferManagerw2Ogre_1_1HardwareBufferManagerw1" doxytag="BLT_AUTOMATIC_RELEASE" ></a>BLT_AUTOMATIC_RELEASE</em>&nbsp;</td><td>
342Licensee can have license revoked. </td></tr>
343</table>
344</dl>
345
346<p>
347Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00103">103</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
348  </tr>
349</table>
350<hr><h2>Constructor &amp; Destructor Documentation</h2>
351<a class="anchor" name="Ogre_1_1HardwareBufferManagera0" doxytag="Ogre::HardwareBufferManager::HardwareBufferManager" ></a><p>
352<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
353  <tr>
354    <td class="mdRow">
355      <table cellpadding="0" cellspacing="0" border="0">
356        <tr>
357          <td class="md" nowrap valign="top"> Ogre::HardwareBufferManager::HardwareBufferManager </td>
358          <td class="md" valign="top">(&nbsp;</td>
359          <td class="mdname1" valign="top" nowrap>          </td>
360          <td class="md" valign="top">&nbsp;)&nbsp;</td>
361          <td class="md" nowrap></td>
362        </tr>
363
364      </table>
365    </td>
366  </tr>
367</table>
368<table cellspacing=5 cellpadding=0 border=0>
369  <tr>
370    <td>
371      &nbsp;
372    </td>
373    <td>
374
375<p>
376    </td>
377  </tr>
378</table>
379<a class="anchor" name="Ogre_1_1HardwareBufferManagera1" doxytag="Ogre::HardwareBufferManager::~HardwareBufferManager" ></a><p>
380<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
381  <tr>
382    <td class="mdRow">
383      <table cellpadding="0" cellspacing="0" border="0">
384        <tr>
385          <td class="md" nowrap valign="top"> virtual Ogre::HardwareBufferManager::~<a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a> </td>
386          <td class="md" valign="top">(&nbsp;</td>
387          <td class="mdname1" valign="top" nowrap>          </td>
388          <td class="md" valign="top">&nbsp;)&nbsp;</td>
389          <td class="md" nowrap><code> [virtual]</code></td>
390        </tr>
391
392      </table>
393    </td>
394  </tr>
395</table>
396<table cellspacing=5 cellpadding=0 border=0>
397  <tr>
398    <td>
399      &nbsp;
400    </td>
401    <td>
402
403<p>
404    </td>
405  </tr>
406</table>
407<hr><h2>Member Function Documentation</h2>
408<a class="anchor" name="Ogre_1_1HardwareBufferManagera13" doxytag="Ogre::HardwareBufferManager::_forceReleaseBufferCopies" ></a><p>
409<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
410  <tr>
411    <td class="mdRow">
412      <table cellpadding="0" cellspacing="0" border="0">
413        <tr>
414          <td class="md" nowrap valign="top"> void Ogre::HardwareBufferManager::_forceReleaseBufferCopies </td>
415          <td class="md" valign="top">(&nbsp;</td>
416          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> *&nbsp;</td>
417          <td class="mdname1" valign="top" nowrap> <em>sourceBuffer</em>          </td>
418          <td class="md" valign="top">&nbsp;)&nbsp;</td>
419          <td class="md" nowrap></td>
420        </tr>
421
422      </table>
423    </td>
424  </tr>
425</table>
426<table cellspacing=5 cellpadding=0 border=0>
427  <tr>
428    <td>
429      &nbsp;
430    </td>
431    <td>
432
433<p>
434Internal method that forces the release of copies of a given buffer.
435<p>
436<dl compact><dt><b>Remarks:</b></dt><dd>This usually means that the buffer which the copies are based on has been changed in some fundamental way, and the owner of the original wishes to make that known so that new copies will reflect the changes. </dd></dl>
437<dl compact><dt><b>Parameters:</b></dt><dd>
438  <table border="0" cellspacing="2" cellpadding="0">
439    <tr><td valign=top><em>sourceBuffer</em>&nbsp;</td><td>the source buffer as a pointer. Any buffer copies created from the source buffer are deleted. </td></tr>
440  </table>
441</dl>
442    </td>
443  </tr>
444</table>
445<a class="anchor" name="Ogre_1_1HardwareBufferManagera12" doxytag="Ogre::HardwareBufferManager::_forceReleaseBufferCopies" ></a><p>
446<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
447  <tr>
448    <td class="mdRow">
449      <table cellpadding="0" cellspacing="0" border="0">
450        <tr>
451          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::_forceReleaseBufferCopies </td>
452          <td class="md" valign="top">(&nbsp;</td>
453          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;&nbsp;</td>
454          <td class="mdname1" valign="top" nowrap> <em>sourceBuffer</em>          </td>
455          <td class="md" valign="top">&nbsp;)&nbsp;</td>
456          <td class="md" nowrap><code> [virtual]</code></td>
457        </tr>
458
459      </table>
460    </td>
461  </tr>
462</table>
463<table cellspacing=5 cellpadding=0 border=0>
464  <tr>
465    <td>
466      &nbsp;
467    </td>
468    <td>
469
470<p>
471Internal method that forces the release of copies of a given buffer.
472<p>
473<dl compact><dt><b>Remarks:</b></dt><dd>This usually means that the buffer which the copies are based on has been changed in some fundamental way, and the owner of the original wishes to make that known so that new copies will reflect the changes. </dd></dl>
474<dl compact><dt><b>Parameters:</b></dt><dd>
475  <table border="0" cellspacing="2" cellpadding="0">
476    <tr><td valign=top><em>sourceBuffer</em>&nbsp;</td><td>the source buffer as a shared pointer. Any buffer copies created from the source buffer are deleted. </td></tr>
477  </table>
478</dl>
479
480<p>
481Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00268">268</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.
482<p>
483References <a class="el" href="OgreSharedPtr_8h-source.html#l00094">Ogre::SharedPtr&lt; HardwareVertexBuffer &gt;::get()</a>.    </td>
484  </tr>
485</table>
486<a class="anchor" name="Ogre_1_1HardwareBufferManagera15" doxytag="Ogre::HardwareBufferManager::_notifyIndexBufferDestroyed" ></a><p>
487<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
488  <tr>
489    <td class="mdRow">
490      <table cellpadding="0" cellspacing="0" border="0">
491        <tr>
492          <td class="md" nowrap valign="top"> void Ogre::HardwareBufferManager::_notifyIndexBufferDestroyed </td>
493          <td class="md" valign="top">(&nbsp;</td>
494          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareIndexBuffer.html">HardwareIndexBuffer</a> *&nbsp;</td>
495          <td class="mdname1" valign="top" nowrap> <em>buf</em>          </td>
496          <td class="md" valign="top">&nbsp;)&nbsp;</td>
497          <td class="md" nowrap></td>
498        </tr>
499
500      </table>
501    </td>
502  </tr>
503</table>
504<table cellspacing=5 cellpadding=0 border=0>
505  <tr>
506    <td>
507      &nbsp;
508    </td>
509    <td>
510
511<p>
512Notification that a hardware index buffer has been destroyed.
513<p>
514    </td>
515  </tr>
516</table>
517<a class="anchor" name="Ogre_1_1HardwareBufferManagera14" doxytag="Ogre::HardwareBufferManager::_notifyVertexBufferDestroyed" ></a><p>
518<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
519  <tr>
520    <td class="mdRow">
521      <table cellpadding="0" cellspacing="0" border="0">
522        <tr>
523          <td class="md" nowrap valign="top"> void Ogre::HardwareBufferManager::_notifyVertexBufferDestroyed </td>
524          <td class="md" valign="top">(&nbsp;</td>
525          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareVertexBuffer.html">HardwareVertexBuffer</a> *&nbsp;</td>
526          <td class="mdname1" valign="top" nowrap> <em>buf</em>          </td>
527          <td class="md" valign="top">&nbsp;)&nbsp;</td>
528          <td class="md" nowrap></td>
529        </tr>
530
531      </table>
532    </td>
533  </tr>
534</table>
535<table cellspacing=5 cellpadding=0 border=0>
536  <tr>
537    <td>
538      &nbsp;
539    </td>
540    <td>
541
542<p>
543Notification that a hardware vertex buffer has been destroyed.
544<p>
545    </td>
546  </tr>
547</table>
548<a class="anchor" name="Ogre_1_1HardwareBufferManagera11" doxytag="Ogre::HardwareBufferManager::_releaseBufferCopies" ></a><p>
549<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
550  <tr>
551    <td class="mdRow">
552      <table cellpadding="0" cellspacing="0" border="0">
553        <tr>
554          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::_releaseBufferCopies </td>
555          <td class="md" valign="top">(&nbsp;</td>
556          <td class="md" nowrap valign="top">void&nbsp;</td>
557          <td class="mdname1" valign="top" nowrap>          </td>
558          <td class="md" valign="top">&nbsp;)&nbsp;</td>
559          <td class="md" nowrap><code> [virtual]</code></td>
560        </tr>
561
562      </table>
563    </td>
564  </tr>
565</table>
566<table cellspacing=5 cellpadding=0 border=0>
567  <tr>
568    <td>
569      &nbsp;
570    </td>
571    <td>
572
573<p>
574Internal method for releasing all temporary buffers which have been allocated using BLT_AUTOMATIC_RELEASE; is called by OGRE.
575<p>
576    </td>
577  </tr>
578</table>
579<a class="anchor" name="Ogre_1_1HardwareBufferManagera9" doxytag="Ogre::HardwareBufferManager::allocateVertexBufferCopy" ></a><p>
580<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
581  <tr>
582    <td class="mdRow">
583      <table cellpadding="0" cellspacing="0" border="0">
584        <tr>
585          <td class="md" nowrap valign="top"> virtual <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> Ogre::HardwareBufferManager::allocateVertexBufferCopy </td>
586          <td class="md" valign="top">(&nbsp;</td>
587          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;&nbsp;</td>
588          <td class="mdname" nowrap> <em>sourceBuffer</em>, </td>
589        </tr>
590        <tr>
591          <td class="md" nowrap align="right"></td>
592          <td></td>
593          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerw2">BufferLicenseType</a>&nbsp;</td>
594          <td class="mdname" nowrap> <em>licenseType</em>, </td>
595        </tr>
596        <tr>
597          <td class="md" nowrap align="right"></td>
598          <td></td>
599          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBufferLicensee.html">HardwareBufferLicensee</a> *&nbsp;</td>
600          <td class="mdname" nowrap> <em>licensee</em>, </td>
601        </tr>
602        <tr>
603          <td class="md" nowrap align="right"></td>
604          <td></td>
605          <td class="md" nowrap>bool&nbsp;</td>
606          <td class="mdname" nowrap> <em>copyData</em> = false</td>
607        </tr>
608        <tr>
609          <td></td>
610          <td class="md">)&nbsp;</td>
611          <td class="md" colspan="2"><code> [virtual]</code></td>
612        </tr>
613
614      </table>
615    </td>
616  </tr>
617</table>
618<table cellspacing=5 cellpadding=0 border=0>
619  <tr>
620    <td>
621      &nbsp;
622    </td>
623    <td>
624
625<p>
626Allocates a copy of a given vertex buffer.
627<p>
628<dl compact><dt><b>Remarks:</b></dt><dd>This method allocates a temporary copy of an existing vertex buffer. This buffer is subsequently stored and can be made available for other purposes later without incurring the cost of construction / destruction. </dd></dl>
629<dl compact><dt><b>Parameters:</b></dt><dd>
630  <table border="0" cellspacing="2" cellpadding="0">
631    <tr><td valign=top><em>sourceBuffer</em>&nbsp;</td><td>The source buffer to use as a copy </td></tr>
632    <tr><td valign=top><em>licenseType</em>&nbsp;</td><td>The type of license required on this buffer - automatic release causes this class to release licenses every frame so that they can be reallocated anew. </td></tr>
633    <tr><td valign=top><em>licensee</em>&nbsp;</td><td>Pointer back to the class requesting the copy, which must implement HardwareBufferLicense in order to be notified when the license expires. </td></tr>
634    <tr><td valign=top><em>copyData</em>&nbsp;</td><td>If true, the current data is copied as well as the structure of the buffer </td></tr>
635  </table>
636</dl>
637    </td>
638  </tr>
639</table>
640<a class="anchor" name="Ogre_1_1HardwareBufferManagera3" doxytag="Ogre::HardwareBufferManager::createIndexBuffer" ></a><p>
641<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
642  <tr>
643    <td class="mdRow">
644      <table cellpadding="0" cellspacing="0" border="0">
645        <tr>
646          <td class="md" nowrap valign="top"> virtual <a class="el" href="classOgre_1_1HardwareIndexBufferSharedPtr.html">HardwareIndexBufferSharedPtr</a> Ogre::HardwareBufferManager::createIndexBuffer </td>
647          <td class="md" valign="top">(&nbsp;</td>
648          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1HardwareIndexBuffer.html#Ogre_1_1HardwareIndexBufferw2">HardwareIndexBuffer::IndexType</a>&nbsp;</td>
649          <td class="mdname" nowrap> <em>itype</em>, </td>
650        </tr>
651        <tr>
652          <td class="md" nowrap align="right"></td>
653          <td></td>
654          <td class="md" nowrap>size_t&nbsp;</td>
655          <td class="mdname" nowrap> <em>numIndexes</em>, </td>
656        </tr>
657        <tr>
658          <td class="md" nowrap align="right"></td>
659          <td></td>
660          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a>&nbsp;</td>
661          <td class="mdname" nowrap> <em>usage</em>, </td>
662        </tr>
663        <tr>
664          <td class="md" nowrap align="right"></td>
665          <td></td>
666          <td class="md" nowrap>bool&nbsp;</td>
667          <td class="mdname" nowrap> <em>useShadowBuffer</em> = false</td>
668        </tr>
669        <tr>
670          <td></td>
671          <td class="md">)&nbsp;</td>
672          <td class="md" colspan="2"><code> [pure virtual]</code></td>
673        </tr>
674
675      </table>
676    </td>
677  </tr>
678</table>
679<table cellspacing=5 cellpadding=0 border=0>
680  <tr>
681    <td>
682      &nbsp;
683    </td>
684    <td>
685
686<p>
687Create a hardware index buffer.
688<p>
689<dl compact><dt><b>Remarks:</b></dt><dd>Note that because buffers can be shared, they are reference counted so you do not need to worry about destroying themm this will be done automatically. </dd></dl>
690<dl compact><dt><b>Parameters:</b></dt><dd>
691  <table border="0" cellspacing="2" cellpadding="0">
692    <tr><td valign=top><em>itype</em>&nbsp;</td><td>The type in index, either 16- or 32-bit, depending on how many vertices you need to be able to address </td></tr>
693    <tr><td valign=top><em>numIndexes</em>&nbsp;</td><td>The number of indexes in the buffer </td></tr>
694    <tr><td valign=top><em>usage</em>&nbsp;</td><td>One or more members of the <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a> enumeration. </td></tr>
695    <tr><td valign=top><em>useShadowBuffer</em>&nbsp;</td><td>If set to true, this buffer will be 'shadowed' by one stored in system memory rather than GPU or AGP memory. You should set this flag if you intend to read data back from the index buffer, because reading data from a buffer in the GPU or AGP memory is very expensive, and is in fact impossible if you specify HBU_WRITE_ONLY for the main buffer. If you use this option, all reads and writes will be done to the shadow buffer, and the shadow buffer will be synchronised with the real buffer at an appropriate time. </td></tr>
696  </table>
697</dl>
698
699<p>
700Implemented in <a class="el" href="classOgre_1_1DefaultHardwareBufferManager.html#Ogre_1_1DefaultHardwareBufferManagera3">Ogre::DefaultHardwareBufferManager</a>, <a class="el" href="classOgre_1_1D3D7HardwareBufferManager.html#Ogre_1_1D3D7HardwareBufferManagera2">Ogre::D3D7HardwareBufferManager</a>, <a class="el" href="classOgre_1_1D3D9HardwareBufferManager.html#Ogre_1_1D3D9HardwareBufferManagera3">Ogre::D3D9HardwareBufferManager</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareBufferManager.html#Ogre_1_1GLDefaultHardwareBufferManagera3">Ogre::GLDefaultHardwareBufferManager</a>, and <a class="el" href="classOgre_1_1GLHardwareBufferManager.html#Ogre_1_1GLHardwareBufferManagera3">Ogre::GLHardwareBufferManager</a>.    </td>
701  </tr>
702</table>
703<a class="anchor" name="Ogre_1_1HardwareBufferManagera2" doxytag="Ogre::HardwareBufferManager::createVertexBuffer" ></a><p>
704<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
705  <tr>
706    <td class="mdRow">
707      <table cellpadding="0" cellspacing="0" border="0">
708        <tr>
709          <td class="md" nowrap valign="top"> virtual <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> Ogre::HardwareBufferManager::createVertexBuffer </td>
710          <td class="md" valign="top">(&nbsp;</td>
711          <td class="md" nowrap valign="top">size_t&nbsp;</td>
712          <td class="mdname" nowrap> <em>vertexSize</em>, </td>
713        </tr>
714        <tr>
715          <td class="md" nowrap align="right"></td>
716          <td></td>
717          <td class="md" nowrap>size_t&nbsp;</td>
718          <td class="mdname" nowrap> <em>numVerts</em>, </td>
719        </tr>
720        <tr>
721          <td class="md" nowrap align="right"></td>
722          <td></td>
723          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a>&nbsp;</td>
724          <td class="mdname" nowrap> <em>usage</em>, </td>
725        </tr>
726        <tr>
727          <td class="md" nowrap align="right"></td>
728          <td></td>
729          <td class="md" nowrap>bool&nbsp;</td>
730          <td class="mdname" nowrap> <em>useShadowBuffer</em> = false</td>
731        </tr>
732        <tr>
733          <td></td>
734          <td class="md">)&nbsp;</td>
735          <td class="md" colspan="2"><code> [pure virtual]</code></td>
736        </tr>
737
738      </table>
739    </td>
740  </tr>
741</table>
742<table cellspacing=5 cellpadding=0 border=0>
743  <tr>
744    <td>
745      &nbsp;
746    </td>
747    <td>
748
749<p>
750Create a hardware vertex buffer.
751<p>
752<dl compact><dt><b>Remarks:</b></dt><dd>This method creates a new vertex buffer; this will act as a source of geometry data for rendering objects. Note that because the meaning of the contents of the vertex buffer depends on the usage, this method does not specify a vertex format; the user of this buffer can actually insert whatever data they wish, in any format. However, in order to use this with a <a class="el" href="classOgre_1_1RenderOperation.html">RenderOperation</a>, the data in this vertex buffer will have to be associated with a semantic element of the rendering pipeline, e.g. a position, or texture coordinates. This is done using the <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> class, which itself contains <a class="el" href="classOgre_1_1VertexElement.html">VertexElement</a> structures referring to the source data. <p>
753Note that because vertex buffers can be shared, they are reference counted so you do not need to worry about destroying themm this will be done automatically. </dd></dl>
754<dl compact><dt><b>Parameters:</b></dt><dd>
755  <table border="0" cellspacing="2" cellpadding="0">
756    <tr><td valign=top><em>vertexSize</em>&nbsp;</td><td>The size in bytes of each vertex in this buffer; you must calculate this based on the kind of data you expect to populate this buffer with. </td></tr>
757    <tr><td valign=top><em>numVerts</em>&nbsp;</td><td>The number of vertices in this buffer. </td></tr>
758    <tr><td valign=top><em>usage</em>&nbsp;</td><td>One or more members of the <a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a> enumeration; you are strongly advised to use HBU_STATIC_WRITE_ONLY wherever possible, if you need to update regularly, consider HBU_DYNAMIC_WRITE_ONLY and useShadowBuffer=true. </td></tr>
759    <tr><td valign=top><em>useShadowBuffer</em>&nbsp;</td><td>If set to true, this buffer will be 'shadowed' by one stored in system memory rather than GPU or AGP memory. You should set this flag if you intend to read data back from the vertex buffer, because reading data from a buffer in the GPU or AGP memory is very expensive, and is in fact impossible if you specify HBU_WRITE_ONLY for the main buffer. If you use this option, all reads and writes will be done to the shadow buffer, and the shadow buffer will be synchronised with the real buffer at an appropriate time. </td></tr>
760  </table>
761</dl>
762
763<p>
764Implemented in <a class="el" href="classOgre_1_1DefaultHardwareBufferManager.html#Ogre_1_1DefaultHardwareBufferManagera2">Ogre::DefaultHardwareBufferManager</a>, <a class="el" href="classOgre_1_1D3D9HardwareBufferManager.html#Ogre_1_1D3D9HardwareBufferManagera2">Ogre::D3D9HardwareBufferManager</a>, <a class="el" href="classOgre_1_1GLDefaultHardwareBufferManager.html#Ogre_1_1GLDefaultHardwareBufferManagera2">Ogre::GLDefaultHardwareBufferManager</a>, and <a class="el" href="classOgre_1_1GLHardwareBufferManager.html#Ogre_1_1GLHardwareBufferManagera2">Ogre::GLHardwareBufferManager</a>.    </td>
765  </tr>
766</table>
767<a class="anchor" name="Ogre_1_1HardwareBufferManagera6" doxytag="Ogre::HardwareBufferManager::createVertexBufferBinding" ></a><p>
768<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
769  <tr>
770    <td class="mdRow">
771      <table cellpadding="0" cellspacing="0" border="0">
772        <tr>
773          <td class="md" nowrap valign="top"> virtual <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>* Ogre::HardwareBufferManager::createVertexBufferBinding </td>
774          <td class="md" valign="top">(&nbsp;</td>
775          <td class="md" nowrap valign="top">void&nbsp;</td>
776          <td class="mdname1" valign="top" nowrap>          </td>
777          <td class="md" valign="top">&nbsp;)&nbsp;</td>
778          <td class="md" nowrap><code> [virtual]</code></td>
779        </tr>
780
781      </table>
782    </td>
783  </tr>
784</table>
785<table cellspacing=5 cellpadding=0 border=0>
786  <tr>
787    <td>
788      &nbsp;
789    </td>
790    <td>
791
792<p>
793Creates a new <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>.
794<p>
795    </td>
796  </tr>
797</table>
798<a class="anchor" name="Ogre_1_1HardwareBufferManagera4" doxytag="Ogre::HardwareBufferManager::createVertexDeclaration" ></a><p>
799<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
800  <tr>
801    <td class="mdRow">
802      <table cellpadding="0" cellspacing="0" border="0">
803        <tr>
804          <td class="md" nowrap valign="top"> virtual <a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a>* Ogre::HardwareBufferManager::createVertexDeclaration </td>
805          <td class="md" valign="top">(&nbsp;</td>
806          <td class="md" nowrap valign="top">void&nbsp;</td>
807          <td class="mdname1" valign="top" nowrap>          </td>
808          <td class="md" valign="top">&nbsp;)&nbsp;</td>
809          <td class="md" nowrap><code> [virtual]</code></td>
810        </tr>
811
812      </table>
813    </td>
814  </tr>
815</table>
816<table cellspacing=5 cellpadding=0 border=0>
817  <tr>
818    <td>
819      &nbsp;
820    </td>
821    <td>
822
823<p>
824Creates a vertex declaration, may be overridden by certain rendering APIs.
825<p>
826
827<p>
828Reimplemented in <a class="el" href="classOgre_1_1D3D9HardwareBufferManager.html#Ogre_1_1D3D9HardwareBufferManagera4">Ogre::D3D9HardwareBufferManager</a>, and <a class="el" href="classOgre_1_1GLHardwareBufferManager.html#Ogre_1_1GLHardwareBufferManagera4">Ogre::GLHardwareBufferManager</a>.    </td>
829  </tr>
830</table>
831<a class="anchor" name="Ogre_1_1HardwareBufferManagerb1" doxytag="Ogre::HardwareBufferManager::destroyAllBindings" ></a><p>
832<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
833  <tr>
834    <td class="mdRow">
835      <table cellpadding="0" cellspacing="0" border="0">
836        <tr>
837          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::destroyAllBindings </td>
838          <td class="md" valign="top">(&nbsp;</td>
839          <td class="md" nowrap valign="top">void&nbsp;</td>
840          <td class="mdname1" valign="top" nowrap>          </td>
841          <td class="md" valign="top">&nbsp;)&nbsp;</td>
842          <td class="md" nowrap><code> [protected, virtual]</code></td>
843        </tr>
844
845      </table>
846    </td>
847  </tr>
848</table>
849<table cellspacing=5 cellpadding=0 border=0>
850  <tr>
851    <td>
852      &nbsp;
853    </td>
854    <td>
855
856<p>
857    </td>
858  </tr>
859</table>
860<a class="anchor" name="Ogre_1_1HardwareBufferManagerb0" doxytag="Ogre::HardwareBufferManager::destroyAllDeclarations" ></a><p>
861<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
862  <tr>
863    <td class="mdRow">
864      <table cellpadding="0" cellspacing="0" border="0">
865        <tr>
866          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::destroyAllDeclarations </td>
867          <td class="md" valign="top">(&nbsp;</td>
868          <td class="md" nowrap valign="top">void&nbsp;</td>
869          <td class="mdname1" valign="top" nowrap>          </td>
870          <td class="md" valign="top">&nbsp;)&nbsp;</td>
871          <td class="md" nowrap><code> [protected, virtual]</code></td>
872        </tr>
873
874      </table>
875    </td>
876  </tr>
877</table>
878<table cellspacing=5 cellpadding=0 border=0>
879  <tr>
880    <td>
881      &nbsp;
882    </td>
883    <td>
884
885<p>
886
887<p>
888Reimplemented in <a class="el" href="classOgre_1_1D3D9HardwareBufferManager.html#Ogre_1_1D3D9HardwareBufferManagerb0">Ogre::D3D9HardwareBufferManager</a>.    </td>
889  </tr>
890</table>
891<a class="anchor" name="Ogre_1_1HardwareBufferManagera7" doxytag="Ogre::HardwareBufferManager::destroyVertexBufferBinding" ></a><p>
892<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
893  <tr>
894    <td class="mdRow">
895      <table cellpadding="0" cellspacing="0" border="0">
896        <tr>
897          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::destroyVertexBufferBinding </td>
898          <td class="md" valign="top">(&nbsp;</td>
899          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a> *&nbsp;</td>
900          <td class="mdname1" valign="top" nowrap> <em>binding</em>          </td>
901          <td class="md" valign="top">&nbsp;)&nbsp;</td>
902          <td class="md" nowrap><code> [virtual]</code></td>
903        </tr>
904
905      </table>
906    </td>
907  </tr>
908</table>
909<table cellspacing=5 cellpadding=0 border=0>
910  <tr>
911    <td>
912      &nbsp;
913    </td>
914    <td>
915
916<p>
917Destroys a <a class="el" href="classOgre_1_1VertexBufferBinding.html">VertexBufferBinding</a>.
918<p>
919    </td>
920  </tr>
921</table>
922<a class="anchor" name="Ogre_1_1HardwareBufferManagera5" doxytag="Ogre::HardwareBufferManager::destroyVertexDeclaration" ></a><p>
923<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
924  <tr>
925    <td class="mdRow">
926      <table cellpadding="0" cellspacing="0" border="0">
927        <tr>
928          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::destroyVertexDeclaration </td>
929          <td class="md" valign="top">(&nbsp;</td>
930          <td class="md" nowrap valign="top"><a class="el" href="classOgre_1_1VertexDeclaration.html">VertexDeclaration</a> *&nbsp;</td>
931          <td class="mdname1" valign="top" nowrap> <em>decl</em>          </td>
932          <td class="md" valign="top">&nbsp;)&nbsp;</td>
933          <td class="md" nowrap><code> [virtual]</code></td>
934        </tr>
935
936      </table>
937    </td>
938  </tr>
939</table>
940<table cellspacing=5 cellpadding=0 border=0>
941  <tr>
942    <td>
943      &nbsp;
944    </td>
945    <td>
946
947<p>
948Destroys a vertex declaration, may be overridden by certain rendering APIs.
949<p>
950
951<p>
952Reimplemented in <a class="el" href="classOgre_1_1D3D9HardwareBufferManager.html#Ogre_1_1D3D9HardwareBufferManagera5">Ogre::D3D9HardwareBufferManager</a>, and <a class="el" href="classOgre_1_1GLHardwareBufferManager.html#Ogre_1_1GLHardwareBufferManagera5">Ogre::GLHardwareBufferManager</a>.    </td>
953  </tr>
954</table>
955<a class="anchor" name="Ogre_1_1HardwareBufferManagere0" doxytag="Ogre::HardwareBufferManager::getSingleton" ></a><p>
956<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
957  <tr>
958    <td class="mdRow">
959      <table cellpadding="0" cellspacing="0" border="0">
960        <tr>
961          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>&amp; Ogre::HardwareBufferManager::getSingleton </td>
962          <td class="md" valign="top">(&nbsp;</td>
963          <td class="md" nowrap valign="top">void&nbsp;</td>
964          <td class="mdname1" valign="top" nowrap>          </td>
965          <td class="md" valign="top">&nbsp;)&nbsp;</td>
966          <td class="md" nowrap><code> [static]</code></td>
967        </tr>
968
969      </table>
970    </td>
971  </tr>
972</table>
973<table cellspacing=5 cellpadding=0 border=0>
974  <tr>
975    <td>
976      &nbsp;
977    </td>
978    <td>
979
980<p>
981Override standard <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> retrieval.
982<p>
983<dl compact><dt><b>Remarks:</b></dt><dd>Why do we do this? Well, it's because the <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> implementation is in a .h file, which means it gets compiled into anybody who includes it. This is needed for the <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> template to work, but we actually only want it compiled into the implementation of the class based on the <a class="el" href="classOgre_1_1Singleton.html">Singleton</a>, not all of them. If we don't change this, we get link errors when trying to use the Singleton-based class from an outside dll. </dd></dl>
984<dl compact><dt><b></b></dt><dd>This method just delegates to the template version anyway, but the implementation stays in this single compilation unit, preventing link errors. </dd></dl>
985
986<p>
987Reimplemented from <a class="el" href="classOgre_1_1Singleton.html#Ogre_1_1Singletone0">Ogre::Singleton&lt; HardwareBufferManager &gt;</a>.    </td>
988  </tr>
989</table>
990<a class="anchor" name="Ogre_1_1HardwareBufferManagere1" doxytag="Ogre::HardwareBufferManager::getSingletonPtr" ></a><p>
991<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
992  <tr>
993    <td class="mdRow">
994      <table cellpadding="0" cellspacing="0" border="0">
995        <tr>
996          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>* Ogre::HardwareBufferManager::getSingletonPtr </td>
997          <td class="md" valign="top">(&nbsp;</td>
998          <td class="md" nowrap valign="top">void&nbsp;</td>
999          <td class="mdname1" valign="top" nowrap>          </td>
1000          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1001          <td class="md" nowrap><code> [static]</code></td>
1002        </tr>
1003
1004      </table>
1005    </td>
1006  </tr>
1007</table>
1008<table cellspacing=5 cellpadding=0 border=0>
1009  <tr>
1010    <td>
1011      &nbsp;
1012    </td>
1013    <td>
1014
1015<p>
1016Override standard <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> retrieval.
1017<p>
1018<dl compact><dt><b>Remarks:</b></dt><dd>Why do we do this? Well, it's because the <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> implementation is in a .h file, which means it gets compiled into anybody who includes it. This is needed for the <a class="el" href="classOgre_1_1Singleton.html">Singleton</a> template to work, but we actually only want it compiled into the implementation of the class based on the <a class="el" href="classOgre_1_1Singleton.html">Singleton</a>, not all of them. If we don't change this, we get link errors when trying to use the Singleton-based class from an outside dll. </dd></dl>
1019<dl compact><dt><b></b></dt><dd>This method just delegates to the template version anyway, but the implementation stays in this single compilation unit, preventing link errors. </dd></dl>
1020
1021<p>
1022Reimplemented from <a class="el" href="classOgre_1_1Singleton.html#Ogre_1_1Singletone1">Ogre::Singleton&lt; HardwareBufferManager &gt;</a>.    </td>
1023  </tr>
1024</table>
1025<a class="anchor" name="Ogre_1_1HardwareBufferManagerb2" doxytag="Ogre::HardwareBufferManager::makeBufferCopy" ></a><p>
1026<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1027  <tr>
1028    <td class="mdRow">
1029      <table cellpadding="0" cellspacing="0" border="0">
1030        <tr>
1031          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> Ogre::HardwareBufferManager::makeBufferCopy </td>
1032          <td class="md" valign="top">(&nbsp;</td>
1033          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;&nbsp;</td>
1034          <td class="mdname" nowrap> <em>source</em>, </td>
1035        </tr>
1036        <tr>
1037          <td class="md" nowrap align="right"></td>
1038          <td></td>
1039          <td class="md" nowrap><a class="el" href="classOgre_1_1HardwareBuffer.html#Ogre_1_1HardwareVertexBufferw11">HardwareBuffer::Usage</a>&nbsp;</td>
1040          <td class="mdname" nowrap> <em>usage</em>, </td>
1041        </tr>
1042        <tr>
1043          <td class="md" nowrap align="right"></td>
1044          <td></td>
1045          <td class="md" nowrap>bool&nbsp;</td>
1046          <td class="mdname" nowrap> <em>useShadowBuffer</em></td>
1047        </tr>
1048        <tr>
1049          <td></td>
1050          <td class="md">)&nbsp;</td>
1051          <td class="md" colspan="2"><code> [protected]</code></td>
1052        </tr>
1053
1054      </table>
1055    </td>
1056  </tr>
1057</table>
1058<table cellspacing=5 cellpadding=0 border=0>
1059  <tr>
1060    <td>
1061      &nbsp;
1062    </td>
1063    <td>
1064
1065<p>
1066Creates a new buffer as a copy of the source, does not copy data.
1067<p>
1068    </td>
1069  </tr>
1070</table>
1071<a class="anchor" name="Ogre_1_1HardwareBufferManagera8" doxytag="Ogre::HardwareBufferManager::registerVertexBufferSourceAndCopy" ></a><p>
1072<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1073  <tr>
1074    <td class="mdRow">
1075      <table cellpadding="0" cellspacing="0" border="0">
1076        <tr>
1077          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::registerVertexBufferSourceAndCopy </td>
1078          <td class="md" valign="top">(&nbsp;</td>
1079          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;&nbsp;</td>
1080          <td class="mdname" nowrap> <em>sourceBuffer</em>, </td>
1081        </tr>
1082        <tr>
1083          <td class="md" nowrap align="right"></td>
1084          <td></td>
1085          <td class="md" nowrap>const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;&nbsp;</td>
1086          <td class="mdname" nowrap> <em>copy</em></td>
1087        </tr>
1088        <tr>
1089          <td></td>
1090          <td class="md">)&nbsp;</td>
1091          <td class="md" colspan="2"><code> [virtual]</code></td>
1092        </tr>
1093
1094      </table>
1095    </td>
1096  </tr>
1097</table>
1098<table cellspacing=5 cellpadding=0 border=0>
1099  <tr>
1100    <td>
1101      &nbsp;
1102    </td>
1103    <td>
1104
1105<p>
1106Registers a vertex buffer as a copy of another.
1107<p>
1108<dl compact><dt><b>Remarks:</b></dt><dd>This is useful for registering an existing buffer as a temporary buffer which can be allocated just like a copy.</dd></dl>
1109    </td>
1110  </tr>
1111</table>
1112<a class="anchor" name="Ogre_1_1HardwareBufferManagera10" doxytag="Ogre::HardwareBufferManager::releaseVertexBufferCopy" ></a><p>
1113<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1114  <tr>
1115    <td class="mdRow">
1116      <table cellpadding="0" cellspacing="0" border="0">
1117        <tr>
1118          <td class="md" nowrap valign="top"> virtual void Ogre::HardwareBufferManager::releaseVertexBufferCopy </td>
1119          <td class="md" valign="top">(&nbsp;</td>
1120          <td class="md" nowrap valign="top">const <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a> &amp;&nbsp;</td>
1121          <td class="mdname1" valign="top" nowrap> <em>bufferCopy</em>          </td>
1122          <td class="md" valign="top">&nbsp;)&nbsp;</td>
1123          <td class="md" nowrap><code> [virtual]</code></td>
1124        </tr>
1125
1126      </table>
1127    </td>
1128  </tr>
1129</table>
1130<table cellspacing=5 cellpadding=0 border=0>
1131  <tr>
1132    <td>
1133      &nbsp;
1134    </td>
1135    <td>
1136
1137<p>
1138Manually release a vertex buffer copy for others to subsequently use.
1139<p>
1140<dl compact><dt><b>Remarks:</b></dt><dd>Only required if the original call to allocateVertexBufferCopy included a licenseType of BLT_MANUAL_RELEASE. </dd></dl>
1141<dl compact><dt><b>Parameters:</b></dt><dd>
1142  <table border="0" cellspacing="2" cellpadding="0">
1143    <tr><td valign=top><em>bufferCopy</em>&nbsp;</td><td>The buffer copy. The caller is expected to delete or at least no longer use this reference, since another user may well begin to modify the contents of the buffer. </td></tr>
1144  </table>
1145</dl>
1146    </td>
1147  </tr>
1148</table>
1149<hr><h2>Friends And Related Function Documentation</h2>
1150<a class="anchor" name="Ogre_1_1HardwareBufferManagern1" doxytag="Ogre::HardwareBufferManager::HardwareIndexBufferSharedPtr" ></a><p>
1151<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1152  <tr>
1153    <td class="mdRow">
1154      <table cellpadding="0" cellspacing="0" border="0">
1155        <tr>
1156          <td class="md" nowrap valign="top"> friend class <a class="el" href="classOgre_1_1HardwareIndexBufferSharedPtr.html">HardwareIndexBufferSharedPtr</a><code> [friend]</code>
1157      </table>
1158    </td>
1159  </tr>
1160</table>
1161<table cellspacing=5 cellpadding=0 border=0>
1162  <tr>
1163    <td>
1164      &nbsp;
1165    </td>
1166    <td>
1167
1168<p>
1169
1170<p>
1171Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00089">89</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1172  </tr>
1173</table>
1174<a class="anchor" name="Ogre_1_1HardwareBufferManagern0" doxytag="Ogre::HardwareBufferManager::HardwareVertexBufferSharedPtr" ></a><p>
1175<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1176  <tr>
1177    <td class="mdRow">
1178      <table cellpadding="0" cellspacing="0" border="0">
1179        <tr>
1180          <td class="md" nowrap valign="top"> friend class <a class="el" href="classOgre_1_1HardwareVertexBufferSharedPtr.html">HardwareVertexBufferSharedPtr</a><code> [friend]</code>
1181      </table>
1182    </td>
1183  </tr>
1184</table>
1185<table cellspacing=5 cellpadding=0 border=0>
1186  <tr>
1187    <td>
1188      &nbsp;
1189    </td>
1190    <td>
1191
1192<p>
1193
1194<p>
1195Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00088">88</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1196  </tr>
1197</table>
1198<hr><h2>Member Data Documentation</h2>
1199<a class="anchor" name="Ogre_1_1HardwareBufferManagerp2" doxytag="Ogre::HardwareBufferManager::mFreeTempVertexBufferMap" ></a><p>
1200<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1201  <tr>
1202    <td class="mdRow">
1203      <table cellpadding="0" cellspacing="0" border="0">
1204        <tr>
1205          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx3">FreeTemporaryVertexBufferMap</a> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp2">Ogre::HardwareBufferManager::mFreeTempVertexBufferMap</a><code> [protected]</code>
1206      </table>
1207    </td>
1208  </tr>
1209</table>
1210<table cellspacing=5 cellpadding=0 border=0>
1211  <tr>
1212    <td>
1213      &nbsp;
1214    </td>
1215    <td>
1216
1217<p>
1218Map of current available temp buffers.
1219<p>
1220
1221<p>
1222Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00134">134</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1223  </tr>
1224</table>
1225<a class="anchor" name="Ogre_1_1HardwareBufferManagerp5" doxytag="Ogre::HardwareBufferManager::mIndexBuffers" ></a><p>
1226<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1227  <tr>
1228    <td class="mdRow">
1229      <table cellpadding="0" cellspacing="0" border="0">
1230        <tr>
1231          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx6">IndexBufferList</a> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp5">Ogre::HardwareBufferManager::mIndexBuffers</a><code> [protected]</code>
1232      </table>
1233    </td>
1234  </tr>
1235</table>
1236<table cellspacing=5 cellpadding=0 border=0>
1237  <tr>
1238    <td>
1239      &nbsp;
1240    </td>
1241    <td>
1242
1243<p>
1244
1245<p>
1246Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00143">143</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1247  </tr>
1248</table>
1249<a class="anchor" name="Ogre_1_1Singletont0" doxytag="Ogre::HardwareBufferManager::ms_Singleton" ></a><p>
1250<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1251  <tr>
1252    <td class="mdRow">
1253      <table cellpadding="0" cellspacing="0" border="0">
1254        <tr>
1255          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a> * <a class="el" href="classOgre_1_1Singleton.html">Ogre::Singleton</a>&lt; <a class="el" href="classOgre_1_1HardwareBufferManager.html">HardwareBufferManager</a>  &gt;::<a class="el" href="classOgre_1_1Singleton.html#Ogre_1_1Singletont0">ms_Singleton</a><code> [static, protected, inherited]</code>
1256      </table>
1257    </td>
1258  </tr>
1259</table>
1260<table cellspacing=5 cellpadding=0 border=0>
1261  <tr>
1262    <td>
1263      &nbsp;
1264    </td>
1265    <td>
1266
1267<p>
1268
1269<p>
1270Definition at line <a class="el" href="OgreSingleton_8h-source.html#l00054">54</a> of file <a class="el" href="OgreSingleton_8h-source.html">OgreSingleton.h</a>.    </td>
1271  </tr>
1272</table>
1273<a class="anchor" name="Ogre_1_1HardwareBufferManagerp3" doxytag="Ogre::HardwareBufferManager::mTempVertexBufferLicenses" ></a><p>
1274<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1275  <tr>
1276    <td class="mdRow">
1277      <table cellpadding="0" cellspacing="0" border="0">
1278        <tr>
1279          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx4">TemporaryVertexBufferLicenseList</a> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp3">Ogre::HardwareBufferManager::mTempVertexBufferLicenses</a><code> [protected]</code>
1280      </table>
1281    </td>
1282  </tr>
1283</table>
1284<table cellspacing=5 cellpadding=0 border=0>
1285  <tr>
1286    <td>
1287      &nbsp;
1288    </td>
1289    <td>
1290
1291<p>
1292List of currently licensed temp buffers.
1293<p>
1294
1295<p>
1296Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00138">138</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1297  </tr>
1298</table>
1299<a class="anchor" name="Ogre_1_1HardwareBufferManagerp1" doxytag="Ogre::HardwareBufferManager::mVertexBufferBindings" ></a><p>
1300<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1301  <tr>
1302    <td class="mdRow">
1303      <table cellpadding="0" cellspacing="0" border="0">
1304        <tr>
1305          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx1">VertexBufferBindingList</a> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp1">Ogre::HardwareBufferManager::mVertexBufferBindings</a><code> [protected]</code>
1306      </table>
1307    </td>
1308  </tr>
1309</table>
1310<table cellspacing=5 cellpadding=0 border=0>
1311  <tr>
1312    <td>
1313      &nbsp;
1314    </td>
1315    <td>
1316
1317<p>
1318
1319<p>
1320Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00095">95</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1321  </tr>
1322</table>
1323<a class="anchor" name="Ogre_1_1HardwareBufferManagerp4" doxytag="Ogre::HardwareBufferManager::mVertexBuffers" ></a><p>
1324<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1325  <tr>
1326    <td class="mdRow">
1327      <table cellpadding="0" cellspacing="0" border="0">
1328        <tr>
1329          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx5">VertexBufferList</a> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp4">Ogre::HardwareBufferManager::mVertexBuffers</a><code> [protected]</code>
1330      </table>
1331    </td>
1332  </tr>
1333</table>
1334<table cellspacing=5 cellpadding=0 border=0>
1335  <tr>
1336    <td>
1337      &nbsp;
1338    </td>
1339    <td>
1340
1341<p>
1342
1343<p>
1344Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00142">142</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1345  </tr>
1346</table>
1347<a class="anchor" name="Ogre_1_1HardwareBufferManagerp0" doxytag="Ogre::HardwareBufferManager::mVertexDeclarations" ></a><p>
1348<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
1349  <tr>
1350    <td class="mdRow">
1351      <table cellpadding="0" cellspacing="0" border="0">
1352        <tr>
1353          <td class="md" nowrap valign="top"> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerx0">VertexDeclarationList</a> <a class="el" href="classOgre_1_1HardwareBufferManager.html#Ogre_1_1HardwareBufferManagerp0">Ogre::HardwareBufferManager::mVertexDeclarations</a><code> [protected]</code>
1354      </table>
1355    </td>
1356  </tr>
1357</table>
1358<table cellspacing=5 cellpadding=0 border=0>
1359  <tr>
1360    <td>
1361      &nbsp;
1362    </td>
1363    <td>
1364
1365<p>
1366
1367<p>
1368Definition at line <a class="el" href="OgreHardwareBufferManager_8h-source.html#l00094">94</a> of file <a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a>.    </td>
1369  </tr>
1370</table>
1371<hr>The documentation for this class was generated from the following file:<ul>
1372<li><a class="el" href="OgreHardwareBufferManager_8h-source.html">OgreHardwareBufferManager.h</a></ul>
1373<hr>
1374<p>
1375Copyright &copy; 2000-2005 by The OGRE Team<br />
1376<!--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/>
1377This 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/>
1378                <!--/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#">
1379                <Work rdf:about="">
1380                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
1381        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
1382                </Work>
1383                <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> -->
1384
1385Last modified Sun Feb 12 13:00:40 2006
1386</p>
1387</body>
1388</html>
Note: See TracBrowser for help on using the repository browser.