Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 60f1dc962abad0f3b492991a4fbef9be > files > 648

vtk-doc-5.4.2-5mdv2010.0.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>VTK: vtkGLSLShader Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</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>
    </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>
</div>
<div class="contents">
<h1>vtkGLSLShader Class Reference</h1><!-- doxytag: class="vtkGLSLShader" --><!-- doxytag: inherits="vtkShader" --><code>#include &lt;<a class="el" href="a05196.html">vtkGLSLShader.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for vtkGLSLShader:</div>
<div class="dynsection">
<p><center><img src="a10305.png" border="0" usemap="#a10306" alt="Inheritance graph"></center>
<map name="a10306">
<area shape="rect" href="a01532.html" title="vtkShader" alt="" coords="21,155,107,181"><area shape="rect" href="a01084.html" title="abstract base class for most VTK objects" alt="" coords="24,80,104,107"><area shape="rect" href="a01085.html" title="abstract base class for most VTK objects" alt="" coords="9,5,119,32"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<div class="dynheader">
Collaboration diagram for vtkGLSLShader:</div>
<div class="dynsection">
<p><center><img src="a10307.png" border="0" usemap="#a10308" alt="Collaboration graph"></center>
<map name="a10308">
<area shape="rect" href="a01532.html" title="vtkShader" alt="" coords="69,376,155,403"><area shape="rect" href="a01084.html" title="abstract base class for most VTK objects" alt="" coords="57,96,137,123"><area shape="rect" href="a01946.html" title="encapsulates a Shader XML description." alt="" coords="56,285,168,312"><area shape="rect" href="a01902.html" title="Represents an XML element and those nested inside." alt="" coords="107,176,253,203"><area shape="rect" href="a01085.html" title="abstract base class for most VTK objects" alt="" coords="43,5,152,32"><area shape="rect" href="a01719.html" title="record modification and/or execution time" alt="" coords="264,5,373,32"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="a10309.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
GLSL Shader. 
<p>
<a class="el" href="a00645.html" title="GLSL Shader.">vtkGLSLShader</a> is a concrete class that creates and compiles hardware shaders written in the OpenGL Shadering Language (GLSL, OpenGL2.0). While step linking a vertex and a fragment shader is performed by <a class="el" href="a00648.html" title="GLSL Shader Program.">vtkGLSLShaderProgram</a>, all shader parameters are initialized in this class.<p>
<dl class="user" compact><dt><b>vtkOpenGLExtensionManager:</b></dt><dd>All OpenGL calls are made through <a class="el" href="a01105.html" title="Interface class for querying and using OpenGL extensions.">vtkOpenGLExtensionManager</a>.</dd></dl>
<dl class="user" compact><dt><b>Supported Basic Shader Types::</b></dt><dd>Scalar Types uniform float uniform int uniform int -- boolean scalar not yet tested</dd></dl>
<dl class="user" compact><dt><b>Supported Basic Shader Types::</b></dt><dd>Vector Types: uniform vec{2|3|4} uniform ivec{2|3|4} uniform bvec{2|3|4} -- boolean vector not yet tested</dd></dl>
<dl class="user" compact><dt><b>Supported Basic Shader Types::</b></dt><dd>Matrix Types: uniform mat{2|3|4}</dd></dl>
<dl class="user" compact><dt><b>Supported Basic Shader Types::</b></dt><dd>Texture Samplers: sample1D -- Not yet implemented in this cless. sample2D -- Not yet implemented in this class. sample3D -- Not yet implemented in this class. sampler1DShadow -- Not yet implemented in this class. sampler1DShadow -- Not yet implemented in this class.</dd></dl>
<dl class="user" compact><dt><b>Supported Basic Shader Types::</b></dt><dd>User-Defined structures: uniform struct NOTE: these must be defined and declared outside of the 'main' shader function.</dd></dl>
<dl class="user" compact><dt><b>Thanks:</b></dt><dd>Shader support in VTK includes key contributions by Gary Templet at Sandia National Labs. </dd></dl>

<p>Definition at line <a class="el" href="a05196.html#l00087">87</a> of file <a class="el" href="a05196.html">vtkGLSLShader.h</a>.</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a01532.html">vtkShader</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#d684c92895a3049c72082c9f3f095f34">Superclass</a></td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#0d2f330c629cf8c8e0178a30343a771d">GetClassName</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#8a5ed763948f1ba6dfcbf21a41e0a48a">IsA</a> (const char *type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#07732f644193d68ad7a4c51cf9954adb">PrintSelf</a> (ostream &amp;os, <a class="el" href="a00869.html">vtkIndent</a> indent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#a328ca01dcbca7f1118ffa4a4d47ab8b">Compile</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#21a986f276584aa0c29bf3cb47966ce2">GetHandle</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#e98d29858a20f592b7f0a7dac632788c">ReleaseGraphicsResources</a> (<a class="el" href="a01886.html">vtkWindow</a> *)</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#f78d1f2b6e927d33146f0e84adc7fd19">SetProgram</a> (unsigned int)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#bb7e58ad84cbdc1935bb862be36b1bfc">GetProgram</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="a00645.html">vtkGLSLShader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#e6e81b470bf173cbb6ae6d7f2a0eddce">New</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#3884d13dff9d482c6520626f5a78bc18">IsTypeOf</a> (const char *type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="a00645.html">vtkGLSLShader</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#49ee6133a464378987c27a85462f5ea1">SafeDownCast</a> (<a class="el" href="a01084.html">vtkObject</a> *o)</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#c1e0bb1ce1d062441f6ae694b9277fa6">vtkGLSLShader</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#d272044c97af1fa656bab45650d03b7f">~vtkGLSLShader</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#2011460c5cb5a6686c879b332787694f">IsShader</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#92aa1043aebdfea1051e218d9a662f8e">IsCompiled</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#8ad8d3831ec67c8d10ce9715df55cfd5">LoadShader</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#db9312b3cd81c6c12da0d6d4eb7454f8">SetSamplerParameter</a> (const char *name, <a class="el" href="a01695.html">vtkTexture</a> *texture, int textureIndex)</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#91979e70f1a49d61c32b1e94b41dbcb0">SetUniformParameter</a> (const char *name, int numValues, const int *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#a8237ebe8492249719884648c852d151">SetUniformParameter</a> (const char *name, int numValues, const float *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#434a0590027cb2a5fc698d85fbe439be">SetUniformParameter</a> (const char *name, int numValues, const double *value)</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#8fe6096895759e08ee79725fee322ab0">SetMatrixParameter</a> (const char *name, int numValues, int order, const float *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#760548ce920cae7853b12f93a3a526bf">SetMatrixParameter</a> (const char *name, int numValues, int order, const double *value)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#927bfd45c4e94e9545d6462679a8a85d">SetMatrixParameter</a> (const char *name, const char *state_matix_type, const char *transform_type)</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#26e585882914c258ceb8a73eab8267f6">Program</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00645.html#772475e7da5d2523c70fe0f3e65984c8">Shader</a></td></tr>

</table>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="d684c92895a3049c72082c9f3f095f34"></a><!-- doxytag: member="vtkGLSLShader::Superclass" ref="d684c92895a3049c72082c9f3f095f34" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a01532.html">vtkShader</a> <a class="el" href="a01532.html">vtkGLSLShader::Superclass</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="a01532.html#94f08a10b823c27478f71e56c26521e0">vtkShader</a>.</p>

<p>Definition at line <a class="el" href="a05196.html#l00091">91</a> of file <a class="el" href="a05196.html">vtkGLSLShader.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="c1e0bb1ce1d062441f6ae694b9277fa6"></a><!-- doxytag: member="vtkGLSLShader::vtkGLSLShader" ref="c1e0bb1ce1d062441f6ae694b9277fa6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vtkGLSLShader::vtkGLSLShader           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="d272044c97af1fa656bab45650d03b7f"></a><!-- doxytag: member="vtkGLSLShader::~vtkGLSLShader" ref="d272044c97af1fa656bab45650d03b7f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual vtkGLSLShader::~vtkGLSLShader           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e6e81b470bf173cbb6ae6d7f2a0eddce"></a><!-- doxytag: member="vtkGLSLShader::New" ref="e6e81b470bf173cbb6ae6d7f2a0eddce" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00645.html">vtkGLSLShader</a>* vtkGLSLShader::New           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. 
<p>Reimplemented from <a class="el" href="a01084.html#4d5b227267c076d6f9e38483370b6612">vtkObject</a>.</p>

</div>
</div><p>
<a class="anchor" name="0d2f330c629cf8c8e0178a30343a771d"></a><!-- doxytag: member="vtkGLSLShader::GetClassName" ref="0d2f330c629cf8c8e0178a30343a771d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* vtkGLSLShader::GetClassName           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="a01532.html#09f8a41b69c6378bcd6c9f6c025b2fc2">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="3884d13dff9d482c6520626f5a78bc18"></a><!-- doxytag: member="vtkGLSLShader::IsTypeOf" ref="3884d13dff9d482c6520626f5a78bc18" args="(const char *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int vtkGLSLShader::IsTypeOf           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. 
<p>Reimplemented from <a class="el" href="a01532.html#8edc54f90e0f6d5ba9ee6f12569ce7d0">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="8a5ed763948f1ba6dfcbf21a41e0a48a"></a><!-- doxytag: member="vtkGLSLShader::IsA" ref="8a5ed763948f1ba6dfcbf21a41e0a48a" args="(const char *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int vtkGLSLShader::IsA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. 
<p>Reimplemented from <a class="el" href="a01532.html#d1e73a21b4ea5f464cd484617d5eaa19">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="49ee6133a464378987c27a85462f5ea1"></a><!-- doxytag: member="vtkGLSLShader::SafeDownCast" ref="49ee6133a464378987c27a85462f5ea1" args="(vtkObject *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00645.html">vtkGLSLShader</a>* vtkGLSLShader::SafeDownCast           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01084.html">vtkObject</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="a01532.html#c3cfee8e877483b52075e7dc18a8f693">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="07732f644193d68ad7a4c51cf9954adb"></a><!-- doxytag: member="vtkGLSLShader::PrintSelf" ref="07732f644193d68ad7a4c51cf9954adb" args="(ostream &amp;os, vtkIndent indent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkGLSLShader::PrintSelf           </td>
          <td>(</td>
          <td class="paramtype">ostream &amp;&nbsp;</td>
          <td class="paramname"> <em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00869.html">vtkIndent</a>&nbsp;</td>
          <td class="paramname"> <em>indent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use <a class="el" href="a01085.html#edadf6378465fd81c2592ef64262e2a5">Print()</a> instead) but used in the hierarchical print process to combine the output of several classes. 
<p>Reimplemented from <a class="el" href="a01532.html#0753943f722a8e7654a47f8a2f2f9b16">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="a328ca01dcbca7f1118ffa4a4d47ab8b"></a><!-- doxytag: member="vtkGLSLShader::Compile" ref="a328ca01dcbca7f1118ffa4a4d47ab8b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int vtkGLSLShader::Compile           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called to compile the shader code. The subclasses must only compile the code in this method. Returns if the compile was successful. Subclasses should compile the code only if it was not already compiled. 
<p>Implements <a class="el" href="a01532.html#8183089056c1ac064022599e1ad1fe6f">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="21a986f276584aa0c29bf3cb47966ce2"></a><!-- doxytag: member="vtkGLSLShader::GetHandle" ref="21a986f276584aa0c29bf3cb47966ce2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int vtkGLSLShader::GetHandle           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The <a class="el" href="a00648.html" title="GLSL Shader Program.">vtkGLSLShaderProgram</a> needs the shader handle for attaching. 
<p>Definition at line <a class="el" href="a05196.html#l00101">101</a> of file <a class="el" href="a05196.html">vtkGLSLShader.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="f78d1f2b6e927d33146f0e84adc7fd19"></a><!-- doxytag: member="vtkGLSLShader::SetProgram" ref="f78d1f2b6e927d33146f0e84adc7fd19" args="(unsigned int)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetProgram           </td>
          <td>(</td>
          <td class="paramtype">unsigned&nbsp;</td>
          <td class="paramname"> <em>int</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The Shader needs the id of the ShaderProgram to obtain uniform variable locations. This is set by <a class="el" href="a00648.html" title="GLSL Shader Program.">vtkGLSLShaderProgram</a>. 
</div>
</div><p>
<a class="anchor" name="bb7e58ad84cbdc1935bb862be36b1bfc"></a><!-- doxytag: member="vtkGLSLShader::GetProgram" ref="bb7e58ad84cbdc1935bb862be36b1bfc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual unsigned int vtkGLSLShader::GetProgram           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
The Shader needs the id of the ShaderProgram to obtain uniform variable locations. This is set by <a class="el" href="a00648.html" title="GLSL Shader Program.">vtkGLSLShaderProgram</a>. 
</div>
</div><p>
<a class="anchor" name="e98d29858a20f592b7f0a7dac632788c"></a><!-- doxytag: member="vtkGLSLShader::ReleaseGraphicsResources" ref="e98d29858a20f592b7f0a7dac632788c" args="(vtkWindow *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::ReleaseGraphicsResources           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01886.html">vtkWindow</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Release any graphics resources that are being consumed by this actor. The parameter window could be used to determine which graphic resources to release. 
<p>Reimplemented from <a class="el" href="a01532.html#2fec3459ae3da55145738f9dcbbfb58e">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="2011460c5cb5a6686c879b332787694f"></a><!-- doxytag: member="vtkGLSLShader::IsShader" ref="2011460c5cb5a6686c879b332787694f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vtkGLSLShader::IsShader           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="92aa1043aebdfea1051e218d9a662f8e"></a><!-- doxytag: member="vtkGLSLShader::IsCompiled" ref="92aa1043aebdfea1051e218d9a662f8e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vtkGLSLShader::IsCompiled           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="8ad8d3831ec67c8d10ce9715df55cfd5"></a><!-- doxytag: member="vtkGLSLShader::LoadShader" ref="8ad8d3831ec67c8d10ce9715df55cfd5" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkGLSLShader::LoadShader           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create an empty Shader context. 
</div>
</div><p>
<a class="anchor" name="91979e70f1a49d61c32b1e94b41dbcb0"></a><!-- doxytag: member="vtkGLSLShader::SetUniformParameter" ref="91979e70f1a49d61c32b1e94b41dbcb0" args="(const char *name, int numValues, const int *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetUniformParameter           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>numValues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Equivalent to cgGLSetParameter and glUniform. 
<p>Implements <a class="el" href="a01532.html#633f847006d9950a845ef274a608349a">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="a8237ebe8492249719884648c852d151"></a><!-- doxytag: member="vtkGLSLShader::SetUniformParameter" ref="a8237ebe8492249719884648c852d151" args="(const char *name, int numValues, const float *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetUniformParameter           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>numValues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Equivalent to cgGLSetParameter and glUniform. 
<p>Implements <a class="el" href="a01532.html#53e3927e3f321d043fea261227a10fb2">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="434a0590027cb2a5fc698d85fbe439be"></a><!-- doxytag: member="vtkGLSLShader::SetUniformParameter" ref="434a0590027cb2a5fc698d85fbe439be" args="(const char *name, int numValues, const double *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetUniformParameter           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>numValues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Equivalent to cgGLSetParameter and glUniform. 
<p>Implements <a class="el" href="a01532.html#10064e9a508ff698057fb6d5f7be5f38">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="8fe6096895759e08ee79725fee322ab0"></a><!-- doxytag: member="vtkGLSLShader::SetMatrixParameter" ref="8fe6096895759e08ee79725fee322ab0" args="(const char *name, int numValues, int order, const float *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetMatrixParameter           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>numValues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Equivalent to cgGLSetMatrixParameterfc and glUniformMatrix. 
<p>Implements <a class="el" href="a01532.html#8c114e4b226c7fcc99864b80c939380e">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="760548ce920cae7853b12f93a3a526bf"></a><!-- doxytag: member="vtkGLSLShader::SetMatrixParameter" ref="760548ce920cae7853b12f93a3a526bf" args="(const char *name, int numValues, int order, const double *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetMatrixParameter           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>numValues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>order</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Equivalent to cgGLSetMatrixParameterfc and glUniformMatrix. 
<p>Implements <a class="el" href="a01532.html#d51a39a8c0e700888b7e3c0fa735d095">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="927bfd45c4e94e9545d6462679a8a85d"></a><!-- doxytag: member="vtkGLSLShader::SetMatrixParameter" ref="927bfd45c4e94e9545d6462679a8a85d" args="(const char *name, const char *state_matix_type, const char *transform_type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetMatrixParameter           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>state_matix_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>transform_type</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Equivalent to cgGLSetMatrixParameterfc and glUniformMatrix. 
<p>Implements <a class="el" href="a01532.html#f47a44b20dda177ed1458533fee91e8f">vtkShader</a>.</p>

</div>
</div><p>
<a class="anchor" name="db9312b3cd81c6c12da0d6d4eb7454f8"></a><!-- doxytag: member="vtkGLSLShader::SetSamplerParameter" ref="db9312b3cd81c6c12da0d6d4eb7454f8" args="(const char *name, vtkTexture *texture, int textureIndex)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkGLSLShader::SetSamplerParameter           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01695.html">vtkTexture</a> *&nbsp;</td>
          <td class="paramname"> <em>texture</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>textureIndex</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Establishes the given texture as the uniform sampler to perform lookups on. The textureIndex argument corresponds to the indices of the textures in a <a class="el" href="a01322.html" title="represent surface properties of a geometric object">vtkProperty</a>. Subclass may have to cast the texture to <a class="el" href="a01124.html" title="OpenGL texture map.">vtkOpenGLTexture</a> to obtain the GLuint for texture this texture. Subclasses must override these and perform GLSL or Cg calls. 
<p>Implements <a class="el" href="a01532.html#021d5094b886595c6d3b8bdf9f0f1982">vtkShader</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="26e585882914c258ceb8a73eab8267f6"></a><!-- doxytag: member="vtkGLSLShader::Program" ref="26e585882914c258ceb8a73eab8267f6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00645.html#26e585882914c258ceb8a73eab8267f6">vtkGLSLShader::Program</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="a05196.html#l00119">119</a> of file <a class="el" href="a05196.html">vtkGLSLShader.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="772475e7da5d2523c70fe0f3e65984c8"></a><!-- doxytag: member="vtkGLSLShader::Shader" ref="772475e7da5d2523c70fe0f3e65984c8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int <a class="el" href="a00645.html#772475e7da5d2523c70fe0f3e65984c8">vtkGLSLShader::Shader</a><code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="a05196.html#l00120">120</a> of file <a class="el" href="a05196.html">vtkGLSLShader.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>dox/Rendering/<a class="el" href="a05196.html">vtkGLSLShader.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jun 3 19:05:52 2009 for VTK by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>