Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 1026

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: csShaderProgram Class Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>csShaderProgram Class Reference<br>
<small>
[<a class="el" href="group__plugincommon.html">Common Plugin Classes</a>]</small>
</h1><!-- doxytag: class="csShaderProgram" --><!-- doxytag: inherits="scfImplementation2&lt; csShaderProgram, iShaderProgram, iShaderDestinationResolver &gt;" -->Base class for <a class="el" href="structiShaderProgram.html" title="A helper for shaders that which to use the general plugins.">iShaderProgram</a> plugins.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="shaderprogram_8h-source.html">csplugincommon/shader/shaderprogram.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for csShaderProgram:</div>
<div class="dynsection">
<p><center><img src="classcsShaderProgram__inherit__graph.png" border="0" usemap="#csShaderProgram__inherit__map" alt="Inheritance graph"></center>
<map name="csShaderProgram__inherit__map">
<area shape="rect" href="classscfImplementation2.html" title="scfImplementation2\&lt; csShaderProgram, iShaderProgram, iShaderDestinationResolver \&gt;" alt="" coords="615,56,1212,83"><area shape="rect" href="classscfImplementation.html" title="scfImplementation\&lt; csShaderProgram \&gt;" alt="" coords="276,5,564,32"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="88,56,144,83"><area shape="rect" href="structiShaderProgram.html" title="A helper for shaders that which to use the general plugins." alt="" coords="356,56,484,83"><area shape="rect" href="structiShaderDestinationResolver.html" title="Interface to allow resolution of friendly destination names." alt="" coords="320,107,520,133"><area shape="rect" href="classCS_1_1Memory_1_1CustomAllocated.html" title="Class that overrides operator new/operator delete/etc." alt="" coords="5,5,227,32"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classcsShaderProgram-members.html">List of all members.</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"><a class="anchor" name="a0e3c04be82746567051a94ec9db716e"></a><!-- doxytag: member="csShaderProgram::ResolveBufferDestination" ref="a0e3c04be82746567051a94ec9db716e" args="(const char *)" -->
virtual <a class="el" href="group__gfx3d.html#g3daee560553f3d8fa3894b31cdde006e">csVertexAttrib</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#a0e3c04be82746567051a94ec9db716e">ResolveBufferDestination</a> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#58c7a43856e39a04d5d2bb99ae1f6e91">ResolveTU</a> (const char *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When the destination of a texture binding wasn't recognized, the FP is asked whether it can provide a TU number for it.  <a href="#58c7a43856e39a04d5d2bb99ae1f6e91"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020">ProgramParamType</a> { <br>
&nbsp;&nbsp;<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020a2a9e1f166d82a74ed6a5de1b6c3656e">ParamInvalid</a> =  0, 
<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020c9621a6d8b63ff0d7599751e9cf738b7">ParamFloat</a> =  0x0001, 
<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020ae5e476c66a5b6593c4273f6bb7f57e8">ParamVector2</a> =  0x0002, 
<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b902021fd45a4e9283c3aa22de0dc314ad88b">ParamVector3</a> =  0x0004, 
<br>
&nbsp;&nbsp;<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b90208ffdf6c84b22a6c274f2f37be55895b8">ParamVector4</a> =  0x0008, 
<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020621656905985360dbdc13ad374c01c3c">ParamMatrix</a> =  0x0010, 
<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020339de00219839952f688b8a2c6ea4826">ParamTransform</a> =  0x0020, 
<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020970e45129a5f82d241ea116669b6a3d9">ParamArray</a> =  0x0040, 
<br>
&nbsp;&nbsp;<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020f214730a2b4811161d4c42d50024ed88">ParamShaderExp</a> =  0x0080, 
<a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b90204a4b759014b1702ff78221e12e7f0612">ParamVector</a> =  ParamFloat | ParamVector2 | ParamVector3 | ParamVector4
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Expected/accepted types for a program parameter.  <a href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#30325beea9a2b49943f29ac36765a6eb">DumpProgramInfo</a> (<a class="el" href="classcsString.html">csString</a> &amp;output)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump all program info to output.  <a href="#30325beea9a2b49943f29ac36765a6eb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#ae374fdc7221f2057ff7d21a7e3d2e5d">DumpVariableMappings</a> (<a class="el" href="classcsString.html">csString</a> &amp;output)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump variable mapping.  <a href="#ae374fdc7221f2057ff7d21a7e3d2e5d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsPtr.html">csPtr</a>&lt; <a class="el" href="structiDataBuffer.html">iDataBuffer</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#5b0bb25a03d4a0d73f95c20f64d69b99">GetProgramData</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the raw program data.  <a href="#5b0bb25a03d4a0d73f95c20f64d69b99"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structiDocumentNode.html">iDocumentNode</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#ea3be52cdc4fae0d690b1051104f96c0">GetProgramNode</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the program node.  <a href="#ea3be52cdc4fae0d690b1051104f96c0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#571e33a0a06c9bd5d5c5d0148df70c21">ParseCommon</a> (<a class="el" href="structiDocumentNode.html">iDocumentNode</a> *child)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse common properties and variablemapping.  <a href="#571e33a0a06c9bd5d5c5d0148df70c21"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#aa021d0a1fe7f61c4613fe45b598e5df">ParseProgramParam</a> (<a class="el" href="structiDocumentNode.html">iDocumentNode</a> *node, <a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a> &amp;param, <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> types=~0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse program parameter node.  <a href="#aa021d0a1fe7f61c4613fe45b598e5df"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f5aaccad33a17dda9a4b7378847db5cf"></a><!-- doxytag: member="csShaderProgram::GetParamFloatVal" ref="f5aaccad33a17dda9a4b7378847db5cf" args="(const iShaderVarStack *stacks, const ProgramParam &amp;param, float defVal)" -->
float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#f5aaccad33a17dda9a4b7378847db5cf">GetParamFloatVal</a> (const <a class="el" href="structiShaderVarStack.html">iShaderVarStack</a> *stacks, const <a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a> &amp;param, float defVal)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7a0ace8707bf7c30e5d0634b57865f8f"></a><!-- doxytag: member="csShaderProgram::GetParamTransformVal" ref="7a0ace8707bf7c30e5d0634b57865f8f" args="(const iShaderVarStack *stacks, const ProgramParam &amp;param, const csReversibleTransform &amp;defVal)" -->
<a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#7a0ace8707bf7c30e5d0634b57865f8f">GetParamTransformVal</a> (const <a class="el" href="structiShaderVarStack.html">iShaderVarStack</a> *stacks, const <a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a> &amp;param, const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &amp;defVal)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4.html">csVector4</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#279b51c4f53d9abe1126179e4e5f9b4a">GetParamVectorVal</a> (const <a class="el" href="structiShaderVarStack.html">iShaderVarStack</a> *stacks, const <a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a> &amp;param, const <a class="el" href="classcsVector4.html">csVector4</a> &amp;defVal)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the value of a <a class="el" href="structcsShaderProgram_1_1ProgramParam.html" title="Program parameter, either a SV reference or a const value.">ProgramParam</a> variable by reading the constant or resolving the shader variable.  <a href="#279b51c4f53d9abe1126179e4e5f9b4a"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e76686a7ae19eeea29ebf4ae6f8a2bc2"></a><!-- doxytag: member="csShaderProgram::commonTokens" ref="e76686a7ae19eeea29ebf4ae6f8a2bc2" args="" -->
<a class="el" href="classcsStringHash.html">csStringHash</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#e76686a7ae19eeea29ebf4ae6f8a2bc2">commonTokens</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsString.html">csString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#2ff9212ce10752623b5ed1fac0a33d91">description</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Program description.  <a href="#2ff9212ce10752623b5ed1fac0a33d91"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#707a647c53e116ee811dd97090ac90e9">doVerbose</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether the shader program should report additional information during runtime.  <a href="#707a647c53e116ee811dd97090ac90e9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5c9206ee8764979e091c297cd2f549c6"></a><!-- doxytag: member="csShaderProgram::objectReg" ref="5c9206ee8764979e091c297cd2f549c6" args="" -->
<a class="el" href="structiObjectRegistry.html">iObjectRegistry</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#5c9206ee8764979e091c297cd2f549c6">objectReg</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiFile.html">iFile</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#ce68f2732ffbfcc20d9700766ba703be">programFile</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">File the program is loaded from (if any).  <a href="#ce68f2732ffbfcc20d9700766ba703be"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsString.html">csString</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#27ccf20058acba0d79f29963bae7ec1e">programFileName</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Filename of program.  <a href="#27ccf20058acba0d79f29963bae7ec1e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiDocumentNode.html">iDocumentNode</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#5c491699e31684a647fe00e05be55819">programNode</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structiDocumentNode.html" title="Representation of a node in a document.">iDocumentNode</a> the program is loaded from  <a href="#5c491699e31684a647fe00e05be55819"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b4798a46a6f833ab6f2d7d9ea0319591"></a><!-- doxytag: member="csShaderProgram::strings" ref="b4798a46a6f833ab6f2d7d9ea0319591" args="" -->
<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiStringSet.html">iStringSet</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#b4798a46a6f833ab6f2d7d9ea0319591">strings</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="982a78952b2acd82c5508ca24d081585"></a><!-- doxytag: member="csShaderProgram::synsrv" ref="982a78952b2acd82c5508ca24d081585" args="" -->
<a class="el" href="classcsRef.html">csRef</a>&lt; <a class="el" href="structiSyntaxService.html">iSyntaxService</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#982a78952b2acd82c5508ca24d081585">synsrv</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsArray.html">csArray</a><br>
&lt; <a class="el" href="structcsShaderProgram_1_1VariableMapEntry.html">VariableMapEntry</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#5f8cefcc5242dc1c7f67a22ae03aec72">variablemap</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Variable mappings.  <a href="#5f8cefcc5242dc1c7f67a22ae03aec72"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Program parameter, either a SV reference or a const value.  <a href="structcsShaderProgram_1_1ProgramParam.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcsShaderProgram_1_1VariableMapEntry.html">VariableMapEntry</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Holder of variable mapping.  <a href="structcsShaderProgram_1_1VariableMapEntry.html#_details">More...</a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Base class for <a class="el" href="structiShaderProgram.html" title="A helper for shaders that which to use the general plugins.">iShaderProgram</a> plugins. 
<p>
Provides basic services such as holding and of parameter mapping information, basic program data and data dumping. 
<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00058">58</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020"></a><!-- doxytag: member="csShaderProgram::ProgramParamType" ref="b05c11b742bbed5058d2d91fa80b9020" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020">csShaderProgram::ProgramParamType</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Expected/accepted types for a program parameter. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020a2a9e1f166d82a74ed6a5de1b6c3656e"></a><!-- doxytag: member="ParamInvalid" ref="b05c11b742bbed5058d2d91fa80b9020a2a9e1f166d82a74ed6a5de1b6c3656e" args="" -->ParamInvalid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020c9621a6d8b63ff0d7599751e9cf738b7"></a><!-- doxytag: member="ParamFloat" ref="b05c11b742bbed5058d2d91fa80b9020c9621a6d8b63ff0d7599751e9cf738b7" args="" -->ParamFloat</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020ae5e476c66a5b6593c4273f6bb7f57e8"></a><!-- doxytag: member="ParamVector2" ref="b05c11b742bbed5058d2d91fa80b9020ae5e476c66a5b6593c4273f6bb7f57e8" args="" -->ParamVector2</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b902021fd45a4e9283c3aa22de0dc314ad88b"></a><!-- doxytag: member="ParamVector3" ref="b05c11b742bbed5058d2d91fa80b902021fd45a4e9283c3aa22de0dc314ad88b" args="" -->ParamVector3</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b90208ffdf6c84b22a6c274f2f37be55895b8"></a><!-- doxytag: member="ParamVector4" ref="b05c11b742bbed5058d2d91fa80b90208ffdf6c84b22a6c274f2f37be55895b8" args="" -->ParamVector4</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020621656905985360dbdc13ad374c01c3c"></a><!-- doxytag: member="ParamMatrix" ref="b05c11b742bbed5058d2d91fa80b9020621656905985360dbdc13ad374c01c3c" args="" -->ParamMatrix</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020339de00219839952f688b8a2c6ea4826"></a><!-- doxytag: member="ParamTransform" ref="b05c11b742bbed5058d2d91fa80b9020339de00219839952f688b8a2c6ea4826" args="" -->ParamTransform</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020970e45129a5f82d241ea116669b6a3d9"></a><!-- doxytag: member="ParamArray" ref="b05c11b742bbed5058d2d91fa80b9020970e45129a5f82d241ea116669b6a3d9" args="" -->ParamArray</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020f214730a2b4811161d4c42d50024ed88"></a><!-- doxytag: member="ParamShaderExp" ref="b05c11b742bbed5058d2d91fa80b9020f214730a2b4811161d4c42d50024ed88" args="" -->ParamShaderExp</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b90204a4b759014b1702ff78221e12e7f0612"></a><!-- doxytag: member="ParamVector" ref="b05c11b742bbed5058d2d91fa80b90204a4b759014b1702ff78221e12e7f0612" args="" -->ParamVector</em>&nbsp;</td><td>
</td></tr>
</table>
</dl>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00080">80</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="30325beea9a2b49943f29ac36765a6eb"></a><!-- doxytag: member="csShaderProgram::DumpProgramInfo" ref="30325beea9a2b49943f29ac36765a6eb" args="(csString &amp;output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csShaderProgram::DumpProgramInfo           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsString.html">csString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>output</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dump all program info to output. 
<p>

</div>
</div><p>
<a class="anchor" name="ae374fdc7221f2057ff7d21a7e3d2e5d"></a><!-- doxytag: member="csShaderProgram::DumpVariableMappings" ref="ae374fdc7221f2057ff7d21a7e3d2e5d" args="(csString &amp;output)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void csShaderProgram::DumpVariableMappings           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classcsString.html">csString</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>output</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Dump variable mapping. 
<p>

</div>
</div><p>
<a class="anchor" name="279b51c4f53d9abe1126179e4e5f9b4a"></a><!-- doxytag: member="csShaderProgram::GetParamVectorVal" ref="279b51c4f53d9abe1126179e4e5f9b4a" args="(const iShaderVarStack *stacks, const ProgramParam &amp;param, const csVector4 &amp;defVal)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsVector4.html">csVector4</a> csShaderProgram::GetParamVectorVal           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structiShaderVarStack.html">iShaderVarStack</a> *&nbsp;</td>
          <td class="paramname"> <em>stacks</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classcsVector4.html">csVector4</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>defVal</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query the value of a <a class="el" href="structcsShaderProgram_1_1ProgramParam.html" title="Program parameter, either a SV reference or a const value.">ProgramParam</a> variable by reading the constant or resolving the shader variable. 
<p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00174">174</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

<p>References <a class="el" href="shader_8h-source.html#l00067">csGetShaderVariableFromStack()</a>, <a class="el" href="ref_8h-source.html#l00364">csRef&lt; T &gt;::IsValid()</a>, <a class="el" href="shaderprogram_8h-source.html#l00103">csShaderProgram::ProgramParam::name</a>, and <a class="el" href="shaderprogram_8h-source.html#l00105">csShaderProgram::ProgramParam::var</a>.</p>

</div>
</div><p>
<a class="anchor" name="5b0bb25a03d4a0d73f95c20f64d69b99"></a><!-- doxytag: member="csShaderProgram::GetProgramData" ref="5b0bb25a03d4a0d73f95c20f64d69b99" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsPtr.html">csPtr</a>&lt;<a class="el" href="structiDataBuffer.html">iDataBuffer</a>&gt; csShaderProgram::GetProgramData           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the raw program data. 
<p>

</div>
</div><p>
<a class="anchor" name="ea3be52cdc4fae0d690b1051104f96c0"></a><!-- doxytag: member="csShaderProgram::GetProgramNode" ref="ea3be52cdc4fae0d690b1051104f96c0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structiDocumentNode.html">iDocumentNode</a>* csShaderProgram::GetProgramNode           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the program node. 
<p>

</div>
</div><p>
<a class="anchor" name="571e33a0a06c9bd5d5c5d0148df70c21"></a><!-- doxytag: member="csShaderProgram::ParseCommon" ref="571e33a0a06c9bd5d5c5d0148df70c21" args="(iDocumentNode *child)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csShaderProgram::ParseCommon           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiDocumentNode.html">iDocumentNode</a> *&nbsp;</td>
          <td class="paramname"> <em>child</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse common properties and variablemapping. 
<p>

</div>
</div><p>
<a class="anchor" name="aa021d0a1fe7f61c4613fe45b598e5df"></a><!-- doxytag: member="csShaderProgram::ParseProgramParam" ref="aa021d0a1fe7f61c4613fe45b598e5df" args="(iDocumentNode *node, ProgramParam &amp;param, uint types=~0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool csShaderProgram::ParseProgramParam           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiDocumentNode.html">iDocumentNode</a> *&nbsp;</td>
          <td class="paramname"> <em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>param</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
          <td class="paramname"> <em>types</em> = <code>~0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse program parameter node. 
<p>

</div>
</div><p>
<a class="anchor" name="58c7a43856e39a04d5d2bb99ae1f6e91"></a><!-- doxytag: member="csShaderProgram::ResolveTU" ref="58c7a43856e39a04d5d2bb99ae1f6e91" args="(const char *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int csShaderProgram::ResolveTU           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>binding</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
When the destination of a texture binding wasn't recognized, the FP is asked whether it can provide a TU number for it. 
<p>

<p>Implements <a class="el" href="structiShaderDestinationResolver.html#b4c0a277733c6364611237cc2f24f6a4">iShaderDestinationResolver</a>.</p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00232">232</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="2ff9212ce10752623b5ed1fac0a33d91"></a><!-- doxytag: member="csShaderProgram::description" ref="2ff9212ce10752623b5ed1fac0a33d91" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsString.html">csString</a> <a class="el" href="classcsShaderProgram.html#2ff9212ce10752623b5ed1fac0a33d91">csShaderProgram::description</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Program description. 
<p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00141">141</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="707a647c53e116ee811dd97090ac90e9"></a><!-- doxytag: member="csShaderProgram::doVerbose" ref="707a647c53e116ee811dd97090ac90e9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classcsShaderProgram.html#707a647c53e116ee811dd97090ac90e9">csShaderProgram::doVerbose</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Whether the shader program should report additional information during runtime. 
<p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00155">155</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="ce68f2732ffbfcc20d9700766ba703be"></a><!-- doxytag: member="csShaderProgram::programFile" ref="ce68f2732ffbfcc20d9700766ba703be" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsRef.html">csRef</a>&lt;<a class="el" href="structiFile.html">iFile</a>&gt; <a class="el" href="classcsShaderProgram.html#ce68f2732ffbfcc20d9700766ba703be">csShaderProgram::programFile</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
File the program is loaded from (if any). 
<p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00146">146</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="27ccf20058acba0d79f29963bae7ec1e"></a><!-- doxytag: member="csShaderProgram::programFileName" ref="27ccf20058acba0d79f29963bae7ec1e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsString.html">csString</a> <a class="el" href="classcsShaderProgram.html#27ccf20058acba0d79f29963bae7ec1e">csShaderProgram::programFileName</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Filename of program. 
<p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00149">149</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="5c491699e31684a647fe00e05be55819"></a><!-- doxytag: member="csShaderProgram::programNode" ref="5c491699e31684a647fe00e05be55819" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsRef.html">csRef</a>&lt;<a class="el" href="structiDocumentNode.html">iDocumentNode</a>&gt; <a class="el" href="classcsShaderProgram.html#5c491699e31684a647fe00e05be55819">csShaderProgram::programNode</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<a class="el" href="structiDocumentNode.html" title="Representation of a node in a document.">iDocumentNode</a> the program is loaded from 
<p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00144">144</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="5f8cefcc5242dc1c7f67a22ae03aec72"></a><!-- doxytag: member="csShaderProgram::variablemap" ref="5f8cefcc5242dc1c7f67a22ae03aec72" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classcsArray.html">csArray</a>&lt;<a class="el" href="structcsShaderProgram_1_1VariableMapEntry.html">VariableMapEntry</a>&gt; <a class="el" href="classcsShaderProgram.html#5f8cefcc5242dc1c7f67a22ae03aec72">csShaderProgram::variablemap</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Variable mappings. 
<p>

<p>Definition at line <a class="el" href="shaderprogram_8h-source.html#l00138">138</a> of file <a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>csplugincommon/shader/<a class="el" href="shaderprogram_8h-source.html">shaderprogram.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>