aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02715.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a02715.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a02715.html')
-rw-r--r--docs/doxygen/nel/a02715.html1601
1 files changed, 1601 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02715.html b/docs/doxygen/nel/a02715.html
new file mode 100644
index 00000000..1ecd2471
--- /dev/null
+++ b/docs/doxygen/nel/a02715.html
@@ -0,0 +1,1601 @@
+<!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::CLandscapeVBAllocator 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::CLandscapeVBAllocator Class Reference</h1><code>#include &lt;<a class="el" href="a05881.html">landscapevb_allocator.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+A class to easily allocate vertices for Landscape Far / Tile faces. <dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a05881.html#l00061">61</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Vertex Program mgt .</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom>{ <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_0NL3D_1_1CLandscapeVBAllocatory0">MaxVertexProgram</a> = 2
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_1">deleteVertexProgram</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_2">setupVBFormatAndVertexProgram</a> (bool withVertexProgram)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03702.html">CVertexProgram</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a> [MaxVertexProgram]</td></tr>
+
+<tr><td colspan=2><br><h2>VB mgt .</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_0">allocateVertexBuffer</a> (<a class="el" href="a04558.html#a11">uint32</a> numVertices)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_1">deleteVertexBuffer</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">_BufferLocked</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="a02434.html">IDriver</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a></td></tr>
+
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3">TType</a> { <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw0">Far0</a>,
+<a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw1">Far1</a>,
+<a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw2">Tile</a>
+ }</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="a02715.html#NL3D_1_1CLandscapeVBAllocatora0">CLandscapeVBAllocator</a> (<a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3">TType</a> <a class="el" href="a04223.html#a581">type</a>, const std::string &amp;vbName)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#NL3D_1_1CLandscapeVBAllocatora0"></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="a02715.html#NL3D_1_1CLandscapeVBAllocatora1">clear</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatora2">updateDriver</a> (<a class="el" href="a02434.html">IDriver</a> *driver)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatora3">~CLandscapeVBAllocator</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Buffer access.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_0">activate</a> (<a class="el" href="a04558.html#a15">uint</a> vpId)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_1">bufferLocked</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_2">lockBuffer</a> (<a class="el" href="a02982.html">CNearVertexBufferInfo</a> &amp;tileVB)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_3">lockBuffer</a> (<a class="el" href="a02512.html">CFarVertexBufferInfo</a> &amp;farVB)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_4">synchronizeATIVBHard</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">only if ATI VBHard is enabled intenally. Copy the entire VBuffer to _ATIVBHard. This last is used in <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_0">activate()</a>. <a href="#NL3D_1_1CLandscapeVBAllocatorz307_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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_5">unlockBuffer</a> ()</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Allocation.</div></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz305_0">allocateVertex</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz305_1">deleteVertex</a> (<a class="el" href="a04558.html#a15">uint</a> vid)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz305_2">reallocationOccurs</a> () const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz305_3">resetReallocation</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Private Types</h2></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="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr1">_ReallocationOccur</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3">TType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr2">_Type</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::string&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr3">_VBName</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a04558.html#a15">uint</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a02716.html">CVertexInfo</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr5">_VertexInfos</a></td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Special ATI VBHard mgt.</div></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">_ATIVBHardOk</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz313_0" doxytag="NL3D::CLandscapeVBAllocator::@15" ></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"> anonymous enum<code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz313_0NL3D_1_1CLandscapeVBAllocatory0" doxytag="MaxVertexProgram" ></a>MaxVertexProgram</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05881.html#l00172">172</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+<div class="fragment"><pre>00172 {<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_0NL3D_1_1CLandscapeVBAllocatory0">MaxVertexProgram</a>= 2,};
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorw3" doxytag="NL3D::CLandscapeVBAllocator::TType" ></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"> enum <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3">NL3D::CLandscapeVBAllocator::TType</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw0" doxytag="Far0" ></a>Far0</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw1" doxytag="Far1" ></a>Far1</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw2" doxytag="Tile" ></a>Tile</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05881.html#l00065">65</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+<div class="fragment"><pre>00065 {<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw0">Far0</a>, <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw1">Far1</a>, <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw2">Tile</a>};
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatora0" doxytag="NL3D::CLandscapeVBAllocator::CLandscapeVBAllocator" ></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::CLandscapeVBAllocator::CLandscapeVBAllocator </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3">TType</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>vbName</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>
+Constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05880.html#l00056">56</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00165">_ATIVBHardOk</a>, <a class="el" href="a05881.html#l00153">_BufferLocked</a>, <a class="el" href="a05881.html#l00141">_NumVerticesAllocated</a>, <a class="el" href="a05881.html#l00137">_ReallocationOccur</a>, <a class="el" href="a05881.html#l00134">_Type</a>, <a class="el" href="a05881.html#l00150">_VBHardOk</a>, <a class="el" href="a05881.html#l00135">_VBName</a>, <a class="el" href="a05881.html#l00139">_VertexFreeMemory</a>, <a class="el" href="a05881.html#l00174">_VertexProgram</a>, <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_0NL3D_1_1CLandscapeVBAllocatory0">MaxVertexProgram</a>, <a class="el" href="a05880.html#l00050">NL3D_VERTEX_FREE_MEMORY_RESERVE</a>, <a class="el" href="a05646.html#l00244">type</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00057 {
+00058 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr2">_Type</a>= <a class="code" href="a04223.html#a581">type</a>;
+00059 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr3">_VBName</a>= vbName;
+00060 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a>.reserve(NL3D_VERTEX_FREE_MEMORY_RESERVE);
+00061
+00062 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr1">_ReallocationOccur</a>= <span class="keyword">false</span>;
+00063 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a>= 0;
+00064 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a>= <span class="keyword">false</span>;
+00065 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">_ATIVBHardOk</a>= <span class="keyword">false</span>;
+00066 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">_BufferLocked</a>= <span class="keyword">false</span>;
+00067
+00068 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_0NL3D_1_1CLandscapeVBAllocatory0">MaxVertexProgram</a>;i++)
+00069 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[i]= NULL;
+00070 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatora3" doxytag="NL3D::CLandscapeVBAllocator::~CLandscapeVBAllocator" ></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::CLandscapeVBAllocator::~<a class="el" href="a02715.html">CLandscapeVBAllocator</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="a05880.html#l00073">73</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05880.html#l00114">clear()</a>.
+<p>
+<div class="fragment"><pre>00074 {
+00075 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatora1">clear</a>();
+00076 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz307_0" doxytag="NL3D::CLandscapeVBAllocator::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::CLandscapeVBAllocator::activate </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>vpId</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>
+activate the VB or the VBHard in Driver setuped. nlassert if driver is NULL or if buffer is locked. If vertexProgram possible, activate the vertexProgram too. Give a vertexProgram Id to activate. Always 0, but 1 For tile Lightmap Pass.
+<p>
+Definition at line <a class="el" href="a05880.html#l00310">310</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00166">_ATIVBHard</a>, <a class="el" href="a05881.html#l00153">_BufferLocked</a>, <a class="el" href="a05881.html#l00151">_VB</a>, <a class="el" href="a05881.html#l00152">_VBHard</a>, <a class="el" href="a05881.html#l00174">_VertexProgram</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00355">nlverify</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05862.html#l00939">NL3D::CLandscape::render()</a>.
+<p>
+<div class="fragment"><pre>00311 {
+00312 <a class="code" href="a04199.html#a6">nlassert</a>(_Driver);
+00313 <a class="code" href="a04199.html#a6">nlassert</a>(!_BufferLocked);
+00314
+00315 <span class="comment">// If enabled, activate Vertex program first.</span>
+00316 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[vpId])
+00317 {
+00318 <span class="comment">//nlinfo("\nSTARTVP\n%s\nENDVP\n", _VertexProgram[vpId]-&gt;getProgram().c_str());</span>
+00319 <a class="code" href="a04199.html#a9">nlverify</a>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;activeVertexProgram(_VertexProgram[vpId]));
+00320 }
+00321
+00322 <span class="comment">// Activate VB.</span>
+00323 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>)
+00324 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;activeVertexBufferHard(_VBHard);
+00325 <span class="comment">// If ATI VBHard possible, use it</span>
+00326 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>)
+00327 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;activeVertexBufferHard(_ATIVBHard);
+00328 <span class="comment">// must use std VB</span>
+00329 <span class="keywordflow">else</span>
+00330 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;activeVertexBuffer(_VB);
+00331 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz305_0" doxytag="NL3D::CLandscapeVBAllocator::allocateVertex" ></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::CLandscapeVBAllocator::allocateVertex </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="a05880.html#l00152">152</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00141">_NumVerticesAllocated</a>, <a class="el" href="a05881.html#l00139">_VertexFreeMemory</a>, <a class="el" href="a05881.html#l00140">_VertexInfos</a>, <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, <a class="el" href="a05880.html#l00043">NL3D_LANDSCAPE_VERTEX_ALLOCATE_SECURITY</a>, <a class="el" href="a05880.html#l00047">NL3D_LANDSCAPE_VERTEX_ALLOCATE_START</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00153 {
+00154 <span class="comment">// if no more free, allocate.</span>
+00155 <span class="keywordflow">if</span>( <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a>.size()==0 )
+00156 {
+00157 <span class="comment">// enlarge capacity.</span>
+00158 <a class="code" href="a04558.html#a15">uint</a> newResize;
+00159 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a>==0)
+00160 newResize= <a class="code" href="a04457.html#a1">NL3D_LANDSCAPE_VERTEX_ALLOCATE_START</a>;
+00161 <span class="keywordflow">else</span>
+00162 newResize= <a class="code" href="a04457.html#a0">NL3D_LANDSCAPE_VERTEX_ALLOCATE_SECURITY</a>;
+00163 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a>+= newResize;
+00164 <span class="comment">// re-allocate VB.</span>
+00165 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_0">allocateVertexBuffer</a>(_NumVerticesAllocated);
+00166 <span class="comment">// resize infos on vertices.</span>
+00167 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr5">_VertexInfos</a>.resize(_NumVerticesAllocated);
+00168
+00169 <span class="comment">// Fill list of free elements.</span>
+00170 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;newResize;i++)
+00171 {
+00172 <span class="comment">// create a new entry which points to this vertex.</span>
+00173 <span class="comment">// the list is made so allocation is in growing order.</span>
+00174 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a>.push_back( _NumVerticesAllocated - (i+1) );
+00175
+00176 <span class="comment">// Mark as free the new vertices. (Debug).</span>
+00177 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr5">_VertexInfos</a>[<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a> - (i+1)].Free= <span class="keyword">true</span>;
+00178 }
+00179 }
+00180
+00181 <span class="comment">// get a vertex (pop_back).</span>
+00182 <a class="code" href="a04558.html#a15">uint</a> <span class="keywordtype">id</span>= <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a>.back();
+00183 <span class="comment">// delete this vertex free entry.</span>
+00184 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a>.pop_back();
+00185
+00186 <span class="comment">// check and Mark as not free the vertex. (Debug).</span>
+00187 <a class="code" href="a04199.html#a6">nlassert</a>(<span class="keywordtype">id</span>&lt;_NumVerticesAllocated);
+00188 <a class="code" href="a04199.html#a6">nlassert</a>(_VertexInfos[<span class="keywordtype">id</span>].Free);
+00189 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr5">_VertexInfos</a>[<span class="keywordtype">id</span>].Free= <span class="keyword">false</span>;
+00190
+00191 <span class="keywordflow">return</span> <span class="keywordtype">id</span>;
+00192 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz309_0" doxytag="NL3D::CLandscapeVBAllocator::allocateVertexBuffer" ></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::CLandscapeVBAllocator::allocateVertexBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>numVertices</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></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="a05880.html#l00368">368</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00137">_ReallocationOccur</a>, <a class="el" href="a05881.html#l00151">_VB</a>, <a class="el" href="a05881.html#l00152">_VBHard</a>, <a class="el" href="a05881.html#l00150">_VBHardOk</a>, <a class="el" href="a05881.html#l00135">_VBName</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="a06711.html#l00319">NL3D::CVertexBuffer::getVertexFormat()</a>, <a class="el" href="a05880.html#l00052">NL3D_VERTEX_MAX_VERTEX_VBHARD</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06710.html#l00409">NL3D::CVertexBuffer::setNumVertices()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05880.html#l00247">unlockBuffer()</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00152">allocateVertex()</a>, and <a class="el" href="a05880.html#l00080">updateDriver()</a>.
+<p>
+<div class="fragment"><pre>00369 {
+00370 <span class="comment">// no allocation must be done if the Driver is not setuped, or if the driver has been deleted by refPtr.</span>
+00371 <a class="code" href="a04199.html#a6">nlassert</a>(_Driver);
+00372
+00373 <span class="comment">// allocate() =&gt;_ReallocationOccur= true;</span>
+00374 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr1">_ReallocationOccur</a>= <span class="keyword">true</span>;
+00375 <span class="comment">// must unlock VBhard before.</span>
+00376 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_5">unlockBuffer</a>();
+00377
+00378 <span class="comment">// trye to allocate a vbufferhard if possible.</span>
+00379 <span class="keywordflow">if</span>( <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a> )
+00380 {
+00381 <span class="comment">// delete possible old _VBHard.</span>
+00382 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>!=NULL)
+00383 {
+00384 <span class="comment">// VertexBufferHard lifetime &lt; Driver lifetime.</span>
+00385 <a class="code" href="a04199.html#a6">nlassert</a>(_Driver!=NULL);
+00386 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;deleteVertexBufferHard(_VBHard);
+00387 }
+00388
+00389 <span class="comment">// try to create new one, in AGP Ram</span>
+00390 <span class="comment">// If too many vertices wanted, abort VBHard.</span>
+00391 <span class="keywordflow">if</span>(numVertices &lt;= <a class="code" href="a04457.html#a3">NL3D_VERTEX_MAX_VERTEX_VBHARD</a>)
+00392 {
+00393 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>= <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;createVertexBufferHard(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getVertexFormat(), <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getValueTypePointer(), numVertices, IDriver::VBHardAGP, <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getUVRouting());
+00394 <span class="comment">// Set Name For lock Profiling.</span>
+00395 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>)
+00396 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>-&gt;setName(_VBName);
+00397 }
+00398 <span class="keywordflow">else</span>
+00399 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>= NULL;
+00400
+00401 <span class="comment">// If KO, never try again.</span>
+00402 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>==NULL)
+00403 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a>= <span class="keyword">false</span>;
+00404 }
+00405
+00406 <span class="comment">// else, or if last fails, allocate a standard VB.</span>
+00407 <span class="keywordflow">if</span>(!<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a>)
+00408 {
+00409 <span class="comment">// This always works.</span>
+00410 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.setNumVertices(numVertices);
+00411 }
+00412
+00413 <span class="comment">/*</span>
+00414 <span class="comment"> NB: ATI VBHard allocation is done in synchronizeATIVBHard()</span>
+00415 <span class="comment"> */</span>
+00416
+00417 <span class="comment">//nlinfo("Alloc a LandVB %s of %d vertices in %s", _Type==Far0?"Far0":(_Type==Far1?"Far1":"Tile"), numVertices, _VBHardOk?"VBHard":"VBSoft");</span>
+00418 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz307_1" doxytag="NL3D::CLandscapeVBAllocator::bufferLocked" ></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::CLandscapeVBAllocator::bufferLocked </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>
+activate the VB or the VBHard in Driver setuped. nlassert if driver is NULL or if buffer is locked. If vertexProgram possible, activate the vertexProgram too. Give a vertexProgram Id to activate. Always 0, but 1 For tile Lightmap Pass.
+<p>
+Definition at line <a class="el" href="a05881.html#l00111">111</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+References <a class="el" href="a05881.html#l00153">_BufferLocked</a>.
+<p>
+<div class="fragment"><pre>00111 {<span class="keywordflow">return</span> <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">_BufferLocked</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatora1" doxytag="NL3D::CLandscapeVBAllocator::clear" ></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::CLandscapeVBAllocator::clear </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="a05880.html#l00114">114</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00165">_ATIVBHardOk</a>, <a class="el" href="a05881.html#l00141">_NumVerticesAllocated</a>, <a class="el" href="a05881.html#l00137">_ReallocationOccur</a>, <a class="el" href="a05881.html#l00150">_VBHardOk</a>, <a class="el" href="a05881.html#l00139">_VertexFreeMemory</a>, <a class="el" href="a05880.html#l00335">deleteVertexBuffer()</a>, and <a class="el" href="a05880.html#l00648">deleteVertexProgram()</a>.
+<p>
+Referenced by <a class="el" href="a05862.html#l00522">NL3D::CLandscape::clear()</a>, and <a class="el" href="a05880.html#l00073">~CLandscapeVBAllocator()</a>.
+<p>
+<div class="fragment"><pre>00115 {
+00116 <span class="comment">// clear list.</span>
+00117 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a>.clear();
+00118 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a>= 0;
+00119
+00120 <span class="comment">// delete the VB.</span>
+00121 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_1">deleteVertexBuffer</a>();
+00122
+00123 <span class="comment">// delete vertex Program, if any</span>
+00124 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_1">deleteVertexProgram</a>();
+00125
+00126 <span class="comment">// clear other states.</span>
+00127 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr1">_ReallocationOccur</a>= <span class="keyword">false</span>;
+00128 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>= NULL;
+00129 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a>= <span class="keyword">false</span>;
+00130 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">_ATIVBHardOk</a>= <span class="keyword">false</span>;
+00131 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz305_1" doxytag="NL3D::CLandscapeVBAllocator::deleteVertex" ></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::CLandscapeVBAllocator::deleteVertex </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>vid</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>
+
+<p>
+Definition at line <a class="el" href="a05880.html#l00195">195</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00141">_NumVerticesAllocated</a>, <a class="el" href="a05881.html#l00139">_VertexFreeMemory</a>, <a class="el" href="a05881.html#l00140">_VertexInfos</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00196 {
+00197 <span class="comment">// check and Mark as free the vertex. (Debug).</span>
+00198 <a class="code" href="a04199.html#a6">nlassert</a>(vid&lt;_NumVerticesAllocated);
+00199 <a class="code" href="a04199.html#a6">nlassert</a>(!_VertexInfos[vid].Free);
+00200 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr5">_VertexInfos</a>[vid].Free= <span class="keyword">true</span>;
+00201
+00202 <span class="comment">// Add this vertex to the free list.</span>
+00203 <span class="comment">// create a new entry which points to this vertex.</span>
+00204 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">_VertexFreeMemory</a>.push_back( vid );
+00205 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz309_1" doxytag="NL3D::CLandscapeVBAllocator::deleteVertexBuffer" ></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::CLandscapeVBAllocator::deleteVertexBuffer </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><code> [private]</code></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="a05880.html#l00335">335</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00166">_ATIVBHard</a>, <a class="el" href="a05881.html#l00151">_VB</a>, <a class="el" href="a05881.html#l00152">_VBHard</a>, <a class="el" href="a06710.html#l00424">NL3D::CVertexBuffer::deleteAllVertices()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05880.html#l00247">unlockBuffer()</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00114">clear()</a>, and <a class="el" href="a05880.html#l00080">updateDriver()</a>.
+<p>
+<div class="fragment"><pre>00336 {
+00337 <span class="comment">// must unlock VBhard before.</span>
+00338 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_5">unlockBuffer</a>();
+00339
+00340 <span class="comment">// test (refptr) if the object still exist in memory.</span>
+00341 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>!=NULL)
+00342 {
+00343 <span class="comment">// A vbufferhard should still exist only if driver still exist.</span>
+00344 <a class="code" href="a04199.html#a6">nlassert</a>(_Driver!=NULL);
+00345
+00346 <span class="comment">// delete it from driver.</span>
+00347 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;deleteVertexBufferHard(_VBHard);
+00348 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>= NULL;
+00349 }
+00350
+00351 <span class="comment">// Do the same for ATI one if exist</span>
+00352 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>!=NULL)
+00353 {
+00354 <span class="comment">// A vbufferhard should still exist only if driver still exist.</span>
+00355 <a class="code" href="a04199.html#a6">nlassert</a>(_Driver!=NULL);
+00356
+00357 <span class="comment">// delete it from driver.</span>
+00358 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;deleteVertexBufferHard(_ATIVBHard);
+00359 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>= NULL;
+00360 }
+00361
+00362 <span class="comment">// delete the soft one.</span>
+00363 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.deleteAllVertices();
+00364 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz313_1" doxytag="NL3D::CLandscapeVBAllocator::deleteVertexProgram" ></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::CLandscapeVBAllocator::deleteVertexProgram </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><code> [private]</code></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="a05880.html#l00648">648</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00174">_VertexProgram</a>, <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_0NL3D_1_1CLandscapeVBAllocatory0">MaxVertexProgram</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00114">clear()</a>, and <a class="el" href="a05880.html#l00080">updateDriver()</a>.
+<p>
+<div class="fragment"><pre>00649 {
+00650 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0;i&lt;<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_0NL3D_1_1CLandscapeVBAllocatory0">MaxVertexProgram</a>;i++)
+00651 {
+00652 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[i])
+00653 {
+00654 <span class="keyword">delete</span> <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[i];
+00655 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[i]= NULL;
+00656 }
+00657 }
+00658 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz307_2" doxytag="NL3D::CLandscapeVBAllocator::lockBuffer" ></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::CLandscapeVBAllocator::lockBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02982.html">CNearVertexBufferInfo</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>tileVB</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>
+activate the VB or the VBHard in Driver setuped. nlassert if driver is NULL or if buffer is locked. If vertexProgram possible, activate the vertexProgram too. Give a vertexProgram Id to activate. Always 0, but 1 For tile Lightmap Pass.
+<p>
+Definition at line <a class="el" href="a05880.html#l00228">228</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00153">_BufferLocked</a>, <a class="el" href="a05881.html#l00134">_Type</a>, <a class="el" href="a05881.html#l00151">_VB</a>, <a class="el" href="a05881.html#l00152">_VBHard</a>, <a class="el" href="a05881.html#l00174">_VertexProgram</a>, <a class="el" href="a05646.html#l01013">data</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05882.html#l00203">NL3D::CNearVertexBufferInfo::setupVertexBuffer()</a>, <a class="el" href="a05882.html#l00241">NL3D::CNearVertexBufferInfo::setupVertexBufferHard()</a>, <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw2">Tile</a>, and <a class="el" href="a05880.html#l00247">unlockBuffer()</a>.
+<p>
+<div class="fragment"><pre>00229 {
+00230 <a class="code" href="a04199.html#a6">nlassert</a>(_Type==Tile);
+00231 <span class="comment">// force unlock</span>
+00232 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_5">unlockBuffer</a>();
+00233
+00234 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>)
+00235 {
+00236 <span class="keywordtype">void</span> *<a class="code" href="a04223.html#a637">data</a>= <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>-&gt;lock();
+00237 tileVB.setupVertexBufferHard(*_VBHard, data, _VertexProgram[0]!=NULL );
+00238 }
+00239 <span class="keywordflow">else</span>
+00240 {
+00241 tileVB.setupVertexBuffer(_VB, _VertexProgram[0]!=NULL );
+00242 }
+00243
+00244 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">_BufferLocked</a>= <span class="keyword">true</span>;
+00245 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz307_3" doxytag="NL3D::CLandscapeVBAllocator::lockBuffer" ></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::CLandscapeVBAllocator::lockBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02512.html">CFarVertexBufferInfo</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>farVB</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 buffers Hard (if any). "slow call", so batch them. nlassert good TType. return is the VB info. NB: if the buffer is locked while a reallocation occurs, then the buffer is unlocked.
+<p>
+Definition at line <a class="el" href="a05880.html#l00209">209</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00153">_BufferLocked</a>, <a class="el" href="a05881.html#l00134">_Type</a>, <a class="el" href="a05881.html#l00151">_VB</a>, <a class="el" href="a05881.html#l00152">_VBHard</a>, <a class="el" href="a05881.html#l00174">_VertexProgram</a>, <a class="el" href="a05646.html#l01013">data</a>, <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw0">Far0</a>, <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw1">Far1</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05882.html#l00073">NL3D::CFarVertexBufferInfo::setupVertexBuffer()</a>, <a class="el" href="a05882.html#l00124">NL3D::CFarVertexBufferInfo::setupVertexBufferHard()</a>, and <a class="el" href="a05880.html#l00247">unlockBuffer()</a>.
+<p>
+Referenced by <a class="el" href="a05862.html#l00862">NL3D::CLandscape::lockBuffers()</a>.
+<p>
+<div class="fragment"><pre>00210 {
+00211 <a class="code" href="a04199.html#a6">nlassert</a>( _Type==Far0 || _Type==Far1 );
+00212 <span class="comment">// force unlock</span>
+00213 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_5">unlockBuffer</a>();
+00214
+00215 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>)
+00216 {
+00217 <span class="keywordtype">void</span> *<a class="code" href="a04223.html#a637">data</a>= <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>-&gt;lock();
+00218 farVB.setupVertexBufferHard(*_VBHard, data, _VertexProgram[0]!=NULL );
+00219 }
+00220 <span class="keywordflow">else</span>
+00221 {
+00222 farVB.setupVertexBuffer(_VB, _VertexProgram[0]!=NULL );
+00223 }
+00224
+00225 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">_BufferLocked</a>= <span class="keyword">true</span>;
+00226 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz305_2" doxytag="NL3D::CLandscapeVBAllocator::reallocationOccurs" ></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::CLandscapeVBAllocator::reallocationOccurs </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>
+
+<p>
+Definition at line <a class="el" href="a05881.html#l00092">92</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+References <a class="el" href="a05881.html#l00137">_ReallocationOccur</a>.
+<p>
+Referenced by <a class="el" href="a05862.html#l00939">NL3D::CLandscape::render()</a>.
+<p>
+<div class="fragment"><pre>00092 {<span class="keywordflow">return</span> <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr1">_ReallocationOccur</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz305_3" doxytag="NL3D::CLandscapeVBAllocator::resetReallocation" ></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::CLandscapeVBAllocator::resetReallocation </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="a05880.html#l00136">136</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00137">_ReallocationOccur</a>.
+<p>
+Referenced by <a class="el" href="a05862.html#l00939">NL3D::CLandscape::render()</a>.
+<p>
+<div class="fragment"><pre>00137 {
+00138 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr1">_ReallocationOccur</a>= <span class="keyword">false</span>;
+00139 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz313_2" doxytag="NL3D::CLandscapeVBAllocator::setupVBFormatAndVertexProgram" ></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::CLandscapeVBAllocator::setupVBFormatAndVertexProgram </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>withVertexProgram</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></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="a05880.html#l00662">662</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00134">_Type</a>, <a class="el" href="a05881.html#l00151">_VB</a>, <a class="el" href="a05881.html#l00174">_VertexProgram</a>, <a class="el" href="a06710.html#l00338">NL3D::CVertexBuffer::addValueEx()</a>, <a class="el" href="a06710.html#l00271">NL3D::CVertexBuffer::clearValueEx()</a>, <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw0">Far0</a>, <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw1">Far1</a>, <a class="el" href="a06710.html#l00369">NL3D::CVertexBuffer::initEx()</a>, <a class="el" href="a05881.html#l00051">NL3D_LANDSCAPE_VPPOS_ALPHAINFO</a>, <a class="el" href="a05881.html#l00050">NL3D_LANDSCAPE_VPPOS_DELTAPOS</a>, <a class="el" href="a05881.html#l00049">NL3D_LANDSCAPE_VPPOS_GEOMINFO</a>, <a class="el" href="a05881.html#l00045">NL3D_LANDSCAPE_VPPOS_STARTPOS</a>, <a class="el" href="a05881.html#l00046">NL3D_LANDSCAPE_VPPOS_TEX0</a>, <a class="el" href="a05881.html#l00047">NL3D_LANDSCAPE_VPPOS_TEX1</a>, <a class="el" href="a05881.html#l00048">NL3D_LANDSCAPE_VPPOS_TEX2</a>, <a class="el" href="a05880.html#l00514">NL3D::NL3D_LandscapeCommonStartProgram</a>, <a class="el" href="a05880.html#l00574">NL3D::NL3D_LandscapeFar0EndProgram</a>, <a class="el" href="a05880.html#l00595">NL3D::NL3D_LandscapeFar1EndProgram</a>, <a class="el" href="a05880.html#l00621">NL3D::NL3D_LandscapeTileEndProgram</a>, <a class="el" href="a05880.html#l00634">NL3D::NL3D_LandscapeTileLightMapEndProgram</a>, and <a class="el" href="a06710.html#l00169">NL3D::CVertexBuffer::setVertexFormat()</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00080">updateDriver()</a>.
+<p>
+<div class="fragment"><pre>00663 {
+00664 <span class="comment">// If not vertexProgram mode</span>
+00665 <span class="keywordflow">if</span>(!withVertexProgram)
+00666 {
+00667 <span class="comment">// setup normal VB format.</span>
+00668 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr2">_Type</a>==<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw0">Far0</a>)
+00669 <span class="comment">// v3f/t2f0/t2f1</span>
+00670 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.setVertexFormat(CVertexBuffer::PositionFlag | CVertexBuffer::TexCoord0Flag | CVertexBuffer::TexCoord1Flag);
+00671 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr2">_Type</a>==<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw1">Far1</a>)
+00672 <span class="comment">// v3f/t2f/t2f1/c4ub</span>
+00673 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.setVertexFormat(CVertexBuffer::PositionFlag | CVertexBuffer::TexCoord0Flag | CVertexBuffer::TexCoord1Flag | CVertexBuffer::PrimaryColorFlag );
+00674 <span class="keywordflow">else</span>
+00675 <span class="comment">// v3f/t2f0/t2f1/t2f2</span>
+00676 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.setVertexFormat(CVertexBuffer::PositionFlag | CVertexBuffer::TexCoord0Flag | CVertexBuffer::TexCoord1Flag | CVertexBuffer::TexCoord2Flag);
+00677 }
+00678 <span class="keywordflow">else</span>
+00679 {
+00680 <span class="comment">// Else Setup our Vertex Program, and good VBuffers, according to _Type.</span>
+00681
+00682 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr2">_Type</a>==<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw0">Far0</a>)
+00683 {
+00684 <span class="comment">// Build the Vertex Format.</span>
+00685 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.clearValueEx();
+00686 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_STARTPOS, CVertexBuffer::Float3); <span class="comment">// v[0]= StartPos.</span>
+00687 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_TEX0, CVertexBuffer::Float2); <span class="comment">// v[8]= Tex0.</span>
+00688 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_TEX1, CVertexBuffer::Float2); <span class="comment">// v[9]= Tex1.</span>
+00689 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_GEOMINFO, CVertexBuffer::Float2); <span class="comment">// v[10]= GeomInfos.</span>
+00690 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_DELTAPOS, CVertexBuffer::Float3); <span class="comment">// v[11]= EndPos-StartPos.</span>
+00691 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.initEx();
+00692
+00693 <span class="comment">// Init the Vertex Program.</span>
+00694 string vpgram= string(NL3D_LandscapeCommonStartProgram) +
+00695 string(NL3D_LandscapeFar0EndProgram);
+00696 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[0]= <span class="keyword">new</span> CVertexProgram(vpgram.c_str());
+00697 }
+00698 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr2">_Type</a>==<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3NL3D_1_1CLandscapeVBAllocatorw1">Far1</a>)
+00699 {
+00700 <span class="comment">// Build the Vertex Format.</span>
+00701 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.clearValueEx();
+00702 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_STARTPOS, CVertexBuffer::Float3); <span class="comment">// v[0]= StartPos.</span>
+00703 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_TEX0, CVertexBuffer::Float2); <span class="comment">// v[8]= Tex0.</span>
+00704 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_TEX1, CVertexBuffer::Float2); <span class="comment">// v[9]= Tex1.</span>
+00705 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_GEOMINFO, CVertexBuffer::Float2); <span class="comment">// v[10]= GeomInfos.</span>
+00706 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_DELTAPOS, CVertexBuffer::Float3); <span class="comment">// v[11]= EndPos-StartPos.</span>
+00707 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_ALPHAINFO, CVertexBuffer::Float2); <span class="comment">// v[12]= AlphaInfos.</span>
+00708 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.initEx();
+00709
+00710 <span class="comment">// Init the Vertex Program.</span>
+00711 string vpgram= string(NL3D_LandscapeCommonStartProgram) +
+00712 string(NL3D_LandscapeFar1EndProgram);
+00713 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[0]= <span class="keyword">new</span> CVertexProgram(vpgram.c_str());
+00714 }
+00715 <span class="keywordflow">else</span>
+00716 {
+00717 <span class="comment">// Build the Vertex Format.</span>
+00718 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.clearValueEx();
+00719 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_STARTPOS, CVertexBuffer::Float3); <span class="comment">// v[0]= StartPos.</span>
+00720 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_TEX0, CVertexBuffer::Float2); <span class="comment">// v[8]= Tex0.</span>
+00721 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_TEX1, CVertexBuffer::Float2); <span class="comment">// v[9]= Tex1.</span>
+00722 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_TEX2, CVertexBuffer::Float2); <span class="comment">// v[13]= Tex2.</span>
+00723 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_GEOMINFO, CVertexBuffer::Float2); <span class="comment">// v[10]= GeomInfos.</span>
+00724 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.addValueEx(NL3D_LANDSCAPE_VPPOS_DELTAPOS, CVertexBuffer::Float3); <span class="comment">// v[11]= EndPos-StartPos.</span>
+00725 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.initEx();
+00726
+00727 <span class="comment">// Init the Vertex Program.</span>
+00728 string vpgram= string(NL3D_LandscapeCommonStartProgram) +
+00729 string(NL3D_LandscapeTileEndProgram);
+00730 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[0]= <span class="keyword">new</span> CVertexProgram(vpgram.c_str());
+00731
+00732 <span class="comment">// Init the Vertex Program for lightmap pass</span>
+00733 vpgram= string(NL3D_LandscapeCommonStartProgram) +
+00734 string(NL3D_LandscapeTileLightMapEndProgram);
+00735 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">_VertexProgram</a>[1]= <span class="keyword">new</span> CVertexProgram(vpgram.c_str());
+00736 }
+00737 }
+00738
+00739 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz307_4" doxytag="NL3D::CLandscapeVBAllocator::synchronizeATIVBHard" ></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::CLandscapeVBAllocator::synchronizeATIVBHard </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>
+only if ATI VBHard is enabled intenally. Copy the entire VBuffer to _ATIVBHard. This last is used in <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz307_0">activate()</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05880.html#l00258">258</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00166">_ATIVBHard</a>, <a class="el" href="a05881.html#l00165">_ATIVBHardOk</a>, <a class="el" href="a05881.html#l00151">_VB</a>, <a class="el" href="a06711.html#l00453">NL3D::CVertexBuffer::getNumVertices()</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="a05880.html#l00052">NL3D_VERTEX_MAX_VERTEX_VBHARD</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="a05862.html#l00888">NL3D::CLandscape::synchronizeATIVBHards()</a>.
+<p>
+<div class="fragment"><pre>00259 {
+00260 <span class="comment">// no-op if disabled, or if std _VBHard scheme</span>
+00261 <span class="keywordflow">if</span>(!<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">_ATIVBHardOk</a>)
+00262 <span class="keywordflow">return</span>;
+00263
+00264 <span class="comment">// num verts to sync</span>
+00265 <a class="code" href="a04558.html#a15">uint</a> numVertices= <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getNumVertices();
+00266
+00267 <span class="comment">// if the ATI VBhard do not exist, or if too small, allocate it now</span>
+00268 <span class="keywordflow">if</span>( <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>==NULL || <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>-&gt;getNumVertices()&lt;numVertices )
+00269 {
+00270 <span class="comment">// delete possible old _ATIVBHard</span>
+00271 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>!=NULL)
+00272 {
+00273 <span class="comment">// VertexBufferHard lifetime &lt; Driver lifetime.</span>
+00274 <a class="code" href="a04199.html#a6">nlassert</a>(_Driver!=NULL);
+00275 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;deleteVertexBufferHard(_ATIVBHard);
+00276 }
+00277
+00278 <span class="comment">// try to create new one, in AGP Ram</span>
+00279 <span class="comment">// If too many vertices wanted, abort VBHard.</span>
+00280 <span class="keywordflow">if</span>(numVertices &lt;= <a class="code" href="a04457.html#a3">NL3D_VERTEX_MAX_VERTEX_VBHARD</a>)
+00281 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>= <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;createVertexBufferHard(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getVertexFormat(), <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getValueTypePointer(), numVertices, IDriver::VBHardAGP, <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getUVRouting());
+00282 <span class="keywordflow">else</span>
+00283 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>= NULL;
+00284
+00285 <span class="comment">// If KO, never try again.</span>
+00286 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>==NULL)
+00287 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">_ATIVBHardOk</a>= <span class="keyword">false</span>;
+00288 }
+00289
+00290 <span class="comment">// if still ok, fill the VBHard with std VB.</span>
+00291 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">_ATIVBHardOk</a>)
+00292 {
+00293 <span class="keywordtype">void</span> *dst= <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>-&gt;lock();
+00294 <span class="comment">// fill the entire buffer.</span>
+00295 CFastMem::memcpy(dst, <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getVertexCoordPointer(), numVertices*<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">_VB</a>.getVertexSize() );
+00296 <span class="comment">// unlock the entire buffer</span>
+00297 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">_ATIVBHard</a>-&gt;unlock();
+00298 }
+00299 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz307_5" doxytag="NL3D::CLandscapeVBAllocator::unlockBuffer" ></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::CLandscapeVBAllocator::unlockBuffer </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 or the VBHard in Driver setuped. nlassert if driver is NULL or if buffer is locked. If vertexProgram possible, activate the vertexProgram too. Give a vertexProgram Id to activate. Always 0, but 1 For tile Lightmap Pass.
+<p>
+Definition at line <a class="el" href="a05880.html#l00247">247</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00153">_BufferLocked</a>, and <a class="el" href="a05881.html#l00152">_VBHard</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, <a class="el" href="a05880.html#l00335">deleteVertexBuffer()</a>, <a class="el" href="a05880.html#l00209">lockBuffer()</a>, and <a class="el" href="a05862.html#l00877">NL3D::CLandscape::unlockBuffers()</a>.
+<p>
+<div class="fragment"><pre>00248 {
+00249 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">_BufferLocked</a>)
+00250 {
+00251 <span class="keywordflow">if</span>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>)
+00252 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>-&gt;unlock();
+00253 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">_BufferLocked</a>= <span class="keyword">false</span>;
+00254 }
+00255 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatora2" doxytag="NL3D::CLandscapeVBAllocator::updateDriver" ></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::CLandscapeVBAllocator::updateDriver </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="mdname1" valign="top" nowrap> <em>driver</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>
+setup driver, and test for possible VBHard reallocation. if the VBhard/Driver has been deleted externally, Vertices are lost. The vertex buffer is reallocated and <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz305_2">reallocationOccurs()</a> return true (see <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz305_2">reallocationOccurs()</a>). to do anytime you're not sure of change of the driver/vbHard state.<p>
+Note: the vertexProgram is created/changed here, according to driver, and TType.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>driver</em>&nbsp;</td><td>must not be NULL.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05880.html#l00080">80</a> of file <a class="el" href="a05880.html">landscapevb_allocator.cpp</a>.
+<p>
+References <a class="el" href="a05881.html#l00165">_ATIVBHardOk</a>, <a class="el" href="a05881.html#l00141">_NumVerticesAllocated</a>, <a class="el" href="a05881.html#l00152">_VBHard</a>, <a class="el" href="a05881.html#l00150">_VBHardOk</a>, <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, <a class="el" href="a05880.html#l00335">deleteVertexBuffer()</a>, <a class="el" href="a05880.html#l00648">deleteVertexProgram()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a05880.html#l00662">setupVBFormatAndVertexProgram()</a>.
+<p>
+Referenced by <a class="el" href="a05862.html#l00799">NL3D::CLandscape::updateGlobalsAndLockBuffers()</a>.
+<p>
+<div class="fragment"><pre>00081 {
+00082 <span class="comment">// test change of driver.</span>
+00083 <a class="code" href="a04199.html#a6">nlassert</a>(driver);
+00084 <span class="keywordflow">if</span>( <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>==NULL || driver!=<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a> )
+00085 {
+00086 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_1">deleteVertexBuffer</a>();
+00087 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>= driver;
+00088 <span class="comment">// Don't use std VBHard scheme if ATI slow unlock case.</span>
+00089 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">_ATIVBHardOk</a> = <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;supportVertexBufferHard() &amp;&amp; <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;slowUnlockVertexBufferHard();
+00090 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a> = <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;supportVertexBufferHard() &amp;&amp; !<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;slowUnlockVertexBufferHard();
+00091
+00092
+00093 <span class="comment">// If change of driver, delete the VertexProgram first, if any</span>
+00094 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_1">deleteVertexProgram</a>();
+00095 <span class="comment">// Then rebuild VB format, and VertexProgram, if needed.</span>
+00096 <span class="comment">// Do it only if VP supported by GPU.</span>
+00097 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_2">setupVBFormatAndVertexProgram</a>(<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;isVertexProgramSupported() &amp;&amp; !<a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">_Driver</a>-&gt;isVertexProgramEmulated());
+00098
+00099 <span class="comment">// must reallocate the VertexBuffer.</span>
+00100 <span class="keywordflow">if</span>( <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a>&gt;0 )
+00101 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_0">allocateVertexBuffer</a>(_NumVerticesAllocated);
+00102 }
+00103 <span class="keywordflow">else</span>
+00104 {
+00105 <span class="comment">// if VBHard possible, and if vbHardDeleted but space needed, reallocate.</span>
+00106 <span class="keywordflow">if</span>( <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">_VBHardOk</a> &amp;&amp; <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">_VBHard</a>==NULL &amp;&amp; <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">_NumVerticesAllocated</a>&gt;0 )
+00107 <a class="code" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_0">allocateVertexBuffer</a>(_NumVerticesAllocated);
+00108 }
+00109
+00110 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz311_0" doxytag="NL3D::CLandscapeVBAllocator::_ATIVBHard" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_0">NL3D::CLandscapeVBAllocator::_ATIVBHard</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="a05881.html#l00166">166</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00310">activate()</a>, <a class="el" href="a05880.html#l00335">deleteVertexBuffer()</a>, and <a class="el" href="a05880.html#l00258">synchronizeATIVBHard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz311_1" doxytag="NL3D::CLandscapeVBAllocator::_ATIVBHardOk" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz311_1">NL3D::CLandscapeVBAllocator::_ATIVBHardOk</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="a05881.html#l00165">165</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00114">clear()</a>, <a class="el" href="a05880.html#l00258">synchronizeATIVBHard()</a>, and <a class="el" href="a05880.html#l00080">updateDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz309_2" doxytag="NL3D::CLandscapeVBAllocator::_BufferLocked" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_2">NL3D::CLandscapeVBAllocator::_BufferLocked</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="a05881.html#l00153">153</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00310">activate()</a>, <a class="el" href="a05881.html#l00111">bufferLocked()</a>, <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00209">lockBuffer()</a>, and <a class="el" href="a05880.html#l00247">unlockBuffer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz309_3" doxytag="NL3D::CLandscapeVBAllocator::_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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_3">NL3D::CLandscapeVBAllocator::_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="a05881.html#l00148">148</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorr0" doxytag="NL3D::CLandscapeVBAllocator::_NumVerticesAllocated" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorr0">NL3D::CLandscapeVBAllocator::_NumVerticesAllocated</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="a05881.html#l00141">141</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00152">allocateVertex()</a>, <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00114">clear()</a>, <a class="el" href="a05880.html#l00195">deleteVertex()</a>, and <a class="el" href="a05880.html#l00080">updateDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorr1" doxytag="NL3D::CLandscapeVBAllocator::_ReallocationOccur" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorr1">NL3D::CLandscapeVBAllocator::_ReallocationOccur</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="a05881.html#l00137">137</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00114">clear()</a>, <a class="el" href="a05881.html#l00092">reallocationOccurs()</a>, and <a class="el" href="a05880.html#l00136">resetReallocation()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorr2" doxytag="NL3D::CLandscapeVBAllocator::_Type" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorw3">TType</a> <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr2">NL3D::CLandscapeVBAllocator::_Type</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="a05881.html#l00134">134</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00209">lockBuffer()</a>, and <a class="el" href="a05880.html#l00662">setupVBFormatAndVertexProgram()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz309_4" doxytag="NL3D::CLandscapeVBAllocator::_VB" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_4">NL3D::CLandscapeVBAllocator::_VB</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="a05881.html#l00151">151</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00310">activate()</a>, <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, <a class="el" href="a05880.html#l00335">deleteVertexBuffer()</a>, <a class="el" href="a05880.html#l00209">lockBuffer()</a>, <a class="el" href="a05880.html#l00662">setupVBFormatAndVertexProgram()</a>, and <a class="el" href="a05880.html#l00258">synchronizeATIVBHard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz309_5" doxytag="NL3D::CLandscapeVBAllocator::_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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_5">NL3D::CLandscapeVBAllocator::_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="a05881.html#l00152">152</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00310">activate()</a>, <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, <a class="el" href="a05880.html#l00335">deleteVertexBuffer()</a>, <a class="el" href="a05880.html#l00209">lockBuffer()</a>, <a class="el" href="a05880.html#l00247">unlockBuffer()</a>, and <a class="el" href="a05880.html#l00080">updateDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz309_6" doxytag="NL3D::CLandscapeVBAllocator::_VBHardOk" ></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="a02715.html#NL3D_1_1CLandscapeVBAllocatorz309_6">NL3D::CLandscapeVBAllocator::_VBHardOk</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="a05881.html#l00150">150</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00114">clear()</a>, and <a class="el" href="a05880.html#l00080">updateDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorr3" doxytag="NL3D::CLandscapeVBAllocator::_VBName" ></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"> std::string <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr3">NL3D::CLandscapeVBAllocator::_VBName</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="a05881.html#l00135">135</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00368">allocateVertexBuffer()</a>, and <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorr4" doxytag="NL3D::CLandscapeVBAllocator::_VertexFreeMemory" ></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"> std::vector&lt;<a class="el" href="a04558.html#a15">uint</a>&gt; <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr4">NL3D::CLandscapeVBAllocator::_VertexFreeMemory</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="a05881.html#l00139">139</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00152">allocateVertex()</a>, <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00114">clear()</a>, and <a class="el" href="a05880.html#l00195">deleteVertex()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorr5" doxytag="NL3D::CLandscapeVBAllocator::_VertexInfos" ></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"> std::vector&lt;<a class="el" href="a02716.html">CVertexInfo</a>&gt; <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorr5">NL3D::CLandscapeVBAllocator::_VertexInfos</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="a05881.html#l00140">140</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00152">allocateVertex()</a>, and <a class="el" href="a05880.html#l00195">deleteVertex()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CLandscapeVBAllocatorz313_3" doxytag="NL3D::CLandscapeVBAllocator::_VertexProgram" ></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="a03702.html">CVertexProgram</a>* <a class="el" href="a02715.html#NL3D_1_1CLandscapeVBAllocatorz313_3">NL3D::CLandscapeVBAllocator::_VertexProgram</a>[MaxVertexProgram]<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="a05881.html#l00174">174</a> of file <a class="el" href="a05881.html">landscapevb_allocator.h</a>.
+<p>
+Referenced by <a class="el" href="a05880.html#l00310">activate()</a>, <a class="el" href="a05880.html#l00056">CLandscapeVBAllocator()</a>, <a class="el" href="a05880.html#l00648">deleteVertexProgram()</a>, <a class="el" href="a05880.html#l00209">lockBuffer()</a>, and <a class="el" href="a05880.html#l00662">setupVBFormatAndVertexProgram()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05881.html">landscapevb_allocator.h</a><li><a class="el" href="a05880.html">landscapevb_allocator.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:49:15 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>