diff options
author | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
commit | 0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch) | |
tree | 2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a05097.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a05097.html')
-rw-r--r-- | docs/doxygen/nel/a05097.html | 1076 |
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 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 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 </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 </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 </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 </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a8">NL_FAR_TEXTURE_EDGE_SIZE</a> (NL_MAX_FAR_PATCH_EDGE*NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a1">NL_MAX_FAR_PATCH_EDGE</a> (16*NL_NUM_PIXELS_ON_FAR_TILE_EDGE)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a5">NL_MAX_FAR_RECTANGLE_RATIO</a> (1<<NL_MAX_RECTANGLE_RATIO_SHIFT)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a4">NL_MAX_FAR_RECTANGLE_RATIO_SHIFT</a> (NL_NUM_RECTANGLE_ASPECT_RATIO-1)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a2">NL_MIN_FAR_PATCH_EDGE</a> 2</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a6">NL_NUM_FAR_BIGGEST_PATCH_PER_EDGE</a> 8</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a7">NL_NUM_FAR_BIGGEST_PATCH_PER_TEXTURE</a> (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 </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a0">NL_NUM_FAR_PATCH_EDGE_LEVEL</a> (4+NL_NUM_PIXELS_ON_FAR_TILE_EDGE_SHIFT)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="a05097.html#a3">NL_NUM_FAR_RECTANGLE_RATIO</a> 4</td></tr> + +<tr><td colspan=2><br><h2>Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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 </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 </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 </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 </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 (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> + + </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 (16*NL_NUM_PIXELS_ON_FAR_TILE_EDGE) + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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 (1<<NL_MAX_RECTANGLE_RATIO_SHIFT) + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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 (NL_NUM_RECTANGLE_ASPECT_RATIO-1) + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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 2 + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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 8 + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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 (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> + + </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 (4+NL_NUM_PIXELS_ON_FAR_TILE_EDGE_SHIFT) + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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 4 + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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-><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-><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-><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><pTileFar-><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-><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-><a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>, pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>, pTileFar-><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><pTileFar-><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-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)>>8); +01893 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)>>8); +01894 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)>>8); +01895 +01896 <span class="comment">// Next pixel</span> +01897 pSrcLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>; +01898 pSrcLightingLine++; +01899 pDstLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>; +01900 } +01901 } +01902 +01903 <span class="comment">// Next line</span> +01904 pSrcPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>; +01905 pSrcLightPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>; +01906 pDstPixels+=pTileFar-><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-><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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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-><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-><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-><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-><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><pTileFar-><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><pTileFar-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)>>8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>; +02018 <span class="keywordflow">if</span> (nTmp>255) +02019 nTmp=255; +02020 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)>>8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>; +02022 <span class="keywordflow">if</span> (nTmp>255) +02023 nTmp=255; +02024 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)>>8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>; +02026 <span class="keywordflow">if</span> (nTmp>255) +02027 nTmp=255; +02028 pDstLine-><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-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>; +02032 pSrcAddLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>; +02033 pSrcLightingLine++; +02034 pDstLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>; +02035 } +02036 +02037 <span class="comment">// Next line</span> +02038 pSrcPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>; +02039 pSrcAddPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>; +02040 pSrcLightPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>; +02041 pDstPixels+=pTileFar-><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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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-><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-><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-><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-><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><pTileFar-><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><pTileFar-><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-><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-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)>>8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>; +02089 <span class="keywordflow">if</span> (nTmp>255) +02090 nTmp=255; +02091 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*oneLessAlpha)>>8); +02092 nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)>>8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>; +02093 <span class="keywordflow">if</span> (nTmp>255) +02094 nTmp=255; +02095 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*oneLessAlpha)>>8); +02096 nTmp=(((<a class="code" href="a04558.html#a15">uint</a>)pSrcLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)>>8)+(<a class="code" href="a04558.html#a15">uint</a>)pSrcAddLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>; +02097 <span class="keywordflow">if</span> (nTmp>255) +02098 nTmp=255; +02099 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*oneLessAlpha)>>8); +02100 +02101 <span class="comment">// Next pixel</span> +02102 pSrcLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>; +02103 pSrcAddLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>; +02104 pSrcLightingLine++; +02105 pDstLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>; +02106 } +02107 +02108 <span class="comment">// Next line</span> +02109 pSrcPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>; +02110 pSrcAddPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>; +02111 pSrcLightPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>; +02112 pDstPixels+=pTileFar-><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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03890.html">NL3D_CComputeTileFar</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pTileFar</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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-><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-><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-><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><pTileFar-><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-><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-><a class="code" href="a03890.html#NL3D__CComputeTileFaro4">Size</a>, pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>, pTileFar-><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><pTileFar-><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-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo0">A</a>; +01957 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>)>>8)*<a class="code" href="a04223.html#a663">alpha</a>+(<a class="code" href="a04558.html#a15">uint</a>)pDstLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo3">R</a>*oneLessAlpha)>>8); +01958 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>)>>8)*<a class="code" href="a04223.html#a663">alpha</a>+(<a class="code" href="a04558.html#a15">uint</a>)pDstLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo2">G</a>*oneLessAlpha)>>8); +01959 pDstLine-><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-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*(<a class="code" href="a04558.html#a15">uint</a>)pSrcLightingLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>)>>8)*<a class="code" href="a04223.html#a663">alpha</a>+(<a class="code" href="a04558.html#a15">uint</a>)pDstLine-><a class="code" href="a03337.html#NLMISC_1_1CRGBAo1">B</a>*oneLessAlpha)>>8); +01960 +01961 <span class="comment">// Next pixel</span> +01962 pSrcLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro6">SrcDeltaX</a>; +01963 pSrcLightingLine++; +01964 pDstLine+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro1">DstDeltaX</a>; +01965 } +01966 } +01967 +01968 <span class="comment">// Next line</span> +01969 pSrcPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro7">SrcDeltaY</a>; +01970 pSrcLightPixels+=pTileFar-><a class="code" href="a03890.html#NL3D__CComputeTileFaro9">SrcLightingDeltaY</a>; +01971 pDstPixels+=pTileFar-><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-><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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03891.html">NL3D_CExpandLightmap</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pLightmap</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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-><a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>-1)*pLightmap-><a class="code" href="a03891.html#NL3D__CExpandLightmapo4">MulFactor</a>; +01370 <a class="code" href="a04558.html#a15">uint</a> dstHeight=(pLightmap-><a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>-1)*pLightmap-><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-><a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>-1)<<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-><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-><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><pLightmap-><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>(&colorTilePtr-><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<dstWidth-1; u++) +01422 { +01423 <span class="comment">// Check</span> +01424 <a class="code" href="a04199.html#a6">nlassert</a> ( (u+v*dstWidth) < (<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>>8; +01428 <a class="code" href="a04199.html#a6">nlassert</a> (srcIndex>=0); +01429 <a class="code" href="a04199.html#a6">nlassert</a> (srcIndex<pLightmap->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&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&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-><a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>-1].Color565); +01449 expandedTLIColorLinePtr[dstWidth-1]= colorTLIPtr[pLightmap-><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-><a class="code" href="a03891.html#NL3D__CExpandLightmapo7">Width</a>; +01455 colorTLIPtr+=pLightmap-><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-><a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>-1)<<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><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>>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<dstWidth; u++) +01512 { +01513 expandedUserColorPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa3">blendFromui</a> (colorTilePtr0[u], colorTilePtr1[u], indexPixel&0xff); +01514 expandedTLIColorPtr[u].<a class="code" href="a03337.html#NLMISC_1_1CRGBAa3">blendFromui</a> (colorTLIPtr0[u], colorTLIPtr1[u], indexPixel&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-><a class="code" href="a03891.html#NL3D__CExpandLightmapo2">Height</a>-1); +01536 expandedTLIColorLinePtr= expandedTLIColorLine + dstWidth*(pLightmap-><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-><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 -> 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-><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-><a class="code" href="a03891.html#NL3D__CExpandLightmapo3">LumelTile</a>; +01555 <a class="code" href="a04558.html#a15">uint</a> lineWidth=dstWidth<<2; +01556 <a class="code" href="a04558.html#a15">uint</a> lineWidthx2=lineWidth<<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<<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><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-><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<dstWidth; u++) +01576 { +01577 <span class="comment">// index</span> +01578 <a class="code" href="a04558.html#a15">uint</a> lumelIndex=u<<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 )>>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-><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 -> 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-><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-><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<<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><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-><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<dstWidth; u++) +01635 { +01636 <span class="comment">// index</span> +01637 <a class="code" href="a04558.html#a15">uint</a> lumelIndex=u<<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])>>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-><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-><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-><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-><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<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-><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> |