<!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: ivideo/shader/shader.h File 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><a href="classes.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul> </div> <h1>ivideo/shader/shader.h File Reference</h1>Shader-related interfaces. <a href="#_details">More...</a> <p> <code>#include "<a class="el" href="scf_8h-source.html">csutil/scf.h</a>"</code><br> <code>#include "<a class="el" href="iutil_2array_8h-source.html">iutil/array.h</a>"</code><br> <code>#include "<a class="el" href="shadervar_8h-source.html">csgfx/shadervar.h</a>"</code><br> <code>#include "<a class="el" href="csutil_2array_8h-source.html">csutil/array.h</a>"</code><br> <code>#include "<a class="el" href="refarr_8h-source.html">csutil/refarr.h</a>"</code><br> <code>#include "<a class="el" href="set_8h-source.html">csutil/set.h</a>"</code><br> <code>#include "<a class="el" href="csutil_2strset_8h-source.html">csutil/strset.h</a>"</code><br> <p> <a href="shader_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Classes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structcsShaderMetadata.html">csShaderMetadata</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Shader metadata. <a href="structcsShaderMetadata.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="structiShader.html">iShader</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specific shader. <a href="structiShader.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="structiShaderCompiler.html">iShaderCompiler</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compiler of shaders. <a href="structiShaderCompiler.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="structiShaderManager.html">iShaderManager</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A manager for all shaders. <a href="structiShaderManager.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="structiShaderPriorityList.html">iShaderPriorityList</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A list of priorities as returned by iShaderCompiler->GetPriorities(). <a href="structiShaderPriorityList.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="structiShaderVariableContext.html">iShaderVariableContext</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">This is a baseclass for all interfaces which provides shadervariables both dynamically and static. <a href="structiShaderVariableContext.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="structiShaderVarStack.html">iShaderVarStack</a></td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td colspan="2"><div class="groupHeader"></div></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="classcsArray.html">csArray</a><br> < <a class="el" href="classcsShaderVariable.html">csShaderVariable</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="shader_8h.html#16342d39b5945f4bccde3d5747f85838">csShaderVarStack</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A "shader variable stack". <a href="#16342d39b5945f4bccde3d5747f85838"></a><br></td></tr> <tr><td colspan="2"><br><h2>Enumerations</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="shader_8h.html#569185ecc5e0b5c32cc4e092ff9ec3ca">csShaderTagPresence</a> { <a class="el" href="shader_8h.html#569185ecc5e0b5c32cc4e092ff9ec3cabda08f3e70f89653c3f2c7d35ee339fa">TagNeutral</a>, <a class="el" href="shader_8h.html#569185ecc5e0b5c32cc4e092ff9ec3ca9eedc259d33b0549fe002d64f274189c">TagForbidden</a>, <a class="el" href="shader_8h.html#569185ecc5e0b5c32cc4e092ff9ec3caafe7c1db92fcfd36e5071221283dd9b3">TagRequired</a> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Possible settings regarding a techique tag's presence. <a href="shader_8h.html#569185ecc5e0b5c32cc4e092ff9ec3ca">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></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="61a5008c359481a0bd68bd3ea8b28ea5"></a><!-- doxytag: member="shader.h::csGetShaderVariableFromStack" ref="61a5008c359481a0bd68bd3ea8b28ea5" args="(const iShaderVarStack *stack, const csStringID &name)" --> static <a class="el" href="classcsShaderVariable.html">csShaderVariable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="shader_8h.html#61a5008c359481a0bd68bd3ea8b28ea5">csGetShaderVariableFromStack</a> (const <a class="el" href="structiShaderVarStack.html">iShaderVarStack</a> *stack, const <a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> &name)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="classcsShaderVariable.html">csShaderVariable</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="shader_8h.html#28da1d8ecc3441f3fac0aaa694a87d48">csGetShaderVariableFromStack</a> (const <a class="el" href="classcsArray.html">csShaderVarStack</a> &stack, const <a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> &name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Helper function to retrieve a single value from a shader variable stack. <a href="#28da1d8ecc3441f3fac0aaa694a87d48"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Shader-related interfaces. <p> <p>Definition in file <a class="el" href="shader_8h-source.html">shader.h</a>.</p> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="16342d39b5945f4bccde3d5747f85838"></a><!-- doxytag: member="shader.h::csShaderVarStack" ref="16342d39b5945f4bccde3d5747f85838" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classcsArray.html">csArray</a><<a class="el" href="classcsShaderVariable.html">csShaderVariable</a>*> <a class="el" href="classcsArray.html">csShaderVarStack</a> </td> </tr> </table> </div> <div class="memdoc"> <p> A "shader variable stack". <p> Stores a list of shader variables, indexed by it's name. <p>Definition at line <a class="el" href="shader_8h-source.html#l00048">48</a> of file <a class="el" href="shader_8h-source.html">shader.h</a>.</p> </div> </div><p> <hr><h2>Enumeration Type Documentation</h2> <a class="anchor" name="569185ecc5e0b5c32cc4e092ff9ec3ca"></a><!-- doxytag: member="shader.h::csShaderTagPresence" ref="569185ecc5e0b5c32cc4e092ff9ec3ca" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="shader_8h.html#569185ecc5e0b5c32cc4e092ff9ec3ca">csShaderTagPresence</a> </td> </tr> </table> </div> <div class="memdoc"> <p> Possible settings regarding a techique tag's presence. <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="569185ecc5e0b5c32cc4e092ff9ec3cabda08f3e70f89653c3f2c7d35ee339fa"></a><!-- doxytag: member="TagNeutral" ref="569185ecc5e0b5c32cc4e092ff9ec3cabda08f3e70f89653c3f2c7d35ee339fa" args="" -->TagNeutral</em> </td><td> The tag is neither required nor forbidden. <p> However, it's priority still contributes to technique selection. </td></tr> <tr><td valign="top"><em><a class="anchor" name="569185ecc5e0b5c32cc4e092ff9ec3ca9eedc259d33b0549fe002d64f274189c"></a><!-- doxytag: member="TagForbidden" ref="569185ecc5e0b5c32cc4e092ff9ec3ca9eedc259d33b0549fe002d64f274189c" args="" -->TagForbidden</em> </td><td> Techniques were this tag is present are rejected to be loaded. </td></tr> <tr><td valign="top"><em><a class="anchor" name="569185ecc5e0b5c32cc4e092ff9ec3caafe7c1db92fcfd36e5071221283dd9b3"></a><!-- doxytag: member="TagRequired" ref="569185ecc5e0b5c32cc4e092ff9ec3caafe7c1db92fcfd36e5071221283dd9b3" args="" -->TagRequired</em> </td><td> Techniques are required to have one such tag. <p> If at least one required tag exists and no required tag is present in a technique, it doesn't validate. </td></tr> </table> </dl> <p>Definition at line <a class="el" href="shader_8h-source.html#l00152">152</a> of file <a class="el" href="shader_8h-source.html">shader.h</a>.</p> </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="28da1d8ecc3441f3fac0aaa694a87d48"></a><!-- doxytag: member="shader.h::csGetShaderVariableFromStack" ref="28da1d8ecc3441f3fac0aaa694a87d48" args="(const csShaderVarStack &stack, const csStringID &name)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="classcsShaderVariable.html">csShaderVariable</a>* csGetShaderVariableFromStack </td> <td>(</td> <td class="paramtype">const <a class="el" href="classcsArray.html">csShaderVarStack</a> & </td> <td class="paramname"> <em>stack</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="group__util.html#gbe4f44c93bfeee85c507a999dccf21dd">csStringID</a> & </td> <td class="paramname"> <em>name</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Helper function to retrieve a single value from a shader variable stack. <p> <p>Definition at line <a class="el" href="shader_8h-source.html#l00067">67</a> of file <a class="el" href="shader_8h-source.html">shader.h</a>.</p> <p>References <a class="el" href="iutil_2strset_8h-source.html#l00036">csInvalidStringID</a>, and <a class="el" href="csutil_2array_8h-source.html#l00535">csArray< T, ElementHandler, MemoryAllocator, CapacityHandler >::GetSize()</a>.</p> <p>Referenced by <a class="el" href="shaderprogram_8h-source.html#l00208">csShaderProgram::GetParamFloatVal()</a>, <a class="el" href="shaderprogram_8h-source.html#l00191">csShaderProgram::GetParamTransformVal()</a>, and <a class="el" href="shaderprogram_8h-source.html#l00174">csShaderProgram::GetParamVectorVal()</a>.</p> </div> </div><p> <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>