aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a05097.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a05097.html')
-rw-r--r--docs/doxygen/nel/a05097.html1076
1 files changed, 1076 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a05097.html b/docs/doxygen/nel/a05097.html
new file mode 100644
index 00000000..89703087
--- /dev/null
+++ b/docs/doxygen/nel/a05097.html
@@ -0,0 +1,1076 @@
+<!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 File Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>texture_far.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
+<dl compact><dt><b>Id</b></dt><dd><a class="el" href="a05097.html">texture_far.h</a>,v 1.9 2003/09/26 14:25:33 lecroart Exp </dd></dl>
+
+<p>
+Definition in file <a class="el" href="a06520.html">texture_far.h</a>.
+<p>
+<code>#include "<a class="el" href="a06590.html">nel/misc/types_nl.h</a>"</code><br>
+<code>#include "<a class="el" href="a06320.html">nel/misc/rect.h</a>"</code><br>
+<code>#include "<a class="el" href="a06506.html">3d/texture.h</a>"</code><br>
+<code>#include "<a class="el" href="a06543.html">3d/tile_far_bank.h</a>"</code><br>
+
+<p>
+<a href="a06520.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Namespaces</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>namespace &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05363.html">NL3D</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>namespace &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05378.html">NLMISC</a></td></tr>
+
+<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03890.html">NL3D_CComputeTileFar</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>struct &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03891.html">NL3D_CExpandLightmap</a></td></tr>
+
+<tr><td colspan=2><br><h2>Defines</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a8">NL_FAR_TEXTURE_EDGE_SIZE</a>&nbsp;&nbsp;&nbsp;(NL_MAX_FAR_PATCH_EDGE*NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a1">NL_MAX_FAR_PATCH_EDGE</a>&nbsp;&nbsp;&nbsp;(16*NL_NUM_PIXELS_ON_FAR_TILE_EDGE)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a5">NL_MAX_FAR_RECTANGLE_RATIO</a>&nbsp;&nbsp;&nbsp;(1&lt;&lt;NL_MAX_RECTANGLE_RATIO_SHIFT)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a4">NL_MAX_FAR_RECTANGLE_RATIO_SHIFT</a>&nbsp;&nbsp;&nbsp;(NL_NUM_RECTANGLE_ASPECT_RATIO-1)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a2">NL_MIN_FAR_PATCH_EDGE</a>&nbsp;&nbsp;&nbsp;2</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a6">NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE</a>&nbsp;&nbsp;&nbsp;8</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a7">NL_NUM_FAR_BIGGEST_PATCH_PER_TEXTURE</a>&nbsp;&nbsp;&nbsp;(NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE*NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a0">NL_NUM_FAR_PATCH_EDGE_LEVEL</a>&nbsp;&nbsp;&nbsp;(4+NL_NUM_PIXELS_ON_FAR_TILE_EDGE_SHIFT)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>#define&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a3">NL_NUM_FAR_RECTANGLE_RATIO</a>&nbsp;&nbsp;&nbsp;4</td></tr>
+
+<tr><td colspan=2><br><h2>Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a10">NL3D_drawFarTileInFarTexture</a> (const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *pTileFar)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a11">NL3D_drawFarTileInFarTextureAdditive</a> (const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *pTileFar)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a13">NL3D_drawFarTileInFarTextureAdditiveAlpha</a> (const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *pTileFar)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a12">NL3D_drawFarTileInFarTextureAlpha</a> (const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *pTileFar)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a9">NL3D_expandLightmap</a> (const <a class="el" href="a03891.html">NL3D_CExpandLightmap</a> *pLightmap)</td></tr>
+
+</table>
+<hr><h2>Define Documentation</h2>
+<a class="anchor" name="a8" doxytag="texture_far.h::NL_FAR_TEXTURE_EDGE_SIZE" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_FAR_TEXTURE_EDGE_SIZE&nbsp;&nbsp;&nbsp;(NL_MAX_FAR_PATCH_EDGE*NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00058">58</a> of file <a class="el" href="a06520.html">texture_far.h</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00276">NL3D::CTextureFar::allocatePatch()</a>, and <a class="el" href="a06519.html#l00420">NL3D::CTextureFar::doGenerate()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a1" doxytag="texture_far.h::NL_MAX_FAR_PATCH_EDGE" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_MAX_FAR_PATCH_EDGE&nbsp;&nbsp;&nbsp;(16*NL_NUM_PIXELS_ON_FAR_TILE_EDGE)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00043">43</a> of file <a class="el" href="a06520.html">texture_far.h</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00048">NL3D::CTextureFar::CTextureFar()</a>, <a class="el" href="a06519.html#l00128">NL3D::CTextureFar::getFreeListId()</a>, and <a class="el" href="a06519.html#l00148">NL3D::CTextureFar::getUpperSize()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a5" doxytag="texture_far.h::NL_MAX_FAR_RECTANGLE_RATIO" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_MAX_FAR_RECTANGLE_RATIO&nbsp;&nbsp;&nbsp;(1&lt;&lt;NL_MAX_RECTANGLE_RATIO_SHIFT)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00051">51</a> of file <a class="el" href="a06520.html">texture_far.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a4" doxytag="texture_far.h::NL_MAX_FAR_RECTANGLE_RATIO_SHIFT" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_MAX_FAR_RECTANGLE_RATIO_SHIFT&nbsp;&nbsp;&nbsp;(NL_NUM_RECTANGLE_ASPECT_RATIO-1)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00050">50</a> of file <a class="el" href="a06520.html">texture_far.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a2" doxytag="texture_far.h::NL_MIN_FAR_PATCH_EDGE" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_MIN_FAR_PATCH_EDGE&nbsp;&nbsp;&nbsp;2
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00046">46</a> of file <a class="el" href="a06520.html">texture_far.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a6" doxytag="texture_far.h::NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE&nbsp;&nbsp;&nbsp;8
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00054">54</a> of file <a class="el" href="a06520.html">texture_far.h</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00048">NL3D::CTextureFar::CTextureFar()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a7" doxytag="texture_far.h::NL_NUM_FAR_BIGGEST_PATCH_PER_TEXTURE" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_NUM_FAR_BIGGEST_PATCH_PER_TEXTURE&nbsp;&nbsp;&nbsp;(NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE*NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00055">55</a> of file <a class="el" href="a06520.html">texture_far.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a0" doxytag="texture_far.h::NL_NUM_FAR_PATCH_EDGE_LEVEL" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_NUM_FAR_PATCH_EDGE_LEVEL&nbsp;&nbsp;&nbsp;(4+NL_NUM_PIXELS_ON_FAR_TILE_EDGE_SHIFT)
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00040">40</a> of file <a class="el" href="a06520.html">texture_far.h</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00128">NL3D::CTextureFar::getFreeListId()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="a3" doxytag="texture_far.h::NL_NUM_FAR_RECTANGLE_RATIO" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> #define NL_NUM_FAR_RECTANGLE_RATIO&nbsp;&nbsp;&nbsp;4
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06520.html#l00049">49</a> of file <a class="el" href="a06520.html">texture_far.h</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00128">NL3D::CTextureFar::getFreeListId()</a>. </td>
+ </tr>
+</table>
+<hr><h2>Function Documentation</h2>
+<a class="anchor" name="a10" doxytag="texture_far.h::NL3D_drawFarTileInFarTexture" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D_drawFarTileInFarTexture </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06519.html#l01853">1853</a> of file <a class="el" href="a06519.html">texture_far.cpp</a>.
+<p>
+References <a class="el" href="a06520.html#l00251">NL3D_CComputeTileFar::AsmMMX</a>, <a class="el" href="a06340.html#l00338">NLMISC::CRGBA::B</a>, <a class="el" href="a06520.html#l00242">NL3D_CComputeTileFar::DstDeltaX</a>, <a class="el" href="a06520.html#l00245">NL3D_CComputeTileFar::DstDeltaY</a>, <a class="el" href="a06520.html#l00239">NL3D_CComputeTileFar::DstPixels</a>, <a class="el" href="a06340.html#l00336">NLMISC::CRGBA::G</a>, <a class="el" href="a06519.html#l01338">NL3D_asmEndMMX()</a>, <a class="el" href="a06519.html#l01841">NL3D_asmModulateLineColors()</a>, <a class="el" href="a06340.html#l00334">NLMISC::CRGBA::R</a>, <a class="el" href="a06520.html#l00248">NL3D_CComputeTileFar::Size</a>, <a class="el" href="a06520.html#l00227">NL3D_CComputeTileFar::SrcDeltaX</a>, <a class="el" href="a06520.html#l00230">NL3D_CComputeTileFar::SrcDeltaY</a>, <a class="el" href="a06520.html#l00221">NL3D_CComputeTileFar::SrcDiffusePixels</a>, <a class="el" href="a06520.html#l00236">NL3D_CComputeTileFar::SrcLightingDeltaY</a>, <a class="el" href="a06520.html#l00233">NL3D_CComputeTileFar::SrcLightingPixels</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a05646.html#l00236">x</a>, and <a class="el" href="a05646.html#l00236">y</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00465">NL3D::CTextureFar::rebuildPatch()</a>.
+<p>
+<div class="fragment"><pre>01854 {
+01855 <span class="comment">// Pointer of the Src diffuse pixels</span>
+01856 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro8">SrcDiffusePixels</a>;
+01857
+01858 <span class="comment">// Pointer of the Dst pixels</span>
+01859 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro10">SrcLightingPixels</a>;
+01860
+01861 <span class="comment">// Pointer of the Dst pixels</span>
+01862 <a class="code" href="a03337.html">CRGBA</a>* pDstPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro3">DstPixels</a>;
+01863
+01864 <span class="comment">// For each pixels</span>
+01865 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a572">x</a>, <a class="code" href="a04223.html#a573">y</a>;
+01866 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a573">y</a>=0; <a class="code" href="a04223.html#a573">y</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a573">y</a>++)
+01867 {
+01868 <span class="comment">// MMX implementation</span>
+01869 <span class="comment">//---------</span>
+01870 <span class="keywordflow">if</span>(pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro0">AsmMMX</a>)
+01871 {
+01872 <a class="code" href="a05096.html#a8">NL3D_asmModulateLineColors</a>(pDstPixels, pSrcPixels, pSrcLightPixels,
+01873 pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>, pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>, pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>);
+01874 }
+01875 <span class="comment">// C Implementation.</span>
+01876 <span class="comment">//---------</span>
+01877 <span class="keywordflow">else</span>
+01878 {
+01879 <span class="comment">// Pointer of the source line</span>
+01880 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLine=pSrcPixels;
+01881
+01882 <span class="comment">// Pointer of the source lighting line</span>
+01883 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightingLine=pSrcLightPixels;
+01884
+01885 <span class="comment">// Pointer of the destination line</span>
+01886 <a class="code" href="a03337.html">CRGBA</a>* pDstLine=pDstPixels;
+01887
+01888 <span class="comment">// For each pixels on the line</span>
+01889 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a572">x</a>=0; <a class="code" href="a04223.html#a572">x</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a572">x</a>++)
+01890 {
+01891 <span class="comment">// Read and write a pixel</span>
+01892 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>=(<a class="code" href="a04558.html#a7">uint8</a>)(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)&gt;&gt;8);
+01893 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>=(<a class="code" href="a04558.html#a7">uint8</a>)(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)&gt;&gt;8);
+01894 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>=(<a class="code" href="a04558.html#a7">uint8</a>)(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)&gt;&gt;8);
+01895
+01896 <span class="comment">// Next pixel</span>
+01897 pSrcLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>;
+01898 pSrcLightingLine++;
+01899 pDstLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>;
+01900 }
+01901 }
+01902
+01903 <span class="comment">// Next line</span>
+01904 pSrcPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>;
+01905 pSrcLightPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>;
+01906 pDstPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro2">DstDeltaY</a>;
+01907 }
+01908
+01909 <span class="comment">// stop MMX if used</span>
+01910 <span class="keywordflow">if</span>(pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro0">AsmMMX</a>)
+01911 <a class="code" href="a05096.html#a0">NL3D_asmEndMMX</a>();
+01912 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a11" doxytag="texture_far.h::NL3D_drawFarTileInFarTextureAdditive" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D_drawFarTileInFarTextureAdditive </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06519.html#l01983">1983</a> of file <a class="el" href="a06519.html">texture_far.cpp</a>.
+<p>
+References <a class="el" href="a06340.html#l00338">NLMISC::CRGBA::B</a>, <a class="el" href="a06520.html#l00242">NL3D_CComputeTileFar::DstDeltaX</a>, <a class="el" href="a06520.html#l00245">NL3D_CComputeTileFar::DstDeltaY</a>, <a class="el" href="a06520.html#l00239">NL3D_CComputeTileFar::DstPixels</a>, <a class="el" href="a06340.html#l00336">NLMISC::CRGBA::G</a>, <a class="el" href="a06340.html#l00334">NLMISC::CRGBA::R</a>, <a class="el" href="a06520.html#l00248">NL3D_CComputeTileFar::Size</a>, <a class="el" href="a06520.html#l00224">NL3D_CComputeTileFar::SrcAdditivePixels</a>, <a class="el" href="a06520.html#l00227">NL3D_CComputeTileFar::SrcDeltaX</a>, <a class="el" href="a06520.html#l00230">NL3D_CComputeTileFar::SrcDeltaY</a>, <a class="el" href="a06520.html#l00221">NL3D_CComputeTileFar::SrcDiffusePixels</a>, <a class="el" href="a06520.html#l00236">NL3D_CComputeTileFar::SrcLightingDeltaY</a>, <a class="el" href="a06520.html#l00233">NL3D_CComputeTileFar::SrcLightingPixels</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a05646.html#l00236">x</a>, and <a class="el" href="a05646.html#l00236">y</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00465">NL3D::CTextureFar::rebuildPatch()</a>.
+<p>
+<div class="fragment"><pre>01984 {
+01985 <span class="comment">// Pointer of the Src diffuse pixels</span>
+01986 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro8">SrcDiffusePixels</a>;
+01987
+01988 <span class="comment">// Pointer of the Src additive pixels</span>
+01989 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcAddPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro5">SrcAdditivePixels</a>;
+01990
+01991 <span class="comment">// Pointer of the Dst pixels</span>
+01992 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro10">SrcLightingPixels</a>;
+01993
+01994 <span class="comment">// Pointer of the Dst pixels</span>
+01995 <a class="code" href="a03337.html">CRGBA</a>* pDstPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro3">DstPixels</a>;
+01996
+01997 <span class="comment">// For each pixels</span>
+01998 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a572">x</a>, <a class="code" href="a04223.html#a573">y</a>;
+01999 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a573">y</a>=0; <a class="code" href="a04223.html#a573">y</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a573">y</a>++)
+02000 {
+02001 <span class="comment">// Pointer of the source line</span>
+02002 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLine=pSrcPixels;
+02003
+02004 <span class="comment">// Pointer of the source line</span>
+02005 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcAddLine=pSrcAddPixels;
+02006
+02007 <span class="comment">// Pointer of the source lighting line</span>
+02008 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightingLine=pSrcLightPixels;
+02009
+02010 <span class="comment">// Pointer of the destination line</span>
+02011 <a class="code" href="a03337.html">CRGBA</a>* pDstLine=pDstPixels;
+02012
+02013 <span class="comment">// For each pixels on the line</span>
+02014 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a572">x</a>=0; <a class="code" href="a04223.html#a572">x</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a572">x</a>++)
+02015 {
+02016 <span class="comment">// Read and write a pixel</span>
+02017 <a class="code" href="a04558.html#a15">uint</a> nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)&gt;&gt;8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>;
+02018 <span class="keywordflow">if</span> (nTmp&gt;255)
+02019 nTmp=255;
+02020 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>=(<a class="code" href="a04558.html#a7">uint8</a>)nTmp;
+02021 nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)&gt;&gt;8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>;
+02022 <span class="keywordflow">if</span> (nTmp&gt;255)
+02023 nTmp=255;
+02024 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>=(<a class="code" href="a04558.html#a7">uint8</a>)nTmp;
+02025 nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)&gt;&gt;8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>;
+02026 <span class="keywordflow">if</span> (nTmp&gt;255)
+02027 nTmp=255;
+02028 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>=(<a class="code" href="a04558.html#a7">uint8</a>)nTmp;
+02029
+02030 <span class="comment">// Next pixel</span>
+02031 pSrcLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>;
+02032 pSrcAddLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>;
+02033 pSrcLightingLine++;
+02034 pDstLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>;
+02035 }
+02036
+02037 <span class="comment">// Next line</span>
+02038 pSrcPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>;
+02039 pSrcAddPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>;
+02040 pSrcLightPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>;
+02041 pDstPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro2">DstDeltaY</a>;
+02042 }
+02043 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a13" doxytag="texture_far.h::NL3D_drawFarTileInFarTextureAdditiveAlpha" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D_drawFarTileInFarTextureAdditiveAlpha </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06519.html#l02050">2050</a> of file <a class="el" href="a06519.html">texture_far.cpp</a>.
+<p>
+References <a class="el" href="a06340.html#l00340">NLMISC::CRGBA::A</a>, <a class="el" href="a05646.html#l01173">alpha</a>, <a class="el" href="a06340.html#l00338">NLMISC::CRGBA::B</a>, <a class="el" href="a06520.html#l00242">NL3D_CComputeTileFar::DstDeltaX</a>, <a class="el" href="a06520.html#l00245">NL3D_CComputeTileFar::DstDeltaY</a>, <a class="el" href="a06520.html#l00239">NL3D_CComputeTileFar::DstPixels</a>, <a class="el" href="a06340.html#l00336">NLMISC::CRGBA::G</a>, <a class="el" href="a06340.html#l00334">NLMISC::CRGBA::R</a>, <a class="el" href="a06520.html#l00248">NL3D_CComputeTileFar::Size</a>, <a class="el" href="a06520.html#l00224">NL3D_CComputeTileFar::SrcAdditivePixels</a>, <a class="el" href="a06520.html#l00227">NL3D_CComputeTileFar::SrcDeltaX</a>, <a class="el" href="a06520.html#l00230">NL3D_CComputeTileFar::SrcDeltaY</a>, <a class="el" href="a06520.html#l00221">NL3D_CComputeTileFar::SrcDiffusePixels</a>, <a class="el" href="a06520.html#l00236">NL3D_CComputeTileFar::SrcLightingDeltaY</a>, <a class="el" href="a06520.html#l00233">NL3D_CComputeTileFar::SrcLightingPixels</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a05646.html#l00236">x</a>, and <a class="el" href="a05646.html#l00236">y</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00465">NL3D::CTextureFar::rebuildPatch()</a>.
+<p>
+<div class="fragment"><pre>02051 {
+02052 <span class="comment">// Pointer of the Src pixels</span>
+02053 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro8">SrcDiffusePixels</a>;
+02054
+02055 <span class="comment">// Pointer of the Src pixels</span>
+02056 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcAddPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro5">SrcAdditivePixels</a>;
+02057
+02058 <span class="comment">// Pointer of the Dst pixels</span>
+02059 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro10">SrcLightingPixels</a>;
+02060
+02061 <span class="comment">// Pointer of the Dst pixels</span>
+02062 <a class="code" href="a03337.html">CRGBA</a>* pDstPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro3">DstPixels</a>;
+02063
+02064 <span class="comment">// Fill the buffer with layer 0</span>
+02065 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a572">x</a>, <a class="code" href="a04223.html#a573">y</a>;
+02066 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a573">y</a>=0; <a class="code" href="a04223.html#a573">y</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a573">y</a>++)
+02067 {
+02068 <span class="comment">// Pointer of the source line</span>
+02069 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLine=pSrcPixels;
+02070
+02071 <span class="comment">// Pointer of the source line</span>
+02072 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcAddLine=pSrcAddPixels;
+02073
+02074 <span class="comment">// Pointer of the source lighting line</span>
+02075 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightingLine=pSrcLightPixels;
+02076
+02077 <span class="comment">// Pointer of the Dst pixels</span>
+02078 <a class="code" href="a03337.html">CRGBA</a>* pDstLine=pDstPixels;
+02079
+02080 <span class="comment">// For each pixels on the line</span>
+02081 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a572">x</a>=0; <a class="code" href="a04223.html#a572">x</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a572">x</a>++)
+02082 {
+02083 <span class="comment">// Read and write a pixel</span>
+02084 <span class="keyword">register</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a663">alpha</a>=pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo0">A</a>;
+02085 <span class="keyword">register</span> <a class="code" href="a04558.html#a15">uint</a> oneLessAlpha=255-pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo0">A</a>;
+02086
+02087 <span class="comment">// Read and write a pixel</span>
+02088 <a class="code" href="a04558.html#a15">uint</a> nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)&gt;&gt;8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>;
+02089 <span class="keywordflow">if</span> (nTmp&gt;255)
+02090 nTmp=255;
+02091 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>=(<a class="code" href="a04558.html#a7">uint8</a>)((nTmp*<a class="code" href="a04223.html#a663">alpha</a>+pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*oneLessAlpha)&gt;&gt;8);
+02092 nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)&gt;&gt;8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>;
+02093 <span class="keywordflow">if</span> (nTmp&gt;255)
+02094 nTmp=255;
+02095 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>=(<a class="code" href="a04558.html#a7">uint8</a>)((nTmp*<a class="code" href="a04223.html#a663">alpha</a>+pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*oneLessAlpha)&gt;&gt;8);
+02096 nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)&gt;&gt;8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>;
+02097 <span class="keywordflow">if</span> (nTmp&gt;255)
+02098 nTmp=255;
+02099 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>=(<a class="code" href="a04558.html#a7">uint8</a>)((nTmp*<a class="code" href="a04223.html#a663">alpha</a>+pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*oneLessAlpha)&gt;&gt;8);
+02100
+02101 <span class="comment">// Next pixel</span>
+02102 pSrcLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>;
+02103 pSrcAddLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>;
+02104 pSrcLightingLine++;
+02105 pDstLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>;
+02106 }
+02107
+02108 <span class="comment">// Next line</span>
+02109 pSrcPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>;
+02110 pSrcAddPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>;
+02111 pSrcLightPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>;
+02112 pDstPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro2">DstDeltaY</a>;
+02113 }
+02114 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a12" doxytag="texture_far.h::NL3D_drawFarTileInFarTextureAlpha" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D_drawFarTileInFarTextureAlpha </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06519.html#l01916">1916</a> of file <a class="el" href="a06519.html">texture_far.cpp</a>.
+<p>
+References <a class="el" href="a06340.html#l00340">NLMISC::CRGBA::A</a>, <a class="el" href="a05646.html#l01173">alpha</a>, <a class="el" href="a06520.html#l00251">NL3D_CComputeTileFar::AsmMMX</a>, <a class="el" href="a06340.html#l00338">NLMISC::CRGBA::B</a>, <a class="el" href="a06520.html#l00242">NL3D_CComputeTileFar::DstDeltaX</a>, <a class="el" href="a06520.html#l00245">NL3D_CComputeTileFar::DstDeltaY</a>, <a class="el" href="a06520.html#l00239">NL3D_CComputeTileFar::DstPixels</a>, <a class="el" href="a06340.html#l00336">NLMISC::CRGBA::G</a>, <a class="el" href="a06519.html#l01338">NL3D_asmEndMMX()</a>, <a class="el" href="a06519.html#l01845">NL3D_asmModulateAndBlendLineColors()</a>, <a class="el" href="a06340.html#l00334">NLMISC::CRGBA::R</a>, <a class="el" href="a06520.html#l00248">NL3D_CComputeTileFar::Size</a>, <a class="el" href="a06520.html#l00227">NL3D_CComputeTileFar::SrcDeltaX</a>, <a class="el" href="a06520.html#l00230">NL3D_CComputeTileFar::SrcDeltaY</a>, <a class="el" href="a06520.html#l00221">NL3D_CComputeTileFar::SrcDiffusePixels</a>, <a class="el" href="a06520.html#l00236">NL3D_CComputeTileFar::SrcLightingDeltaY</a>, <a class="el" href="a06520.html#l00233">NL3D_CComputeTileFar::SrcLightingPixels</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a05646.html#l00236">x</a>, and <a class="el" href="a05646.html#l00236">y</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00465">NL3D::CTextureFar::rebuildPatch()</a>.
+<p>
+<div class="fragment"><pre>01917 {
+01918 <span class="comment">// Pointer of the Src pixels</span>
+01919 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro8">SrcDiffusePixels</a>;
+01920
+01921 <span class="comment">// Pointer of the Dst pixels</span>
+01922 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro10">SrcLightingPixels</a>;
+01923
+01924 <span class="comment">// Pointer of the Dst pixels</span>
+01925 <a class="code" href="a03337.html">CRGBA</a>* pDstPixels=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro3">DstPixels</a>;
+01926
+01927 <span class="comment">// Fill the buffer with layer 0</span>
+01928 <span class="keywordtype">int</span> <a class="code" href="a04223.html#a572">x</a>, <a class="code" href="a04223.html#a573">y</a>;
+01929 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a573">y</a>=0; <a class="code" href="a04223.html#a573">y</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a573">y</a>++)
+01930 {
+01931 <span class="comment">// MMX implementation</span>
+01932 <span class="comment">//---------</span>
+01933 <span class="keywordflow">if</span>(pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro0">AsmMMX</a>)
+01934 {
+01935 <a class="code" href="a05096.html#a9">NL3D_asmModulateAndBlendLineColors</a>(pDstPixels, pSrcPixels, pSrcLightPixels,
+01936 pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>, pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>, pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>);
+01937 }
+01938 <span class="comment">// C Implementation.</span>
+01939 <span class="comment">//---------</span>
+01940 <span class="keywordflow">else</span>
+01941 {
+01942 <span class="comment">// Pointer of the source line</span>
+01943 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLine=pSrcPixels;
+01944
+01945 <span class="comment">// Pointer of the source lighting line</span>
+01946 <span class="keyword">const</span> <a class="code" href="a03337.html">CRGBA</a>* pSrcLightingLine=pSrcLightPixels;
+01947
+01948 <span class="comment">// Pointer of the Dst pixels</span>
+01949 <a class="code" href="a03337.html">CRGBA</a>* pDstLine=pDstPixels;
+01950
+01951 <span class="comment">// For each pixels on the line</span>
+01952 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a572">x</a>=0; <a class="code" href="a04223.html#a572">x</a>&lt;pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>; <a class="code" href="a04223.html#a572">x</a>++)
+01953 {
+01954 <span class="comment">// Read and write a pixel</span>
+01955 <span class="keyword">register</span> <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a663">alpha</a>=pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo0">A</a>;
+01956 <span class="keyword">register</span> <a class="code" href="a04558.html#a15">uint</a> oneLessAlpha=255-pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo0">A</a>;
+01957 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>=(<a class="code" href="a04558.html#a7">uint8</a>)(((((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)&gt;&gt;8)*<a class="code" href="a04223.html#a663">alpha</a>+(<a class="code" href="a04558.html#a15">uint</a>)pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*oneLessAlpha)&gt;&gt;8);
+01958 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>=(<a class="code" href="a04558.html#a7">uint8</a>)(((((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)&gt;&gt;8)*<a class="code" href="a04223.html#a663">alpha</a>+(<a class="code" href="a04558.html#a15">uint</a>)pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*oneLessAlpha)&gt;&gt;8);
+01959 pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>=(<a class="code" href="a04558.html#a7">uint8</a>)(((((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)&gt;&gt;8)*<a class="code" href="a04223.html#a663">alpha</a>+(<a class="code" href="a04558.html#a15">uint</a>)pDstLine-&gt;<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*oneLessAlpha)&gt;&gt;8);
+01960
+01961 <span class="comment">// Next pixel</span>
+01962 pSrcLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>;
+01963 pSrcLightingLine++;
+01964 pDstLine+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>;
+01965 }
+01966 }
+01967
+01968 <span class="comment">// Next line</span>
+01969 pSrcPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>;
+01970 pSrcLightPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>;
+01971 pDstPixels+=pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro2">DstDeltaY</a>;
+01972 }
+01973
+01974 <span class="comment">// stop MMX if used</span>
+01975 <span class="keywordflow">if</span>(pTileFar-&gt;<a class="code" href="a03890.html#NL3D__CComputeTileFaro0">AsmMMX</a>)
+01976 <a class="code" href="a05096.html#a0">NL3D_asmEndMMX</a>();
+01977 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="a9" doxytag="texture_far.h::NL3D_expandLightmap" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D_expandLightmap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03891.html">NL3D_CExpandLightmap</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pLightmap</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06519.html#l01359">1359</a> of file <a class="el" href="a06519.html">texture_far.cpp</a>.
+<p>
+References <a class="el" href="a06340.html#l00264">NLMISC::CRGBA::addRGBOnly()</a>, <a class="el" href="a06340.html#l00338">NLMISC::CRGBA::B</a>, <a class="el" href="a06340.html#l00104">NLMISC::CRGBA::blendFromui()</a>, <a class="el" href="a06539.html#l00048">NL3D::CTileColor::Color565</a>, <a class="el" href="a06520.html#l00259">NL3D_CExpandLightmap::ColorTile</a>, <a class="el" href="a06520.html#l00279">NL3D_CExpandLightmap::DstPixels</a>, <a class="el" href="a06340.html#l00336">NLMISC::CRGBA::G</a>, <a class="el" href="a06520.html#l00270">NL3D_CExpandLightmap::Height</a>, <a class="el" href="a05646.html#l00225">index</a>, <a class="el" href="a06520.html#l00264">NL3D_CExpandLightmap::LumelTile</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a06340.html#l00243">NLMISC::CRGBA::modulateFromColorRGBOnly()</a>, <a class="el" href="a06520.html#l00273">NL3D_CExpandLightmap::MulFactor</a>, <a class="el" href="a06519.html#l01342">NL3D_asmAssembleShading1x1()</a>, <a class="el" href="a06519.html#l01346">NL3D_asmAssembleShading2x2()</a>, <a class="el" href="a06519.html#l01350">NL3D_asmAssembleShading4x4()</a>, <a class="el" href="a06519.html#l01341">NL3D_asmBlendLines()</a>, <a class="el" href="a06519.html#l01338">NL3D_asmEndMMX()</a>, <a class="el" href="a06519.html#l01339">NL3D_asmExpandLineColor565()</a>, <a class="el" href="a06519.html#l01340">NL3D_asmExpandLineColor8888()</a>, <a class="el" href="a06156.html#l00060">NL_LUMEL_BY_TILE</a>, <a class="el" href="a06156.html#l00053">NL_MAX_TILES_BY_PATCH_EDGE</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06340.html#l00334">NLMISC::CRGBA::R</a>, <a class="el" href="a06340.html#l00162">NLMISC::CRGBA::set565()</a>, <a class="el" href="a06520.html#l00276">NL3D_CExpandLightmap::StaticLightColor</a>, <a class="el" href="a06520.html#l00261">NL3D_CExpandLightmap::TLIColor</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a05646.html#l00237">v</a>, and <a class="el" href="a06520.html#l00267">NL3D_CExpandLightmap::Width</a>.
+<p>
+Referenced by <a class="el" href="a06519.html#l00465">NL3D::CTextureFar::rebuildPatch()</a>.
+<p>
+<div class="fragment"><pre>01360 {
+01361 <span class="keywordtype">bool</span> asmMMX= <span class="keyword">false</span>;
+01362 <span class="preprocessor">#ifdef NL_OS_WINDOWS</span>
+01363 <span class="preprocessor"></span> asmMMX= CSystemInfo::hasMMX();
+01364 <span class="comment">// A CTileColor must be a 565 only.</span>
+01365 <a class="code" href="a04199.html#a6">nlassert</a>(<span class="keyword">sizeof</span>(<a class="code" href="a03520.html">CTileColor</a>)==2);
+01366 <span class="preprocessor">#endif</span>
+01367 <span class="preprocessor"></span>
+01368 <span class="comment">// Expanded width</span>
+01369 <a class="code" href="a04558.html#a15">uint</a> dstWidth=(pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>-1)*pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo4">MulFactor</a>;
+01370 <a class="code" href="a04558.html#a15">uint</a> dstHeight=(pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>-1)*pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo4">MulFactor</a>;
+01371
+01372 <span class="comment">// *** First expand user color and TLI colors</span>
+01373 <span class="comment">// First pass, expand on U</span>
+01374 <span class="keyword">static</span> <a class="code" href="a03337.html">CRGBA</a> expandedUserColorLine[ (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*
+01375 (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*<a class="code" href="a04733.html#a7">NL_LUMEL_BY_TILE</a> ];
+01376 <span class="keyword">static</span> <a class="code" href="a03337.html">CRGBA</a> expandedTLIColorLine[ (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*
+01377 (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*<a class="code" href="a04733.html#a7">NL_LUMEL_BY_TILE</a> ];
+01378 <span class="comment">// Second pass, expand on V.</span>
+01379 <span class="keyword">static</span> <a class="code" href="a03337.html">CRGBA</a> expandedUserColor[ (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*<a class="code" href="a04733.html#a7">NL_LUMEL_BY_TILE</a> *
+01380 (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*<a class="code" href="a04733.html#a7">NL_LUMEL_BY_TILE</a> ];
+01381 <span class="keyword">static</span> <a class="code" href="a03337.html">CRGBA</a> expandedTLIColor[ (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*<a class="code" href="a04733.html#a7">NL_LUMEL_BY_TILE</a> *
+01382 (<a class="code" href="a04733.html#a1">NL_MAX_TILES_BY_PATCH_EDGE</a>+1)*<a class="code" href="a04733.html#a7">NL_LUMEL_BY_TILE</a> ];
+01383
+01384
+01385 <span class="comment">// ** Expand on U</span>
+01386 <span class="comment">//=========</span>
+01387 <a class="code" href="a04558.html#a15">uint</a> u, <a class="code" href="a04223.html#a576">v</a>;
+01388
+01389 <span class="comment">// Expansion factor</span>
+01390 <a class="code" href="a04558.html#a15">uint</a> expandFactor=((pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>-1)&lt;&lt;8)/(dstWidth-1);
+01391
+01392 <span class="comment">// Destination pointer</span>
+01393 <a class="code" href="a03337.html">CRGBA</a> *expandedUserColorLinePtr= expandedUserColorLine;
+01394 <a class="code" href="a03337.html">CRGBA</a> *expandedTLIColorLinePtr= expandedTLIColorLine;
+01395
+01396 <span class="comment">// Source pointer</span>
+01397 <span class="keyword">const</span> <a class="code" href="a03520.html">NL3D::CTileColor</a> *colorTilePtr=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo0">ColorTile</a>;
+01398 <span class="keyword">const</span> <a class="code" href="a03337.html">NLMISC::CRGBA</a> *colorTLIPtr= pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo6">TLIColor</a>;
+01399
+01400 <span class="comment">// Go for U</span>
+01401 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a576">v</a>=0; <a class="code" href="a04223.html#a576">v</a>&lt;pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>; <a class="code" href="a04223.html#a576">v</a>++)
+01402 {
+01403 <span class="comment">// First pixel</span>
+01404 expandedUserColorLinePtr[0].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa15">set565</a> (colorTilePtr[0].Color565);
+01405 expandedTLIColorLinePtr[0]= colorTLIPtr[0];
+01406
+01407 <span class="comment">// MMX implementation.</span>
+01408 <span class="comment">//-------------</span>
+01409 <span class="keywordflow">if</span>(asmMMX)
+01410 {
+01411 <a class="code" href="a05096.html#a1">NL3D_asmExpandLineColor565</a>(&amp;colorTilePtr-&gt;<a class="code" href="a03520.html#NL3D_1_1CTileColoro0">Color565</a>, expandedUserColorLinePtr, expandFactor, dstWidth-2);
+01412 <a class="code" href="a05096.html#a2">NL3D_asmExpandLineColor8888</a>(colorTLIPtr, expandedTLIColorLinePtr, expandFactor, dstWidth-2);
+01413 }
+01414 <span class="comment">// C implementation</span>
+01415 <span class="comment">//-------------</span>
+01416 <span class="keywordflow">else</span>
+01417 {
+01418 <span class="comment">// Index next pixel</span>
+01419 <a class="code" href="a04558.html#a15">uint</a> srcIndexPixel=expandFactor;
+01420
+01421 <span class="keywordflow">for</span> (u=1; u&lt;dstWidth-1; u++)
+01422 {
+01423 <span class="comment">// Check</span>
+01424 <a class="code" href="a04199.html#a6">nlassert</a> ( (u+v*dstWidth) &lt; (<span class="keyword">sizeof</span>(expandedUserColorLine)/<span class="keyword">sizeof</span>(<a class="code" href="a03337.html">CRGBA</a>)) );
+01425
+01426 <span class="comment">// Color index</span>
+01427 <a class="code" href="a04558.html#a15">uint</a> srcIndex=srcIndexPixel&gt;&gt;8;
+01428 <a class="code" href="a04199.html#a6">nlassert</a> (srcIndex&gt;=0);
+01429 <a class="code" href="a04199.html#a6">nlassert</a> (srcIndex&lt;pLightmap-&gt;Width-1);
+01430
+01431 <span class="comment">// Compute current color</span>
+01432 <a class="code" href="a03337.html">CRGBA</a> color0;
+01433 <a class="code" href="a03337.html">CRGBA</a> color1;
+01434 color0.<a class="code" href="a03337.html#NLMISC_1_1CRGBAa15">set565</a> (colorTilePtr[srcIndex].Color565);
+01435 color1.<a class="code" href="a03337.html#NLMISC_1_1CRGBAa15">set565</a> (colorTilePtr[srcIndex+1].Color565);
+01436 expandedUserColorLinePtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa3">blendFromui</a> (color0, color1, srcIndexPixel&amp;0xff);
+01437 <span class="comment">// Compute current TLI color</span>
+01438 color0= colorTLIPtr[srcIndex];
+01439 color1= colorTLIPtr[srcIndex+1];
+01440 expandedTLIColorLinePtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa3">blendFromui</a> (color0, color1, srcIndexPixel&amp;0xff);
+01441
+01442 <span class="comment">// Next index</span>
+01443 srcIndexPixel+=expandFactor;
+01444 }
+01445 }
+01446
+01447 <span class="comment">// Last pixel</span>
+01448 expandedUserColorLinePtr[dstWidth-1].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa15">set565</a> (colorTilePtr[pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>-1].Color565);
+01449 expandedTLIColorLinePtr[dstWidth-1]= colorTLIPtr[pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>-1];
+01450
+01451 <span class="comment">// Next line</span>
+01452 expandedUserColorLinePtr+= dstWidth;
+01453 expandedTLIColorLinePtr+= dstWidth;
+01454 colorTilePtr+=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>;
+01455 colorTLIPtr+=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>;
+01456 }
+01457
+01458 <span class="comment">// stop MMX if used</span>
+01459 <span class="keywordflow">if</span>(asmMMX)
+01460 <a class="code" href="a05096.html#a0">NL3D_asmEndMMX</a>();
+01461
+01462 <span class="comment">// ** Expand on V</span>
+01463 <span class="comment">//=========</span>
+01464
+01465 <span class="comment">// Expansion factor</span>
+01466 expandFactor=((pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>-1)&lt;&lt;8)/(dstHeight-1);
+01467
+01468 <span class="comment">// Destination pointer</span>
+01469 <a class="code" href="a03337.html">CRGBA</a> *expandedUserColorPtr= expandedUserColor;
+01470 <a class="code" href="a03337.html">CRGBA</a> *expandedTLIColorPtr= expandedTLIColor;
+01471
+01472 <span class="comment">// Src pointer</span>
+01473 expandedUserColorLinePtr= expandedUserColorLine;
+01474 expandedTLIColorLinePtr= expandedTLIColorLine;
+01475
+01476 <span class="comment">// Copy first row</span>
+01477 memcpy(expandedUserColorPtr, expandedUserColorLinePtr, dstWidth*<span class="keyword">sizeof</span>(<a class="code" href="a03337.html">CRGBA</a>));
+01478 memcpy(expandedTLIColorPtr, expandedTLIColorLinePtr, dstWidth*<span class="keyword">sizeof</span>(<a class="code" href="a03337.html">CRGBA</a>));
+01479
+01480 <span class="comment">// Next line</span>
+01481 expandedUserColorPtr+=dstWidth;
+01482 expandedTLIColorPtr+=dstWidth;
+01483
+01484 <span class="comment">// Index next pixel</span>
+01485 <a class="code" href="a04558.html#a15">uint</a> indexPixel=expandFactor;
+01486
+01487 <span class="comment">// Go for V</span>
+01488 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a576">v</a>=1; <a class="code" href="a04223.html#a576">v</a>&lt;dstHeight-1; <a class="code" href="a04223.html#a576">v</a>++)
+01489 {
+01490 <span class="comment">// Color index</span>
+01491 <a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a04223.html#a566">index</a>=indexPixel&gt;&gt;8;
+01492
+01493 <span class="comment">// Source pointer</span>
+01494 <a class="code" href="a03337.html">CRGBA</a> *colorTilePtr0= expandedUserColorLine + <a class="code" href="a04223.html#a566">index</a>*dstWidth;
+01495 <a class="code" href="a03337.html">CRGBA</a> *colorTilePtr1= expandedUserColorLine + (<a class="code" href="a04223.html#a566">index</a>+1)*dstWidth;
+01496 <a class="code" href="a03337.html">CRGBA</a> *colorTLIPtr0= expandedTLIColorLine + <a class="code" href="a04223.html#a566">index</a>*dstWidth;
+01497 <a class="code" href="a03337.html">CRGBA</a> *colorTLIPtr1= expandedTLIColorLine + (<a class="code" href="a04223.html#a566">index</a>+1)*dstWidth;
+01498
+01499 <span class="comment">// MMX implementation.</span>
+01500 <span class="comment">//-------------</span>
+01501 <span class="keywordflow">if</span>(asmMMX)
+01502 {
+01503 <a class="code" href="a05096.html#a3">NL3D_asmBlendLines</a>(expandedUserColorPtr, colorTilePtr0, colorTilePtr1, indexPixel, dstWidth);
+01504 <a class="code" href="a05096.html#a3">NL3D_asmBlendLines</a>(expandedTLIColorPtr, colorTLIPtr0, colorTLIPtr1, indexPixel, dstWidth);
+01505 }
+01506 <span class="comment">// C implementation</span>
+01507 <span class="comment">//-------------</span>
+01508 <span class="keywordflow">else</span>
+01509 {
+01510 <span class="comment">// Copy the row</span>
+01511 <span class="keywordflow">for</span> (u=0; u&lt;dstWidth; u++)
+01512 {
+01513 expandedUserColorPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa3">blendFromui</a> (colorTilePtr0[u], colorTilePtr1[u], indexPixel&amp;0xff);
+01514 expandedTLIColorPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa3">blendFromui</a> (colorTLIPtr0[u], colorTLIPtr1[u], indexPixel&amp;0xff);
+01515 }
+01516 }
+01517
+01518 <span class="comment">// Next index</span>
+01519 indexPixel+=expandFactor;
+01520
+01521 <span class="comment">// Next line</span>
+01522 expandedUserColorPtr+=dstWidth;
+01523 expandedTLIColorPtr+=dstWidth;
+01524 }
+01525
+01526 <span class="comment">// stop MMX if used</span>
+01527 <span class="keywordflow">if</span>(asmMMX)
+01528 <a class="code" href="a05096.html#a0">NL3D_asmEndMMX</a>();
+01529
+01530 <span class="comment">// Last row</span>
+01531 <span class="comment">// Destination pointer</span>
+01532 expandedUserColorPtr= expandedUserColor + dstWidth*(dstHeight-1);
+01533 expandedTLIColorPtr= expandedTLIColor + dstWidth*(dstHeight-1);
+01534 <span class="comment">// Src pointer</span>
+01535 expandedUserColorLinePtr= expandedUserColorLine + dstWidth*(pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>-1);
+01536 expandedTLIColorLinePtr= expandedTLIColorLine + dstWidth*(pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>-1);
+01537
+01538 <span class="comment">// Copy last row</span>
+01539 memcpy(expandedUserColorPtr, expandedUserColorLinePtr, dstWidth*<span class="keyword">sizeof</span>(<a class="code" href="a03337.html">CRGBA</a>));
+01540 memcpy(expandedTLIColorPtr, expandedTLIColorLinePtr, dstWidth*<span class="keyword">sizeof</span>(<a class="code" href="a03337.html">CRGBA</a>));
+01541
+01542 <span class="comment">// *** Now combine with shading</span>
+01543 <span class="comment">//=========</span>
+01544
+01545 <span class="comment">// Switch to the optimal method for each expansion value</span>
+01546 <span class="keywordflow">switch</span> (pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo4">MulFactor</a>)
+01547 {
+01548 <span class="keywordflow">case</span> 1:
+01549 {
+01550 <span class="comment">// Make 4x4 -&gt; 1x1 blend</span>
+01551 <a class="code" href="a03337.html">CRGBA</a> *lineUSCPtr= expandedUserColor;
+01552 <a class="code" href="a03337.html">CRGBA</a> *lineTLIPtr= expandedTLIColor;
+01553 <a class="code" href="a03337.html">CRGBA</a> *lineDestPtr=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo1">DstPixels</a>;
+01554 <span class="keyword">const</span> <a class="code" href="a04558.html#a7">uint8</a> *lineLumelPtr=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo3">LumelTile</a>;
+01555 <a class="code" href="a04558.html#a15">uint</a> lineWidth=dstWidth&lt;&lt;2;
+01556 <a class="code" href="a04558.html#a15">uint</a> lineWidthx2=lineWidth&lt;&lt;1;
+01557 <a class="code" href="a04558.html#a15">uint</a> lineWidthx3=lineWidthx2+lineWidth;
+01558 <a class="code" href="a04558.html#a15">uint</a> lineWidthx4=lineWidth&lt;&lt;2;
+01559
+01560 <span class="comment">// For each line</span>
+01561 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a576">v</a>=0; <a class="code" href="a04223.html#a576">v</a>&lt;dstHeight; <a class="code" href="a04223.html#a576">v</a>++)
+01562 {
+01563 <span class="comment">// MMX implementation.</span>
+01564 <span class="comment">//-------------</span>
+01565 <span class="keywordflow">if</span>(asmMMX)
+01566 {
+01567 <a class="code" href="a05096.html#a4">NL3D_asmAssembleShading1x1</a>(lineLumelPtr, pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo5">StaticLightColor</a>, lineTLIPtr, lineUSCPtr, lineDestPtr,
+01568 lineWidth, dstWidth);
+01569 }
+01570 <span class="comment">// C implementation</span>
+01571 <span class="comment">//-------------</span>
+01572 <span class="keywordflow">else</span>
+01573 {
+01574 <span class="comment">// For each lumel block</span>
+01575 <span class="keywordflow">for</span> (u=0; u&lt;dstWidth; u++)
+01576 {
+01577 <span class="comment">// index</span>
+01578 <a class="code" href="a04558.html#a15">uint</a> lumelIndex=u&lt;&lt;2;
+01579
+01580 <span class="comment">// Shading is filtred</span>
+01581 <a class="code" href="a04558.html#a15">uint</a> shading=
+01582 ((<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+1]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+2]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+3]
+01583 +(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+lineWidth]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+1+lineWidth]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+2+lineWidth]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+3+lineWidth]
+01584 +(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+lineWidthx2]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+1+lineWidthx2]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+2+lineWidthx2]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+3+lineWidthx2]
+01585 +(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+lineWidthx3]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+1+lineWidthx3]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+2+lineWidthx3]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+3+lineWidthx3]
+01586 )&gt;&gt;4;
+01587
+01588 <span class="comment">// Add shading with TLI color.</span>
+01589 <a class="code" href="a03337.html">CRGBA</a> col;
+01590 col.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_0">addRGBOnly</a>(pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo5">StaticLightColor</a>[shading], lineTLIPtr[u]);
+01591
+01592 <span class="comment">// Mul by the userColor</span>
+01593 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_4">modulateFromColorRGBOnly</a>(col, lineUSCPtr[u]);
+01594
+01595 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].R)*2, 255U);
+01596 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].G)*2, 255U);
+01597 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].B)*2, 255U);
+01598 }
+01599 }
+01600
+01601 <span class="comment">// Next line</span>
+01602 lineUSCPtr+=dstWidth;
+01603 lineTLIPtr+=dstWidth;
+01604 lineDestPtr+=dstWidth;
+01605 lineLumelPtr+=lineWidthx4;
+01606 }
+01607 <span class="keywordflow">break</span>;
+01608 }
+01609 <span class="keywordflow">case</span> 2:
+01610 {
+01611 <span class="comment">// Make 2x2 -&gt; 1x1 blend</span>
+01612 <a class="code" href="a03337.html">CRGBA</a> *lineUSCPtr= expandedUserColor;
+01613 <a class="code" href="a03337.html">CRGBA</a> *lineTLIPtr= expandedTLIColor;
+01614 <a class="code" href="a03337.html">CRGBA</a> *lineDestPtr=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo1">DstPixels</a>;
+01615 <span class="keyword">const</span> <a class="code" href="a04558.html#a7">uint8</a> *lineLumelPtr=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo3">LumelTile</a>;
+01616 <a class="code" href="a04558.html#a15">uint</a> lineWidth=dstWidth*2;
+01617 <a class="code" href="a04558.html#a15">uint</a> lineWidthx2=lineWidth&lt;&lt;1;
+01618
+01619 <span class="comment">// For each line</span>
+01620 <span class="keywordflow">for</span> (<a class="code" href="a04223.html#a576">v</a>=0; <a class="code" href="a04223.html#a576">v</a>&lt;dstHeight; <a class="code" href="a04223.html#a576">v</a>++)
+01621 {
+01622 <span class="comment">// MMX implementation.</span>
+01623 <span class="comment">//-------------</span>
+01624 <span class="keywordflow">if</span>(asmMMX)
+01625 {
+01626 <a class="code" href="a05096.html#a5">NL3D_asmAssembleShading2x2</a>(lineLumelPtr, pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo5">StaticLightColor</a>, lineTLIPtr, lineUSCPtr, lineDestPtr,
+01627 lineWidth, dstWidth);
+01628 }
+01629 <span class="comment">// C implementation</span>
+01630 <span class="comment">//-------------</span>
+01631 <span class="keywordflow">else</span>
+01632 {
+01633 <span class="comment">// For each lumel block</span>
+01634 <span class="keywordflow">for</span> (u=0; u&lt;dstWidth; u++)
+01635 {
+01636 <span class="comment">// index</span>
+01637 <a class="code" href="a04558.html#a15">uint</a> lumelIndex=u&lt;&lt;1;
+01638
+01639 <span class="comment">// Shading is filtred</span>
+01640 <a class="code" href="a04558.html#a15">uint</a> shading=
+01641 ((<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+1]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+lineWidth]+(<a class="code" href="a04558.html#a15">uint</a>)lineLumelPtr[lumelIndex+1+lineWidth])&gt;&gt;2;
+01642
+01643 <span class="comment">// Add shading with TLI color.</span>
+01644 <a class="code" href="a03337.html">CRGBA</a> col;
+01645 col.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_0">addRGBOnly</a>(pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo5">StaticLightColor</a>[shading], lineTLIPtr[u]);
+01646
+01647 <span class="comment">// Mul by the userColor</span>
+01648 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_4">modulateFromColorRGBOnly</a>(col, lineUSCPtr[u]);
+01649
+01650 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].R)*2, 255U);
+01651 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].G)*2, 255U);
+01652 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].B)*2, 255U);
+01653 }
+01654 }
+01655
+01656 <span class="comment">// Next line</span>
+01657 lineUSCPtr+=dstWidth;
+01658 lineTLIPtr+=dstWidth;
+01659 lineDestPtr+=dstWidth;
+01660 lineLumelPtr+=lineWidthx2;
+01661 }
+01662 <span class="keywordflow">break</span>;
+01663 }
+01664
+01665 <span class="keywordflow">case</span> 4:
+01666 <span class="comment">// Make copy</span>
+01667 <a class="code" href="a03337.html">CRGBA</a> *lineUSCPtr= expandedUserColor;
+01668 <a class="code" href="a03337.html">CRGBA</a> *lineTLIPtr= expandedTLIColor;
+01669 <a class="code" href="a03337.html">CRGBA</a> *lineDestPtr=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo1">DstPixels</a>;
+01670 <span class="keyword">const</span> <a class="code" href="a04558.html#a7">uint8</a> *lineLumelPtr=pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo3">LumelTile</a>;
+01671 <a class="code" href="a04558.html#a15">uint</a> nbTexel=dstWidth*dstHeight;
+01672
+01673 <span class="comment">// MMX implementation.</span>
+01674 <span class="comment">//-------------</span>
+01675 <span class="keywordflow">if</span>(asmMMX)
+01676 {
+01677 <a class="code" href="a05096.html#a6">NL3D_asmAssembleShading4x4</a>(lineLumelPtr, pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo5">StaticLightColor</a>, lineTLIPtr, lineUSCPtr, lineDestPtr,
+01678 nbTexel);
+01679 }
+01680 <span class="comment">// C implementation</span>
+01681 <span class="comment">//-------------</span>
+01682 <span class="keywordflow">else</span>
+01683 {
+01684 <span class="comment">// For each pixel</span>
+01685 <span class="keywordflow">for</span> (u=0; u&lt;nbTexel; u++)
+01686 {
+01687 <span class="comment">// Shading is filtred</span>
+01688 <a class="code" href="a04558.html#a15">uint</a> shading=lineLumelPtr[u];
+01689
+01690 <span class="comment">// Add shading with TLI color.</span>
+01691 <a class="code" href="a03337.html">CRGBA</a> col;
+01692 col.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_0">addRGBOnly</a>(pLightmap-&gt;<a class="code" href="a03891.html#NL3D__CExpandLightmapo5">StaticLightColor</a>[shading], lineTLIPtr[u]);
+01693
+01694 <span class="comment">// Mul by the userColor</span>
+01695 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_4">modulateFromColorRGBOnly</a>(col, lineUSCPtr[u]);
+01696
+01697 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].R)*2, 255U);
+01698 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].G)*2, 255U);
+01699 lineDestPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a> = <a class="code" href="a04061.html#a0">min</a>(((<a class="code" href="a04558.html#a15">uint</a>)lineDestPtr[u].B)*2, 255U);
+01700 }
+01701 }
+01702 <span class="keywordflow">break</span>;
+01703 }
+01704
+01705 <span class="comment">// stop MMX if used</span>
+01706 <span class="keywordflow">if</span>(asmMMX)
+01707 <a class="code" href="a05096.html#a0">NL3D_asmEndMMX</a>();
+01708
+01709 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:43:24 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>