source: GTP/trunk/Lib/Illum/IllumModule/doc/html/class_render_technique.html @ 894

Revision 894, 18.9 KB checked in by szirmay, 18 years ago (diff)
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>GameTools Illumination Module: RenderTechnique Class Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.4.6-NO -->
8<div class="tabs">
9  <ul>
10    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
12    <li id="current"><a href="annotated.html"><span>Classes</span></a></li>
13  </ul></div>
14<div class="tabs">
15  <ul>
16    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
17    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
18    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
19  </ul></div>
20<h1>RenderTechnique Class Reference</h1><!-- doxytag: class="RenderTechnique" -->Base class for a rendering technique. 
21<a href="#_details">More...</a>
22<p>
23<p>Inheritance diagram for RenderTechnique:
24<p><center><img src="class_render_technique.png" usemap="#RenderTechnique_map" border="0" alt=""></center>
25<map name="RenderTechnique_map">
26<area href="class_caustic_caster_render_technique.html" alt="CausticCasterRenderTechnique" shape="rect" coords="250,56,490,80">
27<area href="class_caustic_reciever_render_technique.html" alt="CausticRecieverRenderTechnique" shape="rect" coords="250,112,490,136">
28<area href="class_convolved_cube_map_render_technique.html" alt="ConvolvedCubeMapRenderTechnique" shape="rect" coords="250,168,490,192">
29<area href="class_cube_map_render_technique.html" alt="CubeMapRenderTechnique" shape="rect" coords="250,224,490,248">
30<area href="class_depth_shadow_reciever_render_technique.html" alt="DepthShadowRecieverRenderTechnique" shape="rect" coords="250,280,490,304">
31<area href="class_distance_cube_map_render_technique.html" alt="DistanceCubeMapRenderTechnique" shape="rect" coords="250,336,490,360">
32<area href="class_ogre_render_technique.html" alt="OgreRenderTechnique" shape="rect" coords="250,392,490,416">
33<area href="class_s_b_b_render_technique.html" alt="SBBRenderTechnique" shape="rect" coords="250,448,490,472">
34</map>
35<a href="class_render_technique-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
36<tr><td></td></tr>
37<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
38<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#f190471b58b36f5c495fefbfe3378f15">RenderTechnique</a> (<a class="el" href="class_elementary_renderable.html">ElementaryRenderable</a> *<a class="el" href="class_render_technique.html#888980e685779fa6801cda413e8c3637">parentRenderable</a>, <a class="el" href="class_technique_group.html">TechniqueGroup</a> *<a class="el" href="class_render_technique.html#f1246cf759d7b81eb25195834a7ad349">parentTechniqueGroup</a>)</td></tr>
39
40<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor.  <a href="#f190471b58b36f5c495fefbfe3378f15"></a><br></td></tr>
41<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#1599dc6e287d7c87a71c8b5bfbd871f8">update</a> (unsigned long frameNum)</td></tr>
42
43<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Updates the resources in the given frame.  <a href="#1599dc6e287d7c87a71c8b5bfbd871f8"></a><br></td></tr>
44<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#ea8dc4069cabac91699c81d2ed9f8fe5">runChanged</a> (RenderingRunType runType, <a class="el" href="class_rendering_run.html">RenderingRun</a> *run)</td></tr>
45
46<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called after one of he shared runs changes.  <a href="#ea8dc4069cabac91699c81d2ed9f8fe5"></a><br></td></tr>
47<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#e65ed49b6d73917cfa8adcbc4c4b2d54">runUpdated</a> (RenderingRunType runType, <a class="el" href="class_rendering_run.html">RenderingRun</a> *run)</td></tr>
48
49<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called after one of he shared runs updates.  <a href="#e65ed49b6d73917cfa8adcbc4c4b2d54"></a><br></td></tr>
50<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual class <a class="el" href="class_ogre_render_technique.html">OgreRenderTechnique</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#6c6851f96081106b0b7b7aa0a2833ef9">asOgreRenderTechnique</a> ()</td></tr>
51
52<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Conversion to <a class="el" href="class_ogre_render_technique.html">OgreRenderTechnique</a>.  <a href="#6c6851f96081106b0b7b7aa0a2833ef9"></a><br></td></tr>
53<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5112335ec29f554c94c0ae989a512df"></a><!-- doxytag: member="RenderTechnique::getParentRenderable" ref="b5112335ec29f554c94c0ae989a512df" args="()" -->
54<a class="el" href="class_elementary_renderable.html">ElementaryRenderable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#b5112335ec29f554c94c0ae989a512df">getParentRenderable</a> ()</td></tr>
55
56<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieves the renderable this technique operates on. <br></td></tr>
57<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
58<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="888980e685779fa6801cda413e8c3637"></a><!-- doxytag: member="RenderTechnique::parentRenderable" ref="888980e685779fa6801cda413e8c3637" args="" -->
59<a class="el" href="class_elementary_renderable.html">ElementaryRenderable</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#888980e685779fa6801cda413e8c3637">parentRenderable</a></td></tr>
60
61<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The renderable this technique operates on. <br></td></tr>
62<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f1246cf759d7b81eb25195834a7ad349"></a><!-- doxytag: member="RenderTechnique::parentTechniqueGroup" ref="f1246cf759d7b81eb25195834a7ad349" args="" -->
63<a class="el" href="class_technique_group.html">TechniqueGroup</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#f1246cf759d7b81eb25195834a7ad349">parentTechniqueGroup</a></td></tr>
64
65<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="class_technique_group.html">TechniqueGroup</a> this RenderedTechnique is attached to. <br></td></tr>
66<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bf3e22b8e7983ab1a6c8b3e24075eef9"></a><!-- doxytag: member="RenderTechnique::sharedRuns" ref="bf3e22b8e7983ab1a6c8b3e24075eef9" args="" -->
67<a class="el" href="class_shared_runs.html">SharedRuns</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_render_technique.html#bf3e22b8e7983ab1a6c8b3e24075eef9">sharedRuns</a></td></tr>
68
69<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The <a class="el" href="class_shared_runs.html">SharedRuns</a> this RenderedTechnique is attached to. <br></td></tr>
70</table>
71<hr><a name="_details"></a><h2>Detailed Description</h2>
72Base class for a rendering technique.
73<p>
74A <a class="el" href="class_render_technique.html">RenderTechnique</a> gives a description about how to render an object, and what kind of resources are needed to do this. A <a class="el" href="class_render_technique.html">RenderTechnique</a> does not define the whole process of rendering only one property of the display, example: this object will need a cubemap or this object is going to be a caustic caster. RenderTechniques usually operate on one pass of the rendering, and bind some resources to this pass (for example it can bind a texture or cubemap tho the given pass).<p>
75RenderTechniques are always bound to a Renderable, and a <a class="el" href="class_shared_runs.html">SharedRuns</a> object. The Renderable defines the object to operate on. <a class="el" href="class_shared_runs.html">SharedRuns</a> is to register RenderingRuns which can be shared between other RenderTechniques (example: a cubemap can be used by other techniques too, or even more than one object can share a single cubemap).
76<p>
77<hr><h2>Constructor &amp; Destructor Documentation</h2>
78<a class="anchor" name="f190471b58b36f5c495fefbfe3378f15"></a><!-- doxytag: member="RenderTechnique::RenderTechnique" ref="f190471b58b36f5c495fefbfe3378f15" args="(ElementaryRenderable *parentRenderable, TechniqueGroup *parentTechniqueGroup)" --><p>
79<table class="mdTable" cellpadding="2" cellspacing="0">
80  <tr>
81    <td class="mdRow">
82      <table cellpadding="0" cellspacing="0" border="0">
83        <tr>
84          <td class="md" nowrap valign="top">RenderTechnique::RenderTechnique           </td>
85          <td class="md" valign="top">(&nbsp;</td>
86          <td class="md" nowrap valign="top"><a class="el" href="class_elementary_renderable.html">ElementaryRenderable</a> *&nbsp;</td>
87          <td class="mdname" nowrap> <em>parentRenderable</em>, </td>
88        </tr>
89        <tr>
90          <td class="md" nowrap align="right"></td>
91          <td class="md"></td>
92          <td class="md" nowrap><a class="el" href="class_technique_group.html">TechniqueGroup</a> *&nbsp;</td>
93          <td class="mdname" nowrap> <em>parentTechniqueGroup</em></td>
94        </tr>
95        <tr>
96          <td class="md"></td>
97          <td class="md">)&nbsp;</td>
98          <td class="md" colspan="2"></td>
99        </tr>
100      </table>
101    </td>
102  </tr>
103</table>
104<table cellspacing="5" cellpadding="0" border="0">
105  <tr>
106    <td>
107      &nbsp;
108    </td>
109    <td>
110
111<p>
112Constructor.
113<p>
114<dl compact><dt><b>Parameters:</b></dt><dd>
115  <table border="0" cellspacing="2" cellpadding="0">
116    <tr><td valign="top"></td><td valign="top"><em>parentRenderable</em>&nbsp;</td><td>the object to operate on </td></tr>
117    <tr><td valign="top"></td><td valign="top"><em>parentTechniqueGroup</em>&nbsp;</td><td>the <a class="el" href="class_technique_group.html">TechniqueGroup</a> this RenderedTechnique is attached to </td></tr>
118  </table>
119</dl>
120    </td>
121  </tr>
122</table>
123<hr><h2>Member Function Documentation</h2>
124<a class="anchor" name="6c6851f96081106b0b7b7aa0a2833ef9"></a><!-- doxytag: member="RenderTechnique::asOgreRenderTechnique" ref="6c6851f96081106b0b7b7aa0a2833ef9" args="()" --><p>
125<table class="mdTable" cellpadding="2" cellspacing="0">
126  <tr>
127    <td class="mdRow">
128      <table cellpadding="0" cellspacing="0" border="0">
129        <tr>
130          <td class="md" nowrap valign="top">virtual class <a class="el" href="class_ogre_render_technique.html">OgreRenderTechnique</a>* RenderTechnique::asOgreRenderTechnique           </td>
131          <td class="md" valign="top">(&nbsp;</td>
132          <td class="mdname1" valign="top" nowrap>          </td>
133          <td class="md" valign="top">&nbsp;)&nbsp;</td>
134          <td class="md" nowrap><code> [inline, virtual]</code></td>
135        </tr>
136      </table>
137    </td>
138  </tr>
139</table>
140<table cellspacing="5" cellpadding="0" border="0">
141  <tr>
142    <td>
143      &nbsp;
144    </td>
145    <td>
146
147<p>
148Conversion to <a class="el" href="class_ogre_render_technique.html">OgreRenderTechnique</a>.
149<p>
150This function is needed because of virtual inheritance.
151<p>
152Reimplemented in <a class="el" href="class_ogre_render_technique.html#2b89d4aaa1959baef2506e705147d08a">OgreRenderTechnique</a>.    </td>
153  </tr>
154</table>
155<a class="anchor" name="ea8dc4069cabac91699c81d2ed9f8fe5"></a><!-- doxytag: member="RenderTechnique::runChanged" ref="ea8dc4069cabac91699c81d2ed9f8fe5" args="(RenderingRunType runType, RenderingRun *run)" --><p>
156<table class="mdTable" cellpadding="2" cellspacing="0">
157  <tr>
158    <td class="mdRow">
159      <table cellpadding="0" cellspacing="0" border="0">
160        <tr>
161          <td class="md" nowrap valign="top">virtual void RenderTechnique::runChanged           </td>
162          <td class="md" valign="top">(&nbsp;</td>
163          <td class="md" nowrap valign="top">RenderingRunType&nbsp;</td>
164          <td class="mdname" nowrap> <em>runType</em>, </td>
165        </tr>
166        <tr>
167          <td class="md" nowrap align="right"></td>
168          <td class="md"></td>
169          <td class="md" nowrap><a class="el" href="class_rendering_run.html">RenderingRun</a> *&nbsp;</td>
170          <td class="mdname" nowrap> <em>run</em></td>
171        </tr>
172        <tr>
173          <td class="md"></td>
174          <td class="md">)&nbsp;</td>
175          <td class="md" colspan="2"><code> [inline, virtual]</code></td>
176        </tr>
177      </table>
178    </td>
179  </tr>
180</table>
181<table cellspacing="5" cellpadding="0" border="0">
182  <tr>
183    <td>
184      &nbsp;
185    </td>
186    <td>
187
188<p>
189Called after one of he shared runs changes.
190<p>
191<dl compact><dt><b>Parameters:</b></dt><dd>
192  <table border="0" cellspacing="2" cellpadding="0">
193    <tr><td valign="top"></td><td valign="top"><em>runType</em>&nbsp;</td><td>enum describing the type of the changed run </td></tr>
194    <tr><td valign="top"></td><td valign="top"><em>run</em>&nbsp;</td><td>pointer to the changed <a class="el" href="class_rendering_run.html">RenderingRun</a> </td></tr>
195  </table>
196</dl>
197
198<p>
199Reimplemented in <a class="el" href="class_caustic_caster_render_technique.html#66b2ed277663917b1a2dc96cdc431ac9">CausticCasterRenderTechnique</a>, <a class="el" href="class_convolved_cube_map_render_technique.html#6eceef165b9dc6bfd7b2b2c3c107190f">ConvolvedCubeMapRenderTechnique</a>, <a class="el" href="class_cube_map_render_technique.html#5cc820fd695231e043931e34a98ea268">CubeMapRenderTechnique</a>, and <a class="el" href="class_distance_cube_map_render_technique.html#4c551b6d72c3ffa1d92948c6b31f6a96">DistanceCubeMapRenderTechnique</a>.    </td>
200  </tr>
201</table>
202<a class="anchor" name="e65ed49b6d73917cfa8adcbc4c4b2d54"></a><!-- doxytag: member="RenderTechnique::runUpdated" ref="e65ed49b6d73917cfa8adcbc4c4b2d54" args="(RenderingRunType runType, RenderingRun *run)" --><p>
203<table class="mdTable" cellpadding="2" cellspacing="0">
204  <tr>
205    <td class="mdRow">
206      <table cellpadding="0" cellspacing="0" border="0">
207        <tr>
208          <td class="md" nowrap valign="top">virtual void RenderTechnique::runUpdated           </td>
209          <td class="md" valign="top">(&nbsp;</td>
210          <td class="md" nowrap valign="top">RenderingRunType&nbsp;</td>
211          <td class="mdname" nowrap> <em>runType</em>, </td>
212        </tr>
213        <tr>
214          <td class="md" nowrap align="right"></td>
215          <td class="md"></td>
216          <td class="md" nowrap><a class="el" href="class_rendering_run.html">RenderingRun</a> *&nbsp;</td>
217          <td class="mdname" nowrap> <em>run</em></td>
218        </tr>
219        <tr>
220          <td class="md"></td>
221          <td class="md">)&nbsp;</td>
222          <td class="md" colspan="2"><code> [inline, virtual]</code></td>
223        </tr>
224      </table>
225    </td>
226  </tr>
227</table>
228<table cellspacing="5" cellpadding="0" border="0">
229  <tr>
230    <td>
231      &nbsp;
232    </td>
233    <td>
234
235<p>
236Called after one of he shared runs updates.
237<p>
238<dl compact><dt><b>Parameters:</b></dt><dd>
239  <table border="0" cellspacing="2" cellpadding="0">
240    <tr><td valign="top"></td><td valign="top"><em>runType</em>&nbsp;</td><td>enum describing the type of the updated run </td></tr>
241    <tr><td valign="top"></td><td valign="top"><em>run</em>&nbsp;</td><td>pointer to the updated <a class="el" href="class_rendering_run.html">RenderingRun</a> </td></tr>
242  </table>
243</dl>
244
245<p>
246Reimplemented in <a class="el" href="class_distance_cube_map_render_technique.html#2d0ce8178f4ae42571dc8d94929a63f6">DistanceCubeMapRenderTechnique</a>.    </td>
247  </tr>
248</table>
249<a class="anchor" name="1599dc6e287d7c87a71c8b5bfbd871f8"></a><!-- doxytag: member="RenderTechnique::update" ref="1599dc6e287d7c87a71c8b5bfbd871f8" args="(unsigned long frameNum)" --><p>
250<table class="mdTable" cellpadding="2" cellspacing="0">
251  <tr>
252    <td class="mdRow">
253      <table cellpadding="0" cellspacing="0" border="0">
254        <tr>
255          <td class="md" nowrap valign="top">virtual void RenderTechnique::update           </td>
256          <td class="md" valign="top">(&nbsp;</td>
257          <td class="md" nowrap valign="top">unsigned long&nbsp;</td>
258          <td class="mdname1" valign="top" nowrap> <em>frameNum</em>          </td>
259          <td class="md" valign="top">&nbsp;)&nbsp;</td>
260          <td class="md" nowrap><code> [inline, virtual]</code></td>
261        </tr>
262      </table>
263    </td>
264  </tr>
265</table>
266<table cellspacing="5" cellpadding="0" border="0">
267  <tr>
268    <td>
269      &nbsp;
270    </td>
271    <td>
272
273<p>
274Updates the resources in the given frame.
275<p>
276A <a class="el" href="class_render_technique.html">RenderTechnique</a> is usually need some resources from several runs, so these runs will be updated.<p>
277<dl compact><dt><b>Parameters:</b></dt><dd>
278  <table border="0" cellspacing="2" cellpadding="0">
279    <tr><td valign="top"></td><td valign="top"><em>frameNum</em>&nbsp;</td><td>the actual framenumber </td></tr>
280  </table>
281</dl>
282
283<p>
284Reimplemented in <a class="el" href="class_convolved_cube_map_render_technique.html#7857edd753134d1be32f122749304fa8">ConvolvedCubeMapRenderTechnique</a>, <a class="el" href="class_cube_map_render_technique.html#6094646a1da963728058422dedf56781">CubeMapRenderTechnique</a>, <a class="el" href="class_distance_cube_map_render_technique.html#cd3ee50d23e6fa29f12aa07f7b54a6ed">DistanceCubeMapRenderTechnique</a>, <a class="el" href="class_ogre_caustic_reciever_render_technique.html#a7d154131e32bdfd8473707816ef5144">OgreCausticRecieverRenderTechnique</a>, <a class="el" href="class_ogre_convolved_cube_map_render_technique.html#20fd5e14c5ad6d3b4e75986280ae43e7">OgreConvolvedCubeMapRenderTechnique</a>, <a class="el" href="class_ogre_cube_map_render_technique.html#bd08cab54fecb8d7382ace0d234946e7">OgreCubeMapRenderTechnique</a>, <a class="el" href="class_ogre_depth_shadow_reciever_render_technique.html#b76f874b281e3c30eca7efe00c836606">OgreDepthShadowRecieverRenderTechnique</a>, <a class="el" href="class_ogre_distance_cube_map_render_technique.html#2dac178431b973cf7420c7bd7e87666a">OgreDistanceCubeMapRenderTechnique</a>, and <a class="el" href="class_ogre_s_b_b_render_technique.html#b90a1eee5fd1924e13e292bc77daea73">OgreSBBRenderTechnique</a>.    </td>
285  </tr>
286</table>
287<hr>The documentation for this class was generated from the following files:<ul>
288<li>RenderTechnique.h<li>RenderTechnique.cpp</ul>
289<hr size="1"><address style="align: right;"><small>Generated on Thu Apr 27 17:29:43 2006 for GameTools Illumination Module by&nbsp;
290<a href="http://www.doxygen.org/index.html">
291<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6-NO </small></address>
292</body>
293</html>
Note: See TracBrowser for help on using the repository browser.