aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03698.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a03698.html')
-rw-r--r--docs/doxygen/nel/a03698.html1041
1 files changed, 1041 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03698.html b/docs/doxygen/nel/a03698.html
new file mode 100644
index 00000000..475b542f
--- /dev/null
+++ b/docs/doxygen/nel/a03698.html
@@ -0,0 +1,1041 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NL3D::CVertexBufferHeap class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.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">Data&nbsp;Structures</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">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NL3D::CVertexBufferHeap Class Reference</h1><code>#include &lt;<a class="el" href="a06715.html">vertex_buffer_heap.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A vertex buffer used to group lot of static VB in it. Work with VBHard where available. <dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2002 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00046">46</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapa0">CVertexBufferHeap</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NL3D_1_1CVertexBufferHeapa0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapa1">~CVertexBufferHeap</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Rendering. Those methods must be called only if enabled(), else crash</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1162_0">activate</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">activate the VB/VBHard as the current VB in the driver, for future rendering <a href="#NL3D_1_1CVertexBufferHeapz1162_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1162_1">lock</a> (<a class="el" href="a04558.html#a15">uint</a> indexStart)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">lock the VB/VBHard, for future filling <a href="#NL3D_1_1CVertexBufferHeapz1162_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1162_2">unlock</a> (<a class="el" href="a04558.html#a15">uint</a> startVert, <a class="el" href="a04558.html#a15">uint</a> endVert)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">unlock the VB/VBHard. Mirror the IVertexBufferHard::unlock(start, end) scheme. <a href="#NL3D_1_1CVertexBufferHeapz1162_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Allocation.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1160_0">allocate</a> (<a class="el" href="a04558.html#a15">uint</a> numVertices, <a class="el" href="a04558.html#a15">uint</a> &amp;indexStart)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">allocate a subset of the VB. false if cannot (not enough space/too big). <a href="#NL3D_1_1CVertexBufferHeapz1160_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1160_1">free</a> (<a class="el" href="a04558.html#a15">uint</a> indexStart)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">free a subset of the VB. nlstop if subset not found... <a href="#NL3D_1_1CVertexBufferHeapz1160_1"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Init/Setup</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_0">enabled</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">false if any error at init, or if <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_5">init()</a> not called <a href="#NL3D_1_1CVertexBufferHeapz1158_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02434.html">IDriver</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_1">getDriver</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the driver used. <a href="#NL3D_1_1CVertexBufferHeapz1158_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_2">getMaxVertices</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get max vertices the Buffer allows. <a href="#NL3D_1_1CVertexBufferHeapz1158_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_3">getVertexFormat</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the vertexFormat <a href="#NL3D_1_1CVertexBufferHeapz1158_3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_4">getVertexSize</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the vertexSize <a href="#NL3D_1_1CVertexBufferHeapz1158_4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_5">init</a> (<a class="el" href="a02434.html">IDriver</a> *driver, <a class="el" href="a04558.html#a15">uint</a> vertexFormat, <a class="el" href="a04558.html#a15">uint</a> maxVertices)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create the vertex buffer heap. It use a VBHard if possible. else a std <a class="el" href="a03692.html">CVertexBuffer</a> is used. <a href="#NL3D_1_1CVertexBufferHeapz1158_5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_6">release</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">release the VB. <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_5">init()</a> can be called after this. <a href="#NL3D_1_1CVertexBufferHeapz1158_6"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt; <a class="el" href="a02434.html">IDriver</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">_Driver</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr1">_Enabled</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02627.html">NLMISC::CHeapMemory</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr3">_HeapManager</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr5">_MaxVertices</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt; <a class="el" href="a03694.html">IVertexBufferHard</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03692.html">CVertexBuffer</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr8">_VertexFormat</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapa0" doxytag="NL3D::CVertexBufferHeap::CVertexBufferHeap" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NL3D::CVertexBufferHeap::CVertexBufferHeap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00038">38</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00106">_HardMode</a>, <a class="el" href="a06715.html#l00104">_HeapStart</a>, <a class="el" href="a06715.html#l00110">_MaxVertices</a>, and <a class="el" href="a06715.html#l00108">_VertexFormat</a>.
+<p>
+<div class="fragment"><pre>00039 {
+00040 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr1">_Enabled</a>= <span class="keyword">false</span>;
+00041 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a>= <span class="keyword">false</span>;
+00042
+00043 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a>= NULL;
+00044 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr8">_VertexFormat</a>= 0;
+00045 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a>= 0;
+00046 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr5">_MaxVertices</a>= 0;
+00047 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapa1" doxytag="NL3D::CVertexBufferHeap::~CVertexBufferHeap" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NL3D::CVertexBufferHeap::~<a class="el" href="a03698.html">CVertexBufferHeap</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00050">50</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06714.html#l00103">release()</a>.
+<p>
+<div class="fragment"><pre>00051 {
+00052 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_6">release</a>();
+00053 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1162_0" doxytag="NL3D::CVertexBufferHeap::activate" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CVertexBufferHeap::activate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+activate the VB/VBHard as the current VB in the driver, for future rendering
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00179">179</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00106">_HardMode</a>, <a class="el" href="a06715.html#l00102">_VBSoft</a>, <a class="el" href="a06715.html#l00062">enabled()</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a05997.html#l00114">NL3D::CMeshBlockManager::flush()</a>.
+<p>
+<div class="fragment"><pre>00180 {
+00181 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_0">enabled</a>());
+00182
+00183 <span class="keywordflow">if</span>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a>)
+00184 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">_Driver</a>-&gt;activeVertexBufferHard(_VBHard);
+00185 <span class="keywordflow">else</span>
+00186 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">_Driver</a>-&gt;activeVertexBuffer(_VBSoft);
+00187 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1160_0" doxytag="NL3D::CVertexBufferHeap::allocate" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CVertexBufferHeap::allocate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>numVertices</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>indexStart</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+allocate a subset of the VB. false if cannot (not enough space/too big).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00125">125</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00103">_HeapManager</a>, <a class="el" href="a06715.html#l00104">_HeapStart</a>, <a class="el" href="a05781.html#l00118">NLMISC::CHeapMemory::allocate()</a>, <a class="el" href="a06715.html#l00062">enabled()</a>, <a class="el" href="a06715.html#l00068">getVertexSize()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05997.html#l00274">NL3D::CMeshBlockManager::allocateMeshVBHeap()</a>.
+<p>
+<div class="fragment"><pre>00126 {
+00127 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_0">enabled</a>());
+00128
+00129 <span class="comment">// allocate into the heap ?</span>
+00130 <a class="code" href="a04558.html#a7">uint8</a> *ptr= (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr3">_HeapManager</a>.<a class="code" href="a02627.html#NLMISC_1_1CHeapMemorya0">allocate</a>(numVertices*<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_4">getVertexSize</a>());
+00131 <span class="keywordflow">if</span>(!ptr)
+00132 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00133 <span class="keywordflow">else</span>
+00134 {
+00135 <span class="comment">// compute vertex index</span>
+00136 indexStart= (<a class="code" href="a04558.html#a15">uint</a>)(ptr-<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a>);
+00137 indexStart/= <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a>;
+00138 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00139 }
+00140 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1158_0" doxytag="NL3D::CVertexBufferHeap::enabled" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CVertexBufferHeap::enabled </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+false if any error at init, or if <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_5">init()</a> not called
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00062">62</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00179">activate()</a>, <a class="el" href="a06714.html#l00125">allocate()</a>, <a class="el" href="a06714.html#l00142">free()</a>, <a class="el" href="a06714.html#l00153">lock()</a>, and <a class="el" href="a06714.html#l00171">unlock()</a>.
+<p>
+<div class="fragment"><pre>00062 {<span class="keywordflow">return</span> <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr1">_Enabled</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1160_1" doxytag="NL3D::CVertexBufferHeap::free" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CVertexBufferHeap::free </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>indexStart</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+free a subset of the VB. nlstop if subset not found...
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00142">142</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00103">_HeapManager</a>, <a class="el" href="a06715.html#l00104">_HeapStart</a>, <a class="el" href="a06715.html#l00062">enabled()</a>, <a class="el" href="a05781.html#l00173">NLMISC::CHeapMemory::free()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05997.html#l00334">NL3D::CMeshBlockManager::freeMeshVBHeap()</a>.
+<p>
+<div class="fragment"><pre>00143 {
+00144 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_0">enabled</a>());
+00145
+00146 <span class="comment">// compute ptr to free</span>
+00147 <a class="code" href="a04558.html#a7">uint8</a> *ptr= <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a> + indexStart*<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a>;
+00148 <span class="comment">// free it.</span>
+00149 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr3">_HeapManager</a>.<a class="code" href="a02627.html#NLMISC_1_1CHeapMemorya2">free</a>(ptr);
+00150 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1158_1" doxytag="NL3D::CVertexBufferHeap::getDriver" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02434.html">IDriver</a>* NL3D::CVertexBufferHeap::getDriver </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the driver used.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00064">64</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+<div class="fragment"><pre>00064 {<span class="keywordflow">return</span> <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">_Driver</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1158_2" doxytag="NL3D::CVertexBufferHeap::getMaxVertices" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CVertexBufferHeap::getMaxVertices </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get max vertices the Buffer allows.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00070">70</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+References <a class="el" href="a06715.html#l00110">_MaxVertices</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00070 {<span class="keywordflow">return</span> <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr5">_MaxVertices</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1158_3" doxytag="NL3D::CVertexBufferHeap::getVertexFormat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CVertexBufferHeap::getVertexFormat </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the vertexFormat
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00066">66</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+References <a class="el" href="a06715.html#l00108">_VertexFormat</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00066 {<span class="keywordflow">return</span> <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr8">_VertexFormat</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1158_4" doxytag="NL3D::CVertexBufferHeap::getVertexSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> NL3D::CVertexBufferHeap::getVertexSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the vertexSize
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00068">68</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+References <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00125">allocate()</a>.
+<p>
+<div class="fragment"><pre>00068 {<span class="keywordflow">return</span> <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1158_5" doxytag="NL3D::CVertexBufferHeap::init" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CVertexBufferHeap::init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>driver</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>vertexFormat</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>maxVertices</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Create the vertex buffer heap. It use a VBHard if possible. else a std <a class="el" href="a03692.html">CVertexBuffer</a> is used.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00056">56</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00106">_HardMode</a>, <a class="el" href="a06715.html#l00103">_HeapManager</a>, <a class="el" href="a06715.html#l00104">_HeapStart</a>, <a class="el" href="a06715.html#l00110">_MaxVertices</a>, <a class="el" href="a06715.html#l00102">_VBSoft</a>, <a class="el" href="a06715.html#l00108">_VertexFormat</a>, <a class="el" href="a06711.html#l00504">NL3D::CVertexBuffer::getUVRouting()</a>, <a class="el" href="a06711.html#l00483">NL3D::CVertexBuffer::getValueTypePointer()</a>, <a class="el" href="a06710.html#l00438">NL3D::CVertexBuffer::getVertexCoordPointer()</a>, <a class="el" href="a06711.html#l00319">NL3D::CVertexBuffer::getVertexFormat()</a>, <a class="el" href="a06711.html#l00473">NL3D::CVertexBuffer::getVertexSize()</a>, <a class="el" href="a05781.html#l00064">NLMISC::CHeapMemory::initHeap()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06714.html#l00103">release()</a>, <a class="el" href="a06710.html#l00409">NL3D::CVertexBuffer::setNumVertices()</a>, <a class="el" href="a06710.html#l00169">NL3D::CVertexBuffer::setVertexFormat()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05997.html#l00393">NL3D::CMeshBlockManager::addVBHeap()</a>.
+<p>
+<div class="fragment"><pre>00057 {
+00058 <a class="code" href="a04199.html#a6">nlassert</a>(driver);
+00059 <span class="comment">// clean before.</span>
+00060 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_6">release</a>();
+00061
+00062 <span class="comment">// setup</span>
+00063 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">_Driver</a>= driver;
+00064
+00065 <span class="comment">// setup the vertexBuffer soft with queried info.</span>
+00066 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.setVertexFormat(vertexFormat);
+00067 <span class="comment">// VertexSize must be a multitple of 4 (Heap alignement ...)</span>
+00068 <a class="code" href="a04199.html#a6">nlassert</a>( (<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.getVertexSize()&amp;3) == 0);
+00069
+00070 <span class="comment">// create the VBHard, if possible</span>
+00071 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>= driver-&gt;createVertexBufferHard(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.getVertexFormat(), <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.getValueTypePointer(), maxVertices, IDriver::VBHardAGP, <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.getUVRouting());
+00072
+00073 <span class="comment">// Ok</span>
+00074 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr1">_Enabled</a>= <span class="keyword">true</span>;
+00075 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr8">_VertexFormat</a>= <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.getVertexFormat();
+00076 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a>= <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.getVertexSize();
+00077 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr5">_MaxVertices</a>= maxVertices;
+00078
+00079 <span class="comment">// Use hard or soft ???</span>
+00080 <span class="keywordflow">if</span>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>)
+00081 {
+00082 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a>= <span class="keyword">true</span>;
+00083 <span class="comment">// setup heap start with good AGP ptr.</span>
+00084 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a>= (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>-&gt;lock();
+00085 <span class="comment">// just a gestion lock, no vertices have changed.</span>
+00086 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>-&gt;unlock(0,0);
+00087 <span class="comment">// In essence, the VBHeap is rarely modified (but on mesh loading). =&gt; set it static</span>
+00088 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>-&gt;lockHintStatic(<span class="keyword">true</span>);
+00089 }
+00090 <span class="keywordflow">else</span>
+00091 {
+00092 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a>= <span class="keyword">false</span>;
+00093 <span class="comment">// =&gt; allocate soft one.</span>
+00094 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.setNumVertices(maxVertices);
+00095 <span class="comment">// setup heap start with good ptr.</span>
+00096 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a>= (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">_VBSoft</a>.getVertexCoordPointer();
+00097 }
+00098
+00099 <span class="comment">// setup heap Manager with good ptr.</span>
+00100 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr3">_HeapManager</a>.<a class="code" href="a02627.html#NLMISC_1_1CHeapMemorya5">initHeap</a>(_HeapStart, _MaxVertices*_VertexSize);
+00101 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1162_1" doxytag="NL3D::CVertexBufferHeap::lock" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a> * NL3D::CVertexBufferHeap::lock </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>indexStart</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+lock the VB/VBHard, for future filling
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00153">153</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00106">_HardMode</a>, <a class="el" href="a06715.html#l00104">_HeapStart</a>, <a class="el" href="a06715.html#l00062">enabled()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+Referenced by <a class="el" href="a05997.html#l00274">NL3D::CMeshBlockManager::allocateMeshVBHeap()</a>, and <a class="el" href="a05997.html#l00177">NL3D::CMeshBlockManager::render()</a>.
+<p>
+<div class="fragment"><pre>00154 {
+00155 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_0">enabled</a>());
+00156
+00157 <a class="code" href="a04558.html#a7">uint8</a> *ptr;
+00158 <span class="keywordflow">if</span>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a>)
+00159 {
+00160 <span class="comment">// lock the vbHard</span>
+00161 ptr= (<a class="code" href="a04558.html#a7">uint8</a>*)<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>-&gt;lock();
+00162 <a class="code" href="a04199.html#a6">nlassert</a>(ptr==_HeapStart);
+00163 }
+00164 <span class="keywordflow">else</span>
+00165 ptr= <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a>;
+00166
+00167 <span class="comment">// index it with index</span>
+00168 <span class="keywordflow">return</span> ptr + indexStart*<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a>;
+00169 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1158_6" doxytag="NL3D::CVertexBufferHeap::release" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CVertexBufferHeap::release </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+release the VB. <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_5">init()</a> can be called after this.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00103">103</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00106">_HardMode</a>, <a class="el" href="a06715.html#l00103">_HeapManager</a>, <a class="el" href="a06715.html#l00104">_HeapStart</a>, <a class="el" href="a06715.html#l00110">_MaxVertices</a>, <a class="el" href="a06715.html#l00102">_VBSoft</a>, <a class="el" href="a06715.html#l00108">_VertexFormat</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00056">init()</a>, and <a class="el" href="a06714.html#l00050">~CVertexBufferHeap()</a>.
+<p>
+<div class="fragment"><pre>00104 {
+00105 <span class="keywordflow">if</span>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>)
+00106 {
+00107 <a class="code" href="a04199.html#a6">nlassert</a>(_Driver);
+00108 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">_Driver</a>-&gt;deleteVertexBufferHard(_VBHard);
+00109 }
+00110 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>= NULL;
+00111 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">_Driver</a>= NULL;
+00112 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">_HeapStart</a>= NULL;
+00113 <span class="comment">// release all memory</span>
+00114 <a class="code" href="a05378.html#a381">contReset</a>(_VBSoft);
+00115 <a class="code" href="a05378.html#a381">contReset</a>(_HeapManager);
+00116
+00117 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr1">_Enabled</a>= <span class="keyword">false</span>;
+00118 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a>= <span class="keyword">false</span>;
+00119 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr8">_VertexFormat</a>= 0;
+00120 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">_VertexSize</a>= 0;
+00121 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr5">_MaxVertices</a>= 0;
+00122 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapz1162_2" doxytag="NL3D::CVertexBufferHeap::unlock" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CVertexBufferHeap::unlock </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>startVert</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>endVert</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+unlock the VB/VBHard. Mirror the IVertexBufferHard::unlock(start, end) scheme.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06714.html#l00171">171</a> of file <a class="el" href="a06714.html">vertex_buffer_heap.cpp</a>.
+<p>
+References <a class="el" href="a06715.html#l00106">_HardMode</a>, <a class="el" href="a06715.html#l00062">enabled()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05997.html#l00274">NL3D::CMeshBlockManager::allocateMeshVBHeap()</a>, and <a class="el" href="a05997.html#l00177">NL3D::CMeshBlockManager::render()</a>.
+<p>
+<div class="fragment"><pre>00172 {
+00173 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapz1158_0">enabled</a>());
+00174
+00175 <span class="keywordflow">if</span>(<a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">_HardMode</a>)
+00176 <a class="code" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">_VBHard</a>-&gt;unlock(startVert, endVert);
+00177 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr0" doxytag="NL3D::CVertexBufferHeap::_Driver" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt;<a class="el" href="a02434.html">IDriver</a>&gt; <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr0">NL3D::CVertexBufferHeap::_Driver</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00100">100</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr1" doxytag="NL3D::CVertexBufferHeap::_Enabled" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr1">NL3D::CVertexBufferHeap::_Enabled</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00105">105</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr2" doxytag="NL3D::CVertexBufferHeap::_HardMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr2">NL3D::CVertexBufferHeap::_HardMode</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00106">106</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00179">activate()</a>, <a class="el" href="a06714.html#l00038">CVertexBufferHeap()</a>, <a class="el" href="a06714.html#l00056">init()</a>, <a class="el" href="a06714.html#l00153">lock()</a>, <a class="el" href="a06714.html#l00103">release()</a>, and <a class="el" href="a06714.html#l00171">unlock()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr3" doxytag="NL3D::CVertexBufferHeap::_HeapManager" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02627.html">NLMISC::CHeapMemory</a> <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr3">NL3D::CVertexBufferHeap::_HeapManager</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00103">103</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00125">allocate()</a>, <a class="el" href="a06714.html#l00142">free()</a>, <a class="el" href="a06714.html#l00056">init()</a>, and <a class="el" href="a06714.html#l00103">release()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr4" doxytag="NL3D::CVertexBufferHeap::_HeapStart" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a7">uint8</a>* <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr4">NL3D::CVertexBufferHeap::_HeapStart</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00104">104</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00125">allocate()</a>, <a class="el" href="a06714.html#l00038">CVertexBufferHeap()</a>, <a class="el" href="a06714.html#l00142">free()</a>, <a class="el" href="a06714.html#l00056">init()</a>, <a class="el" href="a06714.html#l00153">lock()</a>, and <a class="el" href="a06714.html#l00103">release()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr5" doxytag="NL3D::CVertexBufferHeap::_MaxVertices" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr5">NL3D::CVertexBufferHeap::_MaxVertices</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00110">110</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00038">CVertexBufferHeap()</a>, <a class="el" href="a06715.html#l00070">getMaxVertices()</a>, <a class="el" href="a06714.html#l00056">init()</a>, and <a class="el" href="a06714.html#l00103">release()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr6" doxytag="NL3D::CVertexBufferHeap::_VBHard" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03321.html">NLMISC::CRefPtr</a>&lt;<a class="el" href="a03694.html">IVertexBufferHard</a>&gt; <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr6">NL3D::CVertexBufferHeap::_VBHard</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00101">101</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr7" doxytag="NL3D::CVertexBufferHeap::_VBSoft" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03692.html">CVertexBuffer</a> <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr7">NL3D::CVertexBufferHeap::_VBSoft</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00102">102</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00179">activate()</a>, <a class="el" href="a06714.html#l00056">init()</a>, and <a class="el" href="a06714.html#l00103">release()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr8" doxytag="NL3D::CVertexBufferHeap::_VertexFormat" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr8">NL3D::CVertexBufferHeap::_VertexFormat</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00108">108</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>.
+<p>
+Referenced by <a class="el" href="a06714.html#l00038">CVertexBufferHeap()</a>, <a class="el" href="a06715.html#l00066">getVertexFormat()</a>, <a class="el" href="a06714.html#l00056">init()</a>, and <a class="el" href="a06714.html#l00103">release()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexBufferHeapr9" doxytag="NL3D::CVertexBufferHeap::_VertexSize" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a03698.html#NL3D_1_1CVertexBufferHeapr9">NL3D::CVertexBufferHeap::_VertexSize</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06715.html#l00109">109</a> of file <a class="el" href="a06715.html">vertex_buffer_heap.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06715.html">vertex_buffer_heap.h</a><li><a class="el" href="a06714.html">vertex_buffer_heap.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 08:25:41 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>