File: vtkrendering_vtkshaderprogram.html

package info (click to toggle)
freemat 4.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 141,800 kB
  • ctags: 14,082
  • sloc: ansic: 126,788; cpp: 62,046; python: 2,080; perl: 1,255; sh: 1,146; yacc: 1,019; lex: 239; makefile: 100
file content (123 lines) | stat: -rw-r--r-- 6,003 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FreeMat: vtkShaderProgram</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FreeMat
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('vtkrendering_vtkshaderprogram.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">vtkShaderProgram </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>Section: <a class="el" href="sec_vtkrendering.html">Visualization Toolkit Rendering Classes</a> </p>
<h1><a class="anchor" id="Usage"></a>
Usage</h1>
<p>vtkShaderProgram is a superclass for managing Hardware Shaders defined in the XML Material file and interfacing VTK to those shaders. It's concrete descendants are responsible for installing vertex and fragment programs to the graphics hardware.</p>
<p>.SECTION Shader Operations are shader library operations that are performed on individual shaders, that is, without consideration of the partner shader.</p>
<p>.SECTION Program Operations are shader library operations that treat the vertex and fragment shader as a single unit.</p>
<p>.SECTION Design This class is a Strategy pattern for 'Program' operations, which treat vertex/fragment shader pairs as a single 'Program', as required by some shader libraries (GLSL). Typically, 'Shader' operations are delegated to instances of vtkShader (managed by descendants of this class) while 'Program' operations are handled by descendants of this class, vtkCgShaderProgram, vtkGLSLShaderProgram.</p>
<p>To create an instance of class vtkShaderProgram, simply invoke its constructor as follows </p>
<pre class="fragment">  obj = vtkShaderProgram
</pre> <h1><a class="anchor" id="Methods"></a>
Methods</h1>
<p>The class vtkShaderProgram has several methods that can be used. They are listed below. Note that the documentation is translated automatically from the VTK sources, and may not be completely intelligible. When in doubt, consult the VTK website. In the methods listed below, <code>obj</code> is an instance of the vtkShaderProgram class. </p>
<ul>
<li>
<code>string = obj.GetClassName ()</code>  </li>
<li>
<code>int = obj.IsA (string name)</code>  </li>
<li>
<code>vtkShaderProgram = obj.NewInstance ()</code>  </li>
<li>
<code>vtkShaderProgram = obj.SafeDownCast (vtkObject o)</code>  </li>
<li>
<code>vtkXMLMaterial = obj.GetMaterial ()</code>  </li>
<li>
<code>obj.SetMaterial (vtkXMLMaterial )</code>  </li>
<li>
<code>int = obj.AddShader (vtkShader shader)</code>  </li>
<li>
<code>obj.RemoveShader (int index)</code> - Remove a shader at the given index.  </li>
<li>
<code>obj.RemoveShader (vtkShader shader)</code> - Removes the given shader.  </li>
<li>
<code>vtkCollectionIterator = obj.NewShaderIterator ()</code> - Returns a new iterator to iterate over the shaders.  </li>
<li>
<code>int = obj.GetNumberOfShaders ()</code> - Returns the number of shaders available in this shader program.  </li>
<li>
<code>obj.ReadMaterial ()</code>  </li>
<li>
<code>obj.Render (vtkActor , vtkRenderer )</code>  </li>
<li>
<code>obj.AddShaderVariable (string name, int numVars, int x)</code>  </li>
<li>
<code>obj.AddShaderVariable (string name, int numVars, float x)</code>  </li>
<li>
<code>obj.AddShaderVariable (string name, int numVars, double x)</code>  </li>
<li>
<code>obj.PostRender (vtkActor , vtkRenderer )</code> - Called to unload the shaders after the actor has been rendered.  </li>
<li>
<code>obj.ReleaseGraphicsResources (vtkWindow )</code> - Release any graphics resources that are being consumed by this actor. The parameter window could be used to determine which graphic resources to release.  </li>
<li>
<code>vtkShaderDeviceAdapter = obj.GetShaderDeviceAdapter ()</code> - Get the vtkShaderDeviceAdapter which can be used to execute this shader program.  </li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="index.html">FreeMat Documentation</a></li><li class="navelem"><a class="el" href="sec_vtkrendering.html">Visualization Toolkit Rendering Classes</a></li>
    <li class="footer">Generated on Thu Jul 25 2013 17:18:35 for FreeMat by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>