source: OGRE/trunk/ogrenew/Docs/api/html/OgreGpuProgram_8h-source.html @ 657

Revision 657, 41.9 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

Line 
1<html>
2<head>
3<title>OgreGpuProgram.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
4<link type="text/css" rel="stylesheet" href="style.css">
5</head>
6
7<body>
8<!-- Generated by Doxygen 1.3.6 -->
9<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
10<h1>OgreGpuProgram.h</h1><a href="OgreGpuProgram_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
1100002 <span class="comment">-----------------------------------------------------------------------------</span>
1200003 <span class="comment">This source file is part of OGRE</span>
1300004 <span class="comment">    (Object-oriented Graphics Rendering Engine)</span>
1400005 <span class="comment">For the latest info, see http://ogre.sourceforge.net/</span>
1500006 <span class="comment"></span>
1600007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span>
1700008 <span class="comment">Also see acknowledgements in Readme.html</span>
1800009 <span class="comment"></span>
1900010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span>
2000011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span>
2100012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span>
2200013 <span class="comment">version.</span>
2300014 <span class="comment"></span>
2400015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span>
2500016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
2600017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
2700018 <span class="comment"></span>
2800019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span>
2900020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span>
3000021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span>
3100022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span>
3200023 <span class="comment">-----------------------------------------------------------------------------</span>
3300024 <span class="comment">*/</span>
3400025 <span class="preprocessor">#ifndef __GpuProgram_H_</span>
3500026 <span class="preprocessor"></span><span class="preprocessor">#define __GpuProgram_H_</span>
3600027 <span class="preprocessor"></span>
3700028 <span class="comment">// Precompiler options</span>
3800029 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span>
3900030 <span class="preprocessor">#include "<a class="code" href="OgreResource_8h.html">OgreResource.h</a>"</span>
4000031 <span class="preprocessor">#include "<a class="code" href="OgreSharedPtr_8h.html">OgreSharedPtr.h</a>"</span>
4100032 <span class="preprocessor">#include "<a class="code" href="OgreIteratorWrappers_8h.html">OgreIteratorWrappers.h</a>"</span>
4200033
4300034 <span class="keyword">namespace </span>Ogre {
4400035
45<a name="l00037"></a><a class="code" href="namespaceOgre.html#a653">00037</a>     <span class="keyword">enum</span> <a class="code" href="namespaceOgre.html#a653">GpuProgramType</a>
4600038     {
4700039         <a class="code" href="namespaceOgre.html#a653a136">GPT_VERTEX_PROGRAM</a>,
4800040         <a class="code" href="namespaceOgre.html#a653a137">GPT_FRAGMENT_PROGRAM</a>
4900041     };
5000042
5100043     
52<a name="l00055"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html">00055</a>     <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a16">_OgreExport</a> GpuProgramParameters
5300056     {
5400057     <span class="keyword">public</span>:
55<a name="l00061"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw72">00061</a>         <span class="keyword">enum</span> AutoConstantType
5600062         {
5700064             ACT_WORLD_MATRIX,
5800066             ACT_WORLD_MATRIX_ARRAY_3x4,
5900068             ACT_WORLD_MATRIX_ARRAY,
6000070             ACT_VIEW_MATRIX,
6100072             ACT_PROJECTION_MATRIX,
6200074             ACT_VIEWPROJ_MATRIX,
6300076             ACT_WORLDVIEW_MATRIX,
6400078             ACT_WORLDVIEWPROJ_MATRIX,
6500080             ACT_INVERSE_WORLD_MATRIX,
6600082             ACT_INVERSE_VIEW_MATRIX,
6700084             ACT_INVERSE_WORLDVIEW_MATRIX,
6800086             ACT_INVERSETRANSPOSE_WORLD_MATRIX,
6900088             ACT_INVERSETRANSPOSE_WORLDVIEW_MATRIX,
7000090             ACT_LIGHT_DIFFUSE_COLOUR,
7100092             ACT_LIGHT_SPECULAR_COLOUR,
7200094             ACT_LIGHT_ATTENUATION,
7300096             ACT_LIGHT_POSITION,
7400098             ACT_LIGHT_DIRECTION,
7500100             ACT_LIGHT_POSITION_OBJECT_SPACE,
7600102             ACT_LIGHT_DIRECTION_OBJECT_SPACE,
7700107             ACT_LIGHT_DISTANCE_OBJECT_SPACE,
7800111             ACT_SHADOW_EXTRUSION_DISTANCE,
7900113             ACT_CAMERA_POSITION_OBJECT_SPACE,
8000115             ACT_AMBIENT_LIGHT_COLOUR,
8100117             ACT_TEXTURE_VIEWPROJ_MATRIX,
8200119             ACT_CUSTOM,
8300121             ACT_CAMERA_POSITION,
8400122             ACT_TIME,
8500126             ACT_TIME_0_X,
8600128             ACT_COSTIME_0_X,
8700130             ACT_SINTIME_0_X,
8800132             ACT_TANTIME_0_X,
8900136             ACT_TIME_0_X_PACKED,
9000141             ACT_TIME_0_1,
9100143             ACT_COSTIME_0_1,
9200145             ACT_SINTIME_0_1,
9300147             ACT_TANTIME_0_1,
9400151             ACT_TIME_0_1_PACKED,
9500156             ACT_TIME_0_2PI,
9600158             ACT_COSTIME_0_2PI,
9700160             ACT_SINTIME_0_2PI,
9800162             ACT_TANTIME_0_2PI,
9900166             ACT_TIME_0_2PI_PACKED,
10000168             ACT_FPS,
10100170
10200173             ACT_VIEWPORT_WIDTH,
10300177             ACT_VIEWPORT_HEIGHT,
10400181             ACT_INVERSE_VIEWPORT_WIDTH,
10500185             ACT_INVERSE_VIEWPORT_HEIGHT,
10600186
10700188
10800191             ACT_VIEW_DIRECTION,
10900195             ACT_VIEW_SIDE_VECTOR,
11000199             ACT_VIEW_UP_VECTOR,
11100203             ACT_FOV,
11200207             ACT_NEAR_CLIP_DISTANCE,
11300211             ACT_FAR_CLIP_DISTANCE,
11400212
11500214
11600217             ACT_INVERSE_VIEWPROJ_MATRIX,
11700221             ACT_INVERSETRANSPOSE_VIEWPROJ_MATRIX,
11800225             ACT_TRANSPOSE_VIEWPROJ_MATRIX,
11900226
12000230             ACT_TRANSPOSE_VIEW_MATRIX,
12100234             ACT_INVERSETRANSPOSE_VIEW_MATRIX,
12200235
12300239             ACT_TRANSPOSE_PROJECTION_MATRIX,
12400243             ACT_INVERSE_PROJECTION_MATRIX,
12500247             ACT_INVERSETRANSPOSE_PROJECTION_MATRIX,
12600248
12700252             ACT_TRANSPOSE_WORLDVIEWPROJ_MATRIX,
12800256             ACT_INVERSE_WORLDVIEWPROJ_MATRIX,
12900260             ACT_INVERSETRANSPOSE_WORLDVIEWPROJ_MATRIX,
13000261             
13100265             ACT_TRANSPOSE_WORLDVIEW_MATRIX,
13200269             ACT_INVERSE_TRANSPOSE_WORLDVIEW_MATRIX,
13300270 
13400274             ACT_TRANSPOSE_WORLD_MATRIX,
13500278             ACT_INVERSE_TRANSPOSE_WORLD_MATRIX
13600279 
13700280         };
138<a name="l00282"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html">00282</a>         <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a17">_OgrePrivate</a> AutoConstantEntry
13900283         {
14000284         <span class="keyword">public</span>:
141<a name="l00286"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo0">00286</a>             AutoConstantType paramType;
142<a name="l00288"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo1">00288</a>             size_t index;
14300290             <span class="keyword">union</span>{
144<a name="l00291"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo2">00291</a>                 size_t data;
145<a name="l00292"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo3">00292</a>                 <a class="code" href="namespaceOgre.html#a420">Real</a> fData;
14600293             };
14700294
148<a name="l00295"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntrya0">00295</a>             AutoConstantEntry(AutoConstantType theType, size_t theIndex, size_t theData)
14900296                 : paramType(theType), index(theIndex), data(theData) {}
15000297
151<a name="l00298"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntrya1">00298</a>             AutoConstantEntry(AutoConstantType theType, size_t theIndex, <a class="code" href="namespaceOgre.html#a420">Real</a> theData)
15200299                 : paramType(theType), index(theIndex), fData(theData) {}
15300300
15400301         };
155<a name="l00306"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">00306</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>
15600307         {
157<a name="l00308"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1RealConstantEntryo0">00308</a>             <span class="keywordtype">float</span> val[4];
158<a name="l00309"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1RealConstantEntryo1">00309</a>             <span class="keywordtype">bool</span> isSet;
159<a name="l00310"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1RealConstantEntrya0">00310</a>             <a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>() : isSet(false) {}
16000311         };
161<a name="l00316"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">00316</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>
16200317         {
163<a name="l00318"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1IntConstantEntryo0">00318</a>             <span class="keywordtype">int</span> val[4];
164<a name="l00319"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1IntConstantEntryo1">00319</a>             <span class="keywordtype">bool</span> isSet;
165<a name="l00320"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1IntConstantEntrya0">00320</a>             <a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>() : isSet(false) {}
16600321         };
16700322     <span class="keyword">protected</span>:
16800323         <span class="comment">// Constant lists</span>
169<a name="l00324"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx0">00324</a>         <span class="keyword">typedef</span> std::vector&lt;RealConstantEntry&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx0">RealConstantList</a>;
170<a name="l00325"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx1">00325</a>         <span class="keyword">typedef</span> std::vector&lt;IntConstantEntry&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx1">IntConstantList</a>;
17100326         <span class="comment">// Auto parameter storage</span>
172<a name="l00327"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx2">00327</a>         <span class="keyword">typedef</span> std::vector&lt;AutoConstantEntry&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx2">AutoConstantList</a>;
173<a name="l00329"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp0">00329</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx0">RealConstantList</a> mRealConstants;
174<a name="l00331"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp1">00331</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx1">IntConstantList</a> mIntConstants;
175<a name="l00333"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp2">00333</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx2">AutoConstantList</a> mAutoConstants;
176<a name="l00335"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx3">00335</a>         <span class="keyword">typedef</span> std::map&lt;String, size_t&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx3">ParamNameMap</a>;
177<a name="l00336"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp3">00336</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx3">ParamNameMap</a> mParamNameMap;
178<a name="l00338"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp4">00338</a>         <span class="keywordtype">bool</span> mTransposeMatrices;
179<a name="l00340"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp5">00340</a>         <span class="keywordtype">bool</span> mAutoAddParamName;
18000341
18100342     <span class="keyword">public</span>:
18200343         GpuProgramParameters();
183<a name="l00344"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa1">00344</a>         ~GpuProgramParameters() {}
18400345
18500351         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector4.html">Vector4</a>&amp; vec);
18600359         <span class="keywordtype">void</span> setConstant(size_t index, <a class="code" href="namespaceOgre.html#a420">Real</a> val);
18700367         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; vec);
18800374         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>&amp; m);
18900382         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* m, size_t numEntries);
19000389         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <span class="keywordtype">float</span> *val, size_t count);
19100396         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <span class="keywordtype">double</span> *val, size_t count);
19200402         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a>&amp; colour);
19300403         
19400418         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <span class="keywordtype">int</span> *val, size_t count);
19500419
196<a name="l00421"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa11">00421</a>         <span class="keywordtype">void</span> resetRealConstants(<span class="keywordtype">void</span>) { mRealConstants.clear(); }
197<a name="l00423"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa12">00423</a>         <span class="keywordtype">void</span> resetIntConstants(<span class="keywordtype">void</span>) { mIntConstants.clear(); }
19800424
199<a name="l00425"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw0">00425</a>         <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1ConstVectorIterator.html">ConstVectorIterator&lt;RealConstantList&gt;</a> <a class="code" href="classOgre_1_1ConstVectorIterator.html">RealConstantIterator</a>;
200<a name="l00426"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw1">00426</a>         <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1ConstVectorIterator.html">ConstVectorIterator&lt;IntConstantList&gt;</a> <a class="code" href="classOgre_1_1ConstVectorIterator.html">IntConstantIterator</a>;
20100428         <a class="code" href="classOgre_1_1ConstVectorIterator.html">RealConstantIterator</a> getRealConstantIterator(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
20200430         <a class="code" href="classOgre_1_1ConstVectorIterator.html">IntConstantIterator</a> getIntConstantIterator(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
20300431
20400436         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>* getRealConstantEntry(<span class="keyword">const</span> size_t index);
20500441         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>* getIntConstantEntry(<span class="keyword">const</span> size_t index);
20600442         
20700446         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>* getNamedRealConstantEntry(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name);
20800450         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>* getNamedIntConstantEntry(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name);
209<a name="l00452"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa19">00452</a>         size_t getRealConstantCount(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mRealConstants.size(); }
210<a name="l00454"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa20">00454</a>         size_t getIntConstantCount(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mIntConstants.size(); }
211<a name="l00456"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa21">00456</a>         <span class="keywordtype">bool</span> hasRealConstantParams(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(mRealConstants.empty()); }
212<a name="l00458"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa22">00458</a>         <span class="keywordtype">bool</span> hasIntConstantParams(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(mIntConstants.empty()); }
21300459
21400473         <span class="keywordtype">void</span> setAutoConstant(size_t index, AutoConstantType acType, size_t extraInfo = 0);
21500474         <span class="keywordtype">void</span> setAutoConstantReal(size_t index, AutoConstantType acType, <a class="code" href="namespaceOgre.html#a420">Real</a> rData);
21600479         <span class="keywordtype">void</span> setConstantFromTime(size_t index, <a class="code" href="namespaceOgre.html#a420">Real</a> factor);
21700480
21800482         <span class="keywordtype">void</span> clearAutoConstants(<span class="keywordtype">void</span>);
219<a name="l00483"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw2">00483</a>         <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1ConstVectorIterator.html">ConstVectorIterator&lt;AutoConstantList&gt;</a> <a class="code" href="classOgre_1_1ConstVectorIterator.html">AutoConstantIterator</a>;
22000485         <a class="code" href="classOgre_1_1ConstVectorIterator.html">AutoConstantIterator</a> getAutoConstantIterator(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
221<a name="l00487"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa28">00487</a>         <span class="keywordtype">bool</span> hasAutoConstants(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(mAutoConstants.empty()); }
22200489         <span class="keywordtype">void</span> _updateAutoParamsNoLights(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AutoParamDataSource.html">AutoParamDataSource</a>&amp; source);
22300491         <span class="keywordtype">void</span> _updateAutoParamsLightsOnly(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AutoParamDataSource.html">AutoParamDataSource</a>&amp; source);
22400492
225<a name="l00504"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa31">00504</a>         <span class="keywordtype">void</span> setAutoAddParamName(<span class="keywordtype">bool</span> state) { mAutoAddParamName = state; }
22600505
22700525         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <a class="code" href="namespaceOgre.html#a420">Real</a> val);
22800545         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keywordtype">int</span> val);
22900550         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector4.html">Vector4</a>&amp; vec);
23000563         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; vec);
23100568         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>&amp; m);
23200576         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* m, size_t numEntries);
23300597         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <span class="keywordtype">float</span> *val, size_t count);
23400618         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <span class="keywordtype">double</span> *val, size_t count);
23500623         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a>&amp; colour);
23600624         
23700645         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <span class="keyword">const</span> <span class="keywordtype">int</span> *val, size_t count);
23800646
23900661         <span class="keywordtype">void</span> setNamedAutoConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, AutoConstantType acType, size_t extraInfo = 0);
24000662
24100670         <span class="keywordtype">void</span> setNamedConstantFromTime(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <a class="code" href="namespaceOgre.html#a420">Real</a> factor);
24200672         <span class="keywordtype">void</span> _mapParameterNameToIndex(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, size_t index);
24300673
24400675         size_t getParamIndex(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name);
24500676
24600677
247<a name="l00685"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa46">00685</a>         <span class="keywordtype">void</span> setTransposeMatrices(<span class="keywordtype">bool</span> val) { mTransposeMatrices = val; }
248<a name="l00687"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa47">00687</a>         <span class="keywordtype">bool</span> getTransposeMatrices(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mTransposeMatrices; }
24900688
25000692         <span class="keywordtype">void</span> copyConstantsFrom(<span class="keyword">const</span> GpuProgramParameters&amp; source);
25100693         
25200694     };
253<a name="l00695"></a><a class="code" href="namespaceOgre.html#a135">00695</a> 
25400697     <span class="keyword">typedef</span> <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr&lt;GpuProgramParameters&gt;</a> <a class="code" href="classOgre_1_1SharedPtr.html">GpuProgramParametersSharedPtr</a>;
25500698
25600699     <span class="comment">// Forward declaration </span>
25700700     <span class="keyword">class </span><a class="code" href="classOgre_1_1GpuProgramPtr.html">GpuProgramPtr</a>;
25800701
25900711     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> GpuProgram : <span class="keyword">public</span> <a class="code" href="classOgre_1_1Resource.html">Resource</a>
26000712     {
261<a name="l00713"></a><a class="code" href="classOgre_1_1GpuProgram_1_1CmdType.html">00713</a>     <span class="keyword">protected</span>:
26200715         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> CmdType : <span class="keyword">public</span> <a class="code" href="classOgre_1_1ParamCommand.html">ParamCommand</a>
26300716         {
26400717         <span class="keyword">public</span>:
26500718             <a class="code" href="namespaceOgre.html#a426">String</a> doGet(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span>;
266<a name="l00719"></a><a class="code" href="classOgre_1_1GpuProgram_1_1CmdSyntax.html">00719</a>             <span class="keywordtype">void</span> doSet(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; val);
26700720         };
26800721         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> CmdSyntax : <span class="keyword">public</span> <a class="code" href="classOgre_1_1ParamCommand.html">ParamCommand</a>
26900722         {
27000723         <span class="keyword">public</span>:
27100724             <a class="code" href="namespaceOgre.html#a426">String</a> doGet(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span>;
272<a name="l00725"></a><a class="code" href="classOgre_1_1GpuProgram_1_1CmdSkeletal.html">00725</a>             <span class="keywordtype">void</span> doSet(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; val);
27300726         };
27400727         <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> CmdSkeletal : <span class="keyword">public</span> <a class="code" href="classOgre_1_1ParamCommand.html">ParamCommand</a>
27500728         {
27600729         <span class="keyword">public</span>:
27700730             <a class="code" href="namespaceOgre.html#a426">String</a> doGet(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span>;
27800731             <span class="keywordtype">void</span> doSet(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; val);
279<a name="l00732"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramt0">00732</a>         };
280<a name="l00733"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramt1">00733</a>         <span class="comment">// Command object for setting / getting parameters</span>
281<a name="l00734"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramt2">00734</a>         <span class="keyword">static</span> CmdType msTypeCmd;
28200735         <span class="keyword">static</span> CmdSyntax msSyntaxCmd;
28300736         <span class="keyword">static</span> CmdSkeletal msSkeletalCmd;
284<a name="l00737"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp2">00737</a>    
285<a name="l00739"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp3">00739</a>         <a class="code" href="namespaceOgre.html#a653">GpuProgramType</a> mType;
286<a name="l00741"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp4">00741</a>         <a class="code" href="namespaceOgre.html#a426">String</a> mFilename;
287<a name="l00743"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp5">00743</a>         <a class="code" href="namespaceOgre.html#a426">String</a> mSource;
288<a name="l00745"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp6">00745</a>         <span class="keywordtype">bool</span> mLoadFromFile;
289<a name="l00747"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp7">00747</a>         <a class="code" href="namespaceOgre.html#a426">String</a> mSyntaxCode;
290<a name="l00749"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp8">00749</a>         <span class="keywordtype">bool</span> mSkeletalAnimation;
291<a name="l00751"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp9">00751</a>         <a class="code" href="classOgre_1_1SharedPtr.html">GpuProgramParametersSharedPtr</a> mDefaultParams;
29200753         <span class="keywordtype">bool</span> mPassSurfaceAndLightStates;
29300754
29400763         <span class="keywordtype">void</span> setupBaseParamDictionary(<span class="keywordtype">void</span>);
295<a name="l00764"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramb9">00764</a> 
29600766         size_t calculateSize(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; } <span class="comment">// TODO </span>
29700767
29800769         <span class="keywordtype">void</span> loadImpl(<span class="keywordtype">void</span>);
29900770     <span class="keyword">public</span>:
30000771
30100772         GpuProgram(<a class="code" href="classOgre_1_1ResourceManager.html">ResourceManager</a>* creator, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; name, <a class="code" href="namespaceOgre.html#a485">ResourceHandle</a> handle,
302<a name="l00773"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1GpuPrograma1">00773</a>             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; group, <span class="keywordtype">bool</span> isManual = <span class="keyword">false</span>, <a class="code" href="classOgre_1_1ManualResourceLoader.html">ManualResourceLoader</a>* loader = 0);
30300774
30400775         <span class="keyword">virtual</span> ~GpuProgram() {}
30500776
30600781         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceFile(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; filename);
30700782
30800787         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSource(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; source);
309<a name="l00788"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma6">00788</a> 
31000790         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getSyntaxCode(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSyntaxCode; }
31100791
31200793         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSyntaxCode(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; syntax);
313<a name="l00794"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma8">00794</a> 
314<a name="l00796"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma9">00796</a>         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getSourceFile(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mFilename; }
31500798         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a426">String</a>&amp; getSource(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSource; }
316<a name="l00800"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma11">00800</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setType(GpuProgramType t);
31700802         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a653">GpuProgramType</a> getType(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mType; }
31800803
31900808         <span class="keyword">virtual</span> GpuProgram* _getBindingDelegate(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> <span class="keyword">this</span>; }
32000809
32100811         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSupported(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
32200812
32300820         <span class="keyword">virtual</span> GpuProgramParametersSharedPtr createParameters(<span class="keywordtype">void</span>);
32400821
32500828         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSkeletalAnimationIncluded(<span class="keywordtype">bool</span> included)
32600829         { mSkeletalAnimation = included; }
32700830
32800837         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSkeletalAnimationIncluded(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSkeletalAnimation; }
32900838
33000849         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a135">GpuProgramParametersSharedPtr</a> getDefaultParameters(<span class="keywordtype">void</span>);
33100850
33200859         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSurfaceAndPassLightStates(<span class="keywordtype">bool</span> state)
33300860             { mPassSurfaceAndLightStates = state; }
33400861
33500865         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> getPassSurfaceAndLightStates(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mPassSurfaceAndLightStates; }
33600866
33700867     <span class="keyword">protected</span>:
33800869         <span class="keyword">virtual</span> <span class="keywordtype">void</span> loadFromSource(<span class="keywordtype">void</span>) = 0;
33900870
34000871     };
34100872
34200873
34300880     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> GpuProgramPtr : <span class="keyword">public</span> SharedPtr&lt;GpuProgram&gt;
344<a name="l00881"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra0">00881</a>     {
345<a name="l00882"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra1">00882</a>     <span class="keyword">public</span>:
346<a name="l00883"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra2">00883</a>         GpuProgramPtr() : <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr</a>&lt;GpuProgram&gt;() {}
347<a name="l00884"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra3">00884</a>         <span class="keyword">explicit</span> GpuProgramPtr(GpuProgram* rep) : <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr</a>&lt;GpuProgram&gt;(rep) {}
34800885         GpuProgramPtr(<span class="keyword">const</span> GpuProgramPtr&amp; r) : <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr</a>&lt;GpuProgram&gt;(r) {}
34900886         GpuProgramPtr(<span class="keyword">const</span> ResourcePtr&amp; r) : SharedPtr&lt;GpuProgram&gt;()
35000887         {
35100888             <span class="comment">// lock &amp; copy other mutex pointer</span>
35200889             <a class="code" href="OgrePrerequisites_8h.html#a14">OGRE_LOCK_MUTEX</a>(*r.OGRE_AUTO_MUTEX_NAME)
35300890             <a class="code" href="OgrePrerequisites_8h.html#a19">OGRE_COPY_AUTO_SHARED_MUTEX</a>(r.OGRE_AUTO_MUTEX_NAME)
35400891             pRep = static_cast&lt;GpuProgram*&gt;(r.getPointer());
35500892             pUseCount = r.useCountPointer();
35600893             <span class="keywordflow">if</span> (pUseCount)
35700894             {
35800895                 ++(*pUseCount);
35900896             }
36000897         }
361<a name="l00898"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra4">00898</a> 
36200900         GpuProgramPtr&amp; operator=(<span class="keyword">const</span> <a class="code" href="classOgre_1_1SharedPtr.html">ResourcePtr</a>&amp; r)
36300901         {
36400902             <span class="keywordflow">if</span> (pRep == static_cast&lt;GpuProgram*&gt;(r.<a class="code" href="classOgre_1_1SharedPtr.html#Ogre_1_1SharedPtra12">getPointer</a>()))
36500903                 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
36600904             release();
36700905             <span class="comment">// lock &amp; copy other mutex pointer</span>
36800906             <a class="code" href="OgrePrerequisites_8h.html#a14">OGRE_LOCK_MUTEX</a>(*r.OGRE_AUTO_MUTEX_NAME)
36900907             <a class="code" href="OgrePrerequisites_8h.html#a19">OGRE_COPY_AUTO_SHARED_MUTEX</a>(r.OGRE_AUTO_MUTEX_NAME)
37000908             pRep = static_cast&lt;GpuProgram*&gt;(r.<a class="code" href="classOgre_1_1SharedPtr.html#Ogre_1_1SharedPtra12">getPointer</a>());
37100909             pUseCount = r.<a class="code" href="classOgre_1_1SharedPtr.html#Ogre_1_1SharedPtra11">useCountPointer</a>();
37200910             <span class="keywordflow">if</span> (pUseCount)
37300911             {
37400912                 ++(*pUseCount);
37500913             }
37600914             <span class="keywordflow">return</span> *<span class="keyword">this</span>;
37700915         }
37800917         GpuProgramPtr&amp; operator=(<span class="keyword">const</span> <a class="code" href="classOgre_1_1HighLevelGpuProgramPtr.html">HighLevelGpuProgramPtr</a>&amp; r);
37900918     };
38000919 }
38100920
38200921 <span class="preprocessor">#endif</span>
383</pre></div><hr>
384<p>
385Copyright &copy; 2000-2005 by The OGRE Team<br />
386<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>
387This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>.<br/>
388                <!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
389                <Work rdf:about="">
390                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
391        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
392                </Work>
393                <License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
394
395Last modified Sun Feb 12 12:59:46 2006
396</p>
397</body>
398</html>
Note: See TracBrowser for help on using the repository browser.