aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03691.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/a03691.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to '')
-rw-r--r--docs/doxygen/nel/a03691.html716
1 files changed, 716 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03691.html b/docs/doxygen/nel/a03691.html
new file mode 100644
index 00000000..774c31e6
--- /dev/null
+++ b/docs/doxygen/nel/a03691.html
@@ -0,0 +1,716 @@
+<!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::CVertexArrayRangeNVidia 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::CVertexArrayRangeNVidia Class Reference</h1><code>#include &lt;<a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::CVertexArrayRangeNVidia:
+<p><center><img src="a03691.png" usemap="#NL3D::CVertexArrayRangeNVidia_map" border="0" alt=""></center>
+<map name="NL3D::CVertexArrayRangeNVidia_map">
+<area href="a03689.html" alt="NL3D::IVertexArrayRange" shape="rect" coords="0,0,203,24">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Work only if ARRAY_RANGE_NV is enabled. else, only call to ctor/dtor/free() is valid. any call to <a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiad1">allocateVB()</a> will return NULL.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05655.html#l00127">127</a> of file <a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaa0">CVertexArrayRangeNVidia</a> (<a class="el" href="a02433.html">CDriverGL</a> *drv)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaa1">disable</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">disable this VertexArrayRange. _Driver-&gt;_CurrentVertexArrayRange= NULL; <a href="#NL3D_1_1CVertexArrayRangeNVidiaa1"></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="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaa2">enable</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">active this VertexArrayRange as the current vertex array range used. no-op if already setup. <a href="#NL3D_1_1CVertexArrayRangeNVidiaa2"></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="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaa3">freeVB</a> (void *ptr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">free a VB allocated with allocateVB. No-op if NULL. <a href="#NL3D_1_1CVertexArrayRangeNVidiaa3"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Implementation</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaz125_0">allocate</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a587">size</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw39">IDriver::TVBHardType</a> vbType)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">allocate a vertex array sapce. false if error. must free before re-allocate. <a href="#NL3D_1_1CVertexArrayRangeNVidiaz125_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03695.html">IVertexBufferHardGL</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaz125_1">createVBHardGL</a> (<a class="el" href="a04558.html#a9">uint16</a> vertexFormat, const <a class="el" href="a04558.html#a7">uint8</a> *typeArray, <a class="el" href="a04558.html#a11">uint32</a> numVertices, const <a class="el" href="a04558.html#a7">uint8</a> *uvRouting)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">create a <a class="el" href="a03695.html">IVertexBufferHardGL</a> <a href="#NL3D_1_1CVertexArrayRangeNVidiaz125_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaz125_2">free</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">free this space. <a href="#NL3D_1_1CVertexArrayRangeNVidiaz125_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a15">uint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiaz125_3">sizeAllocated</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">return the size allocated. 0 if not allocated or failure <a href="#NL3D_1_1CVertexArrayRangeNVidiaz125_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02433.html">CDriverGL</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a></td></tr>
+
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiad0">allocated</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">true if allocated. <a href="#NL3D_1_1CVertexArrayRangeNVidiad0"></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="a03691.html#NL3D_1_1CVertexArrayRangeNVidiad1">allocateVB</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a587">size</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Allocate a small subset of the memory. NULL if not enough mem. <a href="#NL3D_1_1CVertexArrayRangeNVidiad1"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02627.html">NLMISC::CHeapMemory</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar0">_HeapMemory</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">_VertexArraySize</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaa0" doxytag="NL3D::CVertexArrayRangeNVidia::CVertexArrayRangeNVidia" ></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::CVertexArrayRangeNVidia::CVertexArrayRangeNVidia </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02433.html">CDriverGL</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>drv</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="a05654.html#l00093">93</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05655.html#l00158">_VertexArrayPtr</a>, and <a class="el" href="a05655.html#l00159">_VertexArraySize</a>.
+<p>
+<div class="fragment"><pre>00093 : <a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangea3">IVertexArrayRange</a>(drv)
+00094 {
+00095 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>= NULL;
+00096 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">_VertexArraySize</a>= 0;
+00097 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaz125_0" doxytag="NL3D::CVertexArrayRangeNVidia::allocate" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::CVertexArrayRangeNVidia::allocate </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="mdname" nowrap> <em>size</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02434.html#NL3D_1_1IDriverw39">IDriver::TVBHardType</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>vbType</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+allocate a vertex array sapce. false if error. must free before re-allocate.
+<p>
+
+<p>
+Implements <a class="el" href="a03689.html#NL3D_1_1IVertexArrayRangea0">NL3D::IVertexArrayRange</a>.
+<p>
+Definition at line <a class="el" href="a05654.html#l00101">101</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05655.html#l00162">_HeapMemory</a>, <a class="el" href="a05655.html#l00158">_VertexArrayPtr</a>, <a class="el" href="a05655.html#l00159">_VertexArraySize</a>, <a class="el" href="a05781.html#l00064">NLMISC::CHeapMemory::initHeap()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05646.html#l00645">size</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00102 {
+00103 <a class="code" href="a04199.html#a6">nlassert</a>(_VertexArrayPtr==NULL);
+00104
+00105 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00106 <span class="preprocessor"></span> <span class="comment">// try to allocate AGP or VRAM data.</span>
+00107 <span class="keywordflow">switch</span>(vbType)
+00108 {
+00109 <span class="keywordflow">case</span> IDriver::VBHardAGP:
+00110 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>= wglAllocateMemoryNV(size, 0, 0, 0.5f);
+00111 <span class="keywordflow">break</span>;
+00112 <span class="keywordflow">case</span> IDriver::VBHardVRAM:
+00113 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>= wglAllocateMemoryNV(size, 0, 0, 1.0f);
+00114 <span class="keywordflow">break</span>;
+00115 };
+00116 <span class="preprocessor">#endif // NL_OS_WINDOWS</span>
+00117 <span class="preprocessor"></span>
+00118
+00119 <span class="comment">// init the allocator.</span>
+00120 <span class="keywordflow">if</span>(<a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>)
+00121 {
+00122 <span class="comment">/* Init with an alignment of 8. Not sure it is usefull, but GDC01_Performance.pdf papers talks about</span>
+00123 <span class="comment"> "Data arrays must be 8-byte aligned". Don't know what "Data" is.</span>
+00124 <span class="comment"> */</span>
+00125 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar0">_HeapMemory</a>.<a class="code" href="a02627.html#NLMISC_1_1CHeapMemorya5">initHeap</a>(_VertexArrayPtr, size, 8);
+00126
+00127 <span class="comment">// set the size</span>
+00128 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">_VertexArraySize</a>= <a class="code" href="a04223.html#a587">size</a>;
+00129 }
+00130
+00131
+00132 <span class="keywordflow">return</span> <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>!=NULL;
+00133 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiad0" doxytag="NL3D::CVertexArrayRangeNVidia::allocated" ></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::CVertexArrayRangeNVidia::allocated </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, private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+true if allocated.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05655.html#l00165">165</a> of file <a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a>.
+<p>
+References <a class="el" href="a05655.html#l00158">_VertexArrayPtr</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00219">createVBHardGL()</a>.
+<p>
+<div class="fragment"><pre>00165 {<span class="keywordflow">return</span> <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>!=NULL;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiad1" doxytag="NL3D::CVertexArrayRangeNVidia::allocateVB" ></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::CVertexArrayRangeNVidia::allocateVB </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>size</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>
+Allocate a small subset of the memory. NULL if not enough mem.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05654.html#l00205">205</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05655.html#l00162">_HeapMemory</a>, <a class="el" href="a05781.html#l00118">NLMISC::CHeapMemory::allocate()</a>, <a class="el" href="a05646.html#l00645">size</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00219">createVBHardGL()</a>.
+<p>
+<div class="fragment"><pre>00206 {
+00207 <span class="keywordflow">return</span> <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar0">_HeapMemory</a>.<a class="code" href="a02627.html#NLMISC_1_1CHeapMemorya0">allocate</a>(size);
+00208 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaz125_1" doxytag="NL3D::CVertexArrayRangeNVidia::createVBHardGL" ></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="a03695.html">IVertexBufferHardGL</a> * NL3D::CVertexArrayRangeNVidia::createVBHardGL </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a9">uint16</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>vertexFormat</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>typeArray</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>numVertices</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a04558.html#a7">uint8</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>uvRouting</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+create a <a class="el" href="a03695.html">IVertexBufferHardGL</a>
+<p>
+
+<p>
+Implements <a class="el" href="a03689.html#NL3D_1_1IVertexArrayRangea1">NL3D::IVertexArrayRange</a>.
+<p>
+Definition at line <a class="el" href="a05654.html#l00219">219</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05655.html#l00165">allocated()</a>, <a class="el" href="a05654.html#l00205">allocateVB()</a>, <a class="el" href="a06713.html#l00054">NL3D::IVertexBufferHard::getNumVertices()</a>, <a class="el" href="a06713.html#l00053">NL3D::IVertexBufferHard::getVertexSize()</a>, <a class="el" href="a05655.html#l00104">NL3D::IVertexBufferHardGL::initFormat()</a>, <a class="el" href="a05654.html#l00295">NL3D::CVertexBufferHardGLNVidia::initGL()</a>, <a class="el" href="a05646.html#l00645">size</a>, <a class="el" href="a05981.html#l00098">uint16</a>, <a class="el" href="a05981.html#l00100">uint32</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00220 {
+00221 <span class="comment">// create a NVidia VBHard</span>
+00222 CVertexBufferHardGLNVidia *newVbHard= <span class="keyword">new</span> CVertexBufferHardGLNVidia(_Driver);
+00223
+00224 <span class="comment">// Init the format of the VB.</span>
+00225 newVbHard-&gt;initFormat(vertexFormat, typeArray, numVertices, uvRouting);
+00226
+00227 <span class="comment">// compute size to allocate.</span>
+00228 <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a04223.html#a587">size</a>= newVbHard-&gt;getVertexSize() * newVbHard-&gt;getNumVertices();
+00229
+00230 <span class="comment">// try to allocate</span>
+00231 <span class="keywordtype">void</span> *vertexPtr;
+00232 <span class="keywordflow">if</span>( <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiad0">allocated</a>() )
+00233 {
+00234 vertexPtr= <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiad1">allocateVB</a>(size);
+00235 }
+00236
+00237 <span class="comment">// If allocation fails.</span>
+00238 <span class="keywordflow">if</span>( !vertexPtr )
+00239 {
+00240 <span class="comment">// just destroy this object (no free()).</span>
+00241 <span class="keyword">delete</span> newVbHard;
+00242 <span class="keywordflow">return</span> NULL;
+00243 }
+00244 <span class="keywordflow">else</span>
+00245 {
+00246 <span class="comment">// Ok, setup, and allocate the fence.</span>
+00247 newVbHard-&gt;initGL(<span class="keyword">this</span>, vertexPtr);
+00248 <span class="keywordflow">return</span> newVbHard;
+00249 }
+00250 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaa1" doxytag="NL3D::CVertexArrayRangeNVidia::disable" ></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::CVertexArrayRangeNVidia::disable </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>
+disable this VertexArrayRange. _Driver-&gt;_CurrentVertexArrayRange= NULL;
+<p>
+
+<p>
+Definition at line <a class="el" href="a05654.html#l00191">191</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05643.html#l00887">NL3D::CDriverGL::_CurrentVertexArrayRange</a>, <a class="el" href="a05643.html#l00564">NL3D::CDriverGL::_Extensions</a>, and <a class="el" href="a05645.html#l00092">NL3D::CGlExtensions::NVStateVARWithoutFlush</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00366">NL3D::CVertexBufferHardGLNVidia::disable()</a>.
+<p>
+<div class="fragment"><pre>00192 {
+00193 <span class="comment">// if not already disabled.</span>
+00194 <span class="keywordflow">if</span>(<a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_CurrentVertexArrayRange!=NULL)
+00195 {
+00196 <span class="comment">// just disable the state, don't change VAR ptr setup.</span>
+00197 <span class="comment">// NB: flush is unesufull, so don't flush if extension is OK</span>
+00198 glDisableClientState(<a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_Extensions.NVStateVARWithoutFlush);
+00199 <a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_CurrentVertexArrayRange= NULL;
+00200 }
+00201 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaa2" doxytag="NL3D::CVertexArrayRangeNVidia::enable" ></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::CVertexArrayRangeNVidia::enable </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>
+active this VertexArrayRange as the current vertex array range used. no-op if already setup.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05654.html#l00166">166</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05643.html#l00887">NL3D::CDriverGL::_CurrentVertexArrayRange</a>, <a class="el" href="a05643.html#l00564">NL3D::CDriverGL::_Extensions</a>, <a class="el" href="a05643.html#l00891">NL3D::CDriverGL::_NVCurrentVARPtr</a>, <a class="el" href="a05643.html#l00892">NL3D::CDriverGL::_NVCurrentVARSize</a>, <a class="el" href="a05655.html#l00158">_VertexArrayPtr</a>, <a class="el" href="a05655.html#l00159">_VertexArraySize</a>, <a class="el" href="a05645.html#l00241">nglVertexArrayRangeNV</a>, and <a class="el" href="a05645.html#l00092">NL3D::CGlExtensions::NVStateVARWithoutFlush</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00354">NL3D::CVertexBufferHardGLNVidia::enable()</a>.
+<p>
+<div class="fragment"><pre>00167 {
+00168 <span class="comment">// if not already enabled.</span>
+00169 <span class="keywordflow">if</span>(<a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_CurrentVertexArrayRange!=<span class="keyword">this</span>)
+00170 {
+00171 <span class="comment">// Setup the ptrs only if differnets from last time (may rarely happens)</span>
+00172 <span class="keywordflow">if</span>( <a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_NVCurrentVARSize != <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">_VertexArraySize</a> || <a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_NVCurrentVARPtr != <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>)
+00173 {
+00174 <span class="comment">// Yoyo: fucking NVidia Bug ?? must do this strange thing, this ensure that it is correclty setuped.</span>
+00175 glFinish();
+00176 <a class="code" href="a04222.html#a42">nglVertexArrayRangeNV</a>(_VertexArraySize, _VertexArrayPtr);
+00177 glEnableClientState(GL_VERTEX_ARRAY_RANGE_NV);
+00178 glVertexPointer(3,GL_FLOAT, 0, _VertexArrayPtr);
+00179 <span class="comment">// cache.</span>
+00180 <a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_NVCurrentVARSize= <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">_VertexArraySize</a>;
+00181 <a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_NVCurrentVARPtr= <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>;
+00182 }
+00183 <span class="comment">// enable VAR. NB: flush is unesufull, so don't flush if extension is OK</span>
+00184 glEnableClientState(<a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_Extensions.NVStateVARWithoutFlush);
+00185 <a class="code" href="a03689.html#NL3D_1_1IVertexArrayRangep0">_Driver</a>-&gt;_CurrentVertexArrayRange= <span class="keyword">this</span>;
+00186 }
+00187 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaz125_2" doxytag="NL3D::CVertexArrayRangeNVidia::free" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CVertexArrayRangeNVidia::free </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> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+free this space.
+<p>
+
+<p>
+Implements <a class="el" href="a03689.html#NL3D_1_1IVertexArrayRangea2">NL3D::IVertexArrayRange</a>.
+<p>
+Definition at line <a class="el" href="a05654.html#l00144">144</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05655.html#l00162">_HeapMemory</a>, <a class="el" href="a05655.html#l00158">_VertexArrayPtr</a>, <a class="el" href="a05655.html#l00159">_VertexArraySize</a>, and <a class="el" href="a05781.html#l00052">NLMISC::CHeapMemory::reset()</a>.
+<p>
+<div class="fragment"><pre>00145 {
+00146 <span class="comment">// release the ptr.</span>
+00147 <span class="keywordflow">if</span>(<a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>)
+00148 {
+00149 <span class="comment">// reset the allocator.</span>
+00150 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar0">_HeapMemory</a>.<a class="code" href="a02627.html#NLMISC_1_1CHeapMemorya6">reset</a>();
+00151
+00152
+00153 <span class="comment">// Free special memory.</span>
+00154 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+00155 <span class="preprocessor"></span> wglFreeMemoryNV(_VertexArrayPtr);
+00156 <span class="preprocessor">#endif // NL_OS_WINDOWS</span>
+00157 <span class="preprocessor"></span>
+00158
+00159 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">_VertexArrayPtr</a>= NULL;
+00160 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">_VertexArraySize</a>= 0;
+00161 }
+00162 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaa3" doxytag="NL3D::CVertexArrayRangeNVidia::freeVB" ></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::CVertexArrayRangeNVidia::freeVB </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>ptr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+free a VB allocated with allocateVB. No-op if NULL.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05654.html#l00212">212</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05655.html#l00162">_HeapMemory</a>, and <a class="el" href="a05781.html#l00173">NLMISC::CHeapMemory::free()</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00276">NL3D::CVertexBufferHardGLNVidia::~CVertexBufferHardGLNVidia()</a>.
+<p>
+<div class="fragment"><pre>00213 {
+00214 <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar0">_HeapMemory</a>.<a class="code" href="a02627.html#NLMISC_1_1CHeapMemorya2">free</a>(ptr);
+00215 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiaz125_3" doxytag="NL3D::CVertexArrayRangeNVidia::sizeAllocated" ></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::CVertexArrayRangeNVidia::sizeAllocated </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> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the size allocated. 0 if not allocated or failure
+<p>
+
+<p>
+Implements <a class="el" href="a03689.html#NL3D_1_1IVertexArrayRangea4">NL3D::IVertexArrayRange</a>.
+<p>
+Definition at line <a class="el" href="a05654.html#l00137">137</a> of file <a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a>.
+<p>
+References <a class="el" href="a05655.html#l00159">_VertexArraySize</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00138 {
+00139 <span class="keywordflow">return</span> <a class="code" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">_VertexArraySize</a>;
+00140 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1IVertexArrayRangep0" doxytag="NL3D::CVertexArrayRangeNVidia::_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="a02433.html">CDriverGL</a>* <a class="el" href="a03689.html#NL3D_1_1IVertexArrayRangep0">NL3D::IVertexArrayRange::_Driver</a><code> [protected, inherited]</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="a05655.html#l00069">69</a> of file <a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiar0" doxytag="NL3D::CVertexArrayRangeNVidia::_HeapMemory" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02627.html">NLMISC::CHeapMemory</a> <a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar0">NL3D::CVertexArrayRangeNVidia::_HeapMemory</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="a05655.html#l00162">162</a> of file <a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00101">allocate()</a>, <a class="el" href="a05654.html#l00205">allocateVB()</a>, <a class="el" href="a05654.html#l00144">free()</a>, and <a class="el" href="a05654.html#l00212">freeVB()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiar1" doxytag="NL3D::CVertexArrayRangeNVidia::_VertexArrayPtr" ></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* <a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar1">NL3D::CVertexArrayRangeNVidia::_VertexArrayPtr</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="a05655.html#l00158">158</a> of file <a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00101">allocate()</a>, <a class="el" href="a05655.html#l00165">allocated()</a>, <a class="el" href="a05654.html#l00093">CVertexArrayRangeNVidia()</a>, <a class="el" href="a05654.html#l00166">enable()</a>, and <a class="el" href="a05654.html#l00144">free()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CVertexArrayRangeNVidiar2" doxytag="NL3D::CVertexArrayRangeNVidia::_VertexArraySize" ></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#a11">uint32</a> <a class="el" href="a03691.html#NL3D_1_1CVertexArrayRangeNVidiar2">NL3D::CVertexArrayRangeNVidia::_VertexArraySize</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="a05655.html#l00159">159</a> of file <a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a>.
+<p>
+Referenced by <a class="el" href="a05654.html#l00101">allocate()</a>, <a class="el" href="a05654.html#l00093">CVertexArrayRangeNVidia()</a>, <a class="el" href="a05654.html#l00166">enable()</a>, <a class="el" href="a05654.html#l00144">free()</a>, and <a class="el" href="a05654.html#l00137">sizeAllocated()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05655.html">driver_opengl_vertex_buffer_hard.h</a><li><a class="el" href="a05654.html">driver_opengl_vertex_buffer_hard.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 08:23:14 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>