<!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 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 Pages</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="classes.html"><span>Alphabetical List</span></a></li> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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< csShaderProgram, iShaderProgram, iShaderDestinationResolver >" -->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 <<a class="el" href="shaderprogram_8h-source.html">csplugincommon/shader/shaderprogram.h</a>></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\< csShaderProgram, iShaderProgram, iShaderDestinationResolver \>" alt="" coords="615,56,1212,83"><area shape="rect" href="classscfImplementation.html" title="scfImplementation\< csShaderProgram \>" 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> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#58c7a43856e39a04d5d2bb99ae1f6e91">ResolveTU</a> (const char *)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#b05c11b742bbed5058d2d91fa80b9020">ProgramParamType</a> { <br> <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> <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> <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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#30325beea9a2b49943f29ac36765a6eb">DumpProgramInfo</a> (<a class="el" href="classcsString.html">csString</a> &output)</td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#ae374fdc7221f2057ff7d21a7e3d2e5d">DumpVariableMappings</a> (<a class="el" href="classcsString.html">csString</a> &output)</td></tr> <tr><td class="mdescLeft"> </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>< <a class="el" href="structiDataBuffer.html">iDataBuffer</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#5b0bb25a03d4a0d73f95c20f64d69b99">GetProgramData</a> ()</td></tr> <tr><td class="mdescLeft"> </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> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#ea3be52cdc4fae0d690b1051104f96c0">GetProgramNode</a> ()</td></tr> <tr><td class="mdescLeft"> </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 </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"> </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 </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> &param, <a class="el" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> types=~0)</td></tr> <tr><td class="mdescLeft"> </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 &param, float defVal)" --> float </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> &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 &param, const csReversibleTransform &defVal)" --> <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> </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> &param, const <a class="el" href="classcsReversibleTransform.html">csReversibleTransform</a> &defVal)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classcsVector4.html">csVector4</a> </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> &param, const <a class="el" href="classcsVector4.html">csVector4</a> &defVal)</td></tr> <tr><td class="mdescLeft"> </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> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#2ff9212ce10752623b5ed1fac0a33d91">description</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Program description. <a href="#2ff9212ce10752623b5ed1fac0a33d91"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#707a647c53e116ee811dd97090ac90e9">doVerbose</a></td></tr> <tr><td class="mdescLeft"> </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> * </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>< <a class="el" href="structiFile.html">iFile</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#ce68f2732ffbfcc20d9700766ba703be">programFile</a></td></tr> <tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#27ccf20058acba0d79f29963bae7ec1e">programFileName</a></td></tr> <tr><td class="mdescLeft"> </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>< <a class="el" href="structiDocumentNode.html">iDocumentNode</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#5c491699e31684a647fe00e05be55819">programNode</a></td></tr> <tr><td class="mdescLeft"> </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>< <a class="el" href="structiStringSet.html">iStringSet</a> > </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>< <a class="el" href="structiSyntaxService.html">iSyntaxService</a> > </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> < <a class="el" href="structcsShaderProgram_1_1VariableMapEntry.html">VariableMapEntry</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classcsShaderProgram.html#5f8cefcc5242dc1c7f67a22ae03aec72">variablemap</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structcsShaderProgram_1_1ProgramParam.html">ProgramParam</a></td></tr> <tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="structcsShaderProgram_1_1VariableMapEntry.html">VariableMapEntry</a></td></tr> <tr><td class="mdescLeft"> </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> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020c9621a6d8b63ff0d7599751e9cf738b7"></a><!-- doxytag: member="ParamFloat" ref="b05c11b742bbed5058d2d91fa80b9020c9621a6d8b63ff0d7599751e9cf738b7" args="" -->ParamFloat</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020ae5e476c66a5b6593c4273f6bb7f57e8"></a><!-- doxytag: member="ParamVector2" ref="b05c11b742bbed5058d2d91fa80b9020ae5e476c66a5b6593c4273f6bb7f57e8" args="" -->ParamVector2</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b902021fd45a4e9283c3aa22de0dc314ad88b"></a><!-- doxytag: member="ParamVector3" ref="b05c11b742bbed5058d2d91fa80b902021fd45a4e9283c3aa22de0dc314ad88b" args="" -->ParamVector3</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b90208ffdf6c84b22a6c274f2f37be55895b8"></a><!-- doxytag: member="ParamVector4" ref="b05c11b742bbed5058d2d91fa80b90208ffdf6c84b22a6c274f2f37be55895b8" args="" -->ParamVector4</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020621656905985360dbdc13ad374c01c3c"></a><!-- doxytag: member="ParamMatrix" ref="b05c11b742bbed5058d2d91fa80b9020621656905985360dbdc13ad374c01c3c" args="" -->ParamMatrix</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020339de00219839952f688b8a2c6ea4826"></a><!-- doxytag: member="ParamTransform" ref="b05c11b742bbed5058d2d91fa80b9020339de00219839952f688b8a2c6ea4826" args="" -->ParamTransform</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020970e45129a5f82d241ea116669b6a3d9"></a><!-- doxytag: member="ParamArray" ref="b05c11b742bbed5058d2d91fa80b9020970e45129a5f82d241ea116669b6a3d9" args="" -->ParamArray</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b9020f214730a2b4811161d4c42d50024ed88"></a><!-- doxytag: member="ParamShaderExp" ref="b05c11b742bbed5058d2d91fa80b9020f214730a2b4811161d4c42d50024ed88" args="" -->ParamShaderExp</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" name="b05c11b742bbed5058d2d91fa80b90204a4b759014b1702ff78221e12e7f0612"></a><!-- doxytag: member="ParamVector" ref="b05c11b742bbed5058d2d91fa80b90204a4b759014b1702ff78221e12e7f0612" args="" -->ParamVector</em> </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 &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> & </td> <td class="paramname"> <em>output</em> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>output</em> </td> <td> ) </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 &param, const csVector4 &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> * </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> & </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> & </td> <td class="paramname"> <em>defVal</em></td><td> </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< T >::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><<a class="el" href="structiDataBuffer.html">iDataBuffer</a>> csShaderProgram::GetProgramData </td> <td>(</td> <td class="paramname"> </td> <td> ) </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> ) </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> * </td> <td class="paramname"> <em>child</em> </td> <td> ) </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 &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> * </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> & </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> </td> <td class="paramname"> <em>types</em> = <code>~0</code></td><td> </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 * </td> <td class="paramname"> <em>binding</em> </td> <td> ) </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><<a class="el" href="structiFile.html">iFile</a>> <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><<a class="el" href="structiDocumentNode.html">iDocumentNode</a>> <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><<a class="el" href="structcsShaderProgram_1_1VariableMapEntry.html">VariableMapEntry</a>> <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>