diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/material_8h-source.html | 509 |
1 files changed, 509 insertions, 0 deletions
diff --git a/docs/doxygen/nel/material_8h-source.html b/docs/doxygen/nel/material_8h-source.html new file mode 100644 index 00000000..25dff350 --- /dev/null +++ b/docs/doxygen/nel/material_8h-source.html @@ -0,0 +1,509 @@ +<!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>material.h</h1><a href="material_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 +00007 <font class="comment">/* Copyright, 2000 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">#ifndef NL_MATERIAL_H</font> +00027 <font class="preprocessor"></font><font class="preprocessor">#define NL_MATERIAL_H</font> +00028 <font class="preprocessor"></font> +00029 <font class="preprocessor">#include "<a class="code" href="types__nl_8h.html">nel/misc/types_nl.h</a>"</font> +00030 <font class="preprocessor">#include "<a class="code" href="smart__ptr_8h.html">nel/misc/smart_ptr.h</a>"</font> +00031 <font class="preprocessor">#include "<a class="code" href="rgba_8h.html">nel/misc/rgba.h</a>"</font> +00032 <font class="preprocessor">#include "<a class="code" href="matrix_8h.html">nel/misc/matrix.h</a>"</font> +00033 <font class="preprocessor">#include "<a class="code" href="texture_8h.html">3d/texture.h</a>"</font> +00034 <font class="preprocessor">#include "<a class="code" href="shader_8h.html">3d/shader.h</a>"</font> +00035 +00036 <font class="preprocessor">#include <memory></font> +00037 +00038 <font class="keyword">namespace </font>NL3D { +00039 +00040 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CRefCount.html">NLMISC::CRefCount</a>; +00041 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CRGBA.html">NLMISC::CRGBA</a>; +00042 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CSmartPtr.html">NLMISC::CSmartPtr</a>; +00043 <font class="keyword">using</font> <a class="code" href="classNLMISC_1_1CRefPtr.html">NLMISC::CRefPtr</a>; +00044 +00045 <font class="comment">// --------------------------------------------------</font> +00046 +00047 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a> = 4; +00048 +00049 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a95">IDRV_TOUCHED_BLENDFUNC</a> = 0x00000001; +00050 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a96">IDRV_TOUCHED_BLEND</a> = 0x00000002; +00051 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a97">IDRV_TOUCHED_SHADER</a> = 0x00000004; +00052 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a98">IDRV_TOUCHED_ZFUNC</a> = 0x00000008; +00053 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a99">IDRV_TOUCHED_ZBIAS</a> = 0x00000010; +00054 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a100">IDRV_TOUCHED_COLOR</a> = 0x00000020; +00055 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a101">IDRV_TOUCHED_LIGHTING</a> = 0x00000040; +00056 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a102">IDRV_TOUCHED_DEFMAT</a> = 0x00000080; +00057 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a103">IDRV_TOUCHED_ZWRITE</a> = 0x00000100; +00058 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a104">IDRV_TOUCHED_DOUBLE_SIDED</a> = 0x00000200; +00059 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a105">IDRV_TOUCHED_LIGHTMAP</a> = 0x00000400; +00060 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a106">IDRV_TOUCHED_ALPHA_TEST</a> = 0x00000800; +00061 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a107">IDRV_TOUCHED_ALPHA_TEST_THRE</a> = 0x00001000; +00062 +00063 +00064 <font class="comment">// Start texture touch at 0x10000.</font> +00065 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a108">IDRV_TOUCHED_TEX</a>[<a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a>] = +00066 {0x00010000, 0x00020000, 0x00040000, 0x00080000}; +00067 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a109">IDRV_TOUCHED_ALL</a> = 0xFFFFFFFF; +00068 +00069 +00070 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a110">IDRV_MAT_HIDE</a> = 0x00000001; +00071 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a111">IDRV_MAT_TSP</a> = 0x00000002; +00072 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a112">IDRV_MAT_ZWRITE</a> = 0x00000004; +00073 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a113">IDRV_MAT_ZLIST</a> = 0x00000008; +00074 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a114">IDRV_MAT_LIGHTING</a> = 0x00000010; +00075 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a115">IDRV_MAT_SPECULAR</a> = 0x00000020; +00076 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a116">IDRV_MAT_DEFMAT</a> = 0x00000040; <font class="comment">// NB: Deprecated, but may still exist streams.</font> +00077 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a117">IDRV_MAT_BLEND</a> = 0x00000080; +00078 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a118">IDRV_MAT_DOUBLE_SIDED</a> = 0x00000100; +00079 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a119">IDRV_MAT_ALPHA_TEST</a> = 0x00000200; +00080 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a120">IDRV_MAT_TEX_ADDR</a> = 0x00000400; +00081 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a121">IDRV_MAT_LIGHTED_VERTEX_COLOR</a> = 0x00000800; +00083 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a122">IDRV_MAT_GEN_TEX_0</a> = 0x00001000; +00084 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a123">IDRV_MAT_GEN_TEX_1</a> = 0x00002000; +00085 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a124">IDRV_MAT_GEN_TEX_2</a> = 0x00004000; +00086 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a125">IDRV_MAT_GEN_TEX_3</a> = 0x00008000; +00087 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a126">IDRV_MAT_GEN_TEX_4</a> = 0x00010000; +00088 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a127">IDRV_MAT_GEN_TEX_5</a> = 0x00020000; +00089 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a128">IDRV_MAT_GEN_TEX_6</a> = 0x00040000; +00090 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a129">IDRV_MAT_GEN_TEX_7</a> = 0x00080000; +00092 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a130">IDRV_MAT_USER_TEX_0_MAT</a> = 0x00100000; +00093 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a131">IDRV_MAT_USER_TEX_1_MAT</a> = 0x00200000; +00094 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a132">IDRV_MAT_USER_TEX_2_MAT</a> = 0x00400000; +00095 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a133">IDRV_MAT_USER_TEX_3_MAT</a> = 0x00800000; +00096 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a134">IDRV_MAT_USER_TEX_4_MAT</a> = 0x01000000; +00097 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a135">IDRV_MAT_USER_TEX_5_MAT</a> = 0x02000000; +00098 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a136">IDRV_MAT_USER_TEX_6_MAT</a> = 0x04000000; +00099 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a137">IDRV_MAT_USER_TEX_7_MAT</a> = 0x08000000; +00100 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a138">IDRV_MAT_USER_TEX_MAT_ALL</a> = 0x0FF00000; +00101 +00102 <font class="keyword">const</font> uint32 <a class="code" href="namespaceNL3D.html#a139">IDRV_MAT_USER_TEX_FIRST_BIT</a> = 20; +00103 +00104 +00105 +00106 <font class="comment">// ***************************************************************************</font> +00111 <font class="comment"></font><font class="comment">/* *** IMPORTANT ********************</font> +00112 <font class="comment"> * *** IF YOU MODIFY THE STRUCTURE OF THIS CLASS, PLEASE INCREMENT IDriver::InterfaceVersion TO INVALIDATE OLD DRIVER DLL</font> +00113 <font class="comment"> * **********************************</font> +00114 <font class="comment"> */</font> +<a name="l00115"></a><a class="code" href="classNL3D_1_1CMaterial.html">00115</a> <font class="keyword">class </font>CMaterial : <font class="keyword">public</font> CRefCount +00116 { +00117 <font class="keyword">public</font>: +00118 +<a name="l00119"></a><a class="code" href="classNL3D_1_1CMaterial.html#s64">00119</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CMaterial.html#s64">ZFunc</a> { <a class="code" href="classNL3D_1_1CMaterial.html#s64s1">always</a>=0,<a class="code" href="classNL3D_1_1CMaterial.html#s64s2">never</a>,<a class="code" href="classNL3D_1_1CMaterial.html#s64s3">equal</a>,<a class="code" href="classNL3D_1_1CMaterial.html#s64s4">notequal</a>,<a class="code" href="classNL3D_1_1CMaterial.html#s64s5">less</a>,<a class="code" href="classNL3D_1_1CMaterial.html#s64s6">lessequal</a>,<a class="code" href="classNL3D_1_1CMaterial.html#s64s7">greater</a>,<a class="code" href="classNL3D_1_1CMaterial.html#s64s8">greaterequal</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s64s9">zfuncCount</a> }; +00120 +<a name="l00125"></a><a class="code" href="classNL3D_1_1CMaterial.html#s65">00125</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> { <a class="code" href="classNL3D_1_1CMaterial.html#s65s10">one</a>=0, <a class="code" href="classNL3D_1_1CMaterial.html#s65s11">zero</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s12">srcalpha</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s13">invsrcalpha</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s14">srccolor</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s15">invsrccolor</a>, +00126 <a class="code" href="classNL3D_1_1CMaterial.html#s65s16">blendConstantColor</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s17">blendConstantInvColor</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s18">blendConstantAlpha</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s19">blendConstantInvAlpha</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65s20">blendCount</a> }; +00127 +<a name="l00157"></a><a class="code" href="classNL3D_1_1CMaterial.html#s66">00157</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CMaterial.html#s66">TShader</a> { <a class="code" href="classNL3D_1_1CMaterial.html#s66s21">Normal</a>=0, +00158 <a class="code" href="classNL3D_1_1CMaterial.html#s66s22">Bump</a>, +00159 <a class="code" href="classNL3D_1_1CMaterial.html#s66s23">UserColor</a>, +00160 <a class="code" href="classNL3D_1_1CMaterial.html#s66s24">LightMap</a>, +00161 <a class="code" href="classNL3D_1_1CMaterial.html#s66s25">Specular</a>, +00162 <a class="code" href="classNL3D_1_1CMaterial.html#s66s26">Caustics</a>, +00163 <a class="code" href="classNL3D_1_1CMaterial.html#s66s27">PerPixelLighting</a>, +00164 <a class="code" href="classNL3D_1_1CMaterial.html#s66s28">PerPixelLightingNoSpec</a>, +00165 <a class="code" href="classNL3D_1_1CMaterial.html#s66s29">Cloud</a>, +00166 <a class="code" href="classNL3D_1_1CMaterial.html#s66s30">shaderCount</a>}; +00167 +00169 <font class="comment">// @{</font> +<a name="l00181"></a><a class="code" href="classNL3D_1_1CMaterial.html#z538_0">00181</a> <font class="comment"></font> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CMaterial.html#z538_0">TTexOperator</a> { <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s31">Replace</a>=0, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s32">Modulate</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s33">Add</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s34">AddSigned</a>, +00182 <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s35">InterpolateTexture</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s36">InterpolatePrevious</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s37">InterpolateDiffuse</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s38">InterpolateConstant</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0s39">EMBM</a> }; +00183 +<a name="l00190"></a><a class="code" href="classNL3D_1_1CMaterial.html#z538_1">00190</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CMaterial.html#z538_1">TTexSource</a> { <a class="code" href="classNL3D_1_1CMaterial.html#z538_1s40">Texture</a>=0, <a class="code" href="classNL3D_1_1CMaterial.html#z538_1s41">Previous</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_1s42">Diffuse</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_1s43">Constant</a> }; +00191 +<a name="l00199"></a><a class="code" href="classNL3D_1_1CMaterial.html#z538_2">00199</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CMaterial.html#z538_2">TTexOperand</a> { <a class="code" href="classNL3D_1_1CMaterial.html#z538_2s44">SrcColor</a>=0, <a class="code" href="classNL3D_1_1CMaterial.html#z538_2s45">InvSrcColor</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_2s46">SrcAlpha</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_2s47">InvSrcAlpha</a> }; +00200 <font class="comment">// @}</font> +00201 +00207 <font class="comment">// @{</font> +<a name="l00208"></a><a class="code" href="classNL3D_1_1CMaterial.html#z539_0">00208</a> <font class="keyword">enum</font> <a class="code" href="classNL3D_1_1CMaterial.html#z539_0">TTexAddressingMode</a> { +00209 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s48">TextureOff</a> = 0 <font class="comment">/* no texture */</font>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s49">FetchTexture</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s50">PassThrough</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s51">CullFragment</a>, +00210 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s52">OffsetTexture</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s53">OffsetTextureScale</a>, +00211 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s54">DependentARTexture</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s55">DependentGBTexture</a>, +00212 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s56">DP3</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s57">DP3Texture2D</a>, +00213 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s58">DP3CubeMap</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s59">DP3ReflectCubeMap</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s60">DP3ConstEyeReflectCubeMap</a>, +00214 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s61">DP3DiffuseCubeMap</a>, +00215 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s62">DP3DepthReplace</a>, +00216 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0s63">TexAddrCount</a> +00217 }; +00218 <font class="comment">// @}</font> +00219 +00220 +00221 <font class="keyword">public</font>: +00223 <font class="comment">// @{</font> +00228 <font class="comment"></font> <a class="code" href="classNL3D_1_1CMaterial.html#z540_0">CMaterial</a>(); +<a name="l00230"></a><a class="code" href="classNL3D_1_1CMaterial.html#z540_1">00230</a> <a class="code" href="classNL3D_1_1CMaterial.html#z540_0">CMaterial</a>(<font class="keyword">const</font> <a class="code" href="classNL3D_1_1CMaterial.html#z540_0">CMaterial</a> &mat) {<a class="code" href="classNL3D_1_1CMaterial.html#o13">_Touched</a>= 0;<a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>=0; <a class="code" href="classNL3D_1_1CMaterial.html#z540_3">operator=</a>(mat);} +00232 <a class="code" href="classNL3D_1_1CMaterial.html#z540_2">~CMaterial</a>(); +00234 <a class="code" href="classNL3D_1_1CMaterial.html#z540_0">CMaterial</a> &<a class="code" href="classNL3D_1_1CMaterial.html#z540_3">operator=</a>(<font class="keyword">const</font> <a class="code" href="classNL3D_1_1CMaterial.html#z540_0">CMaterial</a> &mat); +00235 <font class="comment">// @}</font> +00236 +00240 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#a0">setShader</a>(<a class="code" href="classNL3D_1_1CMaterial.html#s66">TShader</a> val); +<a name="l00242"></a><a class="code" href="classNL3D_1_1CMaterial.html#a1">00242</a> <a class="code" href="classNL3D_1_1CMaterial.html#s66">TShader</a> <a class="code" href="classNL3D_1_1CMaterial.html#a1">getShader</a>()<font class="keyword"> const </font>{<font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o0">_ShaderType</a>;} +00243 +00245 <font class="comment">// @{</font> +00252 <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z541_0">setTexture</a>(uint8 stage, ITexture* ptex); +00253 +00254 ITexture* <a class="code" href="classNL3D_1_1CMaterial.html#z541_1">getTexture</a>(uint8 stage) <font class="keyword">const</font>; +00255 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z541_2">texturePresent</a>(uint8 stage) <font class="keyword">const</font>; +00256 <font class="comment">// @}</font> +00257 +00258 +00260 <font class="comment">// @{</font> +00261 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z542_0">setBlend</a>(<font class="keywordtype">bool</font> active); +00262 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z542_1">setBlendFunc</a>(<a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>, <a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> dst); +00263 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z542_2">setSrcBlend</a>(<a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> val); +00264 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z542_3">setDstBlend</a>(<a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> val); +00265 +<a name="l00266"></a><a class="code" href="classNL3D_1_1CMaterial.html#z542_4">00266</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z542_4">getBlend</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>&<a class="code" href="namespaceNL3D.html#a117">IDRV_MAT_BLEND</a>)!=0; } +<a name="l00267"></a><a class="code" href="classNL3D_1_1CMaterial.html#z542_5">00267</a> <a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> <a class="code" href="classNL3D_1_1CMaterial.html#z542_5">getSrcBlend</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> { <font class="keywordflow">return</font>(_SrcBlend); } +<a name="l00268"></a><a class="code" href="classNL3D_1_1CMaterial.html#z542_6">00268</a> <a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> <a class="code" href="classNL3D_1_1CMaterial.html#z542_6">getDstBlend</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> { <font class="keywordflow">return</font>(_DstBlend); } +00269 <font class="comment">// @}</font> +00270 +00271 +00273 <font class="comment">// @{ </font> +00277 <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z543_0">enableTexAddrMode</a>(<font class="keywordtype">bool</font> enable = <font class="keyword">true</font>); +00278 +00280 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z543_1">texAddrEnabled</a>() <font class="keyword">const</font>; +00281 +00286 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z543_2">setTexAddressingMode</a>(uint8 stage, <a class="code" href="classNL3D_1_1CMaterial.html#z539_0">TTexAddressingMode</a> mode); +00287 +00289 <a class="code" href="classNL3D_1_1CMaterial.html#z539_0">TTexAddressingMode</a> <a class="code" href="classNL3D_1_1CMaterial.html#z543_3">getTexAddressingMode</a>(uint8 stage); +00290 <font class="comment">// @}</font> +00291 +00292 +00294 <font class="comment">// @{</font> +00295 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z544_0">setDoubleSided</a>(<font class="keywordtype">bool</font> active); +<a name="l00296"></a><a class="code" href="classNL3D_1_1CMaterial.html#z544_1">00296</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z544_1">getDoubleSided</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>&<a class="code" href="namespaceNL3D.html#a118">IDRV_MAT_DOUBLE_SIDED</a>)!=0; } +00297 <font class="comment">// @}</font> +00298 +00300 <font class="comment">// @{</font> +00301 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z545_0">setAlphaTest</a>(<font class="keywordtype">bool</font> active); +<a name="l00302"></a><a class="code" href="classNL3D_1_1CMaterial.html#z545_1">00302</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z545_1">getAlphaTest</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>&<a class="code" href="namespaceNL3D.html#a119">IDRV_MAT_ALPHA_TEST</a>)!=0; } +00303 +00307 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z545_2">setAlphaTestThreshold</a>(<font class="keywordtype">float</font> thre); +<a name="l00308"></a><a class="code" href="classNL3D_1_1CMaterial.html#z545_3">00308</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CMaterial.html#z545_3">getAlphaTestThreshold</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o12">_AlphaTestThreshold</a>; } +00309 +00310 <font class="comment">// @}</font> +00311 +00312 +00314 <font class="comment">// @{</font> +00315 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z546_0">setZFunc</a>(<a class="code" href="classNL3D_1_1CMaterial.html#s64">ZFunc</a> val); +00316 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z546_1">setZWrite</a>(<font class="keywordtype">bool</font> active); +00317 +00320 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z546_2">setZBias</a>(<font class="keywordtype">float</font> val); +00321 +<a name="l00322"></a><a class="code" href="classNL3D_1_1CMaterial.html#z546_3">00322</a> <a class="code" href="classNL3D_1_1CMaterial.html#s64">ZFunc</a> <a class="code" href="classNL3D_1_1CMaterial.html#z546_3">getZFunc</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> { <font class="keywordflow">return</font>(_ZFunction); } +<a name="l00323"></a><a class="code" href="classNL3D_1_1CMaterial.html#z546_4">00323</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z546_4">getZWrite</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>&<a class="code" href="namespaceNL3D.html#a112">IDRV_MAT_ZWRITE</a>)!=0; } +<a name="l00324"></a><a class="code" href="classNL3D_1_1CMaterial.html#z546_5">00324</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CMaterial.html#z546_5">getZBias</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> { <font class="keywordflow">return</font>(_ZBias); } +00325 <font class="comment">// @}</font> +00326 +00327 +00329 <font class="comment">// @{</font> +00331 <font class="comment"> void setColor(CRGBA rgba);</font> +00332 +00334 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_1">setLighting</a>( <font class="keywordtype">bool</font> active, +00335 CRGBA emissive=CRGBA(0,0,0), +00336 CRGBA ambient=CRGBA(0,0,0), +00337 CRGBA diffuse=CRGBA(0,0,0), +00338 CRGBA specular=CRGBA(0,0,0), +00339 <font class="keywordtype">float</font> shininess= 10); +00340 +00342 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_2">setEmissive</a>( CRGBA emissive=CRGBA(0,0,0) ); +00344 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_3">setAmbient</a>( CRGBA ambient=CRGBA(0,0,0) ); +00346 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_4">setDiffuse</a>( CRGBA diffuse=CRGBA(0,0,0) ); +00348 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_5">setOpacity</a>( uint8 opa ); +00350 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_6">setSpecular</a>( CRGBA specular=CRGBA(0,0,0) ); +00352 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_7">setShininess</a>( <font class="keywordtype">float</font> shininess ); +00354 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_8">setLightedVertexColor</a> (<font class="keywordtype">bool</font> useLightedVertexColor); +00356 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_9">getLightedVertexColor</a> () <font class="keyword">const</font>; +00357 +00358 +<a name="l00359"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_10">00359</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_10">isLighted</a>()<font class="keyword"> const </font>{<font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>&<a class="code" href="namespaceNL3D.html#a114">IDRV_MAT_LIGHTING</a>)!=0;} +00360 +<a name="l00362"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_11">00362</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_11">isLightedVertexColor</a> ()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> (<a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>&<a class="code" href="namespaceNL3D.html#a121">IDRV_MAT_LIGHTED_VERTEX_COLOR</a>)!=0;} +00363 +<a name="l00364"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_12">00364</a> CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#z547_12">getColor</a>(<font class="keywordtype">void</font>)<font class="keyword"> const </font>{ <font class="keywordflow">return</font>(_Color); } +<a name="l00365"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_13">00365</a> CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#z547_13">getEmissive</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o7">_Emissive</a>;} +<a name="l00366"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_14">00366</a> CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#z547_14">getAmbient</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o8">_Ambient</a>;} +<a name="l00368"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_15">00368</a> CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#z547_15">getDiffuse</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o9">_Diffuse</a>;} +<a name="l00369"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_16">00369</a> uint8 <a class="code" href="classNL3D_1_1CMaterial.html#z547_16">getOpacity</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o9">_Diffuse</a>.A;} +<a name="l00370"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_17">00370</a> CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#z547_17">getSpecular</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o10">_Specular</a>;} +<a name="l00371"></a><a class="code" href="classNL3D_1_1CMaterial.html#z547_18">00371</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CMaterial.html#z547_18">getShininess</a>()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o11">_Shininess</a>;} +00372 <font class="comment">// @}</font> +00373 +00374 +00376 +00387 <font class="comment">// @{</font> +00388 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_0">texEnvOpRGB</a>(uint stage, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0">TTexOperator</a> ope); +00389 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_1">texEnvArg0RGB</a>(uint stage, <a class="code" href="classNL3D_1_1CMaterial.html#z538_1">TTexSource</a> <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_2">TTexOperand</a> oper); +00390 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_2">texEnvArg1RGB</a>(uint stage, <a class="code" href="classNL3D_1_1CMaterial.html#z538_1">TTexSource</a> <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_2">TTexOperand</a> oper); +00391 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_3">texEnvOpAlpha</a>(uint stage, <a class="code" href="classNL3D_1_1CMaterial.html#z538_0">TTexOperator</a> ope); +00392 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_4">texEnvArg0Alpha</a>(uint stage, <a class="code" href="classNL3D_1_1CMaterial.html#z538_1">TTexSource</a> <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_2">TTexOperand</a> oper); +00393 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_5">texEnvArg1Alpha</a>(uint stage, <a class="code" href="classNL3D_1_1CMaterial.html#z538_1">TTexSource</a> <a class="code" href="driver__opengl__extension__def_8h.html#a409">src</a>, <a class="code" href="classNL3D_1_1CMaterial.html#z538_2">TTexOperand</a> oper); +00395 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_6">texConstantColor</a>(uint stage, CRGBA color); +00397 uint32 <a class="code" href="classNL3D_1_1CMaterial.html#z548_7">getTexEnvMode</a>(uint stage); +00399 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_8">setTexEnvMode</a>(uint stage, uint32 packed); +00400 CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#z548_9">getTexConstantColor</a>(uint stage); +00401 +00402 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_10">setTexCoordGen</a>(uint stage, <font class="keywordtype">bool</font> generate); +00403 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_11">getTexCoordGen</a>(uint stage) <font class="keyword">const</font>; +00404 +00405 <font class="comment">// Enable a user texture matrix for the n-th stage. The initial matrix is set to identity.</font> +00406 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_12">enableUserTexMat</a>(uint stage, <font class="keywordtype">bool</font> enabled = <font class="keyword">true</font>); +00407 <font class="comment">// Test wether a user texture is enabled for the n-th stage</font> +00408 <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_13">isUserTexMatEnabled</a>(uint stage) <font class="keyword">const</font>; +00410 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_14">setUserTexMat</a>(uint stage, <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &m); +00414 <font class="keyword">const</font> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> &<a class="code" href="classNL3D_1_1CMaterial.html#z548_15">getUserTexMat</a>(uint stage) <font class="keyword">const</font>; +00416 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z548_16">decompUserTexMat</a>(uint stage, <font class="keywordtype">float</font> &uTrans, <font class="keywordtype">float</font> &vTrans, <font class="keywordtype">float</font> &wRot, <font class="keywordtype">float</font> &uScale, <font class="keywordtype">float</font> &vScale); +00417 +00418 <font class="comment">// @}</font> +00419 +00420 +00422 +00425 <font class="comment">// @{</font> +00426 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z549_0">setUserColor</a>(CRGBA userColor); +00427 CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#z549_1">getUserColor</a>() <font class="keyword">const</font>; +00428 <font class="comment">// @}</font> +00429 +00431 +00434 <font class="comment">// @{</font> +00436 <font class="comment"> void setLightMap(uint lmapId, ITexture *lmap);</font> +00438 <font class="comment"> ITexture *getLightMap(uint lmapId) const;</font> +00440 <font class="comment"> void setLightMapFactor(uint lmapId, CRGBA factor);</font> +00441 <font class="comment">// @}</font> +00442 +00443 +00445 <font class="comment">// @{</font> +00450 <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z551_0">initUnlit</a>(); +00455 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z551_1">initLighted</a>(); +00456 <font class="comment">// @}</font> +00457 +00458 <font class="comment">// \todo mb Clean this flag</font> +<a name="l00459"></a><a class="code" href="classNL3D_1_1CMaterial.html#a2">00459</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#a2">getStainedGlassWindow</a>() { <font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o14">_StainedGlassWindow</a>; } +<a name="l00460"></a><a class="code" href="classNL3D_1_1CMaterial.html#a3">00460</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#a3">setStainedGlassWindow</a>(<font class="keywordtype">bool</font> val) { <a class="code" href="classNL3D_1_1CMaterial.html#o14">_StainedGlassWindow</a> = val; } +00461 +00463 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#a4">flushTextures</a> (IDriver &driver); +00464 +00465 <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#a5">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &f); +00466 +00467 <font class="comment">// \name Multiple texture set managment</font> +00468 <font class="comment">// @{</font> +00472 <font class="comment"></font> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#z552_0">selectTextureSet</a>(uint <a class="code" href="driver__opengl__extension__def_8h.html#a358">index</a>); +00473 <font class="comment">// @}</font> +00474 +00475 <font class="comment">// **********************************</font> +00476 <font class="comment">// Private part.</font> +00477 <font class="keyword">public</font>: +00478 <font class="comment">// Private. For Driver only.</font> +<a name="l00479"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html">00479</a> <font class="keyword">struct </font>CTexEnv +00480 { +00481 <font class="keyword">union</font> +00482 <font class="keyword"> </font>{ +<a name="l00483"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m0">00483</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m0">EnvPacked</a>; +00484 <font class="keyword">struct</font> +00485 <font class="keyword"> </font>{ +<a name="l00486"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m1">00486</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m1">OpRGB</a>:4; +<a name="l00487"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m2">00487</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m2">SrcArg0RGB</a>:2; +<a name="l00488"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m3">00488</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m3">OpArg0RGB</a>:2; +<a name="l00489"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m4">00489</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m4">SrcArg1RGB</a>:2; +<a name="l00490"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m5">00490</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m5">OpArg1RGB</a>:2; +00491 +<a name="l00492"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m6">00492</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m6">OpAlpha</a>:4; +<a name="l00493"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m7">00493</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m7">SrcArg0Alpha</a>:2; +<a name="l00494"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m8">00494</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m8">OpArg0Alpha</a>:2; +<a name="l00495"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m9">00495</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m9">SrcArg1Alpha</a>:2; +<a name="l00496"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m10">00496</a> uint32 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m10">OpArg1Alpha</a>:2; +00497 } <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>; +00498 }; +<a name="l00499"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m12">00499</a> CRGBA <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m12">ConstantColor</a>; +00500 +<a name="l00501"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#a0">00501</a> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#a0">setDefault</a>() +00502 { +00503 <font class="comment">// Don't worry, Visual optimize it quite well...</font> +00504 <font class="comment">// We cannot do better, because bit fields ordeinrg seems not to be standardized, so we can not </font> +00505 <font class="comment">// set Packed directly.</font> +00506 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpRGB= Modulate; +00507 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg0RGB= Texture; +00508 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg0RGB= SrcColor; +00509 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg1RGB= Previous; +00510 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg1RGB= SrcColor; +00511 +00512 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpAlpha= Modulate; +00513 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg0Alpha= Texture; +00514 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg0Alpha= SrcAlpha; +00515 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg1Alpha= Previous; +00516 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg1Alpha= SrcAlpha; +00517 +00518 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m12">ConstantColor</a>.set(255,255,255,255); +00519 } +00520 +<a name="l00521"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#a1">00521</a> <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#a1">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &f) +00522 { +00523 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpRGB= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpRGB); +00524 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg0RGB= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg0RGB); +00525 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg0RGB= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg0RGB); +00526 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg1RGB= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg1RGB); +00527 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg1RGB= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg1RGB); +00528 +00529 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpAlpha= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpAlpha); +00530 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg0Alpha= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg0Alpha); +00531 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg0Alpha= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg0Alpha); +00532 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg1Alpha= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.SrcArg1Alpha); +00533 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg1Alpha= f.<a class="code" href="classNLMISC_1_1IStream.html#z325_0">serialBitField8</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m11">Env</a>.OpArg1Alpha); +00534 +00535 f.<a class="code" href="classNLMISC_1_1IStream.html#a5">serial</a>(<a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#m12">ConstantColor</a>); +00536 } +00537 +00538 +<a name="l00539"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#a2">00539</a> <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#a2">CTexEnv</a>() +00540 { +00541 <a class="code" href="structNL3D_1_1CMaterial_1_1CTexEnv.html#a0">setDefault</a>(); +00542 } +00543 }; +00544 +00545 <font class="keyword">private</font>: +00546 +<a name="l00547"></a><a class="code" href="classNL3D_1_1CMaterial.html#o0">00547</a> <a class="code" href="classNL3D_1_1CMaterial.html#s66">TShader</a> <a class="code" href="classNL3D_1_1CMaterial.html#o0">_ShaderType</a>; +<a name="l00548"></a><a class="code" href="classNL3D_1_1CMaterial.html#o1">00548</a> uint32 <a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>; +<a name="l00549"></a><a class="code" href="classNL3D_1_1CMaterial.html#o2">00549</a> <a class="code" href="classNL3D_1_1CMaterial.html#s65">TBlend</a> <a class="code" href="classNL3D_1_1CMaterial.html#o2">_SrcBlend</a>,<a class="code" href="classNL3D_1_1CMaterial.html#o3">_DstBlend</a>; +<a name="l00550"></a><a class="code" href="classNL3D_1_1CMaterial.html#o4">00550</a> <a class="code" href="classNL3D_1_1CMaterial.html#s64">ZFunc</a> <a class="code" href="classNL3D_1_1CMaterial.html#o4">_ZFunction</a>; +<a name="l00551"></a><a class="code" href="classNL3D_1_1CMaterial.html#o5">00551</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CMaterial.html#o5">_ZBias</a>; +<a name="l00552"></a><a class="code" href="classNL3D_1_1CMaterial.html#o6">00552</a> CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#o6">_Color</a>; +<a name="l00553"></a><a class="code" href="classNL3D_1_1CMaterial.html#o10">00553</a> CRGBA <a class="code" href="classNL3D_1_1CMaterial.html#o7">_Emissive</a>, <a class="code" href="classNL3D_1_1CMaterial.html#o8">_Ambient</a>, <a class="code" href="classNL3D_1_1CMaterial.html#o9">_Diffuse</a>, <a class="code" href="classNL3D_1_1CMaterial.html#o10">_Specular</a>; +<a name="l00554"></a><a class="code" href="classNL3D_1_1CMaterial.html#o11">00554</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CMaterial.html#o11">_Shininess</a>; +<a name="l00555"></a><a class="code" href="classNL3D_1_1CMaterial.html#o12">00555</a> <font class="keywordtype">float</font> <a class="code" href="classNL3D_1_1CMaterial.html#o12">_AlphaTestThreshold</a>; +<a name="l00556"></a><a class="code" href="classNL3D_1_1CMaterial.html#o13">00556</a> uint32 <a class="code" href="classNL3D_1_1CMaterial.html#o13">_Touched</a>; +<a name="l00557"></a><a class="code" href="classNL3D_1_1CMaterial.html#o14">00557</a> <font class="keywordtype">bool</font> <a class="code" href="classNL3D_1_1CMaterial.html#o14">_StainedGlassWindow</a>; <font class="comment">// \todo mb : clean this flag (add a CMaterialBuil class)</font> +<a name="l00558"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CUserTexMat.html">00558</a> <font class="keyword">struct </font>CUserTexMat +00559 { +<a name="l00560"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CUserTexMat.html#m0">00560</a> <a class="code" href="classNLMISC_1_1CMatrix.html">NLMISC::CMatrix</a> <a class="code" href="structNL3D_1_1CMaterial_1_1CUserTexMat.html#m0">TexMat</a>[<a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a>]; +00561 }; +<a name="l00562"></a><a class="code" href="classNL3D_1_1CMaterial.html#o15">00562</a> std::auto_ptr<CUserTexMat> <a class="code" href="classNL3D_1_1CMaterial.html#o15">_TexUserMat</a>; <font class="comment">// user texture matrix</font> +<a name="l00563"></a><a class="code" href="classNL3D_1_1CMaterial.html#o16">00563</a> CSmartPtr<ITexture> <a class="code" href="classNL3D_1_1CMaterial.html#o16">_Textures</a>[<a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a>]; +00564 +00565 <font class="keyword">public</font>: +00566 <font class="comment">// Private. For Driver only.</font> +<a name="l00567"></a><a class="code" href="classNL3D_1_1CMaterial.html#m0">00567</a> uint8 <a class="code" href="classNL3D_1_1CMaterial.html#m0">_TexAddrMode</a>[<a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a>]; <font class="comment">// texture addressing enum packed as bytes</font> +<a name="l00568"></a><a class="code" href="classNL3D_1_1CMaterial.html#m1">00568</a> CTexEnv <a class="code" href="classNL3D_1_1CMaterial.html#m1">_TexEnvs</a>[<a class="code" href="namespaceNL3D.html#a94">IDRV_MAT_MAXTEXTURES</a>]; +<a name="l00569"></a><a class="code" href="classNL3D_1_1CMaterial.html#m2">00569</a> CRefPtr<IShader> <a class="code" href="classNL3D_1_1CMaterial.html#m2">pShader</a>; +00570 +00571 <font class="comment">// Private. For Driver only. LightMaps.</font> +<a name="l00572"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html">00572</a> <font class="keyword">struct </font>CLightMap +00573 { +<a name="l00574"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#m0">00574</a> CSmartPtr<ITexture> <a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#m0">Texture</a>; +<a name="l00575"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#m1">00575</a> CRGBA <a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#m1">Factor</a>; +<a name="l00576"></a><a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#a0">00576</a> <a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#a0">CLightMap</a>() +00577 { +00578 <a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#m1">Factor</a>.set(255, 255, 255, 255); +00579 } +00580 +00581 <font class="keywordtype">void</font> <a class="code" href="structNL3D_1_1CMaterial_1_1CLightMap.html#a1">serial</a>(<a class="code" href="classNLMISC_1_1IStream.html">NLMISC::IStream</a> &f); +00582 }; +<a name="l00583"></a><a class="code" href="classNL3D_1_1CMaterial.html#s0">00583</a> <font class="keyword">typedef</font> std::vector<CLightMap> <a class="code" href="classNL3D_1_1CMaterial.html#s0">TTexturePtrs</a>; +<a name="l00584"></a><a class="code" href="classNL3D_1_1CMaterial.html#m3">00584</a> <a class="code" href="classNL3D_1_1CMaterial.html#s0">TTexturePtrs</a> <a class="code" href="classNL3D_1_1CMaterial.html#m3">_LightMaps</a>; +00585 +00586 +<a name="l00587"></a><a class="code" href="classNL3D_1_1CMaterial.html#a6">00587</a> uint32 <a class="code" href="classNL3D_1_1CMaterial.html#a6">getFlags</a>()<font class="keyword"> const </font>{<font class="keywordflow">return</font> <a class="code" href="classNL3D_1_1CMaterial.html#o1">_Flags</a>;} +<a name="l00588"></a><a class="code" href="classNL3D_1_1CMaterial.html#a7">00588</a> uint32 <a class="code" href="classNL3D_1_1CMaterial.html#a7">getTouched</a>(<font class="keywordtype">void</font>) <font class="keyword">const</font> { <font class="keywordflow">return</font>(_Touched); } +<a name="l00589"></a><a class="code" href="classNL3D_1_1CMaterial.html#a8">00589</a> <font class="keywordtype">void</font> <a class="code" href="classNL3D_1_1CMaterial.html#a8">clearTouched</a>(uint32 flag) { <a class="code" href="classNL3D_1_1CMaterial.html#o13">_Touched</a>&=~flag; } +00590 +00591 +00592 +00593 }; +00594 +00595 } <font class="comment">// NL3D</font> +00596 +00597 <font class="preprocessor">#include "<a class="code" href="driver__material__inline_8h.html">3d/driver_material_inline.h</a>"</font> +00598 +00599 <font class="preprocessor">#endif // NL_MATERIAL_H</font> +00600 <font class="preprocessor"></font> +00601 <font class="comment">/* End of material.h */</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> |