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/a02915.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a02915.html | 1366 |
1 files changed, 1366 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02915.html b/docs/doxygen/nel/a02915.html new file mode 100644 index 00000000..420a467f --- /dev/null +++ b/docs/doxygen/nel/a02915.html @@ -0,0 +1,1366 @@ +<!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: NL3D::CMeshVPPerPixelLight class 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>NL3D::CMeshVPPerPixelLight Class Reference</h1><code>#include <<a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>></code> +<p> +<p>Inheritance diagram for NL3D::CMeshVPPerPixelLight: +<p><center><img src="a02915.png" usemap="#NL3D::CMeshVPPerPixelLight_map" border="0" alt=""></center> +<map name="NL3D::CMeshVPPerPixelLight_map"> +<area href="a02916.html" alt="NL3D::IMeshVertexProgram" shape="rect" coords="95,112,276,136"> +<area href="a02867.html" alt="NLMISC::IStreamable" shape="rect" coords="0,56,181,80"> +<area href="a02209.html" alt="NLMISC::CRefCount" shape="rect" coords="191,56,372,80"> +<area href="a02540.html" alt="NLMISC::IClassable" shape="rect" coords="0,0,181,24"> +</map> +<hr><a name="_details"></a><h2>Detailed Description</h2> +This vertex program is used to perform perpixel lighting with meshs. Its ouputs are :<p> +Coord Tex 0 : duplicate the tex Coord 0 set from the v.b. Coord Tex 1 : The light vector in tangent space. Coord Tex 2 : The half-angle vector in tangent space.<p> +This is designed to work with material that got a 'PerPixelLighting' shader. Note that no bump is used with this shader.<p> +It requires that the input mesh has its tangent space first column vector encoded in the 2nd texture coordinate. Other stages are not supported for now.<p> +Note that this can be mixed with gouraud rendered light (the gouraud diffuse and specular component are still computed)<p> +<dl compact><dt><b>Author:</b></dt><dd>Nicolas Vizerie <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2002 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a06023.html#l00058">58</a> of file <a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighta0">CMeshVPPerPixelLight</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual std::string </td><td class="memItemRight" valign=bottom><a class="el" href="a02540.html#NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6">getClassName</a> ()=0</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual float </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma3">getMaxVertexMove</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a14">sint</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypea8">getRefCount</a> () const </td></tr> + +<tr><td colspan="2"><div class="groupHeader">IMeshVertexProgram implementation</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_0">begin</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene, <a class="el" href="a02873.html">CMeshBaseInstance</a> *mbi, const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &invertedModelMat, const <a class="el" href="a03128.html">NLMISC::CVector</a> &viewerPos)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_1">end</a> (<a class="el" href="a02434.html">IDriver</a> *drv)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_2">initInstance</a> (<a class="el" href="a02873.html">CMeshBaseInstance</a> *mbi)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_3">needTangentSpace</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_4">NLMISC_DECLARE_CLASS</a> (<a class="el" href="a02915.html">CMeshVPPerPixelLight</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_5">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f) throw (NLMISC::EStream)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_6">setupForMaterial</a> (const <a class="el" href="a02839.html">CMaterial</a> &mat, <a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene, <a class="el" href="a03694.html">IVertexBufferHard</a> *vb)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_7">setupForMaterial</a> (const <a class="el" href="a02839.html">CMaterial</a> &mat, <a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene, <a class="el" href="a03692.html">CVertexBuffer</a> *vb)</td></tr> + +<tr><td colspan="2"><div class="groupHeader">MBR support.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Actually, it's targeted to work optimally with WindTree. Requirement are:<ul> +<li>No special Validity test per instance (hence isMBRVpOk() takes only the driver).</li><li>begin(), end(), setupForMaterial() is replaced with the following interface.</li><li>there is no setupMBRMaterial(), because the caller has just to call per material (and must do it): renderTrav->changeVPLightSetupMaterial(mat, false);</li><li>beginMBRMesh MUST activate the VertexProgram, because called before VB activation</li><li>beginMBRInstance still can change of VertexProgram, but cannot disable VP!! </li></ul> +<br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_0">beginMBRInstance</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene, <a class="el" href="a02873.html">CMeshBaseInstance</a> *mbi, const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &invertedModelMat)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_1">beginMBRMesh</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_2">endMBRMesh</a> (<a class="el" href="a02434.html">IDriver</a> *drv)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_3">isMBRVpOk</a> (<a class="el" href="a02434.html">IDriver</a> *drv) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_4">supportMeshBlockRendering</a> () const </td></tr> + +<tr><td colspan="2"><div class="groupHeader">MBR support.</div></td></tr> +<tr><td colspan="2"><div class="groupText">Actually, it's targeted to work optimally with WindTree. Requirement are:<ul> +<li>No special Validity test per instance (hence isMBRVpOk() takes only the driver).</li><li>begin(), end(), setupForMaterial() is replaced with the following interface.</li><li>there is no setupMBRMaterial(), because the caller has just to call per material (and must do it): renderTrav->changeVPLightSetupMaterial(mat, false);</li><li>beginMBRMesh MUST activate the VertexProgram, because called before VB activation</li><li>beginMBRInstance still can change of VertexProgram, but cannot disable VP!! </li></ul> +<br><br></div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_0">beginMBRInstance</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene, <a class="el" href="a02873.html">CMeshBaseInstance</a> *mbi, const <a class="el" href="a02851.html">NLMISC::CMatrix</a> &invertedModelMat)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_1">beginMBRMesh</a> (<a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual void </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_2">endMBRMesh</a> (<a class="el" href="a02434.html">IDriver</a> *drv)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_3">isMBRVpOk</a> (<a class="el" href="a02434.html">IDriver</a> *drv) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_4">supportMeshBlockRendering</a> () const </td></tr> + +<tr><td colspan=2><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a14">sint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo * </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">pinfo</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighto2">SpecularLighting</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">true if want Specular Lighting. <a href="#NL3D_1_1CMeshVPPerPixelLighto2"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Static Public Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>CPtrInfo </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NullPtrInfo</a></td></tr> + +<tr><td colspan=2><br><h2>Private Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom>{ <a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighty0NL3D_1_1CMeshVPPerPixelLighty1">NumVp</a> = 8 + }</td></tr> + +<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightd0">enable</a> (bool enabled, <a class="el" href="a02434.html">IDriver</a> *drv)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>virtual bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightd1">setupForMaterial</a> (const <a class="el" href="a02839.html">CMaterial</a> &mat, <a class="el" href="a02434.html">IDriver</a> *drv, <a class="el" href="a03348.html">CScene</a> *scene)</td></tr> + +<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr0">_Enabled</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr1">_IsPointLight</a></td></tr> + +<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>std::auto_ptr< <a class="el" href="a03702.html">CVertexProgram</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightv0">_VertexProgram</a> [NumVp]</td></tr> + +<tr><td colspan=2><br><h2>Friends</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="a02209.html#NLGEORGES_1_1UTypen0">CPtrInfo</a></td></tr> + +</table> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLighty0" doxytag="NL3D::CMeshVPPerPixelLight::@22" ></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"> anonymous enum<code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +<dl compact><dt><b>Enumeration values: </b></dt><dd> +<table border=0 cellspacing=2 cellpadding=0> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CMeshVPPerPixelLighty0NL3D_1_1CMeshVPPerPixelLighty1" doxytag="NumVp" ></a>NumVp</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a06023.html#l00099">99</a> of file <a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>. +<p> +<div class="fragment"><pre>00099 { <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighty0NL3D_1_1CMeshVPPerPixelLighty1">NumVp</a> = 8}; +</pre></div> </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLighta0" doxytag="NL3D::CMeshVPPerPixelLight::CMeshVPPerPixelLight" ></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"> NL3D::CMeshVPPerPixelLight::CMeshVPPerPixelLight </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></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="a06023.html#l00064">64</a> of file <a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>. +<p> +References <a class="el" href="a06023.html#l00096">_Enabled</a>, and <a class="el" href="a06023.html#l00062">SpecularLighting</a>. +<p> +<div class="fragment"><pre>00064 : <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighto2">SpecularLighting</a>(<span class="keyword">true</span>), <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr0">_Enabled</a>(<span class="keyword">false</span>) {} +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_0" doxytag="NL3D::CMeshVPPerPixelLight::begin" ></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"> bool NL3D::CMeshVPPerPixelLight::begin </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03348.html">CScene</a> * </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02873.html">CMeshBaseInstance</a> * </td> + <td class="mdname" nowrap> <em>mbi</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>invertedModelMat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname" nowrap> <em>viewerPos</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + +<p> +Implements <a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma0">NL3D::IMeshVertexProgram</a>. +<p> +Definition at line <a class="el" href="a06022.html#l00433">433</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +References <a class="el" href="a06023.html#l00097">_IsPointLight</a>, <a class="el" href="a06329.html#l00557">NL3D::CRenderTrav::beginVPLightSetup()</a>, <a class="el" href="a06022.html#l00517">enable()</a>, <a class="el" href="a05892.html#l00264">NL3D::CLight::getDirection()</a>, <a class="el" href="a06330.html#l00283">NL3D::CRenderTrav::getDriverLight()</a>, <a class="el" href="a05892.html#l00224">NL3D::CLight::getMode()</a>, <a class="el" href="a05892.html#l00256">NL3D::CLight::getPosition()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a06329.html#l00761">NL3D::CRenderTrav::getStrongestLightIndex()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_4">NL3D::IDriver::isVertexProgramEmulated()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_5">NL3D::IDriver::isVertexProgramSupported()</a>, <a class="el" href="a05972.html#l01244">NLMISC::CMatrix::mulVector()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_11">NL3D::IDriver::setConstant()</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_12">NL3D::IDriver::setConstantMatrix()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a06023.html#l00062">SpecularLighting</a>, and <a class="el" href="a02434.html#NL3D_1_1IDrivera77">NL3D::IDriver::supportPerPixelLighting()</a>. +<p> +<div class="fragment"><pre>00437 { +00438 <span class="comment">// test if supported by driver</span> +00439 <span class="keywordflow">if</span> (! +00440 (drv->isVertexProgramSupported() +00441 && !drv->isVertexProgramEmulated() +00442 && drv->supportPerPixelLighting(SpecularLighting) +00443 ) +00444 ) +00445 { +00446 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00447 } +00448 <span class="comment">// </span> +00449 CRenderTrav *renderTrav= &scene->getRenderTrav(); +00451 renderTrav->beginVPLightSetup(VPLightConstantStart, +00452 SpecularLighting, +00453 invertedModelMat); +00454 <span class="comment">//</span> +00455 <a class="code" href="a04558.html#a14">sint</a> strongestLightIndex = renderTrav->getStrongestLightIndex(); +00456 <span class="keywordflow">if</span> (strongestLightIndex == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>; <span class="comment">// if no strongest light, disable this vertex program </span> +00457 <span class="comment">// setup the strongest light</span> +00459 <span class="comment"></span> <span class="keyword">const</span> CLight &strongestLight = renderTrav->getDriverLight(strongestLightIndex); +00460 +00461 <span class="keywordflow">switch</span> (strongestLight.getMode()) +00462 { +00463 <span class="keywordflow">case</span> CLight::DirectionalLight: +00464 { +00465 <span class="comment">// put light direction in object space</span> +00466 <a class="code" href="a03128.html">NLMISC::CVector</a> lPos = invertedModelMat.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1968_1">mulVector</a>(strongestLight.getDirection()); +00467 drv->setConstant(4, lPos); +00468 <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr1">_IsPointLight</a> = <span class="keyword">false</span>; +00469 } +00470 <span class="keywordflow">break</span>; +00471 <span class="keywordflow">case</span> CLight::PointLight: +00472 { +00473 <span class="comment">// put light in object space</span> +00474 <a class="code" href="a03128.html">NLMISC::CVector</a> lPos = invertedModelMat * strongestLight.getPosition(); +00475 drv->setConstant(4, lPos); +00476 <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr1">_IsPointLight</a> = <span class="keyword">true</span>; +00477 } +00478 <span class="keywordflow">break</span>; +00479 <span class="keywordflow">default</span>: +00480 <span class="keywordflow">return</span> <span class="keyword">false</span>; +00481 <span class="keywordflow">break</span>; +00482 } +00483 +00484 +00485 <span class="keywordflow">if</span> (<a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighto2">SpecularLighting</a>) +00486 { +00487 <span class="comment">// viewer pos in object space</span> +00488 <a class="code" href="a03128.html">NLMISC::CVector</a> vPos = invertedModelMat * viewerPos; +00489 drv->setConstant(5, vPos); +00490 } +00491 +00492 <span class="comment">// c[0..3] take the ModelViewProjection Matrix. After setupModelMatrix();</span> +00493 drv->setConstantMatrix(0, IDriver::ModelViewProjection, IDriver::Identity); +00494 <span class="comment">// </span> +00495 <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightd0">enable</a>(<span class="keyword">true</span>, drv); <span class="comment">// must enable the vertex program before the vb is activated</span> +00496 <span class="comment">//</span> +00497 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00498 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IMeshVertexProgramz543_0" doxytag="NL3D::CMeshVPPerPixelLight::beginMBRInstance" ></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"> virtual void NL3D::IMeshVertexProgram::beginMBRInstance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03348.html">CScene</a> * </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02873.html">CMeshBaseInstance</a> * </td> + <td class="mdname" nowrap> <em>mbi</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>invertedModelMat</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02917.html#NL3D_1_1CMeshVPWindTreez551_0">NL3D::CMeshVPWindTree</a>. +<p> +Definition at line <a class="el" href="a06021.html#l00123">123</a> of file <a class="el" href="a06021.html">mesh_vertex_program.h</a>. +<p> +<div class="fragment"><pre>00123 {}; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IMeshVertexProgramz543_1" doxytag="NL3D::CMeshVPPerPixelLight::beginMBRMesh" ></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"> virtual void NL3D::IMeshVertexProgram::beginMBRMesh </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03348.html">CScene</a> * </td> + <td class="mdname" nowrap> <em>scene</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02917.html#NL3D_1_1CMeshVPWindTreez551_1">NL3D::CMeshVPWindTree</a>. +<p> +Definition at line <a class="el" href="a06021.html#l00122">122</a> of file <a class="el" href="a06021.html">mesh_vertex_program.h</a>. +<p> +<div class="fragment"><pre>00122 {}; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightd0" doxytag="NL3D::CMeshVPPerPixelLight::enable" ></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::CMeshVPPerPixelLight::enable </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname" nowrap> <em>enabled</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [private]</code></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="a06022.html#l00517">517</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +References <a class="el" href="a06023.html#l00096">_Enabled</a>, <a class="el" href="a06023.html#l00097">_IsPointLight</a>, <a class="el" href="a02434.html#NL3D_1_1IDriverz147_2">NL3D::IDriver::activeVertexProgram()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera46">NL3D::IDriver::isForceNormalize()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06023.html#l00062">SpecularLighting</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06022.html#l00433">begin()</a>, <a class="el" href="a06022.html#l00502">end()</a>, and <a class="el" href="a06022.html#l00544">setupForMaterial()</a>. +<p> +<div class="fragment"><pre>00518 { +00519 <span class="keywordflow">if</span> (enabled != <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr0">_Enabled</a>) +00520 { +00521 <a class="code" href="a04199.html#a6">nlassert</a>(drv); +00522 <span class="keywordflow">if</span> (enabled) +00523 { +00524 <span class="comment">/* for (uint k = 0; k < NumVp; ++k)</span> +00525 <span class="comment"> {</span> +00526 <span class="comment"> nlinfo("test vp %d", k);</span> +00527 <span class="comment"> drv->activeVertexProgram(_VertexProgram[k].get());</span> +00528 <span class="comment"> } */</span> +00529 <a class="code" href="a04558.html#a15">uint</a> idVP = (drv->isForceNormalize() ? 4 : 0) +00530 | (<a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighto2">SpecularLighting</a> ? 2 : 0) +00531 | (<a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr1">_IsPointLight</a> ? 1 : 0); +00532 <span class="comment">//</span> +00533 drv->activeVertexProgram(_VertexProgram[idVP].get()); +00534 } +00535 <span class="keywordflow">else</span> +00536 { +00537 drv->activeVertexProgram(NULL); +00538 } +00539 <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr0">_Enabled</a> = enabled; +00540 } +00541 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_1" doxytag="NL3D::CMeshVPPerPixelLight::end" ></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::CMeshVPPerPixelLight::end </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>drv</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + +<p> +Implements <a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma1">NL3D::IMeshVertexProgram</a>. +<p> +Definition at line <a class="el" href="a06022.html#l00502">502</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +References <a class="el" href="a06022.html#l00517">enable()</a>. +<p> +<div class="fragment"><pre>00503 { +00504 <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightd0">enable</a>(<span class="keyword">false</span>, drv); +00505 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IMeshVertexProgramz543_2" doxytag="NL3D::CMeshVPPerPixelLight::endMBRMesh" ></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"> virtual void NL3D::IMeshVertexProgram::endMBRMesh </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>drv</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02917.html#NL3D_1_1CMeshVPWindTreez551_2">NL3D::CMeshVPWindTree</a>. +<p> +Definition at line <a class="el" href="a06021.html#l00124">124</a> of file <a class="el" href="a06021.html">mesh_vertex_program.h</a>. +<p> +<div class="fragment"><pre>00124 {} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1ITrackKeyFramer_3_01CKeyVector_01_4a6" doxytag="NL3D::CMeshVPPerPixelLight::getClassName" ></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"> virtual std::string NLMISC::IClassable::getClassName </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [pure virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Implemented in <a class="el" href="a02995.html#NLAIAGENT_1_1CNumericIndexz1699_0">NLAIAGENT::CNumericIndex</a>, <a class="el" href="a02145.html#NLAIAGENT_1_1VectorTypez1764_0">NLAIC::IPointerGestion</a>, <a class="el" href="a02650.html#NLAIC_1_1CIdentTypez1766_0">NLAIC::CIdentType</a>, and <a class="el" href="a02241.html#CAutomataDescz1896_0">CAutomataDesc</a>. +<p> +Referenced by <a class="el" href="a05549.html#l00091">NLMISC::CClassRegistry::checkObject()</a>, and <a class="el" href="a06525.html#l00039">NL3D::GetTextureSize()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IMeshVertexPrograma3" doxytag="NL3D::CMeshVPPerPixelLight::getMaxVertexMove" ></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"> virtual float NL3D::IMeshVertexProgram::getMaxVertexMove </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +This return the (over-evaluated) max delta the VertexProgram apply to vertex (in world basis) NB: This method call is relevant only after <a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma0">begin()</a> or <a class="el" href="a02916.html#NL3D_1_1IMeshVertexProgramz543_0">beginMBRInstance()</a> +<p> +Reimplemented in <a class="el" href="a02917.html#NL3D_1_1CMeshVPWindTreea2">NL3D::CMeshVPWindTree</a>. +<p> +Definition at line <a class="el" href="a06021.html#l00131">131</a> of file <a class="el" href="a06021.html">mesh_vertex_program.h</a>. +<p> +<div class="fragment"><pre>00131 {<span class="keywordflow">return</span> 0;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypea8" doxytag="NL3D::CMeshVPPerPixelLight::getRefCount" ></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"> const <a class="el" href="a04558.html#a14">sint</a>& NLMISC::CRefCount::getRefCount </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, inherited]</code></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="a06402.html#l00070">70</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +References <a class="el" href="a06402.html#l00079">NLMISC::CRefCount::crefs</a>, and <a class="el" href="a05981.html#l00104">sint</a>. +<p> +<div class="fragment"><pre>00071 { +00072 <span class="keywordflow">return</span> <a class="code" href="a02209.html#NLGEORGES_1_1UTypeo0">crefs</a>; +00073 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_2" doxytag="NL3D::CMeshVPPerPixelLight::initInstance" ></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::CMeshVPPerPixelLight::initInstance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02873.html">CMeshBaseInstance</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>mbi</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + +<p> +Implements <a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma6">NL3D::IMeshVertexProgram</a>. +<p> +Definition at line <a class="el" href="a06022.html#l00371">371</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +References <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighty0NL3D_1_1CMeshVPPerPixelLighty1">NumVp</a>, <a class="el" href="a06718.html#l00921">CVPParser::parse()</a>, <a class="el" href="a06022.html#l00293">NL3D::PPLightingDirectionnalNoSpecVPCodeBegin</a>, <a class="el" href="a06022.html#l00310">NL3D::PPLightingDirectionnalNoSpecVPNormalizeCodeBegin</a>, <a class="el" href="a06022.html#l00213">NL3D::PPLightingDirectionnalVPCodeBegin</a>, <a class="el" href="a06022.html#l00248">NL3D::PPLightingDirectionnalVPNormalizeCodeBegin</a>, <a class="el" href="a06022.html#l00150">NL3D::PPLightingNoSpecVPCodeBegin</a>, <a class="el" href="a06022.html#l00065">NL3D::PPLightingVPCodeBegin</a>, <a class="el" href="a06022.html#l00340">NL3D::PPLightingVPCodeEnd</a>, <a class="el" href="a06022.html#l00101">NL3D::PPLightingVPNormalizeCodeBegin</a>, <a class="el" href="a06022.html#l00173">NL3D::PPLightingVPNormalizeNoSpecCodeBegin</a>, <a class="el" href="a06719.html#l00194">CVPParser::TProgram</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00372 { +00373 <span class="comment">// init the vertexProgram code.</span> +00374 <span class="keyword">static</span> <span class="keywordtype">bool</span> vpCreated= <span class="keyword">false</span>; +00375 <span class="keywordflow">if</span>(!vpCreated) +00376 { +00377 vpCreated= <span class="keyword">true</span>; +00378 +00379 <span class="comment">// Gives each vp name</span> +00380 <span class="comment">// Bit 0 : 1 when it is a directionnal light</span> +00381 <span class="comment">// Bit 1 : 1 when specular is needed</span> +00382 <span class="comment">// Bit 2 : 1 when normalization of the tangent space is needed</span> +00383 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *vpName[] = +00384 { +00385 <span class="comment">// no spec</span> +00386 <a class="code" href="a05363.html#a144">PPLightingDirectionnalNoSpecVPCodeBegin</a>, +00387 <a class="code" href="a05363.html#a140">PPLightingNoSpecVPCodeBegin</a>, +00388 <span class="comment">// specular</span> +00389 <a class="code" href="a05363.html#a142">PPLightingDirectionnalVPCodeBegin</a>, +00390 <a class="code" href="a05363.html#a138">PPLightingVPCodeBegin</a>, +00392 <span class="comment">// no spec</span> +00393 <a class="code" href="a05363.html#a145">PPLightingDirectionnalNoSpecVPNormalizeCodeBegin</a>, +00394 <a class="code" href="a05363.html#a141">PPLightingVPNormalizeNoSpecCodeBegin</a>, +00395 <span class="comment">// spec</span> +00396 <a class="code" href="a05363.html#a143">PPLightingDirectionnalVPNormalizeCodeBegin</a>, +00397 <a class="code" href="a05363.html#a139">PPLightingVPNormalizeCodeBegin</a>, +00398 }; +00399 +00400 <a class="code" href="a04558.html#a15">uint</a> numvp = <span class="keyword">sizeof</span>(vpName) / <span class="keyword">sizeof</span>(<span class="keyword">const</span> <span class="keywordtype">char</span> *); +00401 <a class="code" href="a04199.html#a6">nlassert</a>(NumVp == numvp); <span class="comment">// make sure that it is in sync with header..todo : compile time assert :)</span> +00402 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> vp = 0; vp < <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighty0NL3D_1_1CMeshVPPerPixelLighty1">NumVp</a>; ++vp) +00403 { +00404 <span class="comment">// \todo yoyo TODO_OPTIM Manage different number of pointLights</span> +00405 <span class="comment">// NB: never call getLightVPFragment() with normalize, because already done by PerPixel fragment before.</span> +00406 std::string vpCode = std::string(vpName[vp]) +00407 + std::string(<span class="stringliteral">"# ***************"</span>) <span class="comment">// temp for debug</span> +00408 + CRenderTrav::getLightVPFragment(CRenderTrav::MaxVPLight-1, VPLightConstantStart, (vp & 2) != 0, <span class="keyword">false</span>) +00409 + std::string(<span class="stringliteral">"# ***************"</span>) <span class="comment">// temp for debug</span> +00410 + std::string(PPLightingVPCodeEnd); +00411 <span class="preprocessor"> #ifdef NL_DEBUG</span> +00412 <span class="preprocessor"></span> +00417 <a class="code" href="a03717.html">CVPParser</a> vpParser; +00418 <a class="code" href="a03717.html#CVPParserw0">CVPParser::TProgram</a> result; +00419 std::string parseOutput; +00420 <span class="keywordflow">if</span> (!vpParser.<a class="code" href="a03717.html#CVPParsera0">parse</a>(vpCode.c_str(), result, parseOutput)) +00421 { +00422 <a class="code" href="a04199.html#a2">nlwarning</a>(parseOutput.c_str()); +00423 <a class="code" href="a04199.html#a6">nlassert</a>(0); +00424 } +00425 <span class="preprocessor"> #endif</span> +00426 <span class="preprocessor"></span> <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightv0">_VertexProgram</a>[vp]= std::auto_ptr<CVertexProgram>(<span class="keyword">new</span> CVertexProgram(vpCode.c_str())); +00427 } +00428 +00429 } +00430 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IMeshVertexProgramz543_3" doxytag="NL3D::CMeshVPPerPixelLight::isMBRVpOk" ></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"> virtual bool NL3D::IMeshVertexProgram::isMBRVpOk </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>drv</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02917.html#NL3D_1_1CMeshVPWindTreez551_3">NL3D::CMeshVPWindTree</a>. +<p> +Definition at line <a class="el" href="a06021.html#l00121">121</a> of file <a class="el" href="a06021.html">mesh_vertex_program.h</a>. +<p> +<div class="fragment"><pre>00121 {<span class="keywordflow">return</span> <span class="keyword">false</span>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_3" doxytag="NL3D::CMeshVPPerPixelLight::needTangentSpace" ></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"> virtual bool NL3D::CMeshVPPerPixelLight::needTangentSpace </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + +<p> +Reimplemented from <a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma7">NL3D::IMeshVertexProgram</a>. +<p> +Definition at line <a class="el" href="a06023.html#l00084">84</a> of file <a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>. +<p> +<div class="fragment"><pre>00084 { <span class="keywordflow">return</span> <span class="keyword">true</span>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_4" doxytag="NL3D::CMeshVPPerPixelLight::NLMISC_DECLARE_CLASS" ></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"> NL3D::CMeshVPPerPixelLight::NLMISC_DECLARE_CLASS </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02915.html">CMeshVPPerPixelLight</a> </td> + <td class="mdname1" valign="top" nowrap> </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> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_5" doxytag="NL3D::CMeshVPPerPixelLight::serial" ></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::CMeshVPPerPixelLight::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> throw (<a class="el" href="a03781.html">NLMISC::EStream</a>)<code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + +<p> +Implements <a class="el" href="a02867.html#NL3D_1_1ITrackDefaulta6">NLMISC::IStreamable</a>. +<p> +Definition at line <a class="el" href="a06022.html#l00509">509</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +<div class="fragment"><pre>00510 { +00511 (<span class="keywordtype">void</span>)f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a>(0); +00512 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(SpecularLighting); +00513 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightd1" doxytag="NL3D::CMeshVPPerPixelLight::setupForMaterial" ></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"> bool NL3D::CMeshVPPerPixelLight::setupForMaterial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02839.html">CMaterial</a> & </td> + <td class="mdname" nowrap> <em>mat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03348.html">CScene</a> * </td> + <td class="mdname" nowrap> <em>scene</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [private, virtual]</code></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="a06022.html#l00544">544</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +References <a class="el" href="a06023.html#l00096">_Enabled</a>, <a class="el" href="a06329.html#l00653">NL3D::CRenderTrav::changeVPLightSetupMaterial()</a>, <a class="el" href="a06022.html#l00517">enable()</a>, <a class="el" href="a06349.html#l00479">NL3D::CScene::getRenderTrav()</a>, <a class="el" href="a05969.html#l00254">NL3D::CMaterial::getShader()</a>, <a class="el" href="a05969.html#l00383">NL3D::CMaterial::getShininess()</a>, <a class="el" href="a06329.html#l00778">NL3D::CRenderTrav::getStrongestLightColors()</a>, and <a class="el" href="a02434.html#NL3D_1_1IDrivera64">NL3D::IDriver::setPerPixelLightingLight()</a>. +<p> +<div class="fragment"><pre>00548 { +00549 <span class="keywordtype">bool</span> enabled = (mat.getShader() == CMaterial::PerPixelLighting || mat.getShader() == CMaterial::PerPixelLightingNoSpec); +00550 <span class="keywordflow">if</span> (enabled) +00551 { +00552 CRenderTrav *renderTrav= &scene->getRenderTrav(); +00553 renderTrav->changeVPLightSetupMaterial(mat, <span class="keyword">true</span> <span class="comment">/* exclude strongest*/</span>); +00554 +00555 <a class="code" href="a03337.html">NLMISC::CRGBA</a> pplDiffuse, pplSpecular; +00556 renderTrav->getStrongestLightColors(pplDiffuse, pplSpecular); +00557 drv->setPerPixelLightingLight(pplDiffuse, pplSpecular, mat.getShininess()); +00558 } +00559 <span class="keywordtype">bool</span> change = (enabled != <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr0">_Enabled</a>); +00560 <a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightd0">enable</a>(enabled, drv); <span class="comment">// enable disable the vertex program (for material that don't have the right shader)</span> +00561 <span class="keywordflow">return</span> change; +00562 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_6" doxytag="NL3D::CMeshVPPerPixelLight::setupForMaterial" ></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::CMeshVPPerPixelLight::setupForMaterial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02839.html">CMaterial</a> & </td> + <td class="mdname" nowrap> <em>mat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03348.html">CScene</a> * </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03694.html">IVertexBufferHard</a> * </td> + <td class="mdname" nowrap> <em>vb</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + +<p> +Implements <a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma9">NL3D::IMeshVertexProgram</a>. +<p> +Definition at line <a class="el" href="a06022.html#l00577">577</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +References <a class="el" href="a02434.html#NL3D_1_1IDrivera3">NL3D::IDriver::activeVertexBufferHard()</a>, and <a class="el" href="a06022.html#l00564">setupForMaterial()</a>. +<p> +<div class="fragment"><pre>00581 { +00582 +00583 <span class="keywordflow">if</span> (<a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_7">setupForMaterial</a>(mat, drv, scene)) <span class="comment">// a switch from v.p enabled / disabled force to reactivate the vertex buffer.</span> +00584 { +00585 drv->activeVertexBufferHard(vb); +00586 } +00587 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightz545_7" doxytag="NL3D::CMeshVPPerPixelLight::setupForMaterial" ></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::CMeshVPPerPixelLight::setupForMaterial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02839.html">CMaterial</a> & </td> + <td class="mdname" nowrap> <em>mat</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03348.html">CScene</a> * </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03692.html">CVertexBuffer</a> * </td> + <td class="mdname" nowrap> <em>vb</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [virtual]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup for gouraud lighting +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000018">Todo:</a></b></dt><dd>disabling of specular lighting with this shader</dd></dl> + +<p> +Implements <a class="el" href="a02916.html#NL3D_1_1IMeshVertexPrograma10">NL3D::IMeshVertexProgram</a>. +<p> +Definition at line <a class="el" href="a06022.html#l00564">564</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. +<p> +References <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>. +<p> +Referenced by <a class="el" href="a06022.html#l00577">setupForMaterial()</a>. +<p> +<div class="fragment"><pre>00568 { +00569 +00570 <span class="keywordflow">if</span> (<a class="code" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightz545_7">setupForMaterial</a>(mat, drv, scene)) <span class="comment">// a switch from v.p enabled / disabled force to reactivate the vertex buffer.</span> +00571 { +00572 drv->activeVertexBuffer(*vb); +00573 } +00574 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1IMeshVertexProgramz543_4" doxytag="NL3D::CMeshVPPerPixelLight::supportMeshBlockRendering" ></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"> virtual bool NL3D::IMeshVertexProgram::supportMeshBlockRendering </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline, virtual, inherited]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Reimplemented in <a class="el" href="a02917.html#NL3D_1_1CMeshVPWindTreez551_4">NL3D::CMeshVPWindTree</a>. +<p> +Definition at line <a class="el" href="a06021.html#l00120">120</a> of file <a class="el" href="a06021.html">mesh_vertex_program.h</a>. +<p> +<div class="fragment"><pre>00120 { <span class="keywordflow">return</span> <span class="keyword">false</span>; } +</pre></div> </td> + </tr> +</table> +<hr><h2>Friends And Related Function Documentation</h2> +<a class="anchor" name="NLGEORGES_1_1UTypen0" doxytag="NL3D::CMeshVPPerPixelLight::CPtrInfo" ></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"> friend struct CPtrInfo<code> [friend, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00067">67</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightr0" doxytag="NL3D::CMeshVPPerPixelLight::_Enabled" ></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"> bool <a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr0">NL3D::CMeshVPPerPixelLight::_Enabled</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06023.html#l00096">96</a> of file <a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>. +<p> +Referenced by <a class="el" href="a06023.html#l00064">CMeshVPPerPixelLight()</a>, <a class="el" href="a06022.html#l00517">enable()</a>, and <a class="el" href="a06022.html#l00544">setupForMaterial()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightr1" doxytag="NL3D::CMeshVPPerPixelLight::_IsPointLight" ></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"> bool <a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightr1">NL3D::CMeshVPPerPixelLight::_IsPointLight</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06023.html#l00097">97</a> of file <a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>. +<p> +Referenced by <a class="el" href="a06022.html#l00433">begin()</a>, and <a class="el" href="a06022.html#l00517">enable()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLightv0" doxytag="NL3D::CMeshVPPerPixelLight::_VertexProgram" ></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"> std::auto_ptr< <a class="el" href="a03702.html">CVertexProgram</a> > <a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLightv0">NL3D::CMeshVPPerPixelLight::_VertexProgram</a><code> [static, private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06022.html#l00044">44</a> of file <a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypeo0" doxytag="NL3D::CMeshVPPerPixelLight::crefs" ></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"> <a class="el" href="a04558.html#a14">sint</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo0">NLMISC::CRefCount::crefs</a><code> [mutable, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00079">79</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, <a class="el" href="a06402.html#l00070">NLMISC::CRefCount::getRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypes0" doxytag="NL3D::CMeshVPPerPixelLight::NullPtrInfo" ></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"> <a class="el" href="a03320.html">CRefCount::CPtrInfo</a> <a class="el" href="a02209.html#NLGEORGES_1_1UTypes0">NLMISC::CRefCount::NullPtrInfo</a><code> [static, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>. </td> + </tr> +</table> +<a class="anchor" name="NLGEORGES_1_1UTypeo1" doxytag="NL3D::CMeshVPPerPixelLight::pinfo" ></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"> CPtrInfo* <a class="el" href="a02209.html#NLGEORGES_1_1UTypeo1">NLMISC::CRefCount::pinfo</a><code> [mutable, inherited]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06402.html#l00080">80</a> of file <a class="el" href="a06402.html">smart_ptr.h</a>. +<p> +Referenced by <a class="el" href="a06402.html#l00085">NLMISC::CRefCount::CRefCount()</a>, and <a class="el" href="a06403.html#l00044">NLMISC::CRefCount::~CRefCount()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CMeshVPPerPixelLighto2" doxytag="NL3D::CMeshVPPerPixelLight::SpecularLighting" ></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"> bool <a class="el" href="a02915.html#NL3D_1_1CMeshVPPerPixelLighto2">NL3D::CMeshVPPerPixelLight::SpecularLighting</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +true if want Specular Lighting. +<p> + +<p> +Definition at line <a class="el" href="a06023.html#l00062">62</a> of file <a class="el" href="a06023.html">meshvp_per_pixel_light.h</a>. +<p> +Referenced by <a class="el" href="a06022.html#l00433">begin()</a>, <a class="el" href="a06023.html#l00064">CMeshVPPerPixelLight()</a>, and <a class="el" href="a06022.html#l00517">enable()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06023.html">meshvp_per_pixel_light.h</a><li><a class="el" href="a06022.html">meshvp_per_pixel_light.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:56:12 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> |