diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/driver_8h-source.html | 557 |
1 files changed, 557 insertions, 0 deletions
diff --git a/docs/doxygen/nel/driver_8h-source.html b/docs/doxygen/nel/driver_8h-source.html new file mode 100644 index 00000000..bb692be3 --- /dev/null +++ b/docs/doxygen/nel/driver_8h-source.html @@ -0,0 +1,557 @@ +<!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> <A CLASS=uplinks HREF=http://www.nevrax.org><b>Home</B></FONT></A> </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> <A CLASS=uplinks HREF=http://www.nevrax.com><b>nevrax.com</B></FONT></A> </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> + + +<!-- 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> </td> +</tr></table> +<!-- Generated by Doxygen 1.2.14 --> +<center> +<a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="namespacemembers.html">Namespace Members</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> <a class="qindex" href="pages.html">Related Pages</a> <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> </center> +<hr><h1>driver.h</h1><a href="driver_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 +00008 <font class="comment">/* Copyright, 2000 Nevrax Ltd.</font> +00009 <font class="comment"> *</font> +00010 <font class="comment"> * This file is part of NEVRAX NEL.</font> +00011 <font class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify</font> +00012 <font class="comment"> * it under the terms of the GNU General Public License as published by</font> +00013 <font class="comment"> * the Free Software Foundation; either version 2, or (at your option)</font> +00014 <font class="comment"> * any later version.</font> +00015 <font class="comment"></font> +00016 <font class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but</font> +00017 <font class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</font> +00018 <font class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</font> +00019 <font class="comment"> * General Public License for more details.</font> +00020 <font class="comment"></font> +00021 <font class="comment"> * You should have received a copy of the GNU General Public License</font> +00022 <font class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the</font> +00023 <font class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</font> +00024 <font class="comment"> * MA 02111-1307, USA.</font> +00025 <font class="comment"> */</font> +00026 +00027 <font class="preprocessor">#ifndef NL_DRV_H</font> +00028 <font class="preprocessor"></font><font class="preprocessor">#define NL_DRV_H</font> +00029 <font class="preprocessor"></font> +00030 <font class="preprocessor">#include "<a class="code" href="types__nl_8h.html">nel/misc/types_nl.h</a>"</font> +00031 <font class="preprocessor">#include "<a class="code" href="common_8h.html">nel/misc/common.h</a>"</font> +00032 <font class="preprocessor">#include "<a class="code" href="smart__ptr_8h.html">nel/misc/smart_ptr.h</a>"</font> +00033 <font class="preprocessor">#include "<a class="code" href="rgba_8h.html">nel/misc/rgba.h</a>"</font> +00034 <font class="preprocessor">#include "<a class="code" href="matrix_8h.html">nel/misc/matrix.h</a>"</font> +00035 <font class="preprocessor">#include "<a class="code" href="stream_8h.html">nel/misc/stream.h</a>"</font> +00036 <font class="preprocessor">#include "<a class="code" href="uv_8h.html">nel/misc/uv.h</a>"</font> +00037 <font class="preprocessor">#include "<a class="code" href="texture_8h.html">3d/texture.h</a>"</font> +00038 <font class="preprocessor">#include "<a class="code" href="shader_8h.html">3d/shader.h</a>"</font> +00039 <font class="preprocessor">#include "<a class="code" href="vertex__buffer_8h.html">3d/vertex_buffer.h</a>"</font> +00040 <font class="preprocessor">#include "<a class="code" href="vertex__buffer__hard_8h.html">3d/vertex_buffer_hard.h</a>"</font> +00041 <font class="preprocessor">#include "<a class="code" href="vertex__program_8h.html">3d/vertex_program.h</a>"</font> +00042 <font class="preprocessor">#include "<a class="code" href="material_8h.html">3d/material.h</a>"</font> +00043 <font class="preprocessor">#include "<a class="code" href="mutex_8h.html">nel/misc/mutex.h</a>"</font> +00044 <font class="preprocessor">#include "<a class="code" href="primitive__profile_8h.html">nel/3d/primitive_profile.h</a>"</font> +00045 +00046 <font class="preprocessor">#include <vector></font> +00047 <font class="preprocessor">#include <list></font> +00048 +00049 <font class="keyword">namespace </font>NLMISC +00050 { +00051 <font class="keyword">class </font>IEventEmitter; +00052 <font class="keyword">struct </font>IMouseDevice; +00053 <font class="keyword">struct </font>IKeyboardDevice; +00054 <font class="keyword">struct </font>IInputDeviceManager; +00055 <font class="keyword">class </font>CRect; +00056 }; +00057 +00058 <font class="keyword">namespace </font>NL3D +00059 { +00060 +00061 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CRefPtr.html">NLMISC::CRefPtr</a>; +00062 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CRefCount.html">NLMISC::CRefCount</a>; +00063 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CSmartPtr.html">NLMISC::CSmartPtr</a>; +00064 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a>; +00065 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a>; +00066 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a>; +00067 <font class="keyword">using</font> NLMISC::CSynchronized; +00068 +00069 +00070 <font class="keyword">class </font>CMaterial; +00071 <font class="keyword">class </font>CPrimitiveBlock; +00072 <font class="keyword">class </font>CLight; +00073 <font class="keyword">class </font>CScissor; +00074 <font class="keyword">class </font>CViewport; +00075 <font class="keyword">struct </font>CMonitorColorProperties; +00076 +00077 +00078 +00079 <font class="comment">//****************************************************************************</font> +<a name="l00081"></a><a class="code" href="classNL3D_1_1GfxMode.html">00081</a> <font class="comment">class GfxMode </font> +00082 { +00083 <font class="keyword">public</font>: +<a name="l00084"></a><a class="code" href="classNL3D_1_1GfxMode.html#m0">00084</a> <font class="keywordtype">bool</font> OffScreen; +<a name="l00085"></a><a class="code" href="classNL3D_1_1GfxMode.html#m1">00085</a> <font class="keywordtype">bool</font> Windowed; +<a name="l00086"></a><a class="code" href="classNL3D_1_1GfxMode.html#m2">00086</a> uint16 Width; +<a name="l00087"></a><a class="code" href="classNL3D_1_1GfxMode.html#m3">00087</a> uint16 Height; +<a name="l00088"></a><a class="code" href="classNL3D_1_1GfxMode.html#m4">00088</a> uint8 Depth; +00089 +<a name="l00090"></a><a class="code" href="classNL3D_1_1GfxMode.html#a0">00090</a> GfxMode(<font class="keywordtype">void</font>) +00091 { +00092 OffScreen=<font class="keyword">false</font>; +00093 Windowed=<font class="keyword">false</font>; +00094 Width=0; +00095 Height=0; +00096 Depth=0; +00097 } +00098 GfxMode(uint16 <a class="code" href="driver__opengl__extension__def_8h.html#a367">w</a>, uint16 h, uint8 d, <font class="keywordtype">bool</font> windowed= <font class="keyword">true</font>, <font class="keywordtype">bool</font> offscreen=<font class="keyword">false</font>); +00099 }; +00100 +00101 <font class="keyword">typedef</font> std::vector<GfxMode> <a class="code" href="namespaceNL3D.html#a28">ModeList</a>; +00102 +00103 +00104 <font class="comment">//****************************************************************************</font> +00105 <font class="comment">// Exceptions.</font> +<a name="l00106"></a><a class="code" href="structNL3D_1_1EBadDisplay.html">00106</a> <font class="keyword">struct </font>EBadDisplay : <font class="keyword">public</font> NLMISC::Exception +00107 { +<a name="l00108"></a><a class="code" href="structNL3D_1_1EBadDisplay.html#a0">00108</a> <a class="code" href="structNL3D_1_1EBadDisplay.html#a0">EBadDisplay</a>(<font class="keyword">const</font> std::string &reason) : <a class="code" href="classNLMISC_1_1Exception.html#a0">Exception</a>(reason) { } +00109 }; +00110 +00111 <font class="comment">//****************************************************************************</font> +00112 <font class="keyword">typedef</font> <a class="code" href="driver__opengl__extension__def_8h.html#a424">void</a> (*<a class="code" href="namespaceNL3D.html#a29">emptyProc</a>)(void); +00113 +00114 <font class="comment">//****************************************************************************</font> +00115 <font class="comment">// *** IMPORTANT ********************</font> +00116 <font class="comment">// *** IF YOU MODIFY THE STRUCTURE OF THIS CLASS, PLEASE INCREMENT IDriver::InterfaceVersion TO INVALIDATE OLD DRIVER DLL</font> +00117 <font class="comment">// **********************************</font> +00118 <font class="comment">// </font> +00119 <font class="comment">// * Driver implementation notes:</font> +00120 <font class="comment">// *</font> +00121 <font class="comment">// * Driver implementation must save monitor color parameters at initialization and restaure it at release.</font> +<a name="l00122"></a><a class="code" href="classNL3D_1_1IDriver.html">00122</a> <font class="keyword">class </font>IDriver : <font class="keyword">public</font> NLMISC::CRefCount +00123 { +00124 <font class="keyword">public</font>: +00126 <font class="keyword">static</font> <font class="keyword">const</font> uint32 <a class="code" href="classNL3D_1_1IDriver.html#p0">InterfaceVersion</a>; +00127 +00128 <font class="keyword">public</font>: +<a name="l00129"></a><a class="code" href="classNL3D_1_1IDriver.html#s41">00129</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#s41">TMessageBoxId</a> { <a class="code" href="classNL3D_1_1IDriver.html#s41s0">okId</a>=0, <a class="code" href="classNL3D_1_1IDriver.html#s41s1">yesId</a>, <a class="code" href="classNL3D_1_1IDriver.html#s41s2">noId</a>, <a class="code" href="classNL3D_1_1IDriver.html#s41s3">abortId</a>, <a class="code" href="classNL3D_1_1IDriver.html#s41s4">retryId</a>, <a class="code" href="classNL3D_1_1IDriver.html#s41s5">cancelId</a>, <a class="code" href="classNL3D_1_1IDriver.html#s41s6">ignoreId</a>, <a class="code" href="classNL3D_1_1IDriver.html#s41s7">idCount</a> }; +<a name="l00130"></a><a class="code" href="classNL3D_1_1IDriver.html#s42">00130</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#s42">TMessageBoxType</a> { <a class="code" href="classNL3D_1_1IDriver.html#s42s8">okType</a>=0, <a class="code" href="classNL3D_1_1IDriver.html#s42s9">okCancelType</a>, <a class="code" href="classNL3D_1_1IDriver.html#s42s10">yesNoType</a>, <a class="code" href="classNL3D_1_1IDriver.html#s42s11">abortRetryIgnoreType</a>, <a class="code" href="classNL3D_1_1IDriver.html#s42s12">yesNoCancelType</a>, <a class="code" href="classNL3D_1_1IDriver.html#s42s13">retryCancelType</a>, <a class="code" href="classNL3D_1_1IDriver.html#s42s14">typeCount</a> }; +<a name="l00131"></a><a class="code" href="classNL3D_1_1IDriver.html#s43">00131</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#s43">TMessageBoxIcon</a> { <a class="code" href="classNL3D_1_1IDriver.html#s43s15">noIcon</a>=0, <a class="code" href="classNL3D_1_1IDriver.html#s43s16">handIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s17">questionIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s18">exclamationIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s19">asteriskIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s20">warningIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s21">errorIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s22">informationIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s23">stopIcon</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43s24">iconCount</a> }; +00132 +<a name="l00138"></a><a class="code" href="classNL3D_1_1IDriver.html#s44">00138</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#s44">TPolygonMode</a> { <a class="code" href="classNL3D_1_1IDriver.html#s44s25">Filled</a>=0, <a class="code" href="classNL3D_1_1IDriver.html#s44s26">Line</a>, <a class="code" href="classNL3D_1_1IDriver.html#s44s27">Point</a> }; +00139 +00140 +<a name="l00146"></a><a class="code" href="classNL3D_1_1IDriver.html#s45">00146</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#s45">TMatrixCount</a> { <a class="code" href="classNL3D_1_1IDriver.html#s45s28">MaxModelMatrix</a>= 16 }; +00147 +00148 +<a name="l00153"></a><a class="code" href="classNL3D_1_1IDriver.html#s46">00153</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#s46">TVBHardType</a> { <a class="code" href="classNL3D_1_1IDriver.html#s46s29">VBHardAGP</a>=0, <a class="code" href="classNL3D_1_1IDriver.html#s46s30">VBHardVRAM</a>, <a class="code" href="classNL3D_1_1IDriver.html#s46s31">CountVBHard</a> }; +00154 +00155 +00156 <font class="keyword">protected</font>: +00157 +<a name="l00158"></a><a class="code" href="classNL3D_1_1IDriver.html#n0">00158</a> CSynchronized<TTexDrvInfoPtrMap> <a class="code" href="classNL3D_1_1IDriver.html#n0">_SyncTexDrvInfos</a>; +00159 +<a name="l00160"></a><a class="code" href="classNL3D_1_1IDriver.html#n1">00160</a> <a class="code" href="classstd_1_1list.html">TTexDrvSharePtrList</a> <a class="code" href="classNL3D_1_1IDriver.html#n1">_TexDrvShares</a>; +<a name="l00161"></a><a class="code" href="classNL3D_1_1IDriver.html#n2">00161</a> <a class="code" href="classstd_1_1list.html">TShaderPtrList</a> <a class="code" href="classNL3D_1_1IDriver.html#n2">_Shaders</a>; +<a name="l00162"></a><a class="code" href="classNL3D_1_1IDriver.html#n3">00162</a> <a class="code" href="classstd_1_1list.html">TVBDrvInfoPtrList</a> <a class="code" href="classNL3D_1_1IDriver.html#n3">_VBDrvInfos</a>; +<a name="l00163"></a><a class="code" href="classNL3D_1_1IDriver.html#n4">00163</a> <a class="code" href="classNL3D_1_1IDriver.html#s44">TPolygonMode</a> <a class="code" href="classNL3D_1_1IDriver.html#n4">_PolygonMode</a>; +<a name="l00164"></a><a class="code" href="classNL3D_1_1IDriver.html#n5">00164</a> <a class="code" href="classstd_1_1list.html">TVtxPrgDrvInfoPtrList</a> <a class="code" href="classNL3D_1_1IDriver.html#n5">_VtxPrgDrvInfos</a>; +00165 +00166 <font class="keyword">public</font>: +00167 <a class="code" href="classNL3D_1_1IDriver.html#a0">IDriver</a>(<font class="keywordtype">void</font>); +00168 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1IDriver.html#a1">~IDriver</a>(<font class="keywordtype">void</font>); +00169 +00170 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a2">init</a>(<font class="keywordtype">void</font>)=0; +00171 +00172 <font class="keyword">virtual</font> <a class="code" href="namespaceNL3D.html#a28">ModeList</a> <a class="code" href="classNL3D_1_1IDriver.html#a3">enumModes</a>()=0; +00173 +00175 +00178 <font class="comment">// @{</font> +00179 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z427_0">disableHardwareVertexProgram</a>()=0; +00180 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z427_1">disableHardwareVertexArrayAGP</a>()=0; +00181 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z427_2">disableHardwareTextureShader</a>()=0; +00182 <font class="comment">// @}</font> +00183 +00184 <font class="comment">// first param is the associated window. </font> +00185 <font class="comment">// Must be a HWND for Windows (WIN32).</font> +00186 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a4">setDisplay</a>(<font class="keywordtype">void</font>* wnd, <font class="keyword">const</font> GfxMode& mode) <font class="keywordflow">throw</font>(EBadDisplay)=0; +00187 +00188 <font class="comment">// Return is the associated window information. (Implementation dependant)</font> +00189 <font class="comment">// Must be a HWND for Windows (WIN32).</font> +00190 <font class="keyword">virtual</font> <font class="keywordtype">void</font> *<a class="code" href="classNL3D_1_1IDriver.html#a5">getDisplay</a>() =0; +00191 +00197 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a6">setMonitorColorProperties</a> (<font class="keyword">const</font> CMonitorColorProperties &properties) = 0; +00198 +00199 <font class="comment">// Return is the associated default window proc for the driver. (Implementation dependant)</font> +00200 <font class="comment">// Must be a void GlWndProc(IDriver *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) for Windows (WIN32).</font> +00201 <font class="keyword">virtual</font> <a class="code" href="namespaceNL3D.html#a29">emptyProc</a> <a class="code" href="classNL3D_1_1IDriver.html#a7">getWindowProc</a>() =0; +00202 +00204 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a8">activate</a>(<font class="keywordtype">void</font>)=0; +00205 +00207 <font class="keyword">virtual</font> sint <a class="code" href="classNL3D_1_1IDriver.html#a9">getNbTextureStages</a>() <font class="keyword">const</font> =0; +00208 +00210 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a10">isTextureExist</a>(<font class="keyword">const</font> ITexture&tex)=0; +00211 +00212 <font class="keyword">virtual</font> <a class="code" href="classNLMISC_1_1IEventEmitter.html">NLMISC::IEventEmitter</a>* <a class="code" href="classNL3D_1_1IDriver.html#a11">getEventEmitter</a>(<font class="keywordtype">void</font>)=0; +00213 +00214 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a12">clear2D</a>(CRGBA rgba)=0; +00215 +00216 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a13">clearZBuffer</a>(<font class="keywordtype">float</font> zval=1)=0; +00217 +00219 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a14">setColorMask</a> (<font class="keywordtype">bool</font> bRed, <font class="keywordtype">bool</font> bGreen, <font class="keywordtype">bool</font> bBlue, <font class="keywordtype">bool</font> bAlpha)=0; +00220 +00223 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a15">setupTexture</a>(ITexture& tex)=0; +00224 +00236 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a16">setupTextureEx</a> (ITexture& tex, <font class="keywordtype">bool</font> bUpload, <font class="keywordtype">bool</font>& bAllUploaded, +00237 <font class="keywordtype">bool</font> bMustRecreateSharedTexture= <font class="keyword">false</font>)=0; +00238 +00242 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a17">uploadTexture</a> (ITexture& tex, <a class="code" href="classNLMISC_1_1CRect.html">NLMISC::CRect</a>& rect, uint8 nNumMipMap)=0; +00243 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a18">uploadTextureCube</a> (ITexture& tex, <a class="code" href="classNLMISC_1_1CRect.html">NLMISC::CRect</a>& rect, uint8 nNumMipMap, uint8 nNumFace)=0; +00244 +00248 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a19">invalidateShareTexture</a> (ITexture &); +00249 +00253 <font class="keyword">static</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#d0">getTextureShareName</a> (<font class="keyword">const</font> ITexture& tex, std::string &output); +00254 +00259 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a20">forceDXTCCompression</a>(<font class="keywordtype">bool</font> dxtcComp)=0; +00260 +00266 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a21">forceTextureResize</a>(uint divisor)=0; +00267 +00268 +00269 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a22">setupMaterial</a>(CMaterial& mat)=0; +00270 +00271 <font class="comment">// Setup the camera mode as a perspective/ortho camera. NB: znear and zfar must be >0 (if perspective).</font> +00272 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a23">setFrustum</a>(<font class="keywordtype">float</font> left, <font class="keywordtype">float</font> right, <font class="keywordtype">float</font> bottom, <font class="keywordtype">float</font> top, <font class="keywordtype">float</font> znear, <font class="keywordtype">float</font> zfar, <font class="keywordtype">bool</font> perspective=<font class="keyword">true</font>)=0; +00273 +00278 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a24">setupViewMatrix</a>(<font class="keyword">const</font> CMatrix& mtx)=0; +00279 +00292 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a25">setupViewMatrixEx</a>(<font class="keyword">const</font> CMatrix& mtx, <font class="keyword">const</font> CVector &cameraPos)=0; +00293 +00298 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a26">setupModelMatrix</a>(<font class="keyword">const</font> CMatrix& mtx)=0; +00299 +00306 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a27">multiplyModelMatrix</a>(<font class="keyword">const</font> CMatrix& mtx)=0; +00307 +00308 +00309 <font class="keyword">virtual</font> CMatrix <a class="code" href="classNL3D_1_1IDriver.html#a28">getViewMatrix</a>(<font class="keywordtype">void</font>)<font class="keyword">const</font>=0; +00310 +00311 +00316 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a29">forceNormalize</a>(<font class="keywordtype">bool</font> normalize)=0; +00317 +00318 +00321 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a30">isForceNormalize</a>() <font class="keyword">const</font> =0; +00322 +00323 +00324 +00327 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a31">supportVertexBufferHard</a>() <font class="keyword">const</font> =0; +00328 +00329 +00332 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a32">slowUnlockVertexBufferHard</a>() <font class="keyword">const</font> =0; +00333 +00334 +00337 <font class="keyword">virtual</font> uint <a class="code" href="classNL3D_1_1IDriver.html#a33">getMaxVerticesByVertexBufferHard</a>() <font class="keyword">const</font> =0; +00338 +00339 +00349 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a34">initVertexArrayRange</a>(uint agpMem, uint vramMem=0) =0; +00350 +00351 +00367 <font class="keyword">virtual</font> IVertexBufferHard *<a class="code" href="classNL3D_1_1IDriver.html#a35">createVertexBufferHard</a>(uint16 vertexFormat, <font class="keyword">const</font> uint8 *typeArray, uint32 numVertices, +00368 <a class="code" href="classNL3D_1_1IDriver.html#s46">TVBHardType</a> vbType) =0; +00369 +00370 +00373 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a36">deleteVertexBufferHard</a>(IVertexBufferHard *VB) =0; +00374 +00375 +00382 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a37">activeVertexBufferHard</a>(IVertexBufferHard *VB)=0; +00383 +00384 +00385 +00393 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a38">activeVertexBuffer</a>(CVertexBuffer& VB)=0; +00394 +00395 +00409 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a38">activeVertexBuffer</a>(CVertexBuffer& VB, uint first, uint end)=0; +00410 +00411 +00423 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a40">mapTextureStageToUV</a>(uint stage, uint uv)=0; +00424 +00425 +00428 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a41">render</a>(CPrimitiveBlock& PB, CMaterial& Mat)=0; +00429 +00433 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a42">renderTriangles</a>(CMaterial& Mat, uint32 *tri, uint32 ntris)=0; +00434 +00435 +00443 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a43">renderSimpleTriangles</a>(uint32 *tri, uint32 ntris)=0; +00444 +00445 +00448 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a44">renderPoints</a>(CMaterial& Mat, uint32 numPoints)=0; +00449 +00453 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a45">renderQuads</a>(CMaterial& Mat, uint32 startIndex, uint32 numQuads)=0; +00454 +00455 +00456 +00458 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a46">swapBuffers</a>(<font class="keywordtype">void</font>)=0; +00459 +00460 +00462 <font class="comment">// @{</font> +00463 +00464 +00470 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z428_0">profileRenderedPrimitives</a>(CPrimitiveProfile &pIn, CPrimitiveProfile &pOut) =0; +00471 +00472 +00476 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1IDriver.html#z428_1">profileAllocatedTextureMemory</a>() =0; +00477 +00478 +00481 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1IDriver.html#z428_2">profileSetupedMaterials</a>() <font class="keyword">const</font> =0; +00482 +00483 +00486 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1IDriver.html#z428_3">profileSetupedModelMatrix</a>() <font class="keyword">const</font> =0; +00487 +00488 +00491 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z428_4">enableUsedTextureMemorySum</a> (<font class="keywordtype">bool</font> enable=<font class="keyword">true</font>) =0; +00492 +00493 +00497 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1IDriver.html#z428_5">getUsedTextureMemory</a>() <font class="keyword">const</font> =0; +00498 +00499 <font class="comment">// @}</font> +00500 +00501 +00503 <font class="comment">// @{</font> +00504 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z429_0">fogEnabled</a>()=0; +00505 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z429_1">enableFog</a>(<font class="keywordtype">bool</font> enable)=0; +00507 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z429_2">setupFog</a>(<font class="keywordtype">float</font> start, <font class="keywordtype">float</font> end, CRGBA color)=0; +00508 <font class="comment">// @}</font> +00509 +00511 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a47">release</a>(<font class="keywordtype">void</font>); +00512 +00514 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a48">isActive</a>()=0; +00515 +00517 <font class="keyword">virtual</font> uint8 <a class="code" href="classNL3D_1_1IDriver.html#a49">getBitPerPixel</a> ()=0; +00518 +00528 <font class="keyword">virtual</font> <a class="code" href="classNL3D_1_1IDriver.html#s41">TMessageBoxId</a> <a class="code" href="classNL3D_1_1IDriver.html#a50">systemMessageBox</a> (<font class="keyword">const</font> <font class="keywordtype">char</font>* message, <font class="keyword">const</font> <font class="keywordtype">char</font>* title, <a class="code" href="classNL3D_1_1IDriver.html#s42">TMessageBoxType</a> <a class="code" href="driver__opengl__extension__def_8h.html#a373">type</a>=<a class="code" href="classNL3D_1_1IDriver.html#s42s8">okType</a>, <a class="code" href="classNL3D_1_1IDriver.html#s43">TMessageBoxIcon</a> icon=<a class="code" href="classNL3D_1_1IDriver.html#s43s15">noIcon</a>); +00529 +00534 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a51">setupViewport</a> (<font class="keyword">const</font> <font class="keyword">class</font> CViewport& viewport)=0; +00535 +00536 +00540 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a52">setupScissor</a> (<font class="keyword">const</font> <font class="keyword">class</font> CScissor& scissor)=0; +00541 +00542 +00548 <font class="keyword">virtual</font> uint32 <a class="code" href="classNL3D_1_1IDriver.html#a53">getImplementationVersion</a> () <font class="keyword">const</font> = 0; +00549 +00554 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="classNL3D_1_1IDriver.html#a54">getDriverInformation</a> () = 0; +00555 +00560 <font class="keyword">virtual</font> <font class="keyword">const</font> <font class="keywordtype">char</font>* <a class="code" href="classNL3D_1_1IDriver.html#a55">getVideocardInformation</a> () = 0; +00561 +00563 <font class="comment">// @{</font> +00565 <font class="comment"> virtual void showCursor (bool b) = 0;</font> +00566 +00568 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z430_1">setMousePos</a> (<font class="keywordtype">float</font> <a class="code" href="driver__opengl__extension__def_8h.html#a364">x</a>, <font class="keywordtype">float</font> <a class="code" href="driver__opengl__extension__def_8h.html#a365">y</a>) = 0; +00569 +00578 <font class="keyword">virtual</font> <a class="code" href="structNLMISC_1_1IMouseDevice.html">NLMISC::IMouseDevice</a> *<a class="code" href="classNL3D_1_1IDriver.html#z430_2">enableLowLevelMouse</a>(<font class="keywordtype">bool</font> enable) = 0; +00579 +00587 <font class="keyword">virtual</font> <a class="code" href="structNLMISC_1_1IKeyboardDevice.html">NLMISC::IKeyboardDevice</a> *<a class="code" href="classNL3D_1_1IDriver.html#z430_3">enableLowLevelKeyboard</a>(<font class="keywordtype">bool</font> enable) = 0; +00588 +00592 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z430_4">setCapture</a> (<font class="keywordtype">bool</font> b) = 0; +00593 +00597 <font class="keyword">virtual</font> <a class="code" href="structNLMISC_1_1IInputDeviceManager.html">NLMISC::IInputDeviceManager</a> *<a class="code" href="classNL3D_1_1IDriver.html#z430_5">getLowLevelInputDeviceManager</a>() = 0; +00598 +00599 <font class="comment">// @}</font> +00600 +00602 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a56">getWindowSize</a> (uint32 &<a class="code" href="driver__opengl__extension__def_8h.html#a389">width</a>, uint32 &<a class="code" href="driver__opengl__extension__def_8h.html#a390">height</a>) = 0; +00603 +00604 +00609 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a57">getBuffer</a> (CBitmap &bitmap) = 0; +00610 +00615 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a58">getZBuffer</a> (std::vector<float> &zbuffer) = 0; +00616 +00623 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a59">getBufferPart</a> (CBitmap &bitmap, <a class="code" href="classNLMISC_1_1CRect.html">NLMISC::CRect</a> &rect) = 0; +00624 +00631 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a60">getZBufferPart</a> (std::vector<float> &zbuffer, <a class="code" href="classNLMISC_1_1CRect.html">NLMISC::CRect</a> &rect) = 0; +00632 +00633 +00650 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a61">copyFrameBufferToTexture</a>(ITexture *tex, +00651 uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a387">level</a>, +00652 uint32 offsetx, +00653 uint32 offsety, +00654 uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a364">x</a>, +00655 uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a365">y</a>, +00656 uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a389">width</a>, +00657 uint32 <a class="code" href="driver__opengl__extension__def_8h.html#a390">height</a> +00658 ) = 0 ; +00659 +00665 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a62">fillBuffer</a> (CBitmap &bitmap) = 0; +00666 +00667 +<a name="l00674"></a><a class="code" href="classNL3D_1_1IDriver.html#a63">00674</a> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a63">setPolygonMode</a> (<a class="code" href="classNL3D_1_1IDriver.html#s44">TPolygonMode</a> mode) +00675 { +00676 <a class="code" href="classNL3D_1_1IDriver.html#n4">_PolygonMode</a>=mode; +00677 } +00678 +00679 +00685 <font class="keyword">virtual</font> uint <a class="code" href="classNL3D_1_1IDriver.html#a64">getMaxLight</a> () <font class="keyword">const</font> = 0; +00686 +00696 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a65">setLight</a> (uint8 <a class="code" href="driver__opengl__extension__def_8h.html#a410">num</a>, <font class="keyword">const</font> CLight& light) = 0; +00697 +00707 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a66">enableLight</a> (uint8 <a class="code" href="driver__opengl__extension__def_8h.html#a410">num</a>, <font class="keywordtype">bool</font> enable=<font class="keyword">true</font>) = 0; +00708 +00715 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a67">setAmbientColor</a> (CRGBA color) = 0; +00716 +00721 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a68">setPerPixelLightingLight</a>(CRGBA diffuse, CRGBA specular, <font class="keywordtype">float</font> shininess) = 0; +00722 +<a name="l00728"></a><a class="code" href="classNL3D_1_1IDriver.html#a69">00728</a> <a class="code" href="classNL3D_1_1IDriver.html#s44">TPolygonMode</a> <a class="code" href="classNL3D_1_1IDriver.html#a69">getPolygonMode</a> () +00729 { +00730 <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1IDriver.html#n4">_PolygonMode</a>; +00731 } +00732 +00734 <font class="comment">// @{</font> +00735 +<a name="l00736"></a><a class="code" href="classNL3D_1_1IDriver.html#z431_0">00736</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_0">TMatrix</a> +00737 { +00738 <a class="code" href="classNL3D_1_1IDriver.html#z431_0s32">ModelView</a>= 0, +00739 <a class="code" href="classNL3D_1_1IDriver.html#z431_0s33">Projection</a>, +00740 <a class="code" href="classNL3D_1_1IDriver.html#z431_0s34">ModelViewProjection</a>, +00741 <a class="code" href="classNL3D_1_1IDriver.html#z431_0s35">NumMatrix</a> +00742 }; +00743 +<a name="l00744"></a><a class="code" href="classNL3D_1_1IDriver.html#z431_1">00744</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_1">TTransform</a> +00745 { +00746 <a class="code" href="classNL3D_1_1IDriver.html#z431_1s36">Identity</a>=0, +00747 <a class="code" href="classNL3D_1_1IDriver.html#z431_1s37">Inverse</a>, +00748 <a class="code" href="classNL3D_1_1IDriver.html#z431_1s38">Transpose</a>, +00749 <a class="code" href="classNL3D_1_1IDriver.html#z431_1s39">InverseTranspose</a>, +00750 <a class="code" href="classNL3D_1_1IDriver.html#z431_1s40">NumTransform</a> +00751 }; +00752 +00756 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_2">isVertexProgramSupported</a> () <font class="keyword">const</font> =0; +00757 +00761 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_3">isVertexProgramEmulated</a> () <font class="keyword">const</font> =0; +00762 +00763 +00764 +00772 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_4">activeVertexProgram</a> (CVertexProgram *<a class="code" href="driver__opengl__extension__def_8h.html#a360">program</a>) =0; +00773 +00777 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_5">setConstant</a> (uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, <font class="keywordtype">float</font>, <font class="keywordtype">float</font>, <font class="keywordtype">float</font>, <font class="keywordtype">float</font>) =0; +00778 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_5">setConstant</a> (uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, <font class="keywordtype">double</font>, <font class="keywordtype">double</font>, <font class="keywordtype">double</font>, <font class="keywordtype">double</font>) =0; +00779 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_5">setConstant</a> (uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVector.html">NLMISC::CVector</a>& <a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>) =0; +00780 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_5">setConstant</a> (uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CVectorD.html">NLMISC::CVectorD</a>& <a class="code" href="driver__opengl__extension__def_8h.html#a415">value</a>) =0; +00782 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_5">setConstant</a> (uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, uint <a class="code" href="driver__opengl__extension__def_8h.html#a410">num</a>, <font class="keyword">const</font> <font class="keywordtype">float</font> *<a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>) =0; +00784 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_5">setConstant</a> (uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, uint <a class="code" href="driver__opengl__extension__def_8h.html#a410">num</a>, <font class="keyword">const</font> <font class="keywordtype">double</font> *<a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>) =0; +00785 +00786 +00798 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_11">setConstantMatrix</a> (uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>, <a class="code" href="classNL3D_1_1IDriver.html#z431_0">TMatrix</a> <a class="code" href="driver__opengl__extension__def_8h.html#a370">matrix</a>, <a class="code" href="classNL3D_1_1IDriver.html#z431_1">TTransform</a> <a class="code" href="driver__opengl__extension__def_8h.html#a371">transform</a>) =0; +00799 +00801 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_12">supportVertexProgramDoubleSidedColor</a>() <font class="keyword">const</font> = 0; +00802 +00803 +00810 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z431_13">enableVertexProgramDoubleSidedColor</a>(<font class="keywordtype">bool</font> doubleSided) =0; +00811 +00812 <font class="comment">// @}</font> +00813 +00815 <font class="comment">// @{</font> +00817 <font class="comment"> virtual bool supportTextureShaders() const = 0;</font> +00819 <font class="comment"> virtual bool isTextureAddrModeSupported(CMaterial::TTexAddressingMode mode) const = 0;</font> +00825 <font class="comment"></font> <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z432_2">setMatrix2DForTextureOffsetAddrMode</a>(<font class="keyword">const</font> uint stage, <font class="keyword">const</font> <font class="keywordtype">float</font> mat[4]) = 0; +00827 +00828 +00836 <font class="comment">// @{</font> +00837 <font class="comment">// Test if EMBM is supported.</font> +00838 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z433_0">supportEMBM</a>() <font class="keyword">const</font> = 0; +00839 <font class="comment">// Test if EMBM is supported for the given stage</font> +00840 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z433_1">isEMBMSupportedAtStage</a>(uint stage) <font class="keyword">const</font> = 0; +00841 <font class="comment">// set the matrix used for EMBM adressing :</font> +00842 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z433_2">setEMBMMatrix</a>(<font class="keyword">const</font> uint stage, <font class="keyword">const</font> <font class="keywordtype">float</font> mat[4]) = 0; +00843 <font class="comment">// @}</font> +00844 +00845 <font class="comment">// Does the driver support the per-pixel lighting shader ?</font> +00846 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#a70">supportPerPixelLighting</a>(<font class="keywordtype">bool</font> specular) <font class="keyword">const</font> = 0; +00847 +00848 +00850 <font class="comment">// @{</font> +00851 +00855 <font class="keyword">virtual</font> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1IDriver.html#z434_0">supportBlendConstantColor</a>() <font class="keyword">const</font> =0; +00856 +00859 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#z434_1">setBlendConstantColor</a>(<a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a> col)=0; +00860 +00863 <font class="keyword">virtual</font> <a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a> <a class="code" href="classNL3D_1_1IDriver.html#z434_2">getBlendConstantColor</a>() <font class="keyword">const</font> =0; +00864 +00865 <font class="comment">// @}</font> +00866 +00867 +00873 <font class="keyword">virtual</font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#a71">swapTextureHandle</a>(ITexture &tex0, ITexture &tex1) =0; +00874 +00875 +00876 <font class="keyword">protected</font>: +<a name="l00877"></a><a class="code" href="classNL3D_1_1IDriver.html#l0">00877</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IDriver.html#l0">IVBDrvInfos</a>; +<a name="l00878"></a><a class="code" href="classNL3D_1_1IDriver.html#l1">00878</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IDriver.html#l1">CTextureDrvShare</a>; +<a name="l00879"></a><a class="code" href="classNL3D_1_1IDriver.html#l2">00879</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IDriver.html#l2">ITextureDrvInfos</a>; +<a name="l00880"></a><a class="code" href="classNL3D_1_1IDriver.html#l3">00880</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IDriver.html#l3">IShader</a>; +<a name="l00881"></a><a class="code" href="classNL3D_1_1IDriver.html#l4">00881</a> <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classNL3D_1_1IDriver.html#l4">IVertexProgramDrvInfos</a>; +00882 +00884 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#b0">removeVBDrvInfoPtr</a>(<a class="code" href="namespaceNL3D.html#a295">ItVBDrvInfoPtrList</a> vbDrvInfoIt); +00885 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#b1">removeTextureDrvInfoPtr</a>(<a class="code" href="namespaceNL3D.html#a246">ItTexDrvInfoPtrMap</a> texDrvInfoIt); +00886 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#b2">removeTextureDrvSharePtr</a>(<a class="code" href="namespaceNL3D.html#a247">ItTexDrvSharePtrList</a> texDrvShareIt); +00887 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#b3">removeShaderPtr</a>(<a class="code" href="namespaceNL3D.html#a235">ItShaderPtrList</a> shaderIt); +00888 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1IDriver.html#b4">removeVtxPrgDrvInfoPtr</a>(<a class="code" href="namespaceNL3D.html#a297">ItVtxPrgDrvInfoPtrList</a> vtxPrgDrvInfoIt); +00889 }; +00890 +00891 <font class="comment">// --------------------------------------------------</font> +00892 +00893 } +00894 +00895 <font class="preprocessor">#endif // NL_DRV_H</font> +00896 <font class="preprocessor"></font> +</pre></div> + +<!-- footer --> +<BR><FONT Size=+5> </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> |