<!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: vtkCgShaderProgram 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 Page</span></a></li> <li><a href="pages.html"><span>Related 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 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> </div> <div class="contents"> <h1>vtkCgShaderProgram Class Reference</h1><!-- doxytag: class="vtkCgShaderProgram" --><!-- doxytag: inherits="vtkShaderProgram" --><code>#include <<a class="el" href="a05167.html">vtkCgShaderProgram.h</a>></code> <p> <div class="dynheader"> Inheritance diagram for vtkCgShaderProgram:</div> <div class="dynsection"> <p><center><img src="a08541.png" border="0" usemap="#a08542" alt="Inheritance graph"></center> <map name="a08542"> <area shape="rect" href="a01537.html" title="vtkShaderProgram" alt="" coords="15,155,151,181"><area shape="rect" href="a01084.html" title="abstract base class for most VTK objects" alt="" coords="43,80,123,107"><area shape="rect" href="a01085.html" title="abstract base class for most VTK objects" alt="" coords="28,5,137,32"></map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div> <div class="dynheader"> Collaboration diagram for vtkCgShaderProgram:</div> <div class="dynsection"> <p><center><img src="a08543.png" border="0" usemap="#a08544" alt="Collaboration graph"></center> <map name="a08544"> <area shape="rect" href="a01537.html" title="vtkShaderProgram" alt="" coords="404,496,540,523"><area shape="rect" href="a01536.html" title="an adapter to pass generic vertex attributes to the rendering pipeline. .SECTION..." alt="" coords="551,587,724,614"><area shape="rect" href="a01084.html" title="abstract base class for most VTK objects" alt="" coords="381,96,461,123"><area shape="rect" href="a00285.html" title="create and manipulate unsorted lists of objects" alt="" coords="241,315,343,342"><area shape="rect" href="a00286.html" title="vtkCollectionElement" alt="" coords="72,190,221,216"><area shape="rect" href="a00287.html" title="iterator through a vtkCollection." alt="" coords="76,406,220,432"><area shape="rect" href="a01915.html" title="encapsulates a VTK Material description." alt="" coords="413,315,531,342"><area shape="rect" href="a01902.html" title="Represents an XML element and those nested inside." alt="" coords="348,190,495,216"><area shape="rect" href="a01085.html" title="abstract base class for most VTK objects" alt="" coords="300,6,409,32"><area shape="rect" href="a01719.html" title="record modification and/or execution time" alt="" coords="433,6,543,32"></map> <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div> <p> <a href="a08545.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2> Cg Shader Program. <p> <a class="el" href="a00260.html" title="Cg Shader Program.">vtkCgShaderProgram</a> allows vtkShaderProperty (later <a class="el" href="a01322.html" title="represent surface properties of a geometric object">vtkProperty</a>) to treat a vertex/fragment shader pair as a single unit for the purpose of setting their common material library and encapsulating shader operation: shader installation and variable initialization.<p> Since the interface between Cg shaders is only resolved at runtime (shader runtime that is, after they've been installed on the card), Cg does not have the concept of a shader Program. This class simply delegates shader program functions to its delegate vtkCgShaders.<p> <dl class="see" compact><dt><b>See also:</b></dt><dd>vtkShaderBase, <a class="el" href="a01532.html">vtkShader</a>, <a class="el" href="a00258.html" title="Cg Shader.">vtkCgShader</a>, <a class="el" href="a01537.html">vtkShaderProgram</a> </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="a05167.html#l00052">52</a> of file <a class="el" href="a05167.html">vtkCgShaderProgram.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="a01537.html">vtkShaderProgram</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#c9a503afcd951e0cd20ad089a0e1ffe1">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 * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#64c753bef91b29674391060ebfcc22e2">GetClassName</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#2ad96988fa3d5a2e5db2e07296de8875">IsA</a> (const char *type)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#e23c0a0075c07cba47de303208715c96">PrintSelf</a> (ostream &os, <a class="el" href="a00869.html">vtkIndent</a> indent)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#3f427d4d0f60ddd11208c2fde01b8aab">Render</a> (<a class="el" href="a00092.html">vtkActor</a> *, <a class="el" href="a01480.html">vtkRenderer</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 int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#507926385bf1803983c6fc41c8290a9c">IsTypeOf</a> (const char *type)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="a00260.html">vtkCgShaderProgram</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#2605c429eb17d60933a837131b72afee">SafeDownCast</a> (<a class="el" href="a01084.html">vtkObject</a> *o)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="a00260.html">vtkCgShaderProgram</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#566aae0e3bfce667795d9981074d3fd2">New</a> ()</td></tr> <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#afd374aec68d0026ec69ad2c33552377">vtkCgShaderProgram</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#1064c9b35ffcf49a1d9991522b344780">~vtkCgShaderProgram</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="a01532.html">vtkShader</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00260.html#a5b62d0b80ba2748cef977b95b917b6e">NewShader</a> ()</td></tr> </table> <hr><h2>Member Typedef Documentation</h2> <a class="anchor" name="c9a503afcd951e0cd20ad089a0e1ffe1"></a><!-- doxytag: member="vtkCgShaderProgram::Superclass" ref="c9a503afcd951e0cd20ad089a0e1ffe1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="a01537.html">vtkShaderProgram</a> <a class="el" href="a01537.html">vtkCgShaderProgram::Superclass</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented from <a class="el" href="a01537.html#e229120666ea1a55dbb470bc0d665fbe">vtkShaderProgram</a>.</p> <p>Definition at line <a class="el" href="a05167.html#l00055">55</a> of file <a class="el" href="a05167.html">vtkCgShaderProgram.h</a>.</p> </div> </div><p> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="afd374aec68d0026ec69ad2c33552377"></a><!-- doxytag: member="vtkCgShaderProgram::vtkCgShaderProgram" ref="afd374aec68d0026ec69ad2c33552377" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">vtkCgShaderProgram::vtkCgShaderProgram </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <a class="anchor" name="1064c9b35ffcf49a1d9991522b344780"></a><!-- doxytag: member="vtkCgShaderProgram::~vtkCgShaderProgram" ref="1064c9b35ffcf49a1d9991522b344780" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">vtkCgShaderProgram::~vtkCgShaderProgram </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p> </div> </div><p> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="64c753bef91b29674391060ebfcc22e2"></a><!-- doxytag: member="vtkCgShaderProgram::GetClassName" ref="64c753bef91b29674391060ebfcc22e2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual const char* vtkCgShaderProgram::GetClassName </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented from <a class="el" href="a01537.html#6083eb52eb1d14eb314e62da46bff2ff">vtkShaderProgram</a>.</p> </div> </div><p> <a class="anchor" name="507926385bf1803983c6fc41c8290a9c"></a><!-- doxytag: member="vtkCgShaderProgram::IsTypeOf" ref="507926385bf1803983c6fc41c8290a9c" args="(const char *type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int vtkCgShaderProgram::IsTypeOf </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em> </td> <td> ) </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="a01537.html#b9f4e82d93ed3fccbd133d535e48989e">vtkShaderProgram</a>.</p> </div> </div><p> <a class="anchor" name="2ad96988fa3d5a2e5db2e07296de8875"></a><!-- doxytag: member="vtkCgShaderProgram::IsA" ref="2ad96988fa3d5a2e5db2e07296de8875" args="(const char *type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual int vtkCgShaderProgram::IsA </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>name</em> </td> <td> ) </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="a01537.html#56888b9401c4a0cecd4ad3e92151d253">vtkShaderProgram</a>.</p> </div> </div><p> <a class="anchor" name="2605c429eb17d60933a837131b72afee"></a><!-- doxytag: member="vtkCgShaderProgram::SafeDownCast" ref="2605c429eb17d60933a837131b72afee" args="(vtkObject *o)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="a00260.html">vtkCgShaderProgram</a>* vtkCgShaderProgram::SafeDownCast </td> <td>(</td> <td class="paramtype"><a class="el" href="a01084.html">vtkObject</a> * </td> <td class="paramname"> <em>o</em> </td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Reimplemented from <a class="el" href="a01537.html#fa0c2999049dd62b79ed6a59aade432c">vtkShaderProgram</a>.</p> </div> </div><p> <a class="anchor" name="566aae0e3bfce667795d9981074d3fd2"></a><!-- doxytag: member="vtkCgShaderProgram::New" ref="566aae0e3bfce667795d9981074d3fd2" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static <a class="el" href="a00260.html">vtkCgShaderProgram</a>* vtkCgShaderProgram::New </td> <td>(</td> <td class="paramname"> </td> <td> ) </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="e23c0a0075c07cba47de303208715c96"></a><!-- doxytag: member="vtkCgShaderProgram::PrintSelf" ref="e23c0a0075c07cba47de303208715c96" args="(ostream &os, vtkIndent indent)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void vtkCgShaderProgram::PrintSelf </td> <td>(</td> <td class="paramtype">ostream & </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> </td> <td class="paramname"> <em>indent</em></td><td> </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="a01537.html#c744ddf4e3597ff813f2f9eb67aa2677">vtkShaderProgram</a>.</p> </div> </div><p> <a class="anchor" name="3f427d4d0f60ddd11208c2fde01b8aab"></a><!-- doxytag: member="vtkCgShaderProgram::Render" ref="3f427d4d0f60ddd11208c2fde01b8aab" args="(vtkActor *, vtkRenderer *)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void vtkCgShaderProgram::Render </td> <td>(</td> <td class="paramtype"><a class="el" href="a00092.html">vtkActor</a> * </td> <td class="paramname">, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01480.html">vtkRenderer</a> * </td> <td class="paramname"></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p>Implements <a class="el" href="a01537.html#39b174c79d217b3a2eaccdec725039d5">vtkShaderProgram</a>.</p> </div> </div><p> <a class="anchor" name="a5b62d0b80ba2748cef977b95b917b6e"></a><!-- doxytag: member="vtkCgShaderProgram::NewShader" ref="a5b62d0b80ba2748cef977b95b917b6e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="a01532.html">vtkShader</a>* vtkCgShaderProgram::NewShader </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [protected, virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Creates and returns a new <a class="el" href="a00258.html" title="Cg Shader.">vtkCgShader</a>. <p>Implements <a class="el" href="a01537.html#4889410a0d0de847239c3bf5ed2c9d95">vtkShaderProgram</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="a05167.html">vtkCgShaderProgram.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Jun 3 18:56:29 2009 for VTK by <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>