aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/driver__opengl__states_8cpp-source.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/driver__opengl__states_8cpp-source.html')
-rw-r--r--docs/doxygen/nel/driver__opengl__states_8cpp-source.html754
1 files changed, 754 insertions, 0 deletions
diff --git a/docs/doxygen/nel/driver__opengl__states_8cpp-source.html b/docs/doxygen/nel/driver__opengl__states_8cpp-source.html
new file mode 100644
index 00000000..f44746fe
--- /dev/null
+++ b/docs/doxygen/nel/driver__opengl__states_8cpp-source.html
@@ -0,0 +1,754 @@
+<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <TITLE>nevrax.org : docs</TITLE>
+ <LINK REL=stylesheet TYPE="text/css" HREF="http://www.nevrax.org/inc/css/nevrax.css">
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY MARGINHEIGHT="0" MARGINWIDTH="0">
+
+<!-- uplinks -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ <TD><IMG width=6 height=14 SRC="http://www.nevrax.org/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
+ </TR>
+</TABLE>
+
+<!-- banner Nevrax -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 WIDTH=100%>
+ <TR><TD BGCOLOR="#000000" BACKGROUND="http://www.nevrax.org/inc/img/black_banner.jpg"><A HREF="http://www.nevrax.org"><IMG SRC="http://www.nevrax.org/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax" ></A></TD></TR>
+</TABLE>
+
+<!-- main table -->
+<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 height=100%>
+ <TR>
+ <TD WIDTH=16><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
+ <TD WIDTH=140 BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+ <!------ Begin Box ------>
+ <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0 cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
+ <FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td colspan=2 bgcolor=#FFFFFF>
+ <TABLE cellspacing=0 cellpadding=1 border=0>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="Rubrique news"><img width=13 height=15 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-news.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/news/" TITLE="News">News</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Rubrique mail"><img width=15 height=11 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-mail.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Rubrique docs"><img width=14 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-docs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/docs/" TITLE="Documentation">Documentation</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="Rubrique cvs"><img width=13 height=17 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-cvs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/cvs/" TITLE="CVS Web">CVS</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Rubrique bugs"><img width=20 height=16 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-bugs.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>
+ <tr><td ALIGN=middle><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="Rubrique license"><img width=18 height=12 hspace=5 border=0 src=http://www.nevrax.org/inc/img/picto-gpl.gif ALT=#></A></td><td><a class='linkbox' href="http://www.nevrax.org/GPL.php3" TITLE="License">License</a></td></tr>
+ </TABLE>
+ </TD></TR></TABLE></TD></TR></TABLE>
+ <!------ End Box ------>
+
+ </TD>
+ <TD WIDTH=15><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
+ <TD ALIGN=left valign=top><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">
+
+<!-- title -->
+<TABLE background="http://www.nevrax.org/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td>
+<A HREF="http://www.nevrax.org/docs/"><img src="http://www.nevrax.org/inc/img/t_docs.gif" ALT="Docs" HEIGHT=20 BORDER=0></A>
+</td><td><IMG SRC="http://www.nevrax.org/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
+</td></tr></table>
+&nbsp;
+
+<!-- block -->
+<TABLE bgcolor="#dddddd" CELLSPACING=0 CELLPADDING=0 BORDER=0 width=100%><tr><td width=1% valign=middle><img width=6 height=14 hspace=2 vspace=2 src="http://www.nevrax.org/inc/img/reddots.gif"></TD>
+ <TD><B>Documentation</B></TD>
+ <TD ALIGN=RIGHT>&nbsp;</td>
+</tr></table>
+<!-- Generated by Doxygen 1.2.14 -->
+<center>
+<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="namespacemembers.html">Namespace Members</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; <a class="qindex" href="globals.html">File Members</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <a class="qindexRef" doxygen="_cgi:http://www.nevrax.org/cgi-bin/nel-search.cgi" href="http://www.nevrax.org/cgi-bin/nel-search.cgi">Search</a> &nbsp; </center>
+<hr><h1>driver_opengl_states.cpp</h1><a href="driver__opengl__states_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001
+00007 <font class="comment">/* Copyright, 2001 Nevrax Ltd.</font>
+00008 <font class="comment"> *</font>
+00009 <font class="comment"> * This file is part of NEVRAX NEL.</font>
+00010 <font class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify</font>
+00011 <font class="comment"> * it under the terms of the GNU General Public License as published by</font>
+00012 <font class="comment"> * the Free Software Foundation; either version 2, or (at your option)</font>
+00013 <font class="comment"> * any later version.</font>
+00014 <font class="comment"></font>
+00015 <font class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but</font>
+00016 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font>
+00017 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font>
+00018 <font class="comment"> * General Public License for more details.</font>
+00019 <font class="comment"></font>
+00020 <font class="comment"> * You should have received a copy of the GNU General Public License</font>
+00021 <font class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the</font>
+00022 <font class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</font>
+00023 <font class="comment"> * MA 02111-1307, USA.</font>
+00024 <font class="comment"> */</font>
+00025
+00026 <font class="preprocessor">#include "<a class="code" href="stdopengl_8h.html">stdopengl.h</a>"</font>
+00027
+00028
+00029 <font class="comment">// ***************************************************************************</font>
+00030 <font class="comment">// define it For Debug purpose only. Normal use is to hide this line</font>
+00031 <font class="comment">//#define NL3D_GLSTATE_DISABLE_CACHE</font>
+00032
+00033 <font class="keyword">namespace </font>NL3D
+00034 {
+00035
+00036 <font class="comment">// ***************************************************************************</font>
+<a name="l00037"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#a0">00037</a> CDriverGLStates::CDriverGLStates()
+00038 {
+00039 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o15">_TextureCubeMapSupported</a>= <font class="keyword">false</font>;
+00040 }
+00041
+00042
+00043 <font class="comment">// ***************************************************************************</font>
+<a name="l00044"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#a1">00044</a> <font class="keywordtype">void</font> CDriverGLStates::init(<font class="keywordtype">bool</font> supportTextureCubeMap)
+00045 {
+00046 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o15">_TextureCubeMapSupported</a>= supportTextureCubeMap;
+00047
+00048 <font class="comment">// By default all arrays are disabled.</font>
+00049 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o18">_VertexArrayEnabled</a>= <font class="keyword">false</font>;
+00050 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o19">_NormalArrayEnabled</a>= <font class="keyword">false</font>;
+00051 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o20">_WeightArrayEnabled</a>= <font class="keyword">false</font>;
+00052 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o21">_ColorArrayEnabled</a>= <font class="keyword">false</font>;
+00053 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o22">_SecondaryColorArrayEnabled</a>= <font class="keyword">false</font>;
+00054 uint i;
+00055 <font class="keywordflow">for</font>(i=0; i&lt;<a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a>; i++)
+00056 {
+00057 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o24">_TexCoordArrayEnabled</a>[i]= <font class="keyword">false</font>;
+00058 }
+00059 <font class="keywordflow">for</font>(i=0; i&lt;CVertexBuffer::NumValue; i++)
+00060 {
+00061 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o25">_VertexAttribArrayEnabled</a>[i]= <font class="keyword">false</font>;
+00062 }
+00063 }
+00064
+00065
+00066 <font class="comment">// ***************************************************************************</font>
+<a name="l00067"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#a2">00067</a> <font class="keywordtype">void</font> CDriverGLStates::forceDefaults(uint nbStages)
+00068 {
+00069 <font class="comment">// Enable / disable.</font>
+00070 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o0">_CurBlend</a>= <font class="keyword">false</font>;
+00071 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o1">_CurCullFace</a>= <font class="keyword">true</font>;
+00072 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o2">_CurAlphaTest</a>= <font class="keyword">false</font>;
+00073 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o3">_CurLighting</a>= <font class="keyword">false</font>;
+00074 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o4">_CurZWrite</a>= <font class="keyword">true</font>;
+00075 <font class="comment">// setup GLStates.</font>
+00076 glDisable(GL_BLEND);
+00077 glEnable(GL_CULL_FACE);
+00078 glDisable(GL_ALPHA_TEST);
+00079 glDisable(GL_LIGHTING);
+00080 glDepthMask(GL_TRUE);
+00081
+00082 <font class="comment">// Func.</font>
+00083 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o5">_CurBlendSrc</a>= GL_SRC_ALPHA;
+00084 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o6">_CurBlendDst</a>= GL_ONE_MINUS_SRC_ALPHA;
+00085 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o7">_CurDepthFunc</a>= GL_LEQUAL;
+00086 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o8">_CurAlphaTestThreshold</a>= 0.5f;
+00087 <font class="comment">// setup GLStates.</font>
+00088 glBlendFunc(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o5">_CurBlendSrc</a>, <a class="code" href="classNL3D_1_1CDriverGLStates.html#o6">_CurBlendDst</a>);
+00089 glDepthFunc(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o7">_CurDepthFunc</a>);
+00090 glAlphaFunc(GL_GREATER, <a class="code" href="classNL3D_1_1CDriverGLStates.html#o8">_CurAlphaTestThreshold</a>);
+00091
+00092 <font class="comment">// Materials.</font>
+00093 uint32 packedOne= (CRGBA(255,255,255,255)).getPacked();
+00094 uint32 packedZero= (CRGBA(0,0,0,255)).getPacked();
+00095 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o9">_CurEmissive</a>= packedZero;
+00096 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o10">_CurAmbient</a>= packedOne;
+00097 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o11">_CurDiffuse</a>= packedOne;
+00098 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o12">_CurSpecular</a>= packedZero;
+00099 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o13">_CurShininess</a>= 1;
+00100
+00101 <font class="comment">// Lighted vertex color</font>
+00102 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o14">_VertexColorLighted</a>=<font class="keyword">false</font>;
+00103 glDisable(GL_COLOR_MATERIAL);
+00104
+00105 <font class="comment">// setup GLStates.</font>
+00106 <font class="keyword">static</font> <font class="keyword">const</font> GLfloat one[4]= {1,1,1,1};
+00107 <font class="keyword">static</font> <font class="keyword">const</font> GLfloat zero[4]= {0,0,0,1};
+00108 glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, zero);
+00109 glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, one);
+00110 glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, one);
+00111 glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, zero);
+00112 glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, <a class="code" href="classNL3D_1_1CDriverGLStates.html#o13">_CurShininess</a>);
+00113
+00114
+00115 <font class="comment">// TexModes</font>
+00116 uint stage;
+00117 <font class="keywordflow">for</font>(stage=0;stage&lt;nbStages; stage++)
+00118 {
+00119 <font class="comment">// disable texturing.</font>
+00120 <a class="code" href="driver__opengl__extension_8h.html#a0">nglActiveTextureARB</a>(GL_TEXTURE0_ARB+stage);
+00121 glDisable(GL_TEXTURE_2D);
+00122 <font class="keywordflow">if</font>(_TextureCubeMapSupported)
+00123 glDisable(GL_TEXTURE_CUBE_MAP_ARB);
+00124 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o17">_TextureMode</a>[stage]= <a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_0s0">TextureDisabled</a>;
+00125
+00126 <font class="comment">// Tex gen init</font>
+00127 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o26">_TexGen</a>[stage] = <font class="keyword">false</font>;
+00128 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o27">_TexGenMode</a>[stage] = GL_SPHERE_MAP;
+00129 glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+00130 glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+00131 glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+00132 glDisable( GL_TEXTURE_GEN_S );
+00133 glDisable( GL_TEXTURE_GEN_T );
+00134 glDisable( GL_TEXTURE_GEN_R );
+00135 }
+00136
+00137 <font class="comment">// ActiveTexture current texture to 0.</font>
+00138 <a class="code" href="driver__opengl__extension_8h.html#a0">nglActiveTextureARB</a>(GL_TEXTURE0_ARB);
+00139 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o16">_CurrentActiveTextureARB</a>= 0;
+00140 <a class="code" href="driver__opengl__extension_8h.html#a1">nglClientActiveTextureARB</a>(GL_TEXTURE0_ARB);
+00141 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o23">_CurrentClientActiveTextureARB</a>= 0;
+00142
+00143 <font class="comment">// Depth range</font>
+00144 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o28">_CurZRangeDelta</a> = 0;
+00145 glDepthRange (0, 1);
+00146 }
+00147
+00148
+00149
+00150 <font class="comment">// ***************************************************************************</font>
+<a name="l00151"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z419_0">00151</a> <font class="keywordtype">void</font> CDriverGLStates::enableBlend(uint enable)
+00152 {
+00153 <font class="comment">// If different from current setup, update.</font>
+00154 <font class="keywordtype">bool</font> enabled= (enable!=0);
+00155 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00156 <font class="preprocessor"></font> <font class="keywordflow">if</font>( enabled != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o0">_CurBlend</a> )
+00157 <font class="preprocessor">#endif</font>
+00158 <font class="preprocessor"></font> {
+00159 <font class="comment">// new state.</font>
+00160 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o0">_CurBlend</a>= enabled;
+00161 <font class="comment">// Setup GLState.</font>
+00162 <font class="keywordflow">if</font>(_CurBlend)
+00163 glEnable(GL_BLEND);
+00164 <font class="keywordflow">else</font>
+00165 glDisable(GL_BLEND);
+00166 }
+00167 }
+00168
+00169 <font class="comment">// ***************************************************************************</font>
+<a name="l00170"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z419_1">00170</a> <font class="keywordtype">void</font> CDriverGLStates::enableCullFace(uint enable)
+00171 {
+00172 <font class="comment">// If different from current setup, update.</font>
+00173 <font class="keywordtype">bool</font> enabled= (enable!=0);
+00174 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00175 <font class="preprocessor"></font> <font class="keywordflow">if</font>( enabled != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o1">_CurCullFace</a> )
+00176 <font class="preprocessor">#endif</font>
+00177 <font class="preprocessor"></font> {
+00178 <font class="comment">// new state.</font>
+00179 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o1">_CurCullFace</a>= enabled;
+00180 <font class="comment">// Setup GLState.</font>
+00181 <font class="keywordflow">if</font>(_CurCullFace)
+00182 glEnable(GL_CULL_FACE);
+00183 <font class="keywordflow">else</font>
+00184 glDisable(GL_CULL_FACE);
+00185 }
+00186 }
+00187
+00188 <font class="comment">// ***************************************************************************</font>
+<a name="l00189"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z419_2">00189</a> <font class="keywordtype">void</font> CDriverGLStates::enableAlphaTest(uint enable)
+00190 {
+00191 <font class="comment">// If different from current setup, update.</font>
+00192 <font class="keywordtype">bool</font> enabled= (enable!=0);
+00193 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00194 <font class="preprocessor"></font> <font class="keywordflow">if</font>( enabled != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o2">_CurAlphaTest</a> )
+00195 <font class="preprocessor">#endif</font>
+00196 <font class="preprocessor"></font> {
+00197 <font class="comment">// new state.</font>
+00198 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o2">_CurAlphaTest</a>= enabled;
+00199
+00200 <font class="comment">// Setup GLState.</font>
+00201 <font class="keywordflow">if</font>(_CurAlphaTest)
+00202 {
+00203 glEnable(GL_ALPHA_TEST);
+00204 }
+00205 <font class="keywordflow">else</font>
+00206 {
+00207 glDisable(GL_ALPHA_TEST);
+00208 }
+00209 }
+00210 }
+00211
+00212 <font class="comment">// ***************************************************************************</font>
+<a name="l00213"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z419_3">00213</a> <font class="keywordtype">void</font> CDriverGLStates::enableLighting(uint enable)
+00214 {
+00215 <font class="comment">// If different from current setup, update.</font>
+00216 <font class="keywordtype">bool</font> enabled= (enable!=0);
+00217 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00218 <font class="preprocessor"></font> <font class="keywordflow">if</font>( enabled != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o3">_CurLighting</a> )
+00219 <font class="preprocessor">#endif</font>
+00220 <font class="preprocessor"></font> {
+00221 <font class="comment">// new state.</font>
+00222 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o3">_CurLighting</a>= enabled;
+00223 <font class="comment">// Setup GLState.</font>
+00224 <font class="keywordflow">if</font>(_CurLighting)
+00225 glEnable(GL_LIGHTING);
+00226 <font class="keywordflow">else</font>
+00227 glDisable(GL_LIGHTING);
+00228 }
+00229 }
+00230
+00231 <font class="comment">// ***************************************************************************</font>
+<a name="l00232"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z419_4">00232</a> <font class="keywordtype">void</font> CDriverGLStates::enableZWrite(uint enable)
+00233 {
+00234 <font class="comment">// If different from current setup, update.</font>
+00235 <font class="keywordtype">bool</font> enabled= (enable!=0);
+00236 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00237 <font class="preprocessor"></font> <font class="keywordflow">if</font>( enabled != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o4">_CurZWrite</a> )
+00238 <font class="preprocessor">#endif</font>
+00239 <font class="preprocessor"></font> {
+00240 <font class="comment">// new state.</font>
+00241 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o4">_CurZWrite</a>= enabled;
+00242 <font class="comment">// Setup GLState.</font>
+00243 <font class="keywordflow">if</font>(_CurZWrite)
+00244 glDepthMask(GL_TRUE);
+00245 <font class="keywordflow">else</font>
+00246 glDepthMask(GL_FALSE);
+00247 }
+00248 }
+00249
+00250
+00251
+00252 <font class="comment">// ***************************************************************************</font>
+<a name="l00253"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#a3">00253</a> <font class="keywordtype">void</font> CDriverGLStates::blendFunc(GLenum <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>, GLenum dst)
+00254 {
+00255 <font class="comment">// If different from current setup, update.</font>
+00256 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00257 <font class="preprocessor"></font> <font class="keywordflow">if</font>( <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>!= <a class="code" href="classNL3D_1_1CDriverGLStates.html#o5">_CurBlendSrc</a> || dst!=<a class="code" href="classNL3D_1_1CDriverGLStates.html#o6">_CurBlendDst</a> )
+00258 <font class="preprocessor">#endif</font>
+00259 <font class="preprocessor"></font> {
+00260 <font class="comment">// new state.</font>
+00261 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o5">_CurBlendSrc</a>= <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>;
+00262 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o6">_CurBlendDst</a>= dst;
+00263 <font class="comment">// Setup GLState.</font>
+00264 glBlendFunc(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o5">_CurBlendSrc</a>, <a class="code" href="classNL3D_1_1CDriverGLStates.html#o6">_CurBlendDst</a>);
+00265 }
+00266 }
+00267
+00268 <font class="comment">// ***************************************************************************</font>
+<a name="l00269"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#a4">00269</a> <font class="keywordtype">void</font> CDriverGLStates::depthFunc(GLenum zcomp)
+00270 {
+00271 <font class="comment">// If different from current setup, update.</font>
+00272 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00273 <font class="preprocessor"></font> <font class="keywordflow">if</font>( zcomp != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o7">_CurDepthFunc</a> )
+00274 <font class="preprocessor">#endif</font>
+00275 <font class="preprocessor"></font> {
+00276 <font class="comment">// new state.</font>
+00277 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o7">_CurDepthFunc</a>= zcomp;
+00278 <font class="comment">// Setup GLState.</font>
+00279 glDepthFunc(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o7">_CurDepthFunc</a>);
+00280 }
+00281 }
+00282
+00283
+00284 <font class="comment">// ***************************************************************************</font>
+<a name="l00285"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#a5">00285</a> <font class="keywordtype">void</font> CDriverGLStates::alphaFunc(<font class="keywordtype">float</font> threshold)
+00286 {
+00287 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00288 <font class="preprocessor"></font> <font class="keywordflow">if</font>(threshold != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o8">_CurAlphaTestThreshold</a>)
+00289 <font class="preprocessor">#endif</font>
+00290 <font class="preprocessor"></font> {
+00291 <font class="comment">// new state</font>
+00292 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o8">_CurAlphaTestThreshold</a>= threshold;
+00293 <font class="comment">// setup function.</font>
+00294 glAlphaFunc(GL_GREATER, <a class="code" href="classNL3D_1_1CDriverGLStates.html#o8">_CurAlphaTestThreshold</a>);
+00295 }
+00296 }
+00297
+00298
+00299 <font class="comment">// ***************************************************************************</font>
+<a name="l00300"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_0">00300</a> <font class="keywordtype">void</font> CDriverGLStates::setEmissive(uint32 packedColor, <font class="keyword">const</font> GLfloat color[4])
+00301 {
+00302 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00303 <font class="preprocessor"></font> <font class="keywordflow">if</font>( packedColor!=<a class="code" href="classNL3D_1_1CDriverGLStates.html#o9">_CurEmissive</a> )
+00304 <font class="preprocessor">#endif</font>
+00305 <font class="preprocessor"></font> {
+00306 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o9">_CurEmissive</a>= packedColor;
+00307 glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, color);
+00308 }
+00309 }
+00310
+00311 <font class="comment">// ***************************************************************************</font>
+<a name="l00312"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_1">00312</a> <font class="keywordtype">void</font> CDriverGLStates::setAmbient(uint32 packedColor, <font class="keyword">const</font> GLfloat color[4])
+00313 {
+00314 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00315 <font class="preprocessor"></font> <font class="keywordflow">if</font>( packedColor!=<a class="code" href="classNL3D_1_1CDriverGLStates.html#o10">_CurAmbient</a> )
+00316 <font class="preprocessor">#endif</font>
+00317 <font class="preprocessor"></font> {
+00318 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o10">_CurAmbient</a>= packedColor;
+00319 glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, color);
+00320 }
+00321 }
+00322
+00323 <font class="comment">// ***************************************************************************</font>
+<a name="l00324"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_2">00324</a> <font class="keywordtype">void</font> CDriverGLStates::setDiffuse(uint32 packedColor, <font class="keyword">const</font> GLfloat color[4])
+00325 {
+00326 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00327 <font class="preprocessor"></font> <font class="keywordflow">if</font>( packedColor!=<a class="code" href="classNL3D_1_1CDriverGLStates.html#o11">_CurDiffuse</a> )
+00328 <font class="preprocessor">#endif</font>
+00329 <font class="preprocessor"></font> {
+00330 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o11">_CurDiffuse</a>= packedColor;
+00331 glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, color);
+00332 }
+00333 }
+00334
+00335 <font class="comment">// ***************************************************************************</font>
+<a name="l00336"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_3">00336</a> <font class="keywordtype">void</font> CDriverGLStates::setSpecular(uint32 packedColor, <font class="keyword">const</font> GLfloat color[4])
+00337 {
+00338 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00339 <font class="preprocessor"></font> <font class="keywordflow">if</font>( packedColor!=<a class="code" href="classNL3D_1_1CDriverGLStates.html#o12">_CurSpecular</a> )
+00340 <font class="preprocessor">#endif</font>
+00341 <font class="preprocessor"></font> {
+00342 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o12">_CurSpecular</a>= packedColor;
+00343 glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
+00344 }
+00345 }
+00346
+00347 <font class="comment">// ***************************************************************************</font>
+<a name="l00348"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_4">00348</a> <font class="keywordtype">void</font> CDriverGLStates::setShininess(<font class="keywordtype">float</font> shin)
+00349 {
+00350 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00351 <font class="preprocessor"></font> <font class="keywordflow">if</font>( shin != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o13">_CurShininess</a> )
+00352 <font class="preprocessor">#endif</font>
+00353 <font class="preprocessor"></font> {
+00354 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o13">_CurShininess</a>= shin;
+00355 glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shin);
+00356 }
+00357 }
+00358
+00359
+00360 <font class="comment">// ***************************************************************************</font>
+00361 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="namespaceNL3D.html#a345">convColor</a>(CRGBA col, GLfloat glcol[4])
+00362 {
+00363 <font class="keyword">static</font> <font class="keyword">const</font> <font class="keywordtype">float</font> OO255= 1.0f/255;
+00364 glcol[0]= col.R*OO255;
+00365 glcol[1]= col.G*OO255;
+00366 glcol[2]= col.B*OO255;
+00367 glcol[3]= col.A*OO255;
+00368 }
+00369
+00370 <font class="comment">// ***************************************************************************</font>
+<a name="l00371"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_5">00371</a> <font class="keywordtype">void</font> CDriverGLStates::setVertexColorLighted(<font class="keywordtype">bool</font> enable)
+00372 {
+00373 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00374 <font class="preprocessor"></font> <font class="keywordflow">if</font>( enable != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o14">_VertexColorLighted</a>)
+00375 <font class="preprocessor">#endif</font>
+00376 <font class="preprocessor"></font> {
+00377 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o14">_VertexColorLighted</a>= enable;
+00378
+00379 <font class="keywordflow">if</font> (_VertexColorLighted)
+00380 {
+00381 glEnable (GL_COLOR_MATERIAL);
+00382 glColorMaterial (GL_FRONT_AND_BACK, GL_DIFFUSE);
+00383 }
+00384 <font class="keywordflow">else</font>
+00385 {
+00386 glDisable (GL_COLOR_MATERIAL);
+00387 <font class="comment">// Since we leave glColorMaterial mode, GL diffuse is now scracth. reset him to current value.</font>
+00388 CRGBA diffCol;
+00389 diffCol.R= (uint8)((<a class="code" href="classNL3D_1_1CDriverGLStates.html#o11">_CurDiffuse</a> &gt;&gt; 24) &amp; 255);
+00390 diffCol.G= (uint8)((<a class="code" href="classNL3D_1_1CDriverGLStates.html#o11">_CurDiffuse</a> &gt;&gt; 16) &amp; 255);
+00391 diffCol.B= (uint8)((<a class="code" href="classNL3D_1_1CDriverGLStates.html#o11">_CurDiffuse</a> &gt;&gt; 8) &amp; 255);
+00392 diffCol.A= (uint8)((_CurDiffuse ) &amp; 255);
+00393 GLfloat glColor[4];
+00394 <a class="code" href="namespaceNL3D.html#a345">convColor</a>(diffCol, glColor);
+00395 glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, glColor);
+00396 }
+00397 }
+00398 }
+00399
+00400 <font class="comment">// ***************************************************************************</font>
+<a name="l00401"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_6">00401</a> <font class="keywordtype">void</font> CDriverGLStates::setDepthRange (<font class="keywordtype">float</font> zDelta)
+00402 {
+00403 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00404 <font class="preprocessor"></font> <font class="keywordflow">if</font> (zDelta != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o28">_CurZRangeDelta</a>)
+00405 <font class="preprocessor">#endif</font>
+00406 <font class="preprocessor"></font> {
+00407 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o28">_CurZRangeDelta</a> = zDelta;
+00408
+00409 <font class="comment">// Setup the range</font>
+00410 glDepthRange (zDelta, 1+zDelta);
+00411 }
+00412 }
+00413
+00414 <font class="comment">// ***************************************************************************</font>
+<a name="l00415"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_7">00415</a> <font class="keywordtype">void</font> CDriverGLStates::enableTexGen (uint stage, <font class="keywordtype">bool</font> enable)
+00416 {
+00417 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00418 <font class="preprocessor"></font> <font class="keywordflow">if</font> (enable != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o26">_TexGen</a>[stage])
+00419 <font class="preprocessor">#endif</font>
+00420 <font class="preprocessor"></font> {
+00421 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o26">_TexGen</a>[stage] = enable;
+00422
+00423 <font class="comment">// Enable the tex gen</font>
+00424 <font class="keywordflow">if</font> (<a class="code" href="classNL3D_1_1CDriverGLStates.html#o26">_TexGen</a>[stage])
+00425 {
+00426 glEnable( GL_TEXTURE_GEN_S );
+00427 glEnable( GL_TEXTURE_GEN_T );
+00428 glEnable( GL_TEXTURE_GEN_R );
+00429 }
+00430 <font class="keywordflow">else</font>
+00431 {
+00432 glDisable( GL_TEXTURE_GEN_S );
+00433 glDisable( GL_TEXTURE_GEN_T );
+00434 glDisable( GL_TEXTURE_GEN_R );
+00435 }
+00436 }
+00437 }
+00438
+00439 <font class="comment">// ***************************************************************************</font>
+<a name="l00440"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z420_8">00440</a> <font class="keywordtype">void</font> CDriverGLStates::setTexGenMode (uint stage, GLint mode)
+00441 {
+00442 <font class="preprocessor">#ifndef NL3D_GLSTATE_DISABLE_CACHE</font>
+00443 <font class="preprocessor"></font> <font class="keywordflow">if</font> (mode != <a class="code" href="classNL3D_1_1CDriverGLStates.html#o27">_TexGenMode</a>[stage])
+00444 <font class="preprocessor">#endif</font>
+00445 <font class="preprocessor"></font> {
+00446 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o27">_TexGenMode</a>[stage] = mode;
+00447
+00448 glTexGeni( GL_S, GL_TEXTURE_GEN_MODE, mode);
+00449 glTexGeni( GL_T, GL_TEXTURE_GEN_MODE, mode);
+00450 glTexGeni( GL_R, GL_TEXTURE_GEN_MODE, mode);
+00451 }
+00452 }
+00453
+00454
+00455
+00456
+00457 <font class="comment">// ***************************************************************************</font>
+<a name="l00458"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_5">00458</a> <font class="keywordtype">void</font> CDriverGLStates::resetTextureMode()
+00459 {
+00460 glDisable(GL_TEXTURE_2D);
+00461 <font class="keywordflow">if</font> (_TextureCubeMapSupported)
+00462 {
+00463 glDisable(GL_TEXTURE_CUBE_MAP_ARB);
+00464 }
+00465 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o17">_TextureMode</a>[<a class="code" href="classNL3D_1_1CDriverGLStates.html#o16">_CurrentActiveTextureARB</a>]= <a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_0s0">TextureDisabled</a>;
+00466 }
+00467
+00468
+00469 <font class="comment">// ***************************************************************************</font>
+<a name="l00470"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_4">00470</a> <font class="keywordtype">void</font> CDriverGLStates::setTextureMode(TTextureMode texMode)
+00471 {
+00472 <a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_0">TTextureMode</a> oldTexMode = <a class="code" href="classNL3D_1_1CDriverGLStates.html#o17">_TextureMode</a>[<a class="code" href="classNL3D_1_1CDriverGLStates.html#o16">_CurrentActiveTextureARB</a>];
+00473 <font class="keywordflow">if</font>(oldTexMode != texMode)
+00474 {
+00475 <font class="comment">// Disable first old mode.</font>
+00476 <font class="keywordflow">if</font>(oldTexMode == <a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_0s1">Texture2D</a>)
+00477 glDisable(GL_TEXTURE_2D);
+00478 <font class="keywordflow">else</font> <font class="keywordflow">if</font>(oldTexMode == <a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_0s2">TextureCubeMap</a>)
+00479 {
+00480 <font class="keywordflow">if</font>(_TextureCubeMapSupported)
+00481 glDisable(GL_TEXTURE_CUBE_MAP_ARB);
+00482 <font class="keywordflow">else</font>
+00483 glDisable(GL_TEXTURE_2D);
+00484 }
+00485
+00486 <font class="comment">// Enable new mode.</font>
+00487 <font class="keywordflow">if</font>(texMode == <a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_0s1">Texture2D</a>)
+00488 glEnable(GL_TEXTURE_2D);
+00489 <font class="keywordflow">else</font> <font class="keywordflow">if</font>(texMode == <a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_0s2">TextureCubeMap</a>)
+00490 {
+00491 <font class="keywordflow">if</font>(_TextureCubeMapSupported)
+00492 glEnable(GL_TEXTURE_CUBE_MAP_ARB);
+00493 <font class="keywordflow">else</font>
+00494 glDisable(GL_TEXTURE_2D);
+00495 }
+00496
+00497 <font class="comment">// new mode.</font>
+00498 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o17">_TextureMode</a>[<a class="code" href="classNL3D_1_1CDriverGLStates.html#o16">_CurrentActiveTextureARB</a>]= texMode;
+00499 }
+00500 }
+00501
+00502
+00503 <font class="comment">// ***************************************************************************</font>
+<a name="l00504"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_1">00504</a> <font class="keywordtype">void</font> CDriverGLStates::activeTextureARB(uint stage)
+00505 {
+00506 <font class="keywordflow">if</font>( <a class="code" href="classNL3D_1_1CDriverGLStates.html#o16">_CurrentActiveTextureARB</a> != stage )
+00507 {
+00508 <a class="code" href="driver__opengl__extension_8h.html#a0">nglActiveTextureARB</a>(GL_TEXTURE0_ARB+stage);
+00509 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o16">_CurrentActiveTextureARB</a>= stage;
+00510 }
+00511 }
+00512
+00513 <font class="comment">// ***************************************************************************</font>
+<a name="l00514"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z421_2">00514</a> <font class="keywordtype">void</font> CDriverGLStates::forceActiveTextureARB(uint stage)
+00515 {
+00516 <a class="code" href="driver__opengl__extension_8h.html#a0">nglActiveTextureARB</a>(GL_TEXTURE0_ARB+stage);
+00517 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o16">_CurrentActiveTextureARB</a>= stage;
+00518 }
+00519
+00520
+00521 <font class="comment">// ***************************************************************************</font>
+<a name="l00522"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_0">00522</a> <font class="keywordtype">void</font> CDriverGLStates::enableVertexArray(<font class="keywordtype">bool</font> enable)
+00523 {
+00524 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o18">_VertexArrayEnabled</a> != enable)
+00525 {
+00526 <font class="keywordflow">if</font>(enable)
+00527 glEnableClientState(GL_VERTEX_ARRAY);
+00528 <font class="keywordflow">else</font>
+00529 glDisableClientState(GL_VERTEX_ARRAY);
+00530 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o18">_VertexArrayEnabled</a>= enable;
+00531 }
+00532 }
+00533 <font class="comment">// ***************************************************************************</font>
+<a name="l00534"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_1">00534</a> <font class="keywordtype">void</font> CDriverGLStates::enableNormalArray(<font class="keywordtype">bool</font> enable)
+00535 {
+00536 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o19">_NormalArrayEnabled</a> != enable)
+00537 {
+00538 <font class="keywordflow">if</font>(enable)
+00539 glEnableClientState(GL_NORMAL_ARRAY);
+00540 <font class="keywordflow">else</font>
+00541 glDisableClientState(GL_NORMAL_ARRAY);
+00542 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o19">_NormalArrayEnabled</a>= enable;
+00543 }
+00544 }
+00545 <font class="comment">// ***************************************************************************</font>
+<a name="l00546"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_2">00546</a> <font class="keywordtype">void</font> CDriverGLStates::enableWeightArray(<font class="keywordtype">bool</font> enable)
+00547 {
+00548 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o20">_WeightArrayEnabled</a> != enable)
+00549 {
+00550 <font class="keywordflow">if</font>(enable)
+00551 glEnableClientState(GL_VERTEX_WEIGHTING_EXT);
+00552 <font class="keywordflow">else</font>
+00553 glDisableClientState(GL_VERTEX_WEIGHTING_EXT);
+00554 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o20">_WeightArrayEnabled</a>= enable;
+00555 }
+00556 }
+00557 <font class="comment">// ***************************************************************************</font>
+<a name="l00558"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_3">00558</a> <font class="keywordtype">void</font> CDriverGLStates::enableColorArray(<font class="keywordtype">bool</font> enable)
+00559 {
+00560 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o21">_ColorArrayEnabled</a> != enable)
+00561 {
+00562 <font class="keywordflow">if</font>(enable)
+00563 glEnableClientState(GL_COLOR_ARRAY);
+00564 <font class="keywordflow">else</font>
+00565 glDisableClientState(GL_COLOR_ARRAY);
+00566 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o21">_ColorArrayEnabled</a>= enable;
+00567 }
+00568 }
+00569
+00570
+00571 <font class="comment">// ***************************************************************************</font>
+<a name="l00572"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_4">00572</a> <font class="keywordtype">void</font> CDriverGLStates::enableSecondaryColorArray(<font class="keywordtype">bool</font> enable)
+00573 {
+00574 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o22">_SecondaryColorArrayEnabled</a> != enable)
+00575 {
+00576 <font class="keywordflow">if</font>(enable)
+00577 glEnableClientState(GL_SECONDARY_COLOR_ARRAY_EXT);
+00578 <font class="keywordflow">else</font>
+00579 glDisableClientState(GL_SECONDARY_COLOR_ARRAY_EXT);
+00580 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o22">_SecondaryColorArrayEnabled</a>= enable;
+00581 }
+00582 }
+00583
+00584 <font class="comment">// ***************************************************************************</font>
+<a name="l00585"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_5">00585</a> <font class="keywordtype">void</font> CDriverGLStates::clientActiveTextureARB(uint stage)
+00586 {
+00587 <font class="keywordflow">if</font>( <a class="code" href="classNL3D_1_1CDriverGLStates.html#o23">_CurrentClientActiveTextureARB</a> != stage )
+00588 {
+00589 <a class="code" href="driver__opengl__extension_8h.html#a1">nglClientActiveTextureARB</a>(GL_TEXTURE0_ARB+stage);
+00590 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o23">_CurrentClientActiveTextureARB</a>= stage;
+00591 }
+00592 }
+00593
+00594 <font class="comment">// ***************************************************************************</font>
+<a name="l00595"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_6">00595</a> <font class="keywordtype">void</font> CDriverGLStates::enableTexCoordArray(<font class="keywordtype">bool</font> enable)
+00596 {
+00597 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o24">_TexCoordArrayEnabled</a>[<a class="code" href="classNL3D_1_1CDriverGLStates.html#o23">_CurrentClientActiveTextureARB</a>] != enable)
+00598 {
+00599 <font class="keywordflow">if</font>(enable)
+00600 glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+00601 <font class="keywordflow">else</font>
+00602 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+00603 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o24">_TexCoordArrayEnabled</a>[<a class="code" href="classNL3D_1_1CDriverGLStates.html#o23">_CurrentClientActiveTextureARB</a>]= enable;
+00604 }
+00605 }
+00606
+00607 <font class="comment">// ***************************************************************************</font>
+<a name="l00608"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_7">00608</a> <font class="keywordtype">void</font> CDriverGLStates::enableVertexAttribArray(uint glIndex, <font class="keywordtype">bool</font> enable)
+00609 {
+00610 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o25">_VertexAttribArrayEnabled</a>[glIndex] != enable)
+00611 {
+00612 <font class="keywordflow">if</font>(enable)
+00613 glEnableClientState(glIndex+<a class="code" href="driver__opengl__extension__def_8h.html#a36">GL_VERTEX_ATTRIB_ARRAY0_NV</a>);
+00614 <font class="keywordflow">else</font>
+00615 glDisableClientState(glIndex+<a class="code" href="driver__opengl__extension__def_8h.html#a36">GL_VERTEX_ATTRIB_ARRAY0_NV</a>);
+00616 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o25">_VertexAttribArrayEnabled</a>[glIndex]= enable;
+00617 }
+00618 }
+00619
+00620
+00621 <font class="comment">// ***************************************************************************</font>
+<a name="l00622"></a><a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_8">00622</a> <font class="keywordtype">void</font> CDriverGLStates::enableVertexAttribArrayForEXTVertexShader(uint glIndex, <font class="keywordtype">bool</font> enable, uint *variants)
+00623 {
+00624 <font class="keywordflow">if</font>(<a class="code" href="classNL3D_1_1CDriverGLStates.html#o25">_VertexAttribArrayEnabled</a>[glIndex] != enable)
+00625 {
+00626 <font class="keywordflow">switch</font>(glIndex)
+00627 {
+00628 <font class="keywordflow">case</font> 0: <font class="comment">// position </font>
+00629 <a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_0">enableVertexArray</a>(enable);
+00630 <font class="keywordflow">break</font>;
+00631 <font class="keywordflow">case</font> 1: <font class="comment">// skin weight</font>
+00632 <font class="keywordflow">if</font>(enable)
+00633 <a class="code" href="driver__opengl__extension_8h.html#a132">nglEnableVariantClientStateEXT</a>(variants[CDriverGL::EVSSkinWeightVariant]);
+00634 <font class="keywordflow">else</font>
+00635 <a class="code" href="driver__opengl__extension_8h.html#a133">nglDisableVariantClientStateEXT</a>(variants[CDriverGL::EVSSkinWeightVariant]);
+00636 <font class="keywordflow">break</font>;
+00637 <font class="keywordflow">case</font> 2: <font class="comment">// normal</font>
+00638 <a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_1">enableNormalArray</a>(enable);
+00639 <font class="keywordflow">break</font>;
+00640 <font class="keywordflow">case</font> 3: <font class="comment">// color</font>
+00641 <a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_3">enableColorArray</a>(enable);
+00642 <font class="keywordflow">break</font>;
+00643 <font class="keywordflow">case</font> 4: <font class="comment">// secondary color</font>
+00644 <font class="keywordflow">if</font>(enable)
+00645 <a class="code" href="driver__opengl__extension_8h.html#a132">nglEnableVariantClientStateEXT</a>(variants[CDriverGL::EVSSecondaryColorVariant]);
+00646 <font class="keywordflow">else</font>
+00647 <a class="code" href="driver__opengl__extension_8h.html#a133">nglDisableVariantClientStateEXT</a>(variants[CDriverGL::EVSSecondaryColorVariant]);
+00648 <font class="keywordflow">break</font>;
+00649 <font class="keywordflow">case</font> 5: <font class="comment">// fog coordinate</font>
+00650 <font class="keywordflow">if</font>(enable)
+00651 <a class="code" href="driver__opengl__extension_8h.html#a132">nglEnableVariantClientStateEXT</a>(variants[CDriverGL::EVSFogCoordsVariant]);
+00652 <font class="keywordflow">else</font>
+00653 <a class="code" href="driver__opengl__extension_8h.html#a133">nglDisableVariantClientStateEXT</a>(variants[CDriverGL::EVSFogCoordsVariant]);
+00654 <font class="keywordflow">break</font>;
+00655 <font class="keywordflow">case</font> 6: <font class="comment">// palette skin</font>
+00656 <font class="keywordflow">if</font>(enable)
+00657 <a class="code" href="driver__opengl__extension_8h.html#a132">nglEnableVariantClientStateEXT</a>(variants[CDriverGL::EVSPaletteSkinVariant]);
+00658 <font class="keywordflow">else</font>
+00659 <a class="code" href="driver__opengl__extension_8h.html#a133">nglDisableVariantClientStateEXT</a>(variants[CDriverGL::EVSPaletteSkinVariant]);
+00660 <font class="keywordflow">break</font>;
+00661 <font class="keywordflow">case</font> 7: <font class="comment">// empty</font>
+00662 <a class="code" href="debug_8h.html#a12">nlstop</a>
+00663 <font class="keywordflow">break</font>;
+00664 <font class="keywordflow">case</font> 8:
+00665 <font class="keywordflow">case</font> 9:
+00666 <font class="keywordflow">case</font> 10:
+00667 <font class="keywordflow">case</font> 11:
+00668 <font class="keywordflow">case</font> 12:
+00669 <font class="keywordflow">case</font> 13:
+00670 <font class="keywordflow">case</font> 14:
+00671 <font class="keywordflow">case</font> 15:
+00672 <a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_5">clientActiveTextureARB</a>(glIndex - 8);
+00673 <a class="code" href="classNL3D_1_1CDriverGLStates.html#z422_6">enableTexCoordArray</a>(enable);
+00674 <font class="keywordflow">break</font>;
+00675 <font class="keywordflow">default</font>:
+00676 <a class="code" href="debug_8h.html#a12">nlstop</a>; <font class="comment">// invalid value</font>
+00677 <font class="keywordflow">break</font>;
+00678 }
+00679 <a class="code" href="classNL3D_1_1CDriverGLStates.html#o25">_VertexAttribArrayEnabled</a>[glIndex]= enable;
+00680 }
+00681 }
+00682
+00683
+00684
+00685 } <font class="comment">// NL3D</font>
+</pre></div>
+
+<!-- footer -->
+<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
+</TD>
+<TD WIDTH=15><IMG SRC=http://www.nevrax.org/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>