diff options
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a06520.html | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a06520.html b/docs/doxygen/nel/a06520.html new file mode 100644 index 00000000..94cbb23f --- /dev/null +++ b/docs/doxygen/nel/a06520.html @@ -0,0 +1,245 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>NeL: texture_far.h Source File</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.3.6 --> +<div class="qindex"> <form class="search" action="search.php" method="get"> +<a class="qindex" href="main.html">Main 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">Data Structures</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">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>texture_far.h</h1><a href="a05097.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 +00007 <span class="comment">/* Copyright, 2000 Nevrax Ltd.</span> +00008 <span class="comment"> *</span> +00009 <span class="comment"> * This file is part of NEVRAX NEL.</span> +00010 <span class="comment"> * NEVRAX NEL is free software; you can redistribute it and/or modify</span> +00011 <span class="comment"> * it under the terms of the GNU General Public License as published by</span> +00012 <span class="comment"> * the Free Software Foundation; either version 2, or (at your option)</span> +00013 <span class="comment"> * any later version.</span> +00014 <span class="comment"></span> +00015 <span class="comment"> * NEVRAX NEL is distributed in the hope that it will be useful, but</span> +00016 <span class="comment"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span> +00017 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span> +00018 <span class="comment"> * General Public License for more details.</span> +00019 <span class="comment"></span> +00020 <span class="comment"> * You should have received a copy of the GNU General Public License</span> +00021 <span class="comment"> * along with NEVRAX NEL; see the file COPYING. If not, write to the</span> +00022 <span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,</span> +00023 <span class="comment"> * MA 02111-1307, USA.</span> +00024 <span class="comment"> */</span> +00025 +00026 <span class="preprocessor">#ifndef NL_TEXTURE_FAR_H</span> +00027 <span class="preprocessor"></span><span class="preprocessor">#define NL_TEXTURE_FAR_H</span> +00028 <span class="preprocessor"></span> +00029 <span class="preprocessor">#include "<a class="code" href="a05167.html">nel/misc/types_nl.h</a>"</span> +00030 <span class="preprocessor">#include "<a class="code" href="a04897.html">nel/misc/rect.h</a>"</span> +00031 <span class="preprocessor">#include "<a class="code" href="a05083.html">3d/texture.h</a>"</span> +00032 <span class="preprocessor">#include "<a class="code" href="a05120.html">3d/tile_far_bank.h</a>"</span> +00033 +00034 <span class="comment">/* NB: those Values work only if NL_MAX_TILES_BY_PATCH_EDGE is 16.</span> +00035 <span class="comment"> asserted in the cpp.</span> +00036 <span class="comment"> Else must change NL_MAX_FAR_PATCH_EDGE, NL_NUM_FAR_PATCH_EDGE_LEVEL, and NL_NUM_FAR_RECTANGLE_RATIO</span> +00037 <span class="comment">*/</span> +00038 +00039 <span class="comment">// The number of different Level to allocate. only possible to allocate 16, 8, 4 or 2 tiles patch (1x? is impossible)</span> +<a name="l00040"></a><a class="code" href="a05097.html#a0">00040</a> <span class="preprocessor">#define NL_NUM_FAR_PATCH_EDGE_LEVEL (4+NL_NUM_PIXELS_ON_FAR_TILE_EDGE_SHIFT)</span> +00041 <span class="preprocessor"></span> +00042 <span class="comment">// Define the max number of pixel per edge for a far texture </span> +<a name="l00043"></a><a class="code" href="a05097.html#a1">00043</a> <span class="preprocessor">#define NL_MAX_FAR_PATCH_EDGE (16*NL_NUM_PIXELS_ON_FAR_TILE_EDGE) // Max is 16x16 tiles for 4 pix/tiles.</span> +00044 <span class="preprocessor"></span> +00045 <span class="comment">// Define the min number of pixel per edge for a far texture </span> +<a name="l00046"></a><a class="code" href="a05097.html#a2">00046</a> <span class="preprocessor">#define NL_MIN_FAR_PATCH_EDGE 2 // Min is 2x2 tiles for 1 pix/tile</span> +00047 <span class="preprocessor"></span> +00048 <span class="comment">// The max Difference of level between Height and Width</span> +<a name="l00049"></a><a class="code" href="a05097.html#a3">00049</a> <span class="preprocessor">#define NL_NUM_FAR_RECTANGLE_RATIO 4 // 16x16, 16x8, 16x4, 16x2</span> +<a name="l00050"></a><a class="code" href="a05097.html#a4">00050</a> <span class="preprocessor"></span><span class="preprocessor">#define NL_MAX_FAR_RECTANGLE_RATIO_SHIFT (NL_NUM_RECTANGLE_ASPECT_RATIO-1)</span> +<a name="l00051"></a><a class="code" href="a05097.html#a5">00051</a> <span class="preprocessor"></span><span class="preprocessor">#define NL_MAX_FAR_RECTANGLE_RATIO (1<<NL_MAX_RECTANGLE_RATIO_SHIFT) // Max is 16 tiles fo 2 tiles => 8.</span> +00052 <span class="preprocessor"></span> +00053 <span class="comment">// The number of Square of MaxFarEdge.</span> +<a name="l00054"></a><a class="code" href="a05097.html#a6">00054</a> <span class="preprocessor">#define NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE 8</span> +<a name="l00055"></a><a class="code" href="a05097.html#a7">00055</a> <span class="preprocessor"></span><span class="preprocessor">#define NL_NUM_FAR_BIGGEST_PATCH_PER_TEXTURE (NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE*NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE)</span> +00056 <span class="preprocessor"></span> +00057 <span class="comment">// The size of the texture. 8*64 => textureFar of 512*512.</span> +<a name="l00058"></a><a class="code" href="a05097.html#a8">00058</a> <span class="preprocessor">#define NL_FAR_TEXTURE_EDGE_SIZE (NL_MAX_FAR_PATCH_EDGE*NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE)</span> +00059 <span class="preprocessor"></span> +00060 +00061 <span class="keyword">namespace </span>NLMISC +00062 { +00063 <span class="keyword">class </span><a class="code" href="a03337.html">CRGBA</a>; +00064 } +00065 +00066 <span class="keyword">namespace </span>NL3D +00067 { +00068 +00069 <span class="keyword">class </span>CPatch; +00070 <span class="keyword">class </span>CTileFarBank; +00071 <span class="keyword">class </span><a class="code" href="a03520.html">CTileColor</a>; +00072 +<a name="l00085"></a><a class="code" href="a03498.html">00085</a> <span class="keyword">class </span><a class="code" href="a03498.html">CTextureFar</a> : <span class="keyword">public</span> <a class="code" href="a03487.html">ITexture</a> +00086 { +00087 <span class="keyword">public</span>: +00089 <a class="code" href="a03498.html#NL3D_1_1CTextureFara8">CTextureFar</a>(); +00090 <span class="keyword">virtual</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara60">~CTextureFar</a>(); +00091 +00092 +00098 <a class="code" href="a04558.html#a14">sint</a> <a class="code" href="a03498.html#NL3D_1_1CTextureFara55">tryAllocatePatch</a> (<a class="code" href="a03057.html">CPatch</a> *pPatch, <a class="code" href="a04558.html#a15">uint</a> farIndex); +00099 +00100 +00111 <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara0">allocatePatch</a> (<a class="code" href="a03057.html">CPatch</a> *pPatch, <a class="code" href="a04558.html#a15">uint</a> farIndex, <span class="keywordtype">float</span>& farUScale, <span class="keywordtype">float</span>& farVScale, <span class="keywordtype">float</span>& farUBias, <span class="keywordtype">float</span>& farVBias, <span class="keywordtype">bool</span>& bRot); +00112 +00116 <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara37">removePatch</a> (<a class="code" href="a03057.html">CPatch</a> *pPatch, <a class="code" href="a04558.html#a15">uint</a> farIndex); +00117 +00123 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara9">doGenerate</a>(<span class="keywordtype">bool</span> async = <span class="keyword">false</span>); +00124 +00129 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a03498.html#NL3D_1_1CTextureFara53">touchPatchULAndNext</a>(); +00130 <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara49">startPatchULTouch</a>(); +00131 <span class="keywordtype">bool</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara10">endPatchULTouch</a>() <span class="keyword">const</span>; +00132 +00133 +00135 <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara30">linkBeforeUL</a>(<a class="code" href="a03498.html">CTextureFar</a> *textNext); +00137 <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFara56">unlinkUL</a>(); +<a name="l00139"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFara18">00139</a> <a class="code" href="a03498.html">CTextureFar</a> *<a class="code" href="a03498.html#NL3D_1_1CTextureFara18">getNextUL</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFarr4">_ULNext</a>;} +00140 +00141 +<a name="l00143"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFaro0">00143</a> <a class="code" href="a03524.html">CTileFarBank</a>* <a class="code" href="a03498.html#NL3D_1_1CTextureFaro0">_Bank</a>; +00144 +00145 +00146 <span class="keyword">private</span>: +00147 +<a name="l00148"></a><a class="code" href="a03499.html">00148</a> <span class="keyword">struct </span><a class="code" href="a03499.html">CPatchIdent</a> +00149 { +<a name="l00150"></a><a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdento1">00150</a> <a class="code" href="a03057.html">CPatch</a> *Patch; +<a name="l00151"></a><a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdento0">00151</a> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdento0">FarIndex</a>; +00152 +<a name="l00153"></a><a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdenta0">00153</a> <span class="keywordtype">bool</span> <a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdenta0">operator < </a>(<span class="keyword">const</span> <a class="code" href="a03499.html">CPatchIdent</a> &rhs)<span class="keyword"> const</span> +00154 <span class="keyword"> </span>{ +00155 <span class="keywordflow">return</span> (Patch != rhs.<a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdento1">Patch</a>) ? Patch < rhs.<a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdento1">Patch</a> : <a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdento0">FarIndex</a> < rhs.<a class="code" href="a03499.html#NL3D_1_1CTextureFar_1_1CPatchIdento0">FarIndex</a>; +00156 } +00157 }; +00158 +<a name="l00159"></a><a class="code" href="a03500.html">00159</a> <span class="keyword">struct </span><a class="code" href="a03500.html">CVector2s</a> +00160 { +<a name="l00161"></a><a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2so1">00161</a> <a class="code" href="a04558.html#a9">uint16</a> <a class="code" href="a04223.html#a572">x</a>, <a class="code" href="a04223.html#a573">y</a>; +00162 +<a name="l00163"></a><a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2sa1">00163</a> <a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2sa1">CVector2s</a>() {} +<a name="l00164"></a><a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2sa0">00164</a> <a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2sa1">CVector2s</a>(<a class="code" href="a04558.html#a9">uint16</a> _x, <a class="code" href="a04558.html#a9">uint16</a> _y) {<a class="code" href="a04223.html#a572">x</a>= _x; <a class="code" href="a04223.html#a573">y</a>= _y;} +00165 +<a name="l00166"></a><a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2sa2">00166</a> <span class="keywordtype">bool</span> <a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2sa2">operator < </a>(<span class="keyword">const</span> <a class="code" href="a03500.html">CVector2s</a> &rhs)<span class="keyword"> const</span> +00167 <span class="keyword"> </span>{ +00168 <span class="keywordflow">return</span> (<a class="code" href="a04223.html#a572">x</a> != rhs.<a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2so0">x</a>) ? <a class="code" href="a04223.html#a572">x</a> < rhs.<a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2so0">x</a> : <a class="code" href="a04223.html#a573">y</a> < rhs.<a class="code" href="a03500.html#NL3D_1_1CTextureFar_1_1CVector2so1">y</a>; +00169 } +00170 }; +00171 +<a name="l00176"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFary0">00176</a> <span class="keyword">typedef</span> std::map<CPatchIdent, CVector2s> <a class="code" href="a03498.html#NL3D_1_1CTextureFary0">TPatchToPosMap</a>; +<a name="l00177"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFary1">00177</a> <span class="keyword">typedef</span> std::map<CVector2s, CPatchIdent> <a class="code" href="a03498.html#NL3D_1_1CTextureFary1">TPosToPatchMap</a>; +<a name="l00178"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFarr2">00178</a> <a class="code" href="a03498.html#NL3D_1_1CTextureFary0">TPatchToPosMap</a> <a class="code" href="a03498.html#NL3D_1_1CTextureFarr2">_PatchToPosMap</a>; +<a name="l00179"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFarr3">00179</a> <a class="code" href="a03498.html#NL3D_1_1CTextureFary1">TPosToPatchMap</a> <a class="code" href="a03498.html#NL3D_1_1CTextureFarr3">_PosToPatchMap</a>; +00180 +<a name="l00183"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFarr0">00183</a> std::list<CVector2s> <a class="code" href="a03498.html#NL3D_1_1CTextureFarr0">_FreeSpaces</a>[<a class="code" href="a05097.html#a0">NL_NUM_FAR_PATCH_EDGE_LEVEL</a> * <a class="code" href="a05097.html#a3">NL_NUM_FAR_RECTANGLE_RATIO</a>]; +00184 +00185 +00186 <span class="comment">// allocate search</span> +00187 <span class="keywordtype">bool</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFard1">getUpperSize</a>(<a class="code" href="a04558.html#a15">uint</a> &<a class="code" href="a04223.html#a632">width</a>, <a class="code" href="a04558.html#a15">uint</a> &<a class="code" href="a04223.html#a633">height</a>); +00188 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a03498.html#NL3D_1_1CTextureFard0">getFreeListId</a>(<a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a632">width</a>, <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a633">height</a>); +00189 <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFard4">recursSplitNext</a>(<a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a632">width</a>, <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a633">height</a>); +00190 +00194 <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFard3">rebuildPatch</a> (<span class="keyword">const</span> <a class="code" href="a03500.html">CVector2s</a> texturePos, <span class="keyword">const</span> <a class="code" href="a03499.html">CPatchIdent</a> &pid); +00195 +<a name="l00197"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFard5">00197</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a03498.html#NL3D_1_1CTextureFard5">serial</a>(<a class="code" href="a02270.html">NLMISC::IStream</a> &f) <span class="keywordflow">throw</span>(<a class="code" href="a03781.html">NLMISC::EStream</a>) {}; +00198 +00199 <span class="comment">// Some static buffers</span> +00200 <span class="keyword">static</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a> _LightmapExpanded[]; +00201 <span class="keyword">static</span> <a class="code" href="a04558.html#a7">uint8</a> _LumelExpanded[]; +00202 <span class="keyword">static</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a> _TileTLIColors[]; +00203 +00204 <a class="code" href="a03498.html#NL3D_1_1CTextureFard2">NLMISC_DECLARE_CLASS</a>(<a class="code" href="a03498.html">CTextureFar</a>); +00205 +<a name="l00207"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFarr5">00207</a> <a class="code" href="a03498.html">CTextureFar</a> *<a class="code" href="a03498.html#NL3D_1_1CTextureFarr5">_ULPrec</a>; +<a name="l00208"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFarr4">00208</a> <a class="code" href="a03498.html">CTextureFar</a> *<a class="code" href="a03498.html#NL3D_1_1CTextureFarr4">_ULNext</a>; +00209 <span class="comment">// Iterator to the next patch to update.</span> +<a name="l00210"></a><a class="code" href="a03498.html#NL3D_1_1CTextureFarr1">00210</a> TPatchToPosMap::iterator <a class="code" href="a03498.html#NL3D_1_1CTextureFarr1">_ItULPatch</a>; +00211 +00212 }; +00213 +00214 } <span class="comment">// NL3D</span> +00215 +00216 <span class="comment">// For NL3D_drawFarTileInFarTexture external call</span> +<a name="l00217"></a><a class="code" href="a03890.html">00217</a> <span class="keyword">struct </span><a class="code" href="a03890.html">NL3D_CComputeTileFar</a> +00218 { +00219 <span class="keyword">public</span>: +00220 <span class="comment">// TileFar pixels</span> +<a name="l00221"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro8">00221</a> <span class="keyword">const</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a>* <a class="code" href="a03890.html#NL3D__CComputeTileFaro8">SrcDiffusePixels</a>; +00222 +00223 <span class="comment">// TileFar pixels</span> +<a name="l00224"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro5">00224</a> <span class="keyword">const</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a>* <a class="code" href="a03890.html#NL3D__CComputeTileFaro5">SrcAdditivePixels</a>; +00225 +00226 <span class="comment">// Source deltaY</span> +<a name="l00227"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">00227</a> <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>; +00228 +00229 <span class="comment">// Source deltaY</span> +<a name="l00230"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro7">00230</a> <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>; +00231 +00232 <span class="comment">// Source lighting</span> +<a name="l00233"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro10">00233</a> <span class="keyword">const</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a>* <a class="code" href="a03890.html#NL3D__CComputeTileFaro10">SrcLightingPixels</a>; +00234 +00235 <span class="comment">// Delta Y for lighting</span> +<a name="l00236"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro9">00236</a> <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>; +00237 +00238 <span class="comment">// TileFar pixels</span> +<a name="l00239"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro3">00239</a> <a class="code" href="a03337.html">NLMISC::CRGBA</a>* <a class="code" href="a03890.html#NL3D__CComputeTileFaro3">DstPixels</a>; +00240 +00241 <span class="comment">// Destination deltaX</span> +<a name="l00242"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro1">00242</a> <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>; +00243 +00244 <span class="comment">// Destination deltaY</span> +<a name="l00245"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro2">00245</a> <a class="code" href="a04558.html#a10">sint32</a> <a class="code" href="a03890.html#NL3D__CComputeTileFaro2">DstDeltaY</a>; +00246 +00247 <span class="comment">// Size</span> +<a name="l00248"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro4">00248</a> <a class="code" href="a04558.html#a10">sint32</a> Size; +00249 +00250 <span class="comment">// Can the compute be done in MMX</span> +<a name="l00251"></a><a class="code" href="a03890.html#NL3D__CComputeTileFaro0">00251</a> <span class="keywordtype">bool</span> <a class="code" href="a03890.html#NL3D__CComputeTileFaro0">AsmMMX</a>; +00252 }; +00253 +00254 <span class="comment">// For NL3D_expandLightmap external call</span> +<a name="l00255"></a><a class="code" href="a03891.html">00255</a> <span class="keyword">struct </span><a class="code" href="a03891.html">NL3D_CExpandLightmap</a> +00256 { +00257 <span class="keyword">public</span>: +00258 <span class="comment">// CTileColor array.</span> +<a name="l00259"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo0">00259</a> <span class="keyword">const</span> <a class="code" href="a03520.html">NL3D::CTileColor</a>* <a class="code" href="a03891.html#NL3D__CExpandLightmapo0">ColorTile</a>; +00260 <span class="comment">// TLI Color array.</span> +<a name="l00261"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo6">00261</a> <span class="keyword">const</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a>* <a class="code" href="a03891.html#NL3D__CExpandLightmapo6">TLIColor</a>; +00262 +00263 <span class="comment">// Lumel array. 4x4 lumels by tile.</span> +<a name="l00264"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo3">00264</a> <span class="keyword">const</span> <a class="code" href="a04558.html#a7">uint8</a>* <a class="code" href="a03891.html#NL3D__CExpandLightmapo3">LumelTile</a>; +00265 +00266 <span class="comment">// Width of the array</span> +<a name="l00267"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo7">00267</a> <a class="code" href="a04558.html#a11">uint32</a> Width; +00268 +00269 <span class="comment">// Height of the array</span> +<a name="l00270"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo2">00270</a> <a class="code" href="a04558.html#a11">uint32</a> Height; +00271 +00272 <span class="comment">// Mul factor for the size (1, 2 or 4)</span> +<a name="l00273"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo4">00273</a> <a class="code" href="a04558.html#a11">uint32</a> <a class="code" href="a03891.html#NL3D__CExpandLightmapo4">MulFactor</a>; +00274 +00275 <span class="comment">// Static light color</span> +<a name="l00276"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo5">00276</a> <span class="keyword">const</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a>* <a class="code" href="a03891.html#NL3D__CExpandLightmapo5">StaticLightColor</a>; +00277 +00278 <span class="comment">// Destination array</span> +<a name="l00279"></a><a class="code" href="a03891.html#NL3D__CExpandLightmapo1">00279</a> <a class="code" href="a03337.html">NLMISC::CRGBA</a>* DstPixels; +00280 }; +00281 +00282 <span class="comment">// Extern ASM functions</span> +00283 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> <span class="keywordtype">void</span> <a class="code" href="a05097.html#a9">NL3D_expandLightmap</a> (<span class="keyword">const</span> <a class="code" href="a03891.html">NL3D_CExpandLightmap</a>* pLightmap); +00284 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> <span class="keywordtype">void</span> <a class="code" href="a05097.html#a10">NL3D_drawFarTileInFarTexture</a> (<span class="keyword">const</span> <a class="code" href="a03890.html">NL3D_CComputeTileFar</a>* pTileFar); +00285 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> <span class="keywordtype">void</span> <a class="code" href="a05097.html#a11">NL3D_drawFarTileInFarTextureAdditive</a> (<span class="keyword">const</span> <a class="code" href="a03890.html">NL3D_CComputeTileFar</a>* pTileFar); +00286 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> <span class="keywordtype">void</span> <a class="code" href="a05097.html#a12">NL3D_drawFarTileInFarTextureAlpha</a> (<span class="keyword">const</span> <a class="code" href="a03890.html">NL3D_CComputeTileFar</a>* pTileFar); +00287 <span class="keyword">extern</span> <span class="stringliteral">"C"</span> <span class="keywordtype">void</span> <a class="code" href="a05097.html#a13">NL3D_drawFarTileInFarTextureAdditiveAlpha</a> (<span class="keyword">const</span> <a class="code" href="a03890.html">NL3D_CComputeTileFar</a>* pTileFar); +00288 +00289 <span class="preprocessor">#endif // NL_TEXTURE_FAR_H</span> +00290 <span class="preprocessor"></span> +00291 <span class="comment">/* End of texture_far.h */</span> +</pre></div><hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:40:43 2004 for NeL by +<a href="http://www.doxygen.org/index.html"> +<img src="doxygen.png" alt="doxygen" align="middle" border=0 > +</a>1.3.6 </small></address> +</body> +</html> |