aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a02434.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/a02434.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/a02434.html7030
1 files changed, 7030 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02434.html b/docs/doxygen/nel/a02434.html
new file mode 100644
index 00000000..2fd26dd1
--- /dev/null
+++ b/docs/doxygen/nel/a02434.html
@@ -0,0 +1,7030 @@
+<!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::IDriver 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::IDriver Class Reference</h1><code>#include &lt;<a class="el" href="a05640.html">driver.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::IDriver:
+<p><center><img src="a02434.png" usemap="#NL3D::IDriver_map" border="0" alt=""></center>
+<map name="NL3D::IDriver_map">
+<area href="a02209.html" alt="NLMISC::CRefCount" shape="rect" coords="0,0,126,24">
+<area href="a02433.html" alt="NL3D::CDriverGL" shape="rect" coords="0,112,126,136">
+</map>
+<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Vertex program interface</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_0">TMatrix</a> { <a class="el" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw18">ModelView</a> = 0,
+<a class="el" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw28">Projection</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw19">ModelViewProjection</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw22">NumMatrix</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_1">TTransform</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw11">Identity</a> = 0,
+<a class="el" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw14">Inverse</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw38">Transpose</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw15">InverseTranspose</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw23">NumTransform</a>
+<br>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">activeVertexProgram</a> (<a class="el" href="a03702.html">CVertexProgram</a> *<a class="el" href="a04223.html#a568">program</a>)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_3">enableVertexProgramDoubleSidedColor</a> (bool doubleSided)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_4">isVertexProgramEmulated</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_5">isVertexProgramSupported</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_6">setConstant</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a653">num</a>, const double *<a class="el" href="a04223.html#a652">src</a>)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">setup several 4 double csts taken from the given tab <a href="#NL3D_1_1IDriverz147_6"></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="a02434.html#NL3D_1_1IDriverz147_7">setConstant</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, <a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a653">num</a>, const float *<a class="el" href="a04223.html#a652">src</a>)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">setup several 4 float csts taken from the given tab <a href="#NL3D_1_1IDriverz147_7"></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="a02434.html#NL3D_1_1IDriverz147_8">setConstant</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, const <a class="el" href="a03664.html">NLMISC::CVectorD</a> &amp;<a class="el" href="a04223.html#a658">value</a>)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_9">setConstant</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;<a class="el" href="a04223.html#a658">value</a>)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_10">setConstant</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, double, double, double, double)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_11">setConstant</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, float, float, float, float)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_12">setConstantMatrix</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_0">TMatrix</a> <a class="el" href="a04223.html#a578">matrix</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_1">TTransform</a> <a class="el" href="a04223.html#a579">transform</a>)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_13">supportCloudRenderSinglePass</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz147_14">supportVertexProgramDoubleSidedColor</a> () const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Check if the driver support double sided colors vertex programs. <a href="#NL3D_1_1IDriverz147_14"></a><br><br></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="a02434.html#NL3D_1_1IDriverw33">TMatrixCount</a> { <a class="el" href="a02434.html#NL3D_1_1IDriverw33NL3D_1_1IDriverw17">MaxModelMatrix</a> = 16
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverw34">TMessageBoxIcon</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw20">noIcon</a> = 0,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw8">handIcon</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw29">questionIcon</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw6">exclamationIcon</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw2">asteriskIcon</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw43">warningIcon</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw5">errorIcon</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw13">informationIcon</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw32">stopIcon</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw9">iconCount</a>
+<br>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverw35">TMessageBoxId</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw25">okId</a> = 0,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw44">yesId</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw21">noId</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw0">abortId</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw31">retryId</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw3">cancelId</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw12">ignoreId</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw10">idCount</a>
+<br>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverw36">TMessageBoxType</a> { <br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw26">okType</a> = 0,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw24">okCancelType</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw46">yesNoType</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw1">abortRetryIgnoreType</a>,
+<br>
+&nbsp;&nbsp;<a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw45">yesNoCancelType</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw30">retryCancelType</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw40">typeCount</a>
+<br>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a> { <a class="el" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw7">Filled</a> = 0,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw16">Line</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw27">Point</a>
+ }</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverw39">TVBHardType</a> { <a class="el" href="a02434.html#NL3D_1_1IDriverw39NL3D_1_1IDriverw41">VBHardAGP</a> = 0,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw39NL3D_1_1IDriverw42">VBHardVRAM</a>,
+<a class="el" href="a02434.html#NL3D_1_1IDriverw39NL3D_1_1IDriverw4">CountVBHard</a>
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera0">activate</a> (void)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Before rendering via a driver in a thread, must <a class="el" href="a02434.html#NL3D_1_1IDrivera0">activate()</a> (per thread). <a href="#NL3D_1_1IDrivera0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera1">activeVertexBuffer</a> (<a class="el" href="a03692.html">CVertexBuffer</a> &amp;VB, <a class="el" href="a04558.html#a15">uint</a> first, <a class="el" href="a04558.html#a15">uint</a> end)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera2">activeVertexBuffer</a> (<a class="el" href="a03692.html">CVertexBuffer</a> &amp;VB)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera3">activeVertexBufferHard</a> (<a class="el" href="a03694.html">IVertexBufferHard</a> *VB)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera4">clear2D</a> (<a class="el" href="a03337.html">CRGBA</a> rgba)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera5">clearZBuffer</a> (float zval=1)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera6">copyFrameBufferToTexture</a> (<a class="el" href="a03487.html">ITexture</a> *tex, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a630">level</a>, <a class="el" href="a04558.html#a11">uint32</a> offsetx, <a class="el" href="a04558.html#a11">uint32</a> offsety, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a572">x</a>, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a573">y</a>, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a632">width</a>, <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a633">height</a>)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03694.html">IVertexBufferHard</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera7">createVertexBufferHard</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, <a class="el" href="a02434.html#NL3D_1_1IDriverw39">TVBHardType</a> vbType, const <a class="el" href="a04558.html#a7">uint8</a> *uvRouting)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera8">deleteVertexBufferHard</a> (<a class="el" href="a03694.html">IVertexBufferHard</a> *VB)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera9">enableLight</a> (<a class="el" href="a04558.html#a7">uint8</a> <a class="el" href="a04223.html#a653">num</a>, bool enable=true)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera10">endSpecularBatch</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a05363.html#a19">ModeList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera11">enumModes</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera12">fillBuffer</a> (<a class="el" href="a02268.html">CBitmap</a> &amp;bitmap)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera13">forceDXTCCompression</a> (bool dxtcComp)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera14">forceNormalize</a> (bool normalize)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera15">forceTextureResize</a> (<a class="el" href="a04558.html#a15">uint</a> divisor)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera16">getAvailableVertexAGPMemory</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera17">getAvailableVertexVRAMMemory</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera18">getBitPerPixel</a> ()=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the depth of the driver after <a class="el" href="a02434.html#NL3D_1_1IDrivera42">init()</a>. <a href="#NL3D_1_1IDrivera18"></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="a02434.html#NL3D_1_1IDrivera19">getBuffer</a> (<a class="el" href="a02268.html">CBitmap</a> &amp;bitmap)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera20">getBufferPart</a> (<a class="el" href="a02268.html">CBitmap</a> &amp;bitmap, <a class="el" href="a03319.html">NLMISC::CRect</a> &amp;rect)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera21">getDisplay</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera22">getDriverInformation</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03852.html">NLMISC::IEventEmitter</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera23">getEventEmitter</a> (void)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera24">getImplementationVersion</a> () const=0</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="a02434.html#NL3D_1_1IDrivera25">getMaxLight</a> () const=0</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="a02434.html#NL3D_1_1IDrivera26">getMaxVerticesByVertexBufferHard</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera27">getModes</a> (std::vector&lt; <a class="el" href="a03831.html">GfxMode</a> &gt; &amp;modes)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera28">getNbTextureStages</a> () const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the number of texture stage avaliable, for multitexturing (Normal material shaders). Valid only after <a class="el" href="a02434.html#NL3D_1_1IDrivera59">setDisplay()</a>. <a href="#NL3D_1_1IDrivera28"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera29">getPolygonMode</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a14">sint</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypea8">getRefCount</a> () const </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="a02434.html#NL3D_1_1IDrivera31">getSwapVBLInterval</a> ()=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the number of VBL wait when a <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> is issued. 0 means no synchronisation to the VBL <a href="#NL3D_1_1IDrivera31"></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="a02434.html#NL3D_1_1IDrivera32">getTextureHandle</a> (const <a class="el" href="a03487.html">ITexture</a> &amp;tex)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual const char *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera33">getVideocardInformation</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02851.html">CMatrix</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera34">getViewMatrix</a> (void) const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera35">getViewport</a> (<a class="el" href="a03704.html">CViewport</a> &amp;viewport)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera36">getWindowPos</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;<a class="el" href="a04223.html#a572">x</a>, <a class="el" href="a04558.html#a11">uint32</a> &amp;<a class="el" href="a04223.html#a573">y</a>)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the position of the window always (0,0) in fullscreen. <a href="#NL3D_1_1IDrivera36"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a05363.html#a20">emptyProc</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera37">getWindowProc</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera38">getWindowSize</a> (<a class="el" href="a04558.html#a11">uint32</a> &amp;<a class="el" href="a04223.html#a632">width</a>, <a class="el" href="a04558.html#a11">uint32</a> &amp;<a class="el" href="a04223.html#a633">height</a>)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the width and the height of the window. <a href="#NL3D_1_1IDrivera38"></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="a02434.html#NL3D_1_1IDrivera39">getZBuffer</a> (std::vector&lt; float &gt; &amp;zbuffer)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera40">getZBufferPart</a> (std::vector&lt; float &gt; &amp;zbuffer, <a class="el" href="a03319.html">NLMISC::CRect</a> &amp;rect)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera41">IDriver</a> (void)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera42">init</a> (<a class="el" href="a04558.html#a15">uint</a> windowIcon=0)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera43">initVertexArrayRange</a> (<a class="el" href="a04558.html#a15">uint</a> agpMem, <a class="el" href="a04558.html#a15">uint</a> vramMem=0)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera44">invalidateShareTexture</a> (<a class="el" href="a03487.html">ITexture</a> &amp;)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera45">isActive</a> ()=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return true if driver is still active. Return false else. If he user close the window, must return false. <a href="#NL3D_1_1IDrivera45"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera46">isForceNormalize</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera47">isTextureExist</a> (const <a class="el" href="a03487.html">ITexture</a> &amp;tex)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera48">mapTextureStageToUV</a> (<a class="el" href="a04558.html#a15">uint</a> stage, <a class="el" href="a04558.html#a15">uint</a> uv)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera49">multiplyModelMatrix</a> (const <a class="el" href="a02851.html">CMatrix</a> &amp;mtx)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera50">release</a> (void)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Deriver should calls <a class="el" href="a02434.html#NL3D_1_1IDrivera50">IDriver::release()</a> first, to destroy all driver components (textures, shaders, VBuffers). <a href="#NL3D_1_1IDrivera50"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera51">render</a> (<a class="el" href="a03105.html">CPrimitiveBlock</a> &amp;PB, <a class="el" href="a02839.html">CMaterial</a> &amp;Mat)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera52">renderOrientedQuads</a> (<a class="el" href="a02839.html">CMaterial</a> &amp;Mat, <a class="el" href="a04558.html#a11">uint32</a> startIndex, <a class="el" href="a04558.html#a11">uint32</a> numQuads)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera53">renderPoints</a> (<a class="el" href="a02839.html">CMaterial</a> &amp;Mat, <a class="el" href="a04558.html#a11">uint32</a> numPoints)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera54">renderQuads</a> (<a class="el" href="a02839.html">CMaterial</a> &amp;Mat, <a class="el" href="a04558.html#a11">uint32</a> startIndex, <a class="el" href="a04558.html#a11">uint32</a> numQuads)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera55">renderSimpleTriangles</a> (<a class="el" href="a04558.html#a11">uint32</a> *tri, <a class="el" href="a04558.html#a11">uint32</a> ntris)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera56">renderTriangles</a> (<a class="el" href="a02839.html">CMaterial</a> &amp;Mat, <a class="el" href="a04558.html#a11">uint32</a> *tri, <a class="el" href="a04558.html#a11">uint32</a> ntris)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera57">setAmbientColor</a> (<a class="el" href="a03337.html">CRGBA</a> color)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera58">setColorMask</a> (bool bRed, bool bGreen, bool bBlue, bool bAlpha)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the color mask filter through where the operation done will pass. <a href="#NL3D_1_1IDrivera58"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera59">setDisplay</a> (void *wnd, const <a class="el" href="a03831.html">GfxMode</a> &amp;mode, bool show=true)=0 throw (EBadDisplay)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera60">setFrustum</a> (float left, float right, float bottom, float top, float znear, float zfar, bool perspective=true)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera61">setLight</a> (<a class="el" href="a04558.html#a7">uint8</a> <a class="el" href="a04223.html#a653">num</a>, const <a class="el" href="a02743.html">CLight</a> &amp;light)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera62">setMode</a> (const <a class="el" href="a03831.html">GfxMode</a> &amp;mode)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera63">setMonitorColorProperties</a> (const <a class="el" href="a02935.html">CMonitorColorProperties</a> &amp;properties)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera64">setPerPixelLightingLight</a> (<a class="el" href="a03337.html">CRGBA</a> diffuse, <a class="el" href="a03337.html">CRGBA</a> specular, float shininess)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera65">setPolygonMode</a> (<a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a> mode)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera66">setSwapVBLInterval</a> (<a class="el" href="a04558.html#a15">uint</a> interval)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera67">setupMaterial</a> (<a class="el" href="a02839.html">CMaterial</a> &amp;mat)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix</a> (const <a class="el" href="a02851.html">CMatrix</a> &amp;mtx)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera69">setupScissor</a> (const class <a class="el" href="a03353.html">CScissor</a> &amp;scissor)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera70">setupTexture</a> (<a class="el" href="a03487.html">ITexture</a> &amp;tex)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera71">setupTextureEx</a> (<a class="el" href="a03487.html">ITexture</a> &amp;tex, bool bUpload, bool &amp;bAllUploaded, bool bMustRecreateSharedTexture=false)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera72">setupViewMatrix</a> (const <a class="el" href="a02851.html">CMatrix</a> &amp;mtx)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera73">setupViewMatrixEx</a> (const <a class="el" href="a02851.html">CMatrix</a> &amp;mtx, const <a class="el" href="a03128.html">CVector</a> &amp;cameraPos)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera74">setupViewport</a> (const class <a class="el" href="a03704.html">CViewport</a> &amp;viewport)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera75">slowUnlockVertexBufferHard</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera76">startSpecularBatch</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera77">supportPerPixelLighting</a> (bool specular) const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera78">supportVertexBufferHard</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers</a> (void)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Swap the back and front buffers. <a href="#NL3D_1_1IDrivera79"></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="a02434.html#NL3D_1_1IDrivera80">swapTextureHandle</a> (<a class="el" href="a03487.html">ITexture</a> &amp;tex0, <a class="el" href="a03487.html">ITexture</a> &amp;tex1)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a02434.html#NL3D_1_1IDriverw35">TMessageBoxId</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera81">systemMessageBox</a> (const char *message, const char *title, <a class="el" href="a02434.html#NL3D_1_1IDriverw36">TMessageBoxType</a> <a class="el" href="a04223.html#a581">type</a>=okType, <a class="el" href="a02434.html#NL3D_1_1IDriverw34">TMessageBoxIcon</a> icon=noIcon)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera82">uploadTexture</a> (<a class="el" href="a03487.html">ITexture</a> &amp;tex, <a class="el" href="a03319.html">NLMISC::CRect</a> &amp;rect, <a class="el" href="a04558.html#a7">uint8</a> nNumMipMap)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera83">uploadTextureCube</a> (<a class="el" href="a03487.html">ITexture</a> &amp;tex, <a class="el" href="a03319.html">NLMISC::CRect</a> &amp;rect, <a class="el" href="a04558.html#a7">uint8</a> nNumMipMap, <a class="el" href="a04558.html#a7">uint8</a> nNumFace)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivera84">~IDriver</a> (void)</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Material multipass.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz139_0">beginMaterialMultiPass</a> ()=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">init multipass for _CurrentMaterial. return number of pass required to render this material. <a href="#NL3D_1_1IDriverz139_0"></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="a02434.html#NL3D_1_1IDriverz139_1">endMaterialMultiPass</a> ()=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">end multipass for this material. <a href="#NL3D_1_1IDriverz139_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="a02434.html#NL3D_1_1IDriverz139_2">setupMaterialPass</a> (<a class="el" href="a04558.html#a15">uint</a> pass)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">active the ith pass of this material. <a href="#NL3D_1_1IDriverz139_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Disable Hardware Feature</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz137_0">disableHardwareTextureShader</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz137_1">disableHardwareVertexArrayAGP</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz137_2">disableHardwareVertexProgram</a> ()=0</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Fog support.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz143_0">enableFog</a> (bool enable)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz143_1">fogEnabled</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03337.html">CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz143_2">getFogColor</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz143_3">getFogEnd</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz143_4">getFogStart</a> () const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get. <a href="#NL3D_1_1IDriverz143_4"></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="a02434.html#NL3D_1_1IDriverz143_5">setupFog</a> (float start, float end, <a class="el" href="a03337.html">CRGBA</a> color)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">setup fog parameters. fog must enabled to see result. start and end are in [0,1] range. <a href="#NL3D_1_1IDriverz143_5"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Mouse / Keyboard / Game devices</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03860.html">NLMISC::IKeyboardDevice</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz145_0">enableLowLevelKeyboard</a> (bool enable)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03867.html">NLMISC::IMouseDevice</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz145_1">enableLowLevelMouse</a> (bool enable, bool exclusive)=0</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="a02434.html#NL3D_1_1IDriverz145_2">getDoubleClickDelay</a> (bool hardwareMouse)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03858.html">NLMISC::IInputDeviceManager</a> *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz145_3">getLowLevelInputDeviceManager</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz145_4">setCapture</a> (bool b)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz145_5">setMousePos</a> (float <a class="el" href="a04223.html#a572">x</a>, float <a class="el" href="a04223.html#a573">y</a>)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">x and y must be between 0.0 and 1.0 <a href="#NL3D_1_1IDriverz145_5"></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="a02434.html#NL3D_1_1IDriverz145_6">showCursor</a> (bool b)=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">show cursor if b is true, or hide it if b is false <a href="#NL3D_1_1IDriverz145_6"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Misc</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz153_0">enablePolygonSmoothing</a> (bool smooth)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz153_1">finish</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz153_2">getBlendConstantColor</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz153_3">isPolygonSmoothingEnabled</a> () const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see <a class="el" href="a02434.html#NL3D_1_1IDriverz153_0">enablePolygonSmoothing()</a> <a href="#NL3D_1_1IDriverz153_3"></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="a02434.html#NL3D_1_1IDriverz153_4">setBlendConstantColor</a> (<a class="el" href="a03337.html">NLMISC::CRGBA</a> col)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz153_5">supportBlendConstantColor</a> () const=0</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Profiling.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_0">enableUsedTextureMemorySum</a> (bool enable=true)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_1">endProfileVBHardLock</a> (std::vector&lt; std::string &gt; &amp;result)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_2">getUsedTextureMemory</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_3">profileAllocatedTextureMemory</a> ()=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_4">profileRenderedPrimitives</a> (<a class="el" href="a03116.html">CPrimitiveProfile</a> &amp;pIn, <a class="el" href="a03116.html">CPrimitiveProfile</a> &amp;pOut)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_5">profileSetupedMaterials</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_6">profileSetupedModelMatrix</a> () const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_7">profileVBHardAllocation</a> (std::vector&lt; std::string &gt; &amp;result)=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz141_8">startProfileVBHardLock</a> ()=0</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">EMBM support. If texture shaders are present, this is not available, must use them instead.</div></td></tr>
+<tr><td colspan="2"><div class="groupText">EMBM is a color op of CMaterial. NB : EMBM is the equivalent of the CMaterial::OffsetTexture addressing mode. However, it is both a texture adressing mode and a color op. NB : EMBM may not be supported by all stages. <br><br></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="a02434.html#NL3D_1_1IDriverz151_0">isEMBMSupportedAtStage</a> (<a class="el" href="a04558.html#a15">uint</a> stage) const=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz151_1">setEMBMMatrix</a> (const <a class="el" href="a04558.html#a15">uint</a> stage, const float mat[4])=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz151_2">supportEMBM</a> () const=0</td></tr>
+
+<tr><td colspan="2"><div class="groupHeader">Texture addressing modes aka textures/pixels shaders</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="a02434.html#NL3D_1_1IDriverz149_0">isTextureAddrModeSupported</a> (<a class="el" href="a02839.html#NL3D_1_1CMaterialz360_0">CMaterial::TTexAddressingMode</a> mode) const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test wether a texture addressing mode is supported <a href="#NL3D_1_1IDriverz149_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz149_1">isWaterShaderSupported</a> () const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test wether a texture addressing mode is supported <a href="#NL3D_1_1IDriverz149_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="a02434.html#NL3D_1_1IDriverz149_2">setMatrix2DForTextureOffsetAddrMode</a> (const <a class="el" href="a04558.html#a15">uint</a> stage, const float mat[4])=0</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverz149_3">supportTextureShaders</a> () const=0</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">test wether the device supports some form of texture shader. (could be limited to DX6 EMBM for example) <a href="#NL3D_1_1IDriverz149_3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivere0">getTextureShareName</a> (const <a class="el" href="a03487.html">ITexture</a> &amp;tex, std::string &amp;output)</td></tr>
+
+<tr><td colspan=2><br><h2>Data Fields</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">pinfo</a></td></tr>
+
+<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivers0">InterfaceVersion</a> = 0x4e</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Version of the driver interface. To increment when the interface change. <a href="#NL3D_1_1IDrivers0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NullPtrInfo</a></td></tr>
+
+<tr><td colspan=2><br><h2>Protected Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverb0">removeShaderPtr</a> (<a class="el" href="a05363.html#a287">ItShaderPtrList</a> shaderIt)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverb1">removeTextureDrvInfoPtr</a> (<a class="el" href="a05363.html#a297">ItTexDrvInfoPtrMap</a> texDrvInfoIt)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverb2">removeTextureDrvSharePtr</a> (<a class="el" href="a05363.html#a298">ItTexDrvSharePtrList</a> texDrvShareIt)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverb3">removeVBDrvInfoPtr</a> (<a class="el" href="a05363.html#a343">ItVBDrvInfoPtrList</a> vbDrvInfoIt)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">remove ptr from the lists in the driver. <a href="#NL3D_1_1IDriverb3"></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="a02434.html#NL3D_1_1IDriverb4">removeVtxPrgDrvInfoPtr</a> (<a class="el" href="a05363.html#a345">ItVtxPrgDrvInfoPtrList</a> vtxPrgDrvInfoIt)</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="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverp0">_PolygonMode</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a286">TShaderPtrList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverp1">_Shaders</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>CSynchronized&lt; <a class="el" href="a03916.html">TTexDrvInfoPtrMap</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverp2">_SyncTexDrvInfos</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a296">TTexDrvSharePtrList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverp3">_TexDrvShares</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a342">TVBDrvInfoPtrList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverp4">_VBDrvInfos</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a05363.html#a344">TVtxPrgDrvInfoPtrList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDriverp5">_VtxPrgDrvInfos</a></td></tr>
+
+<tr><td colspan=2><br><h2>Friends</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypen0">CPtrInfo</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivern1">CTextureDrvShare</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivern2">IShader</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivern3">ITextureDrvInfos</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivern4">IVBDrvInfos</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a02434.html#NL3D_1_1IDrivern5">IVertexProgramDrvInfos</a></td></tr>
+
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1IDriverz147_0" doxytag="NL3D::IDriver::TMatrix" ></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="a02434.html#NL3D_1_1IDriverz147_0">NL3D::IDriver::TMatrix</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_1IDriverz147_0NL3D_1_1IDriverw18" doxytag="ModelView" ></a>ModelView</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverz147_0NL3D_1_1IDriverw28" doxytag="Projection" ></a>Projection</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverz147_0NL3D_1_1IDriverw19" doxytag="ModelViewProjection" ></a>ModelViewProjection</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverz147_0NL3D_1_1IDriverw22" doxytag="NumMatrix" ></a>NumMatrix</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00825">825</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+<div class="fragment"><pre>00826 {
+00827 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw18">ModelView</a>= 0,
+00828 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw28">Projection</a>,
+00829 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw19">ModelViewProjection</a>,
+00830 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_0NL3D_1_1IDriverw22">NumMatrix</a>
+00831 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverw33" doxytag="NL3D::IDriver::TMatrixCount" ></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="a02434.html#NL3D_1_1IDriverw33">NL3D::IDriver::TMatrixCount</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Driver Max matrix count. Kept for backward compatibility. Suppose any Hardware VertexProgram can handle only 16 matrix<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_1IDriverw33NL3D_1_1IDriverw17" doxytag="MaxModelMatrix" ></a>MaxModelMatrix</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00148">148</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+<div class="fragment"><pre>00148 { <a class="code" href="a02434.html#NL3D_1_1IDriverw33NL3D_1_1IDriverw17">MaxModelMatrix</a>= 16 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverw34" doxytag="NL3D::IDriver::TMessageBoxIcon" ></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="a02434.html#NL3D_1_1IDriverw34">NL3D::IDriver::TMessageBoxIcon</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_1IDriverw34NL3D_1_1IDriverw20" doxytag="noIcon" ></a>noIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw8" doxytag="handIcon" ></a>handIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw29" doxytag="questionIcon" ></a>questionIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw6" doxytag="exclamationIcon" ></a>exclamationIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw2" doxytag="asteriskIcon" ></a>asteriskIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw43" doxytag="warningIcon" ></a>warningIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw5" doxytag="errorIcon" ></a>errorIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw13" doxytag="informationIcon" ></a>informationIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw32" doxytag="stopIcon" ></a>stopIcon</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw34NL3D_1_1IDriverw9" doxytag="iconCount" ></a>iconCount</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00133">133</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+<div class="fragment"><pre>00133 { <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw20">noIcon</a>=0, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw8">handIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw29">questionIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw6">exclamationIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw2">asteriskIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw43">warningIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw5">errorIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw13">informationIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw32">stopIcon</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw9">iconCount</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverw35" doxytag="NL3D::IDriver::TMessageBoxId" ></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="a02434.html#NL3D_1_1IDriverw35">NL3D::IDriver::TMessageBoxId</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_1IDriverw35NL3D_1_1IDriverw25" doxytag="okId" ></a>okId</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw35NL3D_1_1IDriverw44" doxytag="yesId" ></a>yesId</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw35NL3D_1_1IDriverw21" doxytag="noId" ></a>noId</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw35NL3D_1_1IDriverw0" doxytag="abortId" ></a>abortId</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw35NL3D_1_1IDriverw31" doxytag="retryId" ></a>retryId</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw35NL3D_1_1IDriverw3" doxytag="cancelId" ></a>cancelId</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw35NL3D_1_1IDriverw12" doxytag="ignoreId" ></a>ignoreId</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw35NL3D_1_1IDriverw10" doxytag="idCount" ></a>idCount</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00131">131</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+<div class="fragment"><pre>00131 { <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw25">okId</a>=0, <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw44">yesId</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw21">noId</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw0">abortId</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw31">retryId</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw3">cancelId</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw12">ignoreId</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw10">idCount</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverw36" doxytag="NL3D::IDriver::TMessageBoxType" ></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="a02434.html#NL3D_1_1IDriverw36">NL3D::IDriver::TMessageBoxType</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_1IDriverw36NL3D_1_1IDriverw26" doxytag="okType" ></a>okType</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw36NL3D_1_1IDriverw24" doxytag="okCancelType" ></a>okCancelType</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw36NL3D_1_1IDriverw46" doxytag="yesNoType" ></a>yesNoType</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw36NL3D_1_1IDriverw1" doxytag="abortRetryIgnoreType" ></a>abortRetryIgnoreType</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw36NL3D_1_1IDriverw45" doxytag="yesNoCancelType" ></a>yesNoCancelType</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw36NL3D_1_1IDriverw30" doxytag="retryCancelType" ></a>retryCancelType</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw36NL3D_1_1IDriverw40" doxytag="typeCount" ></a>typeCount</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00132">132</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+<div class="fragment"><pre>00132 { <a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw26">okType</a>=0, <a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw24">okCancelType</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw46">yesNoType</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw1">abortRetryIgnoreType</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw45">yesNoCancelType</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw30">retryCancelType</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw40">typeCount</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverw37" doxytag="NL3D::IDriver::TPolygonMode" ></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="a02434.html#NL3D_1_1IDriverw37">NL3D::IDriver::TPolygonMode</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Driver's polygon modes.<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera65">setPolygonMode</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera29">getPolygonMode</a></dd></dl>
+<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_1IDriverw37NL3D_1_1IDriverw7" doxytag="Filled" ></a>Filled</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw37NL3D_1_1IDriverw16" doxytag="Line" ></a>Line</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw37NL3D_1_1IDriverw27" doxytag="Point" ></a>Point</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00140">140</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05640.html#l00817">getPolygonMode()</a>.
+<p>
+<div class="fragment"><pre>00140 { <a class="code" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw7">Filled</a>=0, <a class="code" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw16">Line</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw27">Point</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_1" doxytag="NL3D::IDriver::TTransform" ></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="a02434.html#NL3D_1_1IDriverz147_1">NL3D::IDriver::TTransform</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_1IDriverz147_1NL3D_1_1IDriverw11" doxytag="Identity" ></a>Identity</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverz147_1NL3D_1_1IDriverw14" doxytag="Inverse" ></a>Inverse</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverz147_1NL3D_1_1IDriverw38" doxytag="Transpose" ></a>Transpose</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverz147_1NL3D_1_1IDriverw15" doxytag="InverseTranspose" ></a>InverseTranspose</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverz147_1NL3D_1_1IDriverw23" doxytag="NumTransform" ></a>NumTransform</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00833">833</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+<div class="fragment"><pre>00834 {
+00835 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw11">Identity</a>=0,
+00836 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw14">Inverse</a>,
+00837 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw38">Transpose</a>,
+00838 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw15">InverseTranspose</a>,
+00839 <a class="code" href="a02434.html#NL3D_1_1IDriverz147_1NL3D_1_1IDriverw23">NumTransform</a>
+00840 };
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverw39" doxytag="NL3D::IDriver::TVBHardType" ></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="a02434.html#NL3D_1_1IDriverw39">NL3D::IDriver::TVBHardType</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Driver VertexBufferHard type. <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera7">createVertexBufferHard()</a></dd></dl>
+<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_1IDriverw39NL3D_1_1IDriverw41" doxytag="VBHardAGP" ></a>VBHardAGP</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw39NL3D_1_1IDriverw42" doxytag="VBHardVRAM" ></a>VBHardVRAM</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1IDriverw39NL3D_1_1IDriverw4" doxytag="CountVBHard" ></a>CountVBHard</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00155">155</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+<div class="fragment"><pre>00155 { <a class="code" href="a02434.html#NL3D_1_1IDriverw39NL3D_1_1IDriverw41">VBHardAGP</a>=0, <a class="code" href="a02434.html#NL3D_1_1IDriverw39NL3D_1_1IDriverw42">VBHardVRAM</a>, <a class="code" href="a02434.html#NL3D_1_1IDriverw39NL3D_1_1IDriverw4">CountVBHard</a> };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1IDrivera41" doxytag="NL3D::IDriver::IDriver" ></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::IDriver::IDriver </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></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="a05639.html#l00049">49</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00165">_PolygonMode</a>, and <a class="el" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw7">Filled</a>.
+<p>
+<div class="fragment"><pre>00049 : <a class="code" href="a02434.html#NL3D_1_1IDriverp2">_SyncTexDrvInfos</a>( <span class="stringliteral">"IDriver::_SyncTexDrvInfos"</span> )
+00050 {
+00051 <a class="code" href="a02434.html#NL3D_1_1IDriverp0">_PolygonMode</a>= <a class="code" href="a02434.html#NL3D_1_1IDriverw37NL3D_1_1IDriverw7">Filled</a>;
+00052 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera84" doxytag="NL3D::IDriver::~IDriver" ></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::IDriver::~<a class="el" href="a02434.html">IDriver</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</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="a05639.html#l00055">55</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00163">_Shaders</a>, <a class="el" href="a05640.html#l00160">_SyncTexDrvInfos</a>, <a class="el" href="a05640.html#l00162">_TexDrvShares</a>, <a class="el" href="a05640.html#l00164">_VBDrvInfos</a>, <a class="el" href="a05640.html#l00166">_VtxPrgDrvInfos</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+<div class="fragment"><pre>00056 {
+00057 <span class="comment">// Must clean up everything before closing driver.</span>
+00058 <span class="comment">// Must doing this in release(), so assert here if not done...</span>
+00059 {
+00060 CSynchronized&lt;TTexDrvInfoPtrMap&gt;::CAccessor access(&amp;_SyncTexDrvInfos);
+00061 TTexDrvInfoPtrMap &amp;rTexDrvInfos = access.value();
+00062 <a class="code" href="a04199.html#a6">nlassert</a>( rTexDrvInfos.size() == 0 );
+00063 }
+00064
+00065 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02434.html#NL3D_1_1IDriverp3">_TexDrvShares</a>.size()==0);
+00066 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02434.html#NL3D_1_1IDriverp1">_Shaders</a>.size()==0);
+00067 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02434.html#NL3D_1_1IDriverp4">_VBDrvInfos</a>.size()==0);
+00068 <a class="code" href="a04199.html#a6">nlassert</a>(<a class="code" href="a02434.html#NL3D_1_1IDriverp5">_VtxPrgDrvInfos</a>.size()==0);
+00069 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1IDrivera0" doxytag="NL3D::IDriver::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"> virtual bool NL3D::IDriver::activate </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Before rendering via a driver in a thread, must <a class="el" href="a02434.html#NL3D_1_1IDrivera0">activate()</a> (per thread).
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa0">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00314">NL3D::CDriverUser::activate()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera1" doxytag="NL3D::IDriver::activeVertexBuffer" ></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"> virtual bool NL3D::IDriver::activeVertexBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03692.html">CVertexBuffer</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>VB</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>first</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>end</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+active a current VB, for future <a class="el" href="a02434.html#NL3D_1_1IDrivera51">render()</a>. This method suppose that only vertices in given range will be used in future <a class="el" href="a02434.html#NL3D_1_1IDrivera51">render()</a>. This could be usefull for DX or OpenGL driver. Undefined results if primitives in <a class="el" href="a02434.html#NL3D_1_1IDrivera51">render()</a> use vertices not in this range.<p>
+NB: please make sure you have setuped / unsetuped the current vertex program BEFORE activate the vertex buffer.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>VB</em>&nbsp;</td><td>the vertexBuffer to activate. </td></tr>
+ <tr><td valign=top><em>first</em>&nbsp;</td><td>the first vertex important for render (begin to 0). nlassert(first&lt;=end); </td></tr>
+ <tr><td valign=top><em>end</em>&nbsp;</td><td>the last vertex important for render, +1. count==end-first. nlassert(end&lt;=VB.getNumVertices);</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">activeVertexProgram</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa1">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera2" doxytag="NL3D::IDriver::activeVertexBuffer" ></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"> virtual bool NL3D::IDriver::activeVertexBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03692.html">CVertexBuffer</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>VB</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+active a current VB, for future <a class="el" href="a02434.html#NL3D_1_1IDrivera51">render()</a>. This method suppose that all vertices in the VB will be used.<p>
+NB: please make sure you have setuped / unsetuped the current vertex program BEFORE activate the vertex buffer.<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">activeVertexProgram</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa2">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00802">NL3D::CShadowMapManager::applyFakeGaussianBlur()</a>, <a class="el" href="a06005.html#l02705">NL3D::CMeshMRMGeom::beginMesh()</a>, <a class="el" href="a05989.html#l02021">NL3D::CMeshGeom::beginMesh()</a>, <a class="el" href="a05557.html#l00328">NL3D::CCloud::disp()</a>, <a class="el" href="a05557.html#l00606">NL3D::CCloud::dispBill()</a>, <a class="el" href="a06285.html#l00169">NL3D::CPSUtil::displayArrow()</a>, <a class="el" href="a06285.html#l00118">NL3D::CPSUtil::displayBBox()</a>, <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, <a class="el" href="a06283.html#l00242">NL3D::CPSTailDot::displayRibbons()</a>, <a class="el" href="a06277.html#l00319">NL3D::CPSRibbonLookAt::displayRibbons()</a>, <a class="el" href="a06273.html#l00471">NL3D::CPSRibbon::displayRibbons()</a>, <a class="el" href="a05557.html#l00388">NL3D::CCloud::dispXYZ()</a>, <a class="el" href="a05623.html#l00085">NL3D::CDeform2d::doDeform()</a>, <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06226.html#l00122">NL3D::CPSDot::draw()</a>, <a class="el" href="a05660.html#l00136">NL3D::CDRU::drawBitmap()</a>, <a class="el" href="a06231.html#l00055">NL3D::CPSFaceHelper::drawFaces()</a>, <a class="el" href="a06235.html#l00072">NL3D::CPSFanLightHelper::drawFanLight()</a>, <a class="el" href="a05660.html#l00173">NL3D::CDRU::drawLine()</a>, <a class="el" href="a05657.html#l00504">NL3D::CDriverUser::drawLine()</a>, <a class="el" href="a05660.html#l00377">NL3D::CDRU::drawLinesUnlit()</a>, <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>, <a class="el" href="a06233.html#l00089">NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion()</a>, <a class="el" href="a06250.html#l00521">NL3D::CPSConstraintMeshHelper::drawMeshs()</a>, <a class="el" href="a06250.html#l00793">NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs()</a>, <a class="el" href="a05660.html#l00241">NL3D::CDRU::drawQuad()</a>, <a class="el" href="a05657.html#l00654">NL3D::CDriverUser::drawQuad()</a>, <a class="el" href="a05657.html#l00758">NL3D::CDriverUser::drawQuads()</a>, <a class="el" href="a06279.html#l00069">NL3D::CPSShockWaveHelper::drawShockWave()</a>, <a class="el" href="a05660.html#l00206">NL3D::CDRU::drawTriangle()</a>, <a class="el" href="a05657.html#l00575">NL3D::CDriverUser::drawTriangle()</a>, <a class="el" href="a05660.html#l00341">NL3D::CDRU::drawTrianglesUnlit()</a>, <a class="el" href="a06372.html#l00669">NL3D::CShadowMapManager::fillBlackBorder()</a>, <a class="el" href="a06103.html#l00421">NL3D::CNoise3d::flush()</a>, <a class="el" href="a05595.html#l00605">NL3D::CRenderStringBuffer::flush()</a>, <a class="el" href="a06103.html#l00436">NL3D::CNoise3d::flush2passes()</a>, <a class="el" href="a05569.html#l00123">NL3D::CCoarseMeshManager::flushRender()</a>, <a class="el" href="a05595.html#l00637">NL3D::CRenderStringBuffer::flushUnProjected()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a05557.html#l00110">NL3D::CCloud::generate()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a05557.html#l00182">NL3D::CCloud::light()</a>, <a class="el" href="a06040.html#l00062">NL3D::CMotionBlur::performMotionBlur()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, <a class="el" href="a06358.html#l00141">NL3D::CSegRemanence::render()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a05595.html#l00084">NL3D::CComputedString::render2D()</a>, <a class="el" href="a05595.html#l00151">NL3D::CComputedString::render3D()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a05989.html#l00915">NL3D::CMeshGeom::renderSimpleWithMaterial()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, <a class="el" href="a05557.html#l00251">NL3D::CCloud::reset()</a>, <a class="el" href="a06022.html#l00564">NL3D::CMeshVPPerPixelLight::setupForMaterial()</a>, <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera3" doxytag="NL3D::IDriver::activeVertexBufferHard" ></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"> virtual void NL3D::IDriver::activeVertexBufferHard </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03694.html">IVertexBufferHard</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>VB</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+active a current VB Hard, for future <a class="el" href="a02434.html#NL3D_1_1IDrivera51">render()</a>.<p>
+NB: please make sure you have setuped / unsetuped the current vertex program BEFORE activate the vertex buffer.<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">activeVertexProgram</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa3">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l02705">NL3D::CMeshMRMGeom::beginMesh()</a>, <a class="el" href="a05989.html#l02021">NL3D::CMeshGeom::beginMesh()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, and <a class="el" href="a06022.html#l00577">NL3D::CMeshVPPerPixelLight::setupForMaterial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_2" doxytag="NL3D::IDriver::activeVertexProgram" ></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"> virtual bool NL3D::IDriver::activeVertexProgram </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03702.html">CVertexProgram</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>program</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Activate / disactivate a vertex program<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>program</em>&nbsp;</td><td>is a pointer on a vertex program. Can be NULL to disable the current vertex program.</td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>true if setup/unsetup successed, false else.</dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_0">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06024.html#l00297">NL3D::CMeshVPWindTree::begin()</a>, <a class="el" href="a06024.html#l00407">NL3D::CMeshVPWindTree::beginMBRInstance()</a>, <a class="el" href="a06024.html#l00392">NL3D::CMeshVPWindTree::beginMBRMesh()</a>, <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06022.html#l00517">NL3D::CMeshVPPerPixelLight::enable()</a>, <a class="el" href="a06024.html#l00330">NL3D::CMeshVPWindTree::end()</a>, <a class="el" href="a06024.html#l00432">NL3D::CMeshVPWindTree::endMBRMesh()</a>, <a class="el" href="a06698.html#l02180">NL3D::CVegetableManager::exitRenderStateForBlendLayerModel()</a>, <a class="el" href="a06698.html#l01713">NL3D::CVegetableManager::render()</a>, <a class="el" href="a06737.html#l00831">NL3D::CWaterModel::setupMaterialNVertexShader()</a>, <a class="el" href="a06698.html#l02134">NL3D::CVegetableManager::setupRenderStateForBlendLayerModel()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz139_0" doxytag="NL3D::IDriver::beginMaterialMultiPass" ></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"> virtual <a class="el" href="a04558.html#a14">sint</a> NL3D::IDriver::beginMaterialMultiPass </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+init multipass for _CurrentMaterial. return number of pass required to render this material.
+<p>
+NB: <a class="el" href="a02434.html#NL3D_1_1IDrivera67">setupMaterial()</a> must be called before thoses methods. NB: This is intended to be use with the rendering of simple primitives. NB: Other render calls performs the needed setup automatically
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz80_0">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera4" doxytag="NL3D::IDriver::clear2D" ></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"> virtual bool NL3D::IDriver::clear2D </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>rgba</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa5">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01004">NL3D::CDriverUser::clearBuffers()</a>, <a class="el" href="a05657.html#l00988">NL3D::CDriverUser::clearRGBABuffer()</a>, and <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera5" doxytag="NL3D::IDriver::clearZBuffer" ></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"> virtual bool NL3D::IDriver::clearZBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>zval</em> = 1 </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa6">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01004">NL3D::CDriverUser::clearBuffers()</a>, and <a class="el" href="a05657.html#l00996">NL3D::CDriverUser::clearZBuffer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera6" doxytag="NL3D::IDriver::copyFrameBufferToTexture" ></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"> virtual void NL3D::IDriver::copyFrameBufferToTexture </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03487.html">ITexture</a> *&nbsp;</td>
+ <td class="mdname" nowrap> <em>tex</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>level</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>offsetx</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>offsety</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>x</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>y</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>width</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>height</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Copy a portion of the FrameBuffer into a texture. The texture must have been right sized before the call. This mark the texture as valid, but doesn't copy data to system memory. This also mean that regenerating texture datas will erase what has been copied before in the device memory. This doesn't work with compressed textures. Ideally, the FrameBuffer should have the same format than the texture. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>tex</em>&nbsp;</td><td>the texture to copy to. </td></tr>
+ <tr><td valign=top><em>level</em>&nbsp;</td><td>the mipmap to copy texture to. </td></tr>
+ <tr><td valign=top><em>xoffset</em>&nbsp;</td><td>x position within the destination texture </td></tr>
+ <tr><td valign=top><em>yoffset</em>&nbsp;</td><td>y position within the destination texture </td></tr>
+ <tr><td valign=top><em>x</em>&nbsp;</td><td>x position widthin the framebuffer </td></tr>
+ <tr><td valign=top><em>y</em>&nbsp;</td><td>y position widthin the framebuffer </td></tr>
+ <tr><td valign=top><em>width</em>&nbsp;</td><td>width of the area to be copied. </td></tr>
+ <tr><td valign=top><em>height</em>&nbsp;</td><td>height of the area to be copied.</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa7">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00786">NL3D::CShadowMapManager::copyScreenToBlurTexture()</a>, <a class="el" href="a05623.html#l00085">NL3D::CDeform2d::doDeform()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a05557.html#l00110">NL3D::CCloud::generate()</a>, <a class="el" href="a05557.html#l00182">NL3D::CCloud::light()</a>, <a class="el" href="a06040.html#l00062">NL3D::CMotionBlur::performMotionBlur()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, and <a class="el" href="a05557.html#l00251">NL3D::CCloud::reset()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera7" doxytag="NL3D::IDriver::createVertexBufferHard" ></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"> virtual <a class="el" href="a03694.html">IVertexBufferHard</a>* NL3D::IDriver::createVertexBufferHard </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><a class="el" href="a02434.html#NL3D_1_1IDriverw39">TVBHardType</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>vbType</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> [pure 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="a03694.html">IVertexBufferHard</a>. delete it with deleteVertexBufferHard. NB: user should (must) keep a CRefPtr&lt;&gt; on this ptr, because if driver is deleted (for any reason) the pointer will be no longer valid.<p>
+NB: return NULL if driver do not support the requested VertexBufferHard.Reason for failures are:<ul>
+<li>Driver do not support VertexBufferHard at all. ie <a class="el" href="a02434.html#NL3D_1_1IDrivera78">supportVertexBufferHard()</a> return false.</li><li>Driver do not support the vbType wanted or the vertexFormat for vertexBufferHard</li><li>Driver do not support the numVertices wanted.</li><li>Driver can't allocate any more ressource.</li></ul>
+<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>vertexFormat</em>&nbsp;</td><td>see <a class="el" href="a03692.html#NL3D_1_1CVertexBufferz1143_30">CVertexBuffer::setVertexFormat()</a>. </td></tr>
+ <tr><td valign=top><em>numVertices</em>&nbsp;</td><td>the number of vertices to be created. </td></tr>
+ <tr><td valign=top><em>vbType</em>&nbsp;</td><td>kind of RAM shere the VB will be allocated. </td></tr>
+ <tr><td valign=top><em>uvRouting</em>&nbsp;</td><td>is the uv routing table. If NULL, set the default routing table. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>a vertexBufferHard interface.</dd></dl>
+ </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera8" doxytag="NL3D::IDriver::deleteVertexBufferHard" ></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"> virtual void NL3D::IDriver::deleteVertexBufferHard </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03694.html">IVertexBufferHard</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>VB</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+delete a <a class="el" href="a03694.html">IVertexBufferHard</a>. NB: VertexBufferHard are automatically deleted at <a class="el" href="a02434.html#NL3D_1_1IDrivera50">IDriver::release()</a>;
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa10">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz137_0" doxytag="NL3D::IDriver::disableHardwareTextureShader" ></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"> virtual void NL3D::IDriver::disableHardwareTextureShader </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa11">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00221">NL3D::CDriverUser::disableHardwareTextureShader()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz137_1" doxytag="NL3D::IDriver::disableHardwareVertexArrayAGP" ></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"> virtual void NL3D::IDriver::disableHardwareVertexArrayAGP </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa12">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00214">NL3D::CDriverUser::disableHardwareVertexArrayAGP()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz137_2" doxytag="NL3D::IDriver::disableHardwareVertexProgram" ></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"> virtual void NL3D::IDriver::disableHardwareVertexProgram </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Disable some Feature that may be supported by the Hardware Call before <a class="el" href="a02434.html#NL3D_1_1IDrivera59">setDisplay()</a> to work properly
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa13">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00207">NL3D::CDriverUser::disableHardwareVertexProgram()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz143_0" doxytag="NL3D::IDriver::enableFog" ></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"> virtual void NL3D::IDriver::enableFog </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>enable</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz72_0">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01031">NL3D::CDriverUser::enableFog()</a>, <a class="el" href="a06698.html#l02180">NL3D::CVegetableManager::exitRenderStateForBlendLayerModel()</a>, <a class="el" href="a06698.html#l01713">NL3D::CVegetableManager::render()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, and <a class="el" href="a06698.html#l02134">NL3D::CVegetableManager::setupRenderStateForBlendLayerModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera9" doxytag="NL3D::IDriver::enableLight" ></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"> virtual void NL3D::IDriver::enableLight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>num</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>enable</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Enable / disable light.<p>
+You must call <a class="el" href="a02434.html#NL3D_1_1IDrivera61">setLight()</a> if you active the ligth.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>num</em>&nbsp;</td><td>is the number of the light to enable / disable. </td></tr>
+ <tr><td valign=top><em>enable</em>&nbsp;</td><td>is true to enable the light, false to disable it. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera61">setLight()</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa15">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06329.html#l00409">NL3D::CRenderTrav::changeLightSetup()</a>, <a class="el" href="a05657.html#l01058">NL3D::CDriverUser::enableLight()</a>, and <a class="el" href="a06329.html#l00355">NL3D::CRenderTrav::resetLightSetup()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz145_0" doxytag="NL3D::IDriver::enableLowLevelKeyboard" ></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"> virtual <a class="el" href="a03860.html">NLMISC::IKeyboardDevice</a>* NL3D::IDriver::enableLowLevelKeyboard </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>enable</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Enable / disable a low level keyboard. Such a keyboard can only send KeyDown and KeyUp event. It just consider the keyboard as a gamepad with lots of buttons... This returns a interface to some parameters when it is supported, or NULL otherwise. The interface pointer is valid as long as the low level keyboard is enabled. A call to disable the keyboard returns NULL, and restore the default keyboard behaviour
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa16">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01280">NL3D::CDriverUser::enableLowLevelKeyboard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz145_1" doxytag="NL3D::IDriver::enableLowLevelMouse" ></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"> virtual <a class="el" href="a03867.html">NLMISC::IMouseDevice</a>* NL3D::IDriver::enableLowLevelMouse </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>enable</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>exclusive</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Enable / disable low level mouse. This allow to take advantage of some options (speed of the mouse, automatic wrapping) It returns a interface to these parameters when it is supported, or NULL otherwise The interface pointer is valid as long as the low level mouse is enabled. A call to disable the mouse returns NULL, and restore the default mouse behaviour NB : - In this mode the mouse cursor isn't drawn.<ul>
+<li>Calls to showCursor have no effects<ul>
+<li>Calls to setCapture have no effects</li></ul>
+</li></ul>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa17">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01273">NL3D::CDriverUser::enableLowLevelMouse()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz153_0" doxytag="NL3D::IDriver::enablePolygonSmoothing" ></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"> virtual void NL3D::IDriver::enablePolygonSmoothing </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>smooth</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Use AntiAliasing For polygons (GL_POLYGON_SMOOTH like, not the FSAA). See GL_POLYGON_SMOOTH help, and GL_SRC_ALPHA_SATURATE OpenGL doc (not yet implemented now since used only for alpha part in ShadowMap gen)
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz78_0">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_0" doxytag="NL3D::IDriver::enableUsedTextureMemorySum" ></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"> virtual void NL3D::IDriver::enableUsedTextureMemorySum </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>enable</em> = true </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Enable the sum of texture memory used since last <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> call. To retrieve the memory used call <a class="el" href="a02434.html#NL3D_1_1IDriverz141_2">getUsedTextureMemory()</a>.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa18">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00209">NL3D::CDriverUser::enableUsedTextureMemorySum()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_3" doxytag="NL3D::IDriver::enableVertexProgramDoubleSidedColor" ></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"> virtual void NL3D::IDriver::enableVertexProgramDoubleSidedColor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>doubleSided</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Activate VertexProgram 2Sided Color mode. In 2Sided mode, the BackFace (if material 2Sided enabled) read the result from o[BFC0], and not o[COL0]. default is false. you should reset to false after use. NB: no-op if not supporte by driver
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_1">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz139_1" doxytag="NL3D::IDriver::endMaterialMultiPass" ></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"> virtual void NL3D::IDriver::endMaterialMultiPass </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+end multipass for this material.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz80_1">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_1" doxytag="NL3D::IDriver::endProfileVBHardLock" ></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"> virtual void NL3D::IDriver::endProfileVBHardLock </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; std::string &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>result</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If the driver support it, stop profile VBHard locks, and "print" result No-Op if already profiling NB: The results are the Locks in Chronogical time (since last swapBuffers). Since multiple frame are summed, an "*" is marked againts the VBHard name to show if it was not always this one (ptr test and not name test) in the chronogical order. NB: if the driver does not support VBHard or VBHard profiling (like ATI VBHard), result is empty. NB: ???? string is displayed if the VBHard has no name or if was just deleted.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa19">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00231">NL3D::CDriverUser::endProfileVBHardLock()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera10" doxytag="NL3D::IDriver::endSpecularBatch" ></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"> virtual void NL3D::IDriver::endSpecularBatch </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa20">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01449">NL3D::CSkeletonModel::renderSkinList()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera11" doxytag="NL3D::IDriver::enumModes" ></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"> virtual <a class="el" href="a05363.html#a19">ModeList</a> NL3D::IDriver::enumModes </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa21">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00189">NL3D::CDriverUser::enumModes()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera12" doxytag="NL3D::IDriver::fillBuffer" ></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"> virtual bool NL3D::IDriver::fillBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02268.html">CBitmap</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bitmap</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+fill the RGBA back buffer<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bitmap</em>&nbsp;</td><td>will be written in the buffer. no-op if bad size. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>true if success</dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa22">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01258">NL3D::CDriverUser::fillBuffer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz153_1" doxytag="NL3D::IDriver::finish" ></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"> virtual void NL3D::IDriver::finish </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+force the driver to flush all command. glFinish() in opengl. Interesting only for debug and profiling purpose.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz78_1">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz143_1" doxytag="NL3D::IDriver::fogEnabled" ></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"> virtual bool NL3D::IDriver::fogEnabled </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz72_1">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01023">NL3D::CDriverUser::fogEnabled()</a>, <a class="el" href="a06698.html#l01713">NL3D::CVegetableManager::render()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, and <a class="el" href="a06698.html#l02134">NL3D::CVegetableManager::setupRenderStateForBlendLayerModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera13" doxytag="NL3D::IDriver::forceDXTCCompression" ></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"> virtual void NL3D::IDriver::forceDXTCCompression </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>dxtcComp</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+if true force all the uncompressed RGBA 32 bits and RGBA 24 bits texture to be DXTC5 compressed. Do this only during upload if <a class="el" href="a03487.html#NL3D_1_1ITexturea0">ITexture::allowDegradation()</a> is true and if ITexture::UploadFormat is "Automatic" and if bitmap format is RGBA.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa23">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01132">NL3D::CDriverUser::forceDXTCCompression()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera14" doxytag="NL3D::IDriver::forceNormalize" ></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"> virtual void NL3D::IDriver::forceNormalize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>normalize</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Force input normal to be normalized by the driver. default is false. NB: driver force the normalisation himself if:<ul>
+<li>current Model matrix has a scale.</li></ul>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa24">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l02705">NL3D::CMeshMRMGeom::beginMesh()</a>, <a class="el" href="a06005.html#l02791">NL3D::CMeshMRMGeom::endMesh()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, and <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera15" doxytag="NL3D::IDriver::forceTextureResize" ></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"> virtual void NL3D::IDriver::forceTextureResize </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>divisor</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+if !=1, force mostly all the textures (but TextureFonts lightmaps, interfaces etc..) to be divided by Divisor (2, 4, 8...) Default is 1. NB: this is done only on TextureFile
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa25">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01139">NL3D::CDriverUser::forceTextureResize()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera16" doxytag="NL3D::IDriver::getAvailableVertexAGPMemory" ></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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::IDriver::getAvailableVertexAGPMemory </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the amount of AGP memory allocated by <a class="el" href="a02434.html#NL3D_1_1IDrivera43">initVertexArrayRange()</a> to store vertices.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa26">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01222">NL3D::CDriverUser::getAvailableVertexAGPMemory()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera17" doxytag="NL3D::IDriver::getAvailableVertexVRAMMemory" ></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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::IDriver::getAvailableVertexVRAMMemory </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the amount of video memory allocated by <a class="el" href="a02434.html#NL3D_1_1IDrivera43">initVertexArrayRange()</a> to store vertices.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa27">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01226">NL3D::CDriverUser::getAvailableVertexVRAMMemory()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera18" doxytag="NL3D::IDriver::getBitPerPixel" ></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"> virtual <a class="el" href="a04558.html#a7">uint8</a> NL3D::IDriver::getBitPerPixel </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the depth of the driver after <a class="el" href="a02434.html#NL3D_1_1IDrivera42">init()</a>.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa28">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz153_2" doxytag="NL3D::IDriver::getBlendConstantColor" ></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"> virtual <a class="el" href="a03337.html">NLMISC::CRGBA</a> NL3D::IDriver::getBlendConstantColor </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see <a class="el" href="a02434.html#NL3D_1_1IDriverz153_5">supportBlendConstantColor()</a>. Get the current Blend Constant Color.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz78_2">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera19" doxytag="NL3D::IDriver::getBuffer" ></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"> virtual void NL3D::IDriver::getBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02268.html">CBitmap</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>bitmap</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the RGBA back buffer<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bitmap</em>&nbsp;</td><td>the buffer will be written in this bitmap</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa29">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01230">NL3D::CDriverUser::getBuffer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera20" doxytag="NL3D::IDriver::getBufferPart" ></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"> virtual void NL3D::IDriver::getBufferPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02268.html">CBitmap</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bitmap</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03319.html">NLMISC::CRect</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>rect</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get a part of the RGBA back buffer NB: 0,0 is the bottom left corner of the screen.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bitmap</em>&nbsp;</td><td>the buffer will be written in this bitmap </td></tr>
+ <tr><td valign=top><em>rect</em>&nbsp;</td><td>the in/out (wanted/clipped) part of Color buffer to retrieve.</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa30">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01244">NL3D::CDriverUser::getBufferPart()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera21" doxytag="NL3D::IDriver::getDisplay" ></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"> virtual void* NL3D::IDriver::getDisplay </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa31">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00333">NL3D::CDriverUser::getDisplay()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz145_2" doxytag="NL3D::IDriver::getDoubleClickDelay" ></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"> virtual <a class="el" href="a04558.html#a15">uint</a> NL3D::IDriver::getDoubleClickDelay </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>hardwareMouse</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the delay in ms for mouse double clicks.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa32">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01288">NL3D::CDriverUser::getDoubleClickDelay()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera22" doxytag="NL3D::IDriver::getDriverInformation" ></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"> virtual const char* NL3D::IDriver::getDriverInformation </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get driver informations. get the nel name of the driver (ex: "Opengl 1.2 NeL Driver")
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa33">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01169">NL3D::CDriverUser::getDriverInformation()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera23" doxytag="NL3D::IDriver::getEventEmitter" ></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"> virtual <a class="el" href="a03852.html">NLMISC::IEventEmitter</a>* NL3D::IDriver::getEventEmitter </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa34">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00285">NL3D::CDriverUser::release()</a>, and <a class="el" href="a05657.html#l00230">NL3D::CDriverUser::setDisplay()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz143_2" doxytag="NL3D::IDriver::getFogColor" ></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"> virtual <a class="el" href="a03337.html">CRGBA</a> NL3D::IDriver::getFogColor </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz72_2">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz143_3" doxytag="NL3D::IDriver::getFogEnd" ></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"> virtual float NL3D::IDriver::getFogEnd </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz72_3">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz143_4" doxytag="NL3D::IDriver::getFogStart" ></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"> virtual float NL3D::IDriver::getFogStart </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz72_4">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera24" doxytag="NL3D::IDriver::getImplementationVersion" ></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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::IDriver::getImplementationVersion </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the driver version. Not the same than interface version. Incremented at each implementation change.<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivers0">InterfaceVersion</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa36">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01162">NL3D::CDriverUser::getImplementationVersion()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz145_3" doxytag="NL3D::IDriver::getLowLevelInputDeviceManager" ></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"> virtual <a class="el" href="a03858.html">NLMISC::IInputDeviceManager</a>* NL3D::IDriver::getLowLevelInputDeviceManager </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Check wether there is a low level device manager available, and get its interface. Return NULL if not available From this interface you can deal with mouse and keyboard as above, but you can also manage game device (joysticks, joypads ...)
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa37">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01295">NL3D::CDriverUser::getLowLevelInputDeviceManager()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera25" doxytag="NL3D::IDriver::getMaxLight" ></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"> virtual <a class="el" href="a04558.html#a15">uint</a> NL3D::IDriver::getMaxLight </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the number of light supported by driver. typically 8.<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera9">enableLight()</a> <a class="el" href="a02434.html#NL3D_1_1IDrivera61">setLight()</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa38">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06329.html#l00355">NL3D::CRenderTrav::resetLightSetup()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera26" doxytag="NL3D::IDriver::getMaxVerticesByVertexBufferHard" ></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"> virtual <a class="el" href="a04558.html#a15">uint</a> NL3D::IDriver::getMaxVerticesByVertexBufferHard </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return How many vertices VertexBufferHard support
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa39">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera27" doxytag="NL3D::IDriver::getModes" ></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"> virtual bool NL3D::IDriver::getModes </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a03831.html">GfxMode</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>modes</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa40">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00274">NL3D::CDriverUser::getModes()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera28" doxytag="NL3D::IDriver::getNbTextureStages" ></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"> virtual <a class="el" href="a04558.html#a14">sint</a> NL3D::IDriver::getNbTextureStages </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the number of texture stage avaliable, for multitexturing (Normal material shaders). Valid only after <a class="el" href="a02434.html#NL3D_1_1IDrivera59">setDisplay()</a>.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa41">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01183">NL3D::CDriverUser::getNbTextureStages()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera29" doxytag="NL3D::IDriver::getPolygonMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a> NL3D::IDriver::getPolygonMode </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> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the global polygon mode.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>polygon</em>&nbsp;</td><td>mode choose in this driver. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera65">setPolygonMode()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a></dd></dl>
+
+<p>
+Definition at line <a class="el" href="a05640.html#l00817">817</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+References <a class="el" href="a05640.html#l00165">_PolygonMode</a>, and <a class="el" href="a05640.html#l00140">TPolygonMode</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01114">NL3D::CDriverUser::getPolygonMode()</a>.
+<p>
+<div class="fragment"><pre>00818 {
+00819 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverp0">_PolygonMode</a>;
+00820 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypea8" doxytag="NL3D::IDriver::getRefCount" ></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"> const <a class="el" href="a04558.html#a14">sint</a>&amp; NLMISC::CRefCount::getRefCount </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, inherited]</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="a06402.html#l00070">70</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>.
+<p>
+References <a class="el" href="a06402.html#l00079">NLMISC::CRefCount::crefs</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+<div class="fragment"><pre>00071 {
+00072 <span class="keywordflow">return</span> <a class="code" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a>;
+00073 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera31" doxytag="NL3D::IDriver::getSwapVBLInterval" ></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"> virtual <a class="el" href="a04558.html#a15">uint</a> NL3D::IDriver::getSwapVBLInterval </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the number of VBL wait when a <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> is issued. 0 means no synchronisation to the VBL
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa44">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01429">NL3D::CDriverUser::getSwapVBLInterval()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera32" doxytag="NL3D::IDriver::getTextureHandle" ></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"> virtual <a class="el" href="a04558.html#a15">uint</a> NL3D::IDriver::getTextureHandle </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>tex</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Advanced usage. Get the texture Handle. Usefull for texture sorting for instance NB: if the texture is not setuped in the driver, 0 is returned. NB: if implementation does not support it, 0 may be returned. OpenGL ones return the Texture ID. NB: unlike <a class="el" href="a02434.html#NL3D_1_1IDrivera47">isTextureExist()</a>, this method is not thread safe.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa45">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06011.html#l00795">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupPrimitives()</a>, and <a class="el" href="a06005.html#l01406">NL3D::CMeshMRMGeom::renderSkinGroupPrimitives()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivere0" doxytag="NL3D::IDriver::getTextureShareName" ></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::IDriver::getTextureShareName </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>tex</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>std::string &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>output</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the driver share texture name
+<p>
+Definition at line <a class="el" href="a05639.html#l00277">277</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a06506.html#l00338">NL3D::ITexture::getShareName()</a>, <a class="el" href="a06506.html#l00212">NL3D::ITexture::getUploadFormat()</a>, <a class="el" href="a06506.html#l00217">NL3D::ITexture::mipMapOn()</a>, <a class="el" href="a05586.html#l00161">NLMISC::smprintf()</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05639.html#l00243">invalidateShareTexture()</a>, <a class="el" href="a05642.html#l01493">NL3D::CDriverGL::isTextureExist()</a>, and <a class="el" href="a05652.html#l00361">NL3D::CDriverGL::setupTextureEx()</a>.
+<p>
+<div class="fragment"><pre>00278 {
+00279 <span class="comment">// Create the shared Name.</span>
+00280 output= <a class="code" href="a05378.html#a273">strlwr</a>(tex.getShareName());
+00281
+00282 <span class="comment">// append format Id of the texture.</span>
+00283 <span class="keyword">static</span> <span class="keywordtype">char</span> fmt[256];
+00284 <a class="code" href="a05378.html#a259">smprintf</a>(fmt, 256, <span class="stringliteral">"@Fmt:%d"</span>, (<a class="code" href="a04558.html#a11">uint32</a>)tex.getUploadFormat());
+00285 output+= fmt;
+00286
+00287 <span class="comment">// append mipmap info</span>
+00288 <span class="keywordflow">if</span>(tex.mipMapOn())
+00289 output+= <span class="stringliteral">"@MMp:On"</span>;
+00290 <span class="keywordflow">else</span>
+00291 output+= <span class="stringliteral">"@MMp:Off"</span>;
+00292 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_2" doxytag="NL3D::IDriver::getUsedTextureMemory" ></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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::IDriver::getUsedTextureMemory </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the amount of texture video memory used since last <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> call. Before use this method, you should enable the sum with <a class="el" href="a02434.html#NL3D_1_1IDriverz141_0">enableUsedTextureMemorySum()</a>.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa46">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00217">NL3D::CDriverUser::getUsedTextureMemory()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera33" doxytag="NL3D::IDriver::getVideocardInformation" ></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"> virtual const char* NL3D::IDriver::getVideocardInformation </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get videocard informations. get the official name of the driver
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa47">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01176">NL3D::CDriverUser::getVideocardInformation()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera34" doxytag="NL3D::IDriver::getViewMatrix" ></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"> virtual <a class="el" href="a02851.html">CMatrix</a> NL3D::IDriver::getViewMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa48">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, and <a class="el" href="a06285.html#l00235">NL3D::CPSUtil::print()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera35" doxytag="NL3D::IDriver::getViewport" ></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"> virtual void NL3D::IDriver::getViewport </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03704.html">CViewport</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>viewport</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the current viewport
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa49">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera36" doxytag="NL3D::IDriver::getWindowPos" ></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"> virtual void NL3D::IDriver::getWindowPos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>x</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> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>y</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the position of the window always (0,0) in fullscreen.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa50">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01215">NL3D::CDriverUser::getWindowPos()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera37" doxytag="NL3D::IDriver::getWindowProc" ></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"> virtual <a class="el" href="a05363.html#a20">emptyProc</a> NL3D::IDriver::getWindowProc </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa51">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera38" doxytag="NL3D::IDriver::getWindowSize" ></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"> virtual void NL3D::IDriver::getWindowSize </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>width</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> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>height</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the width and the height of the window.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa52">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05722.html#l00088">NL3D::CFontManager::computeString()</a>, <a class="el" href="a05722.html#l00229">NL3D::CFontManager::computeStringInfo()</a>, <a class="el" href="a05595.html#l00605">NL3D::CRenderStringBuffer::flush()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a05657.html#l01206">NL3D::CDriverUser::getWindowHeight()</a>, <a class="el" href="a05657.html#l01190">NL3D::CDriverUser::getWindowSize()</a>, <a class="el" href="a05657.html#l01197">NL3D::CDriverUser::getWindowWidth()</a>, <a class="el" href="a06040.html#l00062">NL3D::CMotionBlur::performMotionBlur()</a>, <a class="el" href="a05595.html#l00084">NL3D::CComputedString::render2D()</a>, <a class="el" href="a05595.html#l00183">NL3D::CComputedString::render2DClip()</a>, <a class="el" href="a05595.html#l00378">NL3D::CComputedString::render2DUnProjected()</a>, <a class="el" href="a05595.html#l00151">NL3D::CComputedString::render3D()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, <a class="el" href="a05557.html#l00751">NL3D::CCloud::setMode2D()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera39" doxytag="NL3D::IDriver::getZBuffer" ></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"> virtual void NL3D::IDriver::getZBuffer </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; float &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>zbuffer</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the ZBuffer (back buffer).<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>zbuffer</em>&nbsp;</td><td>the returned array of Z. size of <a class="el" href="a02434.html#NL3D_1_1IDrivera38">getWindowSize()</a> .</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa53">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01237">NL3D::CDriverUser::getZBuffer()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera40" doxytag="NL3D::IDriver::getZBufferPart" ></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"> virtual void NL3D::IDriver::getZBufferPart </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; float &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>zbuffer</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03319.html">NLMISC::CRect</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>rect</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get a part of the ZBuffer (back buffer). NB: 0,0 is the bottom left corner of the screen.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>zbuffer</em>&nbsp;</td><td>the returned array of Z. size of rec.Width*rec.Height. </td></tr>
+ <tr><td valign=top><em>rect</em>&nbsp;</td><td>the in/out (wanted/clipped) part of ZBuffer to retrieve.</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa54">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01251">NL3D::CDriverUser::getZBufferPart()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera42" doxytag="NL3D::IDriver::init" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> virtual bool NL3D::IDriver::init </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>windowIcon</em> = 0 </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa55">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00127">NL3D::CDriverUser::CDriverUser()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera43" doxytag="NL3D::IDriver::initVertexArrayRange" ></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"> virtual bool NL3D::IDriver::initVertexArrayRange </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>agpMem</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>vramMem</em> = 0</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Allocate the initial VertexArray Memory. (no-op if !supportVertexBufferHard()). VertexArrayRange is first reseted, so any VBhard created before will be deleted. NB: call it after <a class="el" href="a02434.html#NL3D_1_1IDrivera59">setDisplay()</a>. But <a class="el" href="a02434.html#NL3D_1_1IDrivera59">setDisplay()</a> by default call initVertexArrayRange(16Mo, 0); so this is not necessary. NB: If allocation fails, mem/=2, and retry, until mem &lt; 500K. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>agpMem</em>&nbsp;</td><td>ammount of AGP Memory required. if 0, reseted. </td></tr>
+ <tr><td valign=top><em>vramMem</em>&nbsp;</td><td>ammount of VRAM Memory required. if 0, reseted. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>Returns:</b></dt><dd>false if one the Buffer has not been allocated (at least at 500K).</dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa56">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera44" doxytag="NL3D::IDriver::invalidateShareTexture" ></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::IDriver::invalidateShareTexture </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03487.html">ITexture</a> &amp;&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>
+Invalidate shared texture
+<p>
+Definition at line <a class="el" href="a05639.html#l00243">243</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00160">_SyncTexDrvInfos</a>, <a class="el" href="a05640.html#l00162">_TexDrvShares</a>, and <a class="el" href="a05639.html#l00277">getTextureShareName()</a>.
+<p>
+<div class="fragment"><pre>00244 {
+00245 <span class="comment">// Create the shared Name.</span>
+00246 std::string name;
+00247 <a class="code" href="a02434.html#NL3D_1_1IDrivere0">getTextureShareName</a> (texture, name);
+00248
+00249 <span class="comment">// Look for the driver info for this share name</span>
+00250 CSynchronized&lt;TTexDrvInfoPtrMap&gt;::CAccessor access(&amp;_SyncTexDrvInfos);
+00251 TTexDrvInfoPtrMap &amp;rTexDrvInfos = access.value();
+00252 TTexDrvInfoPtrMap::iterator iteDrvInfo = rTexDrvInfos.find (name);
+00253 <span class="keywordflow">if</span> (iteDrvInfo != rTexDrvInfos.end())
+00254 {
+00255 <span class="comment">// Now parse all shared info</span>
+00256 TTexDrvSharePtrList::iterator shareIte = <a class="code" href="a02434.html#NL3D_1_1IDriverp3">_TexDrvShares</a>.begin ();
+00257 <span class="keywordflow">while</span> (shareIte != <a class="code" href="a02434.html#NL3D_1_1IDriverp3">_TexDrvShares</a>.end ())
+00258 {
+00259 <span class="comment">// Good one ?</span>
+00260 <span class="keywordflow">if</span> ((*shareIte)-&gt;DrvTexture == iteDrvInfo-&gt;second)
+00261 {
+00262 <span class="comment">// Remove this one</span>
+00263 TTexDrvSharePtrList::iterator toRemove = shareIte;
+00264 shareIte++;
+00265 <span class="keyword">delete</span> (*toRemove);
+00266 }
+00267 <span class="keywordflow">else</span>
+00268 shareIte++;
+00269 }
+00270
+00271 <span class="comment">// Ok</span>
+00272 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00273 }
+00274 <span class="keywordflow">return</span> <span class="keyword">false</span>;
+00275 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera45" doxytag="NL3D::IDriver::isActive" ></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"> virtual bool NL3D::IDriver::isActive </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return true if driver is still active. Return false else. If he user close the window, must return false.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa58">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00323">NL3D::CDriverUser::isActive()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz151_0" doxytag="NL3D::IDriver::isEMBMSupportedAtStage" ></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"> virtual bool NL3D::IDriver::isEMBMSupportedAtStage </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>stage</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz76_0">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera46" doxytag="NL3D::IDriver::isForceNormalize" ></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"> virtual bool NL3D::IDriver::isForceNormalize </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return the <a class="el" href="a02434.html#NL3D_1_1IDrivera14">forceNormalize()</a> state.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa59">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06024.html#l00297">NL3D::CMeshVPWindTree::begin()</a>, <a class="el" href="a06024.html#l00407">NL3D::CMeshVPWindTree::beginMBRInstance()</a>, <a class="el" href="a06005.html#l02705">NL3D::CMeshMRMGeom::beginMesh()</a>, <a class="el" href="a06022.html#l00517">NL3D::CMeshVPPerPixelLight::enable()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, and <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz153_3" doxytag="NL3D::IDriver::isPolygonSmoothingEnabled" ></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"> virtual bool NL3D::IDriver::isPolygonSmoothingEnabled </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see <a class="el" href="a02434.html#NL3D_1_1IDriverz153_0">enablePolygonSmoothing()</a>
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz78_3">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz149_0" doxytag="NL3D::IDriver::isTextureAddrModeSupported" ></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"> virtual bool NL3D::IDriver::isTextureAddrModeSupported </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02839.html#NL3D_1_1CMaterialz360_0">CMaterial::TTexAddressingMode</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mode</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+test wether a texture addressing mode is supported
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz74_0">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06257.html#l00968">NL3D::CPSMultiTexturedParticle::enumTexs()</a>, and <a class="el" href="a06257.html#l00733">NL3D::CPSMultiTexturedParticle::setupMaterial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera47" doxytag="NL3D::IDriver::isTextureExist" ></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"> virtual bool NL3D::IDriver::isTextureExist </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>tex</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+is the texture is set up in the driver NB: this method is thread safe.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa60">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06378.html#l00134">NL3D::CShapeBank::processWaitingShapes()</a>, and <a class="el" href="a05457.html#l00231">NL3D::CAsyncFileManager3D::CMeshLoad::run()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_4" doxytag="NL3D::IDriver::isVertexProgramEmulated" ></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"> virtual bool NL3D::IDriver::isVertexProgramEmulated </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Does the driver supports vertex program, but emulated by CPU ?
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_2">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06024.html#l00297">NL3D::CMeshVPWindTree::begin()</a>, <a class="el" href="a06022.html#l00433">NL3D::CMeshVPPerPixelLight::begin()</a>, and <a class="el" href="a06024.html#l00386">NL3D::CMeshVPWindTree::isMBRVpOk()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_5" doxytag="NL3D::IDriver::isVertexProgramSupported" ></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"> virtual bool NL3D::IDriver::isVertexProgramSupported </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Does the driver supports vertex programs ?
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_3">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06024.html#l00297">NL3D::CMeshVPWindTree::begin()</a>, <a class="el" href="a06022.html#l00433">NL3D::CMeshVPPerPixelLight::begin()</a>, and <a class="el" href="a06024.html#l00386">NL3D::CMeshVPWindTree::isMBRVpOk()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz149_1" doxytag="NL3D::IDriver::isWaterShaderSupported" ></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"> virtual bool NL3D::IDriver::isWaterShaderSupported </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+test wether a texture addressing mode is supported
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz74_1">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01130">NL3D::CWaterModel::clip()</a>, and <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera48" doxytag="NL3D::IDriver::mapTextureStageToUV" ></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"> virtual void NL3D::IDriver::mapTextureStageToUV </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>stage</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>uv</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Say what Texture Stage use what UV coord. by default activeVertexBuffer*() methods map all stage i to UV i. You can change this behavior, after calling activeVertexBuffer*(), by using this method.<p>
+eg: mapTextureStageToUV(0,2) will force the 0th texture stage to use the 2th UV.<p>
+Warning! This DOESN'T work with VertexProgram enabled!! (assert)<p>
+Warning!: some <a class="el" href="a02839.html">CMaterial</a> Shader may change automatically this behavior too when <a class="el" href="a02434.html#NL3D_1_1IDrivera67">setupMaterial()</a> (and so render*()) is called. But Normal shader doesn't do it.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa61">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera49" doxytag="NL3D::IDriver::multiplyModelMatrix" ></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"> virtual void NL3D::IDriver::multiplyModelMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mtx</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+multipliy the model matrix. NB: you must use <a class="el" href="a02434.html#NL3D_1_1IDrivera49">multiplyModelMatrix()</a> AFTER <a class="el" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix()</a> (and so <a class="el" href="a02434.html#NL3D_1_1IDrivera72">setupViewMatrix()</a>) or an other <a class="el" href="a02434.html#NL3D_1_1IDrivera49">multiplyModelMatrix()</a>, or else undefined results.<p>
+Using of <a class="el" href="a02434.html#NL3D_1_1IDrivera49">multiplyModelMatrix()</a> instead of just one <a class="el" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix()</a> may be usefull for precision consideration.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa62">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_3" doxytag="NL3D::IDriver::profileAllocatedTextureMemory" ></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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::IDriver::profileAllocatedTextureMemory </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Return the amount of Texture memory requested. taking mipmap, compression, texture format, etc... into account. NB: because of GeForce*, RGB888 is considered to be 32 bits. So it may be false for others cards :).
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa63">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00183">NL3D::CDriverUser::profileAllocatedTextureMemory()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_4" doxytag="NL3D::IDriver::profileRenderedPrimitives" ></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"> virtual void NL3D::IDriver::profileRenderedPrimitives </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03116.html">CPrimitiveProfile</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>pIn</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03116.html">CPrimitiveProfile</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>pOut</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the number of primitives rendered from the last <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> call. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>pIn</em>&nbsp;</td><td>the number of requested rendered primitive. </td></tr>
+ <tr><td valign=top><em>pOut</em>&nbsp;</td><td>the number of effective rendered primitive. pOut==pIn if no multi-pass material is used (Lightmap, Specular ...).</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa64">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00174">NL3D::CDriverUser::profileRenderedPrimitives()</a>, <a class="el" href="a06698.html#l01713">NL3D::CVegetableManager::render()</a>, and <a class="el" href="a06688.html#l00077">NL3D::CVegetableBlendLayerModel::render()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_5" doxytag="NL3D::IDriver::profileSetupedMaterials" ></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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::IDriver::profileSetupedMaterials </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the number of material setuped from the last <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> call.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa65">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00192">NL3D::CDriverUser::profileSetupedMaterials()</a>, and <a class="el" href="a05862.html#l00939">NL3D::CLandscape::render()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_6" doxytag="NL3D::IDriver::profileSetupedModelMatrix" ></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"> virtual <a class="el" href="a04558.html#a11">uint32</a> NL3D::IDriver::profileSetupedModelMatrix </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the number of matrix setuped from the last <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> call.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa66">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00201">NL3D::CDriverUser::profileSetupedModelMatrix()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_7" doxytag="NL3D::IDriver::profileVBHardAllocation" ></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"> virtual void NL3D::IDriver::profileVBHardAllocation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; std::string &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>result</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+display VBhards allocated
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa67">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00237">NL3D::CDriverUser::profileVBHardAllocation()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera50" doxytag="NL3D::IDriver::release" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> bool NL3D::IDriver::release </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Deriver should calls <a class="el" href="a02434.html#NL3D_1_1IDrivera50">IDriver::release()</a> first, to destroy all driver components (textures, shaders, VBuffers).
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa68">NL3D::CDriverGL</a>.
+<p>
+Definition at line <a class="el" href="a05639.html#l00073">73</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00163">_Shaders</a>, <a class="el" href="a05640.html#l00160">_SyncTexDrvInfos</a>, <a class="el" href="a05640.html#l00162">_TexDrvShares</a>, <a class="el" href="a05640.html#l00164">_VBDrvInfos</a>, <a class="el" href="a05640.html#l00166">_VtxPrgDrvInfos</a>, <a class="el" href="a06369.html#l00056">NL3D::ItShaderPtrList</a>, <a class="el" href="a06506.html#l00059">NL3D::ItTexDrvSharePtrList</a>, <a class="el" href="a06711.html#l00064">NL3D::ItVBDrvInfoPtrList</a>, <a class="el" href="a06717.html#l00041">NL3D::ItVtxPrgDrvInfoPtrList</a>, and <a class="el" href="a05622.html#l00290">nlassert</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00285">NL3D::CDriverUser::release()</a>.
+<p>
+<div class="fragment"><pre>00074 {
+00075 <span class="comment">// Called by derived classes.</span>
+00076
+00077 <span class="comment">// DO THIS FIRST =&gt; to auto kill real textures (by smartptr).</span>
+00078 <span class="comment">// First, Because must not kill a pointer owned by a CSmartPtr.</span>
+00079 <span class="comment">// Release Textures drv.</span>
+00080 <a class="code" href="a05363.html#a298">ItTexDrvSharePtrList</a> ittex;
+00081 <span class="keywordflow">while</span>( (ittex = <a class="code" href="a02434.html#NL3D_1_1IDriverp3">_TexDrvShares</a>.begin()) !=<a class="code" href="a02434.html#NL3D_1_1IDriverp3">_TexDrvShares</a>.end() )
+00082 {
+00083 <span class="comment">// NB: at CTextureDrvShare deletion, this-&gt;_TexDrvShares is updated (entry deleted);</span>
+00084 <span class="keyword">delete</span> *ittex;
+00085 }
+00086
+00087
+00088 <span class="comment">// Release refptr of TextureDrvInfos. Should be all null (because of precedent pass).</span>
+00089 {
+00090 CSynchronized&lt;TTexDrvInfoPtrMap&gt;::CAccessor access(&amp;_SyncTexDrvInfos);
+00091 TTexDrvInfoPtrMap &amp;rTexDrvInfos = access.value();
+00092
+00093 <span class="comment">// must be empty, because precedent pass should have deleted all.</span>
+00094 <a class="code" href="a04199.html#a6">nlassert</a>(rTexDrvInfos.empty());
+00095 }
+00096
+00097 <span class="comment">// Release Shader drv.</span>
+00098 <a class="code" href="a05363.html#a287">ItShaderPtrList</a> itshd;
+00099 <span class="keywordflow">while</span>( (itshd = <a class="code" href="a02434.html#NL3D_1_1IDriverp1">_Shaders</a>.begin()) != <a class="code" href="a02434.html#NL3D_1_1IDriverp1">_Shaders</a>.end() )
+00100 {
+00101 <span class="comment">// NB: at IShader deletion, this-&gt;_Shaders is updated (entry deleted);</span>
+00102 <span class="keyword">delete</span> *itshd;
+00103 }
+00104
+00105 <span class="comment">// Release VBs drv.</span>
+00106 <a class="code" href="a05363.html#a343">ItVBDrvInfoPtrList</a> itvb;
+00107 <span class="keywordflow">while</span>( (itvb = <a class="code" href="a02434.html#NL3D_1_1IDriverp4">_VBDrvInfos</a>.begin()) != <a class="code" href="a02434.html#NL3D_1_1IDriverp4">_VBDrvInfos</a>.end() )
+00108 {
+00109 <span class="comment">// NB: at IVBDrvInfo deletion, this-&gt;_VBDrvInfos is updated (entry deleted);</span>
+00110 <span class="keyword">delete</span> *itvb;
+00111 }
+00112
+00113 <span class="comment">// Release VtxPrg drv.</span>
+00114 <a class="code" href="a05363.html#a345">ItVtxPrgDrvInfoPtrList</a> itVtxPrg;
+00115 <span class="keywordflow">while</span>( (itVtxPrg = <a class="code" href="a02434.html#NL3D_1_1IDriverp5">_VtxPrgDrvInfos</a>.begin()) != <a class="code" href="a02434.html#NL3D_1_1IDriverp5">_VtxPrgDrvInfos</a>.end() )
+00116 {
+00117 <span class="comment">// NB: at IVertexProgramDrvInfos deletion, this-&gt;_VtxPrgDrvInfos is updated (entry deleted);</span>
+00118 <span class="keyword">delete</span> *itVtxPrg;
+00119 }
+00120
+00121 <span class="keywordflow">return</span> <span class="keyword">true</span>;
+00122 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverb0" doxytag="NL3D::IDriver::removeShaderPtr" ></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::IDriver::removeShaderPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a287">ItShaderPtrList</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>shaderIt</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</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="a05639.html#l00232">232</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00163">_Shaders</a>, and <a class="el" href="a06369.html#l00056">NL3D::ItShaderPtrList</a>.
+<p>
+Referenced by <a class="el" href="a06368.html#l00036">NL3D::IShader::~IShader()</a>.
+<p>
+<div class="fragment"><pre>00233 {
+00234 <a class="code" href="a02434.html#NL3D_1_1IDriverp1">_Shaders</a>.erase(shaderIt);
+00235 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverb1" doxytag="NL3D::IDriver::removeTextureDrvInfoPtr" ></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::IDriver::removeTextureDrvInfoPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a297">ItTexDrvInfoPtrMap</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>texDrvInfoIt</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</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="a05639.html#l00219">219</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00160">_SyncTexDrvInfos</a>, and <a class="el" href="a06506.html#l00058">NL3D::ItTexDrvInfoPtrMap</a>.
+<p>
+Referenced by <a class="el" href="a06505.html#l00123">NL3D::ITextureDrvInfos::~ITextureDrvInfos()</a>.
+<p>
+<div class="fragment"><pre>00220 {
+00221 CSynchronized&lt;TTexDrvInfoPtrMap&gt;::CAccessor access(&amp;_SyncTexDrvInfos);
+00222 TTexDrvInfoPtrMap &amp;rTexDrvInfos = access.value();
+00223
+00224 rTexDrvInfos.erase(texDrvInfoIt);
+00225 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverb2" doxytag="NL3D::IDriver::removeTextureDrvSharePtr" ></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::IDriver::removeTextureDrvSharePtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a298">ItTexDrvSharePtrList</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>texDrvShareIt</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</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="a05639.html#l00227">227</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00162">_TexDrvShares</a>, and <a class="el" href="a06506.html#l00059">NL3D::ItTexDrvSharePtrList</a>.
+<p>
+Referenced by <a class="el" href="a06505.html#l00118">NL3D::CTextureDrvShare::~CTextureDrvShare()</a>.
+<p>
+<div class="fragment"><pre>00228 {
+00229 <a class="code" href="a02434.html#NL3D_1_1IDriverp3">_TexDrvShares</a>.erase(texDrvShareIt);
+00230 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverb3" doxytag="NL3D::IDriver::removeVBDrvInfoPtr" ></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::IDriver::removeVBDrvInfoPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a343">ItVBDrvInfoPtrList</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>vbDrvInfoIt</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+remove ptr from the lists in the driver.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05639.html#l00214">214</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00164">_VBDrvInfos</a>, and <a class="el" href="a06711.html#l00064">NL3D::ItVBDrvInfoPtrList</a>.
+<p>
+Referenced by <a class="el" href="a06710.html#l01067">NL3D::IVBDrvInfos::~IVBDrvInfos()</a>.
+<p>
+<div class="fragment"><pre>00215 {
+00216 <a class="code" href="a02434.html#NL3D_1_1IDriverp4">_VBDrvInfos</a>.erase(vbDrvInfoIt);
+00217 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverb4" doxytag="NL3D::IDriver::removeVtxPrgDrvInfoPtr" ></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::IDriver::removeVtxPrgDrvInfoPtr </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a05363.html#a345">ItVtxPrgDrvInfoPtrList</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>vtxPrgDrvInfoIt</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [protected]</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="a05639.html#l00237">237</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a05640.html#l00166">_VtxPrgDrvInfos</a>, and <a class="el" href="a06717.html#l00041">NL3D::ItVtxPrgDrvInfoPtrList</a>.
+<p>
+Referenced by <a class="el" href="a06716.html#l00046">NL3D::IVertexProgramDrvInfos::~IVertexProgramDrvInfos()</a>.
+<p>
+<div class="fragment"><pre>00238 {
+00239 <a class="code" href="a02434.html#NL3D_1_1IDriverp5">_VtxPrgDrvInfos</a>.erase(vtxPrgDrvInfoIt);
+00240 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera51" doxytag="NL3D::IDriver::render" ></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"> virtual bool NL3D::IDriver::render </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03105.html">CPrimitiveBlock</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>PB</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>Mat</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render a block of primitive with previously setuped VertexBuffer / Matrixes.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa69">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06285.html#l00118">NL3D::CPSUtil::displayBBox()</a>, <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, <a class="el" href="a06283.html#l00242">NL3D::CPSTailDot::displayRibbons()</a>, <a class="el" href="a06277.html#l00319">NL3D::CPSRibbonLookAt::displayRibbons()</a>, <a class="el" href="a06273.html#l00471">NL3D::CPSRibbon::displayRibbons()</a>, <a class="el" href="a06250.html#l01802">NL3D::CPSConstraintMesh::doRenderPasses()</a>, <a class="el" href="a05660.html#l00136">NL3D::CDRU::drawBitmap()</a>, <a class="el" href="a05660.html#l00173">NL3D::CDRU::drawLine()</a>, <a class="el" href="a05657.html#l00504">NL3D::CDriverUser::drawLine()</a>, <a class="el" href="a05660.html#l00377">NL3D::CDRU::drawLinesUnlit()</a>, <a class="el" href="a05660.html#l00241">NL3D::CDRU::drawQuad()</a>, <a class="el" href="a05657.html#l00654">NL3D::CDriverUser::drawQuad()</a>, <a class="el" href="a06279.html#l00069">NL3D::CPSShockWaveHelper::drawShockWave()</a>, <a class="el" href="a05660.html#l00206">NL3D::CDRU::drawTriangle()</a>, <a class="el" href="a05657.html#l00575">NL3D::CDriverUser::drawTriangle()</a>, <a class="el" href="a05660.html#l00341">NL3D::CDRU::drawTrianglesUnlit()</a>, <a class="el" href="a06358.html#l00141">NL3D::CSegRemanence::render()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06005.html#l02768">NL3D::CMeshMRMGeom::renderPass()</a>, <a class="el" href="a05989.html#l02075">NL3D::CMeshGeom::renderPass()</a>, <a class="el" href="a05989.html#l00915">NL3D::CMeshGeom::renderSimpleWithMaterial()</a>, <a class="el" href="a06005.html#l01146">NL3D::CMeshMRMGeom::renderSkin()</a>, <a class="el" href="a05989.html#l00788">NL3D::CMeshGeom::renderSkin()</a>, and <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera52" doxytag="NL3D::IDriver::renderOrientedQuads" ></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"> virtual void NL3D::IDriver::renderOrientedQuads </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>Mat</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>startIndex</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>numQuads</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Render quads with previously setuped VertexBuffer / Matrixes. There's a garanty for the orientation of its diagonal, which is drawn as follow :<p>
+3----2 | / | | / | |/ | 0----1<p>
+The rendering may be slower than with 'renderQuads', however This orientation is not garanteed with renderQuads, and depends on the hardware
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa70">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera53" doxytag="NL3D::IDriver::renderPoints" ></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"> virtual void NL3D::IDriver::renderPoints </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>Mat</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>numPoints</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render points with previously setuped VertexBuffer / Matrixes.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa71">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06226.html#l00052">NL3D::DrawDot()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera54" doxytag="NL3D::IDriver::renderQuads" ></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"> virtual void NL3D::IDriver::renderQuads </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>Mat</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>startIndex</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>numQuads</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render quads with previously setuped VertexBuffer / Matrixes. Quads are stored as a sequence in the vertex buffer.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa72">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00802">NL3D::CShadowMapManager::applyFakeGaussianBlur()</a>, <a class="el" href="a05557.html#l00328">NL3D::CCloud::disp()</a>, <a class="el" href="a05557.html#l00606">NL3D::CCloud::dispBill()</a>, <a class="el" href="a05557.html#l00388">NL3D::CCloud::dispXYZ()</a>, <a class="el" href="a05623.html#l00085">NL3D::CDeform2d::doDeform()</a>, <a class="el" href="a06231.html#l00055">NL3D::CPSFaceHelper::drawFaces()</a>, <a class="el" href="a06233.html#l00379">NL3D::CPSFaceLookAtHelper::drawLookAt()</a>, <a class="el" href="a06233.html#l00089">NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion()</a>, <a class="el" href="a05657.html#l00758">NL3D::CDriverUser::drawQuads()</a>, <a class="el" href="a06372.html#l00669">NL3D::CShadowMapManager::fillBlackBorder()</a>, <a class="el" href="a06103.html#l00421">NL3D::CNoise3d::flush()</a>, <a class="el" href="a05595.html#l00605">NL3D::CRenderStringBuffer::flush()</a>, <a class="el" href="a06103.html#l00436">NL3D::CNoise3d::flush2passes()</a>, <a class="el" href="a05595.html#l00637">NL3D::CRenderStringBuffer::flushUnProjected()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a05557.html#l00110">NL3D::CCloud::generate()</a>, <a class="el" href="a05557.html#l00182">NL3D::CCloud::light()</a>, <a class="el" href="a06040.html#l00062">NL3D::CMotionBlur::performMotionBlur()</a>, <a class="el" href="a05595.html#l00084">NL3D::CComputedString::render2D()</a>, <a class="el" href="a05595.html#l00151">NL3D::CComputedString::render3D()</a>, <a class="el" href="a05557.html#l00251">NL3D::CCloud::reset()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera55" doxytag="NL3D::IDriver::renderSimpleTriangles" ></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"> virtual void NL3D::IDriver::renderSimpleTriangles </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>tri</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>ntris</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render a list of triangles with previously setuped VertexBuffer / Matrixes, AND previously setuped MATERIAL!! This use the last material setuped. It should be a "Normal shader" material, because no multi-pass is allowed with this method. Actually, it is like a straight drawTriangles() in OpenGL. NB: <a class="el" href="a04199.html#a6">nlassert()</a> if ntris is 0!!!! this is unlike other <a class="el" href="a02434.html#NL3D_1_1IDrivera51">render()</a> call methods. For optimisation concern. NB: this is usefull for landscape....
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa73">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06737.html#l00387">NL3D::DrawPoly2D()</a>, <a class="el" href="a06698.html#l01713">NL3D::CVegetableManager::render()</a>, <a class="el" href="a06688.html#l00077">NL3D::CVegetableBlendLayerModel::render()</a>, and <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera56" doxytag="NL3D::IDriver::renderTriangles" ></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"> virtual void NL3D::IDriver::renderTriangles </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>Mat</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>tri</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>ntris</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+render a list of triangles with previously setuped VertexBuffer / Matrixes. NB: this "was" usefull for landscape....
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa74">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06285.html#l00169">NL3D::CPSUtil::displayArrow()</a>, <a class="el" href="a06235.html#l00072">NL3D::CPSFanLightHelper::drawFanLight()</a>, <a class="el" href="a05935.html#l00736">NL3D::CLodCharacterManager::endRender()</a>, <a class="el" href="a05569.html#l00123">NL3D::CCoarseMeshManager::flushRender()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a06374.html#l00192">NL3D::CShadowPolyReceiver::render()</a>, <a class="el" href="a06011.html#l01879">NL3D::CMeshMRMSkinnedGeom::renderShadowSkinPrimitives()</a>, <a class="el" href="a06005.html#l03412">NL3D::CMeshMRMGeom::renderShadowSkinPrimitives()</a>, <a class="el" href="a06011.html#l00795">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06005.html#l01406">NL3D::CMeshMRMGeom::renderSkinGroupPrimitives()</a>, <a class="el" href="a06011.html#l00877">NL3D::CMeshMRMSkinnedGeom::renderSkinGroupSpecularRdrPass()</a>, and <a class="el" href="a06005.html#l01488">NL3D::CMeshMRMGeom::renderSkinGroupSpecularRdrPass()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera57" doxytag="NL3D::IDriver::setAmbientColor" ></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"> virtual void NL3D::IDriver::setAmbientColor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>color</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set ambiant.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>color</em>&nbsp;</td><td>is the new global ambiant color for the scene. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera61">setLight()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera9">enableLight()</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa75">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06329.html#l00355">NL3D::CRenderTrav::resetLightSetup()</a>, and <a class="el" href="a05657.html#l01066">NL3D::CDriverUser::setAmbientColor()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz153_4" doxytag="NL3D::IDriver::setBlendConstantColor" ></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"> virtual void NL3D::IDriver::setBlendConstantColor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>col</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+see <a class="el" href="a02434.html#NL3D_1_1IDriverz153_5">supportBlendConstantColor()</a>. Set the current Blend Constant Color.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz78_4">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05995.html#l00037">NL3D::CMeshBlender::prepareRenderForGlobalAlpha()</a>, and <a class="el" href="a05995.html#l00132">NL3D::CMeshBlender::prepareRenderForGlobalAlphaCoarseMesh()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz145_4" doxytag="NL3D::IDriver::setCapture" ></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"> virtual void NL3D::IDriver::setCapture </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If true, capture the mouse to force it to stay under the window. NB : this has no effects if a low level mouse is used
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa76">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01316">NL3D::CDriverUser::setCapture()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera58" doxytag="NL3D::IDriver::setColorMask" ></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"> virtual void NL3D::IDriver::setColorMask </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>bRed</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>bGreen</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>bBlue</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>bAlpha</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the color mask filter through where the operation done will pass.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa77">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05557.html#l00182">NL3D::CCloud::light()</a>, and <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_6" doxytag="NL3D::IDriver::setConstant" ></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"> virtual void NL3D::IDriver::setConstant </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>num</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const double *&nbsp;</td>
+ <td class="mdname" nowrap> <em>src</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup several 4 double csts taken from the given tab
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_4">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_7" doxytag="NL3D::IDriver::setConstant" ></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"> virtual void NL3D::IDriver::setConstant </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>num</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const float *&nbsp;</td>
+ <td class="mdname" nowrap> <em>src</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup several 4 float csts taken from the given tab
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_5">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_8" doxytag="NL3D::IDriver::setConstant" ></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"> virtual void NL3D::IDriver::setConstant </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03664.html">NLMISC::CVectorD</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_6">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_9" doxytag="NL3D::IDriver::setConstant" ></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"> virtual void NL3D::IDriver::setConstant </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>value</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_7">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_10" doxytag="NL3D::IDriver::setConstant" ></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"> virtual void NL3D::IDriver::setConstant </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>double&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_8">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_11" doxytag="NL3D::IDriver::setConstant" ></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"> virtual void NL3D::IDriver::setConstant </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup constant values.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_9">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06022.html#l00433">NL3D::CMeshVPPerPixelLight::begin()</a>, <a class="el" href="a06329.html#l00557">NL3D::CRenderTrav::beginVPLightSetup()</a>, <a class="el" href="a06329.html#l00653">NL3D::CRenderTrav::changeVPLightSetupMaterial()</a>, <a class="el" href="a05862.html#l00939">NL3D::CLandscape::render()</a>, <a class="el" href="a06737.html#l00831">NL3D::CWaterModel::setupMaterialNVertexShader()</a>, <a class="el" href="a06024.html#l00228">NL3D::CMeshVPWindTree::setupPerInstanceConstants()</a>, <a class="el" href="a06024.html#l00178">NL3D::CMeshVPWindTree::setupPerMesh()</a>, and <a class="el" href="a06698.html#l01664">NL3D::CVegetableManager::setupVertexProgramConstants()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_12" doxytag="NL3D::IDriver::setConstantMatrix" ></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"> virtual void NL3D::IDriver::setConstantMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>index</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_1IDriverz147_0">TMatrix</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>matrix</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_1IDriverz147_1">TTransform</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>transform</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup constants with a current matrix.<p>
+This call must be done after <a class="el" href="a02434.html#NL3D_1_1IDrivera60">setFrustum()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera72">setupViewMatrix()</a> or <a class="el" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix()</a> to get correct results.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>index</em>&nbsp;</td><td>is the base constant index where to store the matrix. This index must be a multiple of 4. </td></tr>
+ <tr><td valign=top><em>matrix</em>&nbsp;</td><td>is the matrix id to store in the constants </td></tr>
+ <tr><td valign=top><em>transform</em>&nbsp;</td><td>is the transformation to apply to the matrix before store it in the constants.</td></tr>
+ </table>
+</dl>
+
+<p>
+Referenced by <a class="el" href="a06022.html#l00433">NL3D::CMeshVPPerPixelLight::begin()</a>, <a class="el" href="a05862.html#l00939">NL3D::CLandscape::render()</a>, <a class="el" href="a06737.html#l00831">NL3D::CWaterModel::setupMaterialNVertexShader()</a>, <a class="el" href="a06024.html#l00228">NL3D::CMeshVPWindTree::setupPerInstanceConstants()</a>, and <a class="el" href="a06698.html#l01664">NL3D::CVegetableManager::setupVertexProgramConstants()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera59" doxytag="NL3D::IDriver::setDisplay" ></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"> virtual bool NL3D::IDriver::setDisplay </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void *&nbsp;</td>
+ <td class="mdname" nowrap> <em>wnd</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03831.html">GfxMode</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>mode</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>show</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> throw (<a class="el" href="a03775.html">EBadDisplay</a>)<code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa78">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00230">NL3D::CDriverUser::setDisplay()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz151_1" doxytag="NL3D::IDriver::setEMBMMatrix" ></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"> virtual void NL3D::IDriver::setEMBMMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>stage</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const float&nbsp;</td>
+ <td class="mdname" nowrap> <em>mat</em>[4]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz76_1">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera60" doxytag="NL3D::IDriver::setFrustum" ></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"> virtual void NL3D::IDriver::setFrustum </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>left</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>right</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>bottom</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>top</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>znear</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>zfar</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>perspective</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa79">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05557.html#l00328">NL3D::CCloud::disp()</a>, <a class="el" href="a05623.html#l00085">NL3D::CDeform2d::doDeform()</a>, <a class="el" href="a05660.html#l00136">NL3D::CDRU::drawBitmap()</a>, <a class="el" href="a05660.html#l00173">NL3D::CDRU::drawLine()</a>, <a class="el" href="a05660.html#l00241">NL3D::CDRU::drawQuad()</a>, <a class="el" href="a05660.html#l00206">NL3D::CDRU::drawTriangle()</a>, <a class="el" href="a05595.html#l00605">NL3D::CRenderStringBuffer::flush()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a06040.html#l00062">NL3D::CMotionBlur::performMotionBlur()</a>, <a class="el" href="a05559.html#l00777">NL3D::CCloudScape::render()</a>, <a class="el" href="a05595.html#l00084">NL3D::CComputedString::render2D()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, <a class="el" href="a05657.html#l00351">NL3D::CDriverUser::restoreMatrixContextMatrixOnly()</a>, <a class="el" href="a05557.html#l00751">NL3D::CCloud::setMode2D()</a>, <a class="el" href="a06329.html#l00304">NL3D::CRenderTrav::setupDriverCamera()</a>, and <a class="el" href="a05657.html#l00363">NL3D::CDriverUser::setupMatrixContext()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera61" doxytag="NL3D::IDriver::setLight" ></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"> virtual void NL3D::IDriver::setLight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>num</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02743.html">CLight</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>light</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup a light.<p>
+You must call <a class="el" href="a02434.html#NL3D_1_1IDrivera9">enableLight()</a> to active the ligth.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>num</em>&nbsp;</td><td>is the number of the light to set. </td></tr>
+ <tr><td valign=top><em>light</em>&nbsp;</td><td>is a light to set in this slot. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera9">enableLight()</a></dd></dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa80">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06329.html#l00409">NL3D::CRenderTrav::changeLightSetup()</a>, <a class="el" href="a06329.html#l00355">NL3D::CRenderTrav::resetLightSetup()</a>, and <a class="el" href="a05657.html#l01049">NL3D::CDriverUser::setLight()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz149_2" doxytag="NL3D::IDriver::setMatrix2DForTextureOffsetAddrMode" ></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"> virtual void NL3D::IDriver::setMatrix2DForTextureOffsetAddrMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>stage</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const float&nbsp;</td>
+ <td class="mdname" nowrap> <em>mat</em>[4]</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the 2D matrix for the OffsetTexture, OffsetTextureScale and OffsetTexture addressing mode It should be stored as the following [a0 a1] [a2 a3]
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz74_2">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06257.html#l00733">NL3D::CPSMultiTexturedParticle::setupMaterial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera62" doxytag="NL3D::IDriver::setMode" ></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"> virtual bool NL3D::IDriver::setMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03831.html">GfxMode</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mode</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa81">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00268">NL3D::CDriverUser::setMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera63" doxytag="NL3D::IDriver::setMonitorColorProperties" ></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"> virtual bool NL3D::IDriver::setMonitorColorProperties </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02935.html">CMonitorColorProperties</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>properties</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup monitor color properties.<p>
+Return false if setup failed.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz78_5">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01146">NL3D::CDriverUser::setMonitorColorProperties()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz145_5" doxytag="NL3D::IDriver::setMousePos" ></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"> virtual void NL3D::IDriver::setMousePos </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>x</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>y</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+x and y must be between 0.0 and 1.0
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa82">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01309">NL3D::CDriverUser::setMousePos()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera64" doxytag="NL3D::IDriver::setPerPixelLightingLight" ></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"> virtual void NL3D::IDriver::setPerPixelLightingLight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">CRGBA</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>diffuse</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03337.html">CRGBA</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>specular</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>shininess</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Setup the light used for per pixel lighting. The given values should have been modulated by the material diffuse and specular. This is only useful for material that have their shader set as 'PerPixelLighting' <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>the</em>&nbsp;</td><td>light used for per pixel lighting</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa83">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06022.html#l00544">NL3D::CMeshVPPerPixelLight::setupForMaterial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera65" doxytag="NL3D::IDriver::setPolygonMode" ></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"> virtual void NL3D::IDriver::setPolygonMode </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mode</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the global polygon mode. Can be filled, line or point. The implementation driver must call <a class="el" href="a02434.html#NL3D_1_1IDrivera65">IDriver::setPolygonMode</a> and active this mode.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>polygon</em>&nbsp;</td><td>mode choose in this driver. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02434.html#NL3D_1_1IDrivera29">getPolygonMode()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a></dd></dl>
+
+<p>
+Reimplemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa84">NL3D::CDriverGL</a>.
+<p>
+Definition at line <a class="el" href="a05640.html#l00763">763</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+References <a class="el" href="a05640.html#l00165">_PolygonMode</a>.
+<p>
+Referenced by <a class="el" href="a05557.html#l00606">NL3D::CCloud::dispBill()</a>, and <a class="el" href="a05657.html#l01076">NL3D::CDriverUser::setPolygonMode()</a>.
+<p>
+<div class="fragment"><pre>00764 {
+00765 <a class="code" href="a02434.html#NL3D_1_1IDriverp0">_PolygonMode</a>=mode;
+00766 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera66" doxytag="NL3D::IDriver::setSwapVBLInterval" ></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"> virtual void NL3D::IDriver::setSwapVBLInterval </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>interval</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+set the number of VBL wait when a <a class="el" href="a02434.html#NL3D_1_1IDrivera79">swapBuffers()</a> is issued. 0 means no synchronisation to the VBL Default depends of the 3D driver setup. Values &gt;1 may be clamped to 1 by the driver.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa85">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01420">NL3D::CDriverUser::setSwapVBLInterval()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz143_5" doxytag="NL3D::IDriver::setupFog" ></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"> virtual void NL3D::IDriver::setupFog </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>start</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>end</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03337.html">CRGBA</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>color</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup fog parameters. fog must enabled to see result. start and end are in [0,1] range.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz72_5">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06372.html#l00445">NL3D::CShadowMapManager::renderProject()</a>, and <a class="el" href="a05657.html#l01039">NL3D::CDriverUser::setupFog()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera67" doxytag="NL3D::IDriver::setupMaterial" ></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"> virtual bool NL3D::IDriver::setupMaterial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02839.html">CMaterial</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mat</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa87">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a06698.html#l01713">NL3D::CVegetableManager::render()</a>, <a class="el" href="a06698.html#l02134">NL3D::CVegetableManager::setupRenderStateForBlendLayerModel()</a>, and <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz139_2" doxytag="NL3D::IDriver::setupMaterialPass" ></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"> virtual void NL3D::IDriver::setupMaterialPass </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>pass</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+active the ith pass of this material.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz80_2">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera68" doxytag="NL3D::IDriver::setupModelMatrix" ></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"> virtual void NL3D::IDriver::setupModelMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mtx</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the model matrix.<p>
+NB: you must <a class="el" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix()</a> AFTER <a class="el" href="a02434.html#NL3D_1_1IDrivera72">setupViewMatrix()</a>, or else undefined results.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa88">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l02738">NL3D::CMeshMRMGeom::activeInstance()</a>, <a class="el" href="a05989.html#l02058">NL3D::CMeshGeom::activeInstance()</a>, <a class="el" href="a05870.html#l00143">NL3D::CLandscapeModel::clipAndRenderLandscape()</a>, <a class="el" href="a05557.html#l00328">NL3D::CCloud::disp()</a>, <a class="el" href="a06285.html#l00212">NL3D::CPSUtil::displayBasis()</a>, <a class="el" href="a06350.html#l01224">NL3D::CInstanceGroup::displayDebugClusters()</a>, <a class="el" href="a05623.html#l00085">NL3D::CDeform2d::doDeform()</a>, <a class="el" href="a06737.html#l01170">NL3D::CWaterModel::doSimpleRender()</a>, <a class="el" href="a05660.html#l00136">NL3D::CDRU::drawBitmap()</a>, <a class="el" href="a05660.html#l00173">NL3D::CDRU::drawLine()</a>, <a class="el" href="a05660.html#l00241">NL3D::CDRU::drawQuad()</a>, <a class="el" href="a05660.html#l00206">NL3D::CDRU::drawTriangle()</a>, <a class="el" href="a05935.html#l00736">NL3D::CLodCharacterManager::endRender()</a>, <a class="el" href="a05595.html#l00605">NL3D::CRenderStringBuffer::flush()</a>, <a class="el" href="a05569.html#l00123">NL3D::CCoarseMeshManager::flushRender()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a06040.html#l00062">NL3D::CMotionBlur::performMotionBlur()</a>, <a class="el" href="a05870.html#l00293">NL3D::CLandscapeModel::receiveShadowMap()</a>, <a class="el" href="a06698.html#l01713">NL3D::CVegetableManager::render()</a>, <a class="el" href="a06358.html#l00141">NL3D::CSegRemanence::render()</a>, <a class="el" href="a06011.html#l00568">NL3D::CMeshMRMSkinnedGeom::render()</a>, <a class="el" href="a06005.html#l00927">NL3D::CMeshMRMGeom::render()</a>, <a class="el" href="a05989.html#l00598">NL3D::CMeshGeom::render()</a>, <a class="el" href="a05559.html#l00777">NL3D::CCloudScape::render()</a>, <a class="el" href="a05595.html#l00084">NL3D::CComputedString::render2D()</a>, <a class="el" href="a05595.html#l00151">NL3D::CComputedString::render3D()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, <a class="el" href="a06393.html#l02062">NL3D::CSkeletonModel::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a06001.html#l00367">NL3D::CMeshInstance::renderIntoSkeletonShadowMap()</a>, <a class="el" href="a05989.html#l00915">NL3D::CMeshGeom::renderSimpleWithMaterial()</a>, <a class="el" href="a06393.html#l01390">NL3D::CSkeletonModel::renderSkins()</a>, <a class="el" href="a05657.html#l00351">NL3D::CDriverUser::restoreMatrixContextMatrixOnly()</a>, <a class="el" href="a05557.html#l00751">NL3D::CCloud::setMode2D()</a>, <a class="el" href="a06246.html#l01775">NL3D::CPSLocated::setupDriverModelMatrix()</a>, <a class="el" href="a05657.html#l00363">NL3D::CDriverUser::setupMatrixContext()</a>, <a class="el" href="a06698.html#l02134">NL3D::CVegetableManager::setupRenderStateForBlendLayerModel()</a>, <a class="el" href="a06244.html#l00363">NL3D::CPSLight::show()</a>, <a class="el" href="a06239.html#l00413">NL3D::CPSGravity::show()</a>, <a class="el" href="a06142.html#l00362">NL3D::CParticleSystem::step()</a>, <a class="el" href="a06737.html#l00437">NL3D::CWaterModel::traverseRender()</a>, and <a class="el" href="a05712.html#l00063">NL3D::CFlareModel::traverseRender()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera69" doxytag="NL3D::IDriver::setupScissor" ></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"> virtual void NL3D::IDriver::setupScissor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const class <a class="el" href="a03353.html">CScissor</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>scissor</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the current Scissor. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>scissor</em>&nbsp;</td><td>is a scissor to setup the current Scissor, in Window relative coordinate (0,1).</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa89">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05557.html#l00328">NL3D::CCloud::disp()</a>, <a class="el" href="a05559.html#l00777">NL3D::CCloudScape::render()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, <a class="el" href="a05557.html#l00751">NL3D::CCloud::setMode2D()</a>, and <a class="el" href="a05657.html#l00363">NL3D::CDriverUser::setupMatrixContext()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera70" doxytag="NL3D::IDriver::setupTexture" ></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"> virtual bool NL3D::IDriver::setupTexture </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>tex</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup a texture, generate and upload if needed. same as setupTextureEx(tex, true, dummy);
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa90">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06152.html#l00344">NL3D::CParticleSystemShape::flushTextures()</a>, <a class="el" href="a05968.html#l00355">NL3D::CMaterial::flushTextures()</a>, <a class="el" href="a05714.html#l00140">NL3D::CFlareShape::flushTextures()</a>, <a class="el" href="a05862.html#l01884">NL3D::CLandscape::flushTiles()</a>, <a class="el" href="a06152.html#l00182">NL3D::CParticleSystemShape::instanciatePS()</a>, and <a class="el" href="a06739.html#l00152">NL3D::CWaterPoolManager::setBlendFactor()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera71" doxytag="NL3D::IDriver::setupTextureEx" ></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"> virtual bool NL3D::IDriver::setupTextureEx </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>tex</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>bUpload</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bAllUploaded</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>bMustRecreateSharedTexture</em> = false</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup a texture in the driver. <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bUpload</em>&nbsp;</td><td>if true the texture is created and uploaded to VRAM, if false the texture is only created it is useful for the async upload texture to only create the texture and then make invalidate to upload small piece each frame. There is ONE case where bUpload is forced to be true inside the method: if the texture must be converted to RGBA. </td></tr>
+ </table>
+</dl>
+<dl compact><dt><b>See also:</b></dt><dd>bAllUploaded </dd></dl>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>bAllUploaded</em>&nbsp;</td><td>true if any upload arise (texture invalid, must convert texture etc...). </td></tr>
+ <tr><td valign=top><em>bMustRecreateSharedTexture</em>&nbsp;</td><td>if true and if the texture supportSharing, then the texture is recreated (and uploaded if bUpload==true) into the shared DrvInfo (if found). Default setup (false) imply that the DrvInfo is only bound to tex (thus creating and uploading nothing) NB: the texture must be at least touch()-ed for the recreate to work.</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa91">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06378.html#l00308">NL3D::CShapeBank::processWSUploadTexture()</a>, and <a class="el" href="a05463.html#l00451">NL3D::CAsyncTextureManager::uploadTexturePart()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera72" doxytag="NL3D::IDriver::setupViewMatrix" ></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"> virtual void NL3D::IDriver::setupViewMatrix </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>mtx</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the view matrix (inverse of camera matrix).<p>
+NB: you must <a class="el" href="a02434.html#NL3D_1_1IDrivera72">setupViewMatrix()</a> BEFORE <a class="el" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix()</a>, or else undefined results.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa93">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05557.html#l00328">NL3D::CCloud::disp()</a>, <a class="el" href="a05623.html#l00085">NL3D::CDeform2d::doDeform()</a>, <a class="el" href="a05660.html#l00136">NL3D::CDRU::drawBitmap()</a>, <a class="el" href="a05660.html#l00173">NL3D::CDRU::drawLine()</a>, <a class="el" href="a05660.html#l00241">NL3D::CDRU::drawQuad()</a>, <a class="el" href="a05660.html#l00206">NL3D::CDRU::drawTriangle()</a>, <a class="el" href="a05595.html#l00605">NL3D::CRenderStringBuffer::flush()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a06393.html#l01781">NL3D::CSkeletonModel::generateShadowMap()</a>, <a class="el" href="a06001.html#l00166">NL3D::CMeshInstance::generateShadowMap()</a>, <a class="el" href="a06040.html#l00062">NL3D::CMotionBlur::performMotionBlur()</a>, <a class="el" href="a05559.html#l00777">NL3D::CCloudScape::render()</a>, <a class="el" href="a05595.html#l00084">NL3D::CComputedString::render2D()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, <a class="el" href="a05657.html#l00351">NL3D::CDriverUser::restoreMatrixContextMatrixOnly()</a>, <a class="el" href="a05557.html#l00751">NL3D::CCloud::setMode2D()</a>, and <a class="el" href="a05657.html#l00363">NL3D::CDriverUser::setupMatrixContext()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera73" doxytag="NL3D::IDriver::setupViewMatrixEx" ></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"> virtual void NL3D::IDriver::setupViewMatrixEx </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02851.html">CMatrix</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>mtx</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>cameraPos</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the view matrix (inverse of camera matrix). Extended: give a cameraPos (mtx.Pos() is not taken into account but for <a class="el" href="a02434.html#NL3D_1_1IDrivera34">getViewMatrix()</a>), so the driver use it to remove translation from all ModelMatrixes (and lights pos). This approach improves greatly ZBuffer precision.<p>
+This is transparent to user, and <a class="el" href="a02434.html#NL3D_1_1IDrivera34">getViewMatrix()</a> return mtx (as in <a class="el" href="a02434.html#NL3D_1_1IDrivera72">setupViewMatrix()</a>).<p>
+NB: you must <a class="el" href="a02434.html#NL3D_1_1IDrivera73">setupViewMatrixEx()</a> BEFORE <a class="el" href="a02434.html#NL3D_1_1IDrivera68">setupModelMatrix()</a>, or else undefined results.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>mtx</em>&nbsp;</td><td>the same view matrix (still with correct "inversed" camera position) as if passed in <a class="el" href="a02434.html#NL3D_1_1IDrivera72">setupViewMatrix()</a> </td></tr>
+ <tr><td valign=top><em>cameraPos</em>&nbsp;</td><td>position of the camera (before inversion, ie mtx.getPos()!=cameraPos ).</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa94">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06329.html#l00304">NL3D::CRenderTrav::setupDriverCamera()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera74" doxytag="NL3D::IDriver::setupViewport" ></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"> virtual void NL3D::IDriver::setupViewport </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const class <a class="el" href="a03704.html">CViewport</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>viewport</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the current viewport<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>viewport</em>&nbsp;</td><td>is a viewport to setup as current viewport.</td></tr>
+ </table>
+</dl>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa95">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05557.html#l00328">NL3D::CCloud::disp()</a>, <a class="el" href="a05660.html#l00136">NL3D::CDRU::drawBitmap()</a>, <a class="el" href="a05660.html#l00173">NL3D::CDRU::drawLine()</a>, <a class="el" href="a05660.html#l00241">NL3D::CDRU::drawQuad()</a>, <a class="el" href="a05660.html#l00206">NL3D::CDRU::drawTriangle()</a>, <a class="el" href="a05557.html#l00509">NL3D::CCloud::genBill()</a>, <a class="el" href="a05559.html#l00777">NL3D::CCloudScape::render()</a>, <a class="el" href="a06372.html#l00234">NL3D::CShadowMapManager::renderGenerate()</a>, <a class="el" href="a05557.html#l00751">NL3D::CCloud::setMode2D()</a>, <a class="el" href="a05657.html#l00363">NL3D::CDriverUser::setupMatrixContext()</a>, and <a class="el" href="a06329.html#l00089">NL3D::CRenderTrav::traverse()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz145_6" doxytag="NL3D::IDriver::showCursor" ></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"> virtual void NL3D::IDriver::showCursor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>b</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+show cursor if b is true, or hide it if b is false
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa96">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01302">NL3D::CDriverUser::showCursor()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera75" doxytag="NL3D::IDriver::slowUnlockVertexBufferHard" ></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"> virtual bool NL3D::IDriver::slowUnlockVertexBufferHard </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return true if driver support VertexBufferHard, but vbHard-&gt;unlock() are slow (ATI-openGL).
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa97">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l02224">NL3D::CMeshMRMGeom::updateVertexBufferHard()</a>, and <a class="el" href="a05989.html#l00523">NL3D::CMeshGeom::updateVertexBufferHard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz141_8" doxytag="NL3D::IDriver::startProfileVBHardLock" ></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"> virtual void NL3D::IDriver::startProfileVBHardLock </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+If the driver support it, enable profile VBHard locks. No-Op if already profiling
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa98">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05659.html#l00225">NL3D::CDriverUser::startProfileVBHardLock()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera76" doxytag="NL3D::IDriver::startSpecularBatch" ></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"> virtual void NL3D::IDriver::startSpecularBatch </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Special for Faster Specular Setup. Call this between lot of primitives rendered with Specular Materials. Visual Errors may arise if you don't correclty call <a class="el" href="a02434.html#NL3D_1_1IDrivera10">endSpecularBatch()</a>.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa99">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06393.html#l01449">NL3D::CSkeletonModel::renderSkinList()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz153_5" doxytag="NL3D::IDriver::supportBlendConstantColor" ></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"> virtual bool NL3D::IDriver::supportBlendConstantColor </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Does the driver support Blend Constant Color ??? If yes CMaterial::blendConstant* enum can be used for blend Src ord Dst factor. If no, using these enum will have undefined results.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz78_6">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05995.html#l00037">NL3D::CMeshBlender::prepareRenderForGlobalAlpha()</a>, <a class="el" href="a05995.html#l00132">NL3D::CMeshBlender::prepareRenderForGlobalAlphaCoarseMesh()</a>, <a class="el" href="a05995.html#l00099">NL3D::CMeshBlender::restoreRender()</a>, and <a class="el" href="a05995.html#l00181">NL3D::CMeshBlender::restoreRenderCoarseMesh()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_13" doxytag="NL3D::IDriver::supportCloudRenderSinglePass" ></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"> virtual bool NL3D::IDriver::supportCloudRenderSinglePass </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa100">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz151_2" doxytag="NL3D::IDriver::supportEMBM" ></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"> virtual bool NL3D::IDriver::supportEMBM </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz76_2">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera77" doxytag="NL3D::IDriver::supportPerPixelLighting" ></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"> virtual bool NL3D::IDriver::supportPerPixelLighting </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">bool&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>specular</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa101">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06022.html#l00433">NL3D::CMeshVPPerPixelLight::begin()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz149_3" doxytag="NL3D::IDriver::supportTextureShaders" ></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"> virtual bool NL3D::IDriver::supportTextureShaders </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+test wether the device supports some form of texture shader. (could be limited to DX6 EMBM for example)
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz74_3">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera78" doxytag="NL3D::IDriver::supportVertexBufferHard" ></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"> virtual bool NL3D::IDriver::supportVertexBufferHard </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+return true if driver support VertexBufferHard.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa102">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06005.html#l02224">NL3D::CMeshMRMGeom::updateVertexBufferHard()</a>, and <a class="el" href="a05989.html#l00523">NL3D::CMeshGeom::updateVertexBufferHard()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverz147_14" doxytag="NL3D::IDriver::supportVertexProgramDoubleSidedColor" ></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"> virtual bool NL3D::IDriver::supportVertexProgramDoubleSidedColor </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> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Check if the driver support double sided colors vertex programs.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLz104_11">NL3D::CDriverGL</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera79" doxytag="NL3D::IDriver::swapBuffers" ></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"> virtual bool NL3D::IDriver::swapBuffers </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Swap the back and front buffers.
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa103">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l01013">NL3D::CDriverUser::swapBuffers()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera80" doxytag="NL3D::IDriver::swapTextureHandle" ></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"> virtual void NL3D::IDriver::swapTextureHandle </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>tex0</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>tex1</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Special method to internally swap the Driver handle of 2 textures. USE IT WITH CARE (eg: may have Size problems, mipmap problems, format problems ...) Actually, it is used only by <a class="el" href="a02230.html">CAsyncTextureManager</a>, to manage Lods of DXTC <a class="el" href="a03502.html">CTextureFile</a>. NB: internally, all textures slots are disabled.
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa104">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a05463.html#l00361">NL3D::CAsyncTextureManager::update()</a>, and <a class="el" href="a05463.html#l00629">NL3D::CAsyncTextureManager::updateTextureLodSystem()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera81" doxytag="NL3D::IDriver::systemMessageBox" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02434.html#NL3D_1_1IDriverw35">IDriver::TMessageBoxId</a> NL3D::IDriver::systemMessageBox </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>message</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const char *&nbsp;</td>
+ <td class="mdname" nowrap> <em>title</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_1IDriverw36">TMessageBoxType</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>type</em> = okType, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02434.html#NL3D_1_1IDriverw34">TMessageBoxIcon</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>icon</em> = noIcon</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>
+Output a system message box and print a message with an icon. This method can be call even if the driver is not initialized. This method is used to return internal driver problem when string can't be displayed in the driver window. If the driver can't open a messageBox, it should not override this method and let the <a class="el" href="a02434.html">IDriver</a> class manage it with the ASCII console.<p>
+<dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>message</em>&nbsp;</td><td>This is the message to display in the message box. </td></tr>
+ <tr><td valign=top><em>title</em>&nbsp;</td><td>This is the title of the message box. </td></tr>
+ <tr><td valign=top><em>type</em>&nbsp;</td><td>This is the type of the message box, ie number of button and label of buttons. </td></tr>
+ <tr><td valign=top><em>icon</em>&nbsp;</td><td>This is the icon of the message box should use like warning, error etc...</td></tr>
+ </table>
+</dl>
+
+<p>
+Reimplemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa105">NL3D::CDriverGL</a>.
+<p>
+Definition at line <a class="el" href="a05639.html#l00137">137</a> of file <a class="el" href="a05639.html">driver.cpp</a>.
+<p>
+References <a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw0">abortId</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw1">abortRetryIgnoreType</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw3">cancelId</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw9">iconCount</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw12">ignoreId</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw21">noId</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw24">okCancelType</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw25">okId</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw26">okType</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw30">retryCancelType</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw31">retryId</a>, <a class="el" href="a05646.html#l00244">type</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw40">typeCount</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw44">yesId</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw45">yesNoCancelType</a>, and <a class="el" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw46">yesNoType</a>.
+<p>
+Referenced by <a class="el" href="a05657.html#l00964">NL3D::CDriverUser::systemMessageBox()</a>.
+<p>
+<div class="fragment"><pre>00138 {
+00139 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* icons[<a class="code" href="a02434.html#NL3D_1_1IDriverw34NL3D_1_1IDriverw9">iconCount</a>]=
+00140 {
+00141 <span class="stringliteral">""</span>,
+00142 <span class="stringliteral">"WAIT:\n"</span>,
+00143 <span class="stringliteral">"QUESTION:\n"</span>,
+00144 <span class="stringliteral">"HEY!\n"</span>,
+00145 <span class="stringliteral">""</span>,
+00146 <span class="stringliteral">"WARNING!\n"</span>,
+00147 <span class="stringliteral">"ERROR!\n"</span>,
+00148 <span class="stringliteral">"INFORMATION:\n"</span>,
+00149 <span class="stringliteral">"STOP:\n"</span>
+00150 };
+00151 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* messages[<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw40">typeCount</a>]=
+00152 {
+00153 <span class="stringliteral">"Press any key..."</span>,
+00154 <span class="stringliteral">"(O)k or (C)ancel ?"</span>,
+00155 <span class="stringliteral">"(Y)es or (N)o ?"</span>,
+00156 <span class="stringliteral">"(A)bort (R)etry (I)gnore ?"</span>,
+00157 <span class="stringliteral">"(Y)es (N)o (C)ancel ?"</span>,
+00158 <span class="stringliteral">"(R)etry (C)ancel ?"</span>
+00159 };
+00160 printf (<span class="stringliteral">"%s%s\n%s"</span>, icons[icon], title, message);
+00161 <span class="keywordflow">while</span> (1)
+00162 {
+00163 printf (<span class="stringliteral">"\n%s"</span>, messages[type]);
+00164 <span class="keywordtype">int</span> c=getchar();
+00165 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw26">okType</a>)
+00166 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw25">okId</a>;
+00167 <span class="keywordflow">switch</span> (c)
+00168 {
+00169 <span class="keywordflow">case</span> <span class="charliteral">'O'</span>:
+00170 <span class="keywordflow">case</span> <span class="charliteral">'o'</span>:
+00171 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw26">okType</a>)||(<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw24">okCancelType</a>))
+00172 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw25">okId</a>;
+00173 <span class="keywordflow">break</span>;
+00174 <span class="keywordflow">case</span> <span class="charliteral">'C'</span>:
+00175 <span class="keywordflow">case</span> <span class="charliteral">'c'</span>:
+00176 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw45">yesNoCancelType</a>)||(<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw24">okCancelType</a>)||(<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw30">retryCancelType</a>))
+00177 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw3">cancelId</a>;
+00178 <span class="keywordflow">break</span>;
+00179 <span class="keywordflow">case</span> <span class="charliteral">'Y'</span>:
+00180 <span class="keywordflow">case</span> <span class="charliteral">'y'</span>:
+00181 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw45">yesNoCancelType</a>)||(<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw46">yesNoType</a>))
+00182 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw44">yesId</a>;
+00183 <span class="keywordflow">break</span>;
+00184 <span class="keywordflow">case</span> <span class="charliteral">'N'</span>:
+00185 <span class="keywordflow">case</span> <span class="charliteral">'n'</span>:
+00186 <span class="keywordflow">if</span> ((<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw45">yesNoCancelType</a>)||(<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw46">yesNoType</a>))
+00187 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw21">noId</a>;
+00188 <span class="keywordflow">break</span>;
+00189 <span class="keywordflow">case</span> <span class="charliteral">'A'</span>:
+00190 <span class="keywordflow">case</span> <span class="charliteral">'a'</span>:
+00191 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw1">abortRetryIgnoreType</a>)
+00192 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw0">abortId</a>;
+00193 <span class="keywordflow">break</span>;
+00194 <span class="keywordflow">case</span> <span class="charliteral">'R'</span>:
+00195 <span class="keywordflow">case</span> <span class="charliteral">'r'</span>:
+00196 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw1">abortRetryIgnoreType</a>)
+00197 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw31">retryId</a>;
+00198 <span class="keywordflow">break</span>;
+00199 <span class="keywordflow">case</span> <span class="charliteral">'I'</span>:
+00200 <span class="keywordflow">case</span> <span class="charliteral">'i'</span>:
+00201 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a581">type</a>==<a class="code" href="a02434.html#NL3D_1_1IDriverw36NL3D_1_1IDriverw1">abortRetryIgnoreType</a>)
+00202 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw12">ignoreId</a>;
+00203 <span class="keywordflow">break</span>;
+00204 }
+00205 }
+00206 <a class="code" href="a04199.html#a6">nlassert</a> (0); <span class="comment">// no!</span>
+00207 <span class="keywordflow">return</span> <a class="code" href="a02434.html#NL3D_1_1IDriverw35NL3D_1_1IDriverw25">okId</a>;
+00208 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera82" doxytag="NL3D::IDriver::uploadTexture" ></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"> virtual bool NL3D::IDriver::uploadTexture </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>tex</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03319.html">NLMISC::CRect</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>rect</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nNumMipMap</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The texture must be created or uploadTexture do nothing. These function can be used to upload piece by piece a texture. Use it in conjunction with setupTextureEx(..., false);
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa106">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06378.html#l00308">NL3D::CShapeBank::processWSUploadTexture()</a>, and <a class="el" href="a05463.html#l00451">NL3D::CAsyncTextureManager::uploadTexturePart()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivera83" doxytag="NL3D::IDriver::uploadTextureCube" ></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"> virtual bool NL3D::IDriver::uploadTextureCube </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03487.html">ITexture</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>tex</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a03319.html">NLMISC::CRect</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>rect</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nNumMipMap</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>nNumFace</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [pure virtual]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Implemented in <a class="el" href="a02433.html#NL3D_1_1CDriverGLa107">NL3D::CDriverGL</a>.
+<p>
+Referenced by <a class="el" href="a06378.html#l00308">NL3D::CShapeBank::processWSUploadTexture()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="NLGEORGES_1_1UTypen0" doxytag="NL3D::IDriver::CPtrInfo" ></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"> friend struct CPtrInfo<code> [friend, 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="a06402.html#l00067">67</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivern1" doxytag="NL3D::IDriver::CTextureDrvShare" ></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"> friend class <a class="el" href="a03496.html">CTextureDrvShare</a><code> [friend]</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="a05640.html#l00993">993</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05652.html#l00361">NL3D::CDriverGL::setupTextureEx()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivern2" doxytag="NL3D::IDriver::IShader" ></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"> friend class <a class="el" href="a03877.html">IShader</a><code> [friend]</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="a05640.html#l00995">995</a> of file <a class="el" href="a05640.html">driver.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivern3" doxytag="NL3D::IDriver::ITextureDrvInfos" ></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"> friend class <a class="el" href="a03879.html">ITextureDrvInfos</a><code> [friend]</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="a05640.html#l00994">994</a> of file <a class="el" href="a05640.html">driver.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivern4" doxytag="NL3D::IDriver::IVBDrvInfos" ></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"> friend class <a class="el" href="a03883.html">IVBDrvInfos</a><code> [friend]</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="a05640.html#l00992">992</a> of file <a class="el" href="a05640.html">driver.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivern5" doxytag="NL3D::IDriver::IVertexProgramDrvInfos" ></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"> friend class <a class="el" href="a03885.html">IVertexProgramDrvInfos</a><code> [friend]</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="a05640.html#l00996">996</a> of file <a class="el" href="a05640.html">driver.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1IDriverp0" doxytag="NL3D::IDriver::_PolygonMode" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02434.html#NL3D_1_1IDriverw37">TPolygonMode</a> <a class="el" href="a02434.html#NL3D_1_1IDriverp0">NL3D::IDriver::_PolygonMode</a><code> [protected]</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="a05640.html#l00165">165</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05640.html#l00817">getPolygonMode()</a>, <a class="el" href="a05639.html#l00049">IDriver()</a>, and <a class="el" href="a05640.html#l00763">setPolygonMode()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverp1" doxytag="NL3D::IDriver::_Shaders" ></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="a05363.html#a286">TShaderPtrList</a> <a class="el" href="a02434.html#NL3D_1_1IDriverp1">NL3D::IDriver::_Shaders</a><code> [protected]</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="a05640.html#l00163">163</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05639.html#l00073">release()</a>, <a class="el" href="a05639.html#l00232">removeShaderPtr()</a>, and <a class="el" href="a05639.html#l00055">~IDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverp2" doxytag="NL3D::IDriver::_SyncTexDrvInfos" ></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"> CSynchronized&lt;<a class="el" href="a03916.html">TTexDrvInfoPtrMap</a>&gt; <a class="el" href="a02434.html#NL3D_1_1IDriverp2">NL3D::IDriver::_SyncTexDrvInfos</a><code> [protected]</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="a05640.html#l00160">160</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05639.html#l00243">invalidateShareTexture()</a>, <a class="el" href="a05639.html#l00073">release()</a>, <a class="el" href="a05639.html#l00219">removeTextureDrvInfoPtr()</a>, and <a class="el" href="a05639.html#l00055">~IDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverp3" doxytag="NL3D::IDriver::_TexDrvShares" ></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="a05363.html#a296">TTexDrvSharePtrList</a> <a class="el" href="a02434.html#NL3D_1_1IDriverp3">NL3D::IDriver::_TexDrvShares</a><code> [protected]</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="a05640.html#l00162">162</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05639.html#l00243">invalidateShareTexture()</a>, <a class="el" href="a05639.html#l00073">release()</a>, <a class="el" href="a05639.html#l00227">removeTextureDrvSharePtr()</a>, and <a class="el" href="a05639.html#l00055">~IDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverp4" doxytag="NL3D::IDriver::_VBDrvInfos" ></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="a05363.html#a342">TVBDrvInfoPtrList</a> <a class="el" href="a02434.html#NL3D_1_1IDriverp4">NL3D::IDriver::_VBDrvInfos</a><code> [protected]</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="a05640.html#l00164">164</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05639.html#l00073">release()</a>, <a class="el" href="a05639.html#l00214">removeVBDrvInfoPtr()</a>, and <a class="el" href="a05639.html#l00055">~IDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDriverp5" doxytag="NL3D::IDriver::_VtxPrgDrvInfos" ></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="a05363.html#a344">TVtxPrgDrvInfoPtrList</a> <a class="el" href="a02434.html#NL3D_1_1IDriverp5">NL3D::IDriver::_VtxPrgDrvInfos</a><code> [protected]</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="a05640.html#l00166">166</a> of file <a class="el" href="a05640.html">driver.h</a>.
+<p>
+Referenced by <a class="el" href="a05639.html#l00073">release()</a>, <a class="el" href="a05639.html#l00237">removeVtxPrgDrvInfoPtr()</a>, and <a class="el" href="a05639.html#l00055">~IDriver()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypeo0" doxytag="NL3D::IDriver::crefs" ></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#a14">sint</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">NLMISC::CRefCount::crefs</a><code> [mutable, 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="a06402.html#l00079">79</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>.
+<p>
+Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, <a class="el" href="a06402.html#l00070">NLMISC::CRefCount::getRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1IDrivers0" doxytag="NL3D::IDriver::InterfaceVersion" ></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"> const <a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a02434.html#NL3D_1_1IDrivers0">NL3D::IDriver::InterfaceVersion</a> = 0x4e<code> [static]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Version of the driver interface. To increment when the interface change.
+<p>
+
+<p>
+Definition at line <a class="el" href="a05639.html#l00046">46</a> of file <a class="el" href="a05639.html">driver.cpp</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypes0" doxytag="NL3D::IDriver::NullPtrInfo" ></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="a03320.html">CRefCount::CPtrInfo</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NLMISC::CRefCount::NullPtrInfo</a><code> [static, inherited]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLGEORGES_1_1UTypeo1" doxytag="NL3D::IDriver::pinfo" ></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"> CPtrInfo* <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">NLMISC::CRefCount::pinfo</a><code> [mutable, 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="a06402.html#l00080">80</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>.
+<p>
+Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a05640.html">driver.h</a><li><a class="el" href="a05639.html">driver.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 08:38:42 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>