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

Revision 692, 54.5 KB checked in by mattausch, 18 years ago (diff)

adding ogre 1.2 and dependencies

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#a658">00037</a>     <span class="keyword">enum</span> <a class="code" href="namespaceOgre.html#a658">GpuProgramType</a>
4600038     {
4700039         <a class="code" href="namespaceOgre.html#a658a165">GPT_VERTEX_PROGRAM</a>,
4800040         <a class="code" href="namespaceOgre.html#a658a166">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_1GpuProgramParametersw86">00061</a>         <span class="keyword">enum</span> AutoConstantType
5600062         {
5700064             ACT_WORLD_MATRIX,
5800066             ACT_INVERSE_WORLD_MATRIX,
5900070             ACT_TRANSPOSE_WORLD_MATRIX,
6000072             ACT_INVERSE_TRANSPOSE_WORLD_MATRIX,
6100073
6200074
6300076             ACT_WORLD_MATRIX_ARRAY_3x4,
6400078             ACT_WORLD_MATRIX_ARRAY,
6500079
6600080
6700082             ACT_VIEW_MATRIX,
6800084             ACT_INVERSE_VIEW_MATRIX,
6900088             ACT_TRANSPOSE_VIEW_MATRIX,
7000092             ACT_INVERSE_TRANSPOSE_VIEW_MATRIX,
7100093
7200094
7300096             ACT_PROJECTION_MATRIX,
7400100             ACT_INVERSE_PROJECTION_MATRIX,
7500104             ACT_TRANSPOSE_PROJECTION_MATRIX,
7600108             ACT_INVERSE_TRANSPOSE_PROJECTION_MATRIX,
7700109
7800110
7900112             ACT_VIEWPROJ_MATRIX,
8000116             ACT_INVERSE_VIEWPROJ_MATRIX,
8100120             ACT_TRANSPOSE_VIEWPROJ_MATRIX,
8200124             ACT_INVERSE_TRANSPOSE_VIEWPROJ_MATRIX,
8300125
8400126
8500128             ACT_WORLDVIEW_MATRIX,
8600130             ACT_INVERSE_WORLDVIEW_MATRIX,
8700134             ACT_TRANSPOSE_WORLDVIEW_MATRIX,
8800136             ACT_INVERSE_TRANSPOSE_WORLDVIEW_MATRIX,
8900138
9000139
9100141             ACT_WORLDVIEWPROJ_MATRIX,
9200145             ACT_INVERSE_WORLDVIEWPROJ_MATRIX,
9300149             ACT_TRANSPOSE_WORLDVIEWPROJ_MATRIX,
9400153             ACT_INVERSE_TRANSPOSE_WORLDVIEWPROJ_MATRIX,
9500154
9600155
9700157
9800160             ACT_RENDER_TARGET_FLIPPING,
9900161
10000162
10100164             ACT_FOG_COLOUR,
10200166             ACT_FOG_PARAMS,
10300167
10400168
10500170             ACT_AMBIENT_LIGHT_COLOUR,
10600171
10700173             ACT_LIGHT_DIFFUSE_COLOUR,
10800175             ACT_LIGHT_SPECULAR_COLOUR,
10900177             ACT_LIGHT_ATTENUATION,
11000179             ACT_LIGHT_POSITION,
11100181             ACT_LIGHT_POSITION_OBJECT_SPACE,
11200183             ACT_LIGHT_POSITION_VIEW_SPACE,
11300185             ACT_LIGHT_DIRECTION,
11400187             ACT_LIGHT_DIRECTION_OBJECT_SPACE,
11500189             ACT_LIGHT_DIRECTION_VIEW_SPACE,
11600194             ACT_LIGHT_DISTANCE_OBJECT_SPACE,
11700196             ACT_LIGHT_POWER_SCALE,
11800200             ACT_SHADOW_EXTRUSION_DISTANCE,
11900202             ACT_CAMERA_POSITION,
12000204             ACT_CAMERA_POSITION_OBJECT_SPACE,
12100206             ACT_TEXTURE_VIEWPROJ_MATRIX,
12200208             ACT_CUSTOM,
12300211             ACT_TIME,
12400215             ACT_TIME_0_X,
12500217             ACT_COSTIME_0_X,
12600219             ACT_SINTIME_0_X,
12700221             ACT_TANTIME_0_X,
12800225             ACT_TIME_0_X_PACKED,
12900230             ACT_TIME_0_1,
13000232             ACT_COSTIME_0_1,
13100234             ACT_SINTIME_0_1,
13200236             ACT_TANTIME_0_1,
13300240             ACT_TIME_0_1_PACKED,
13400245             ACT_TIME_0_2PI,
13500247             ACT_COSTIME_0_2PI,
13600249             ACT_SINTIME_0_2PI,
13700251             ACT_TANTIME_0_2PI,
13800255             ACT_TIME_0_2PI_PACKED,
13900257             ACT_FRAME_TIME,
14000259             ACT_FPS,
14100261
14200264             ACT_VIEWPORT_WIDTH,
14300268             ACT_VIEWPORT_HEIGHT,
14400272             ACT_INVERSE_VIEWPORT_WIDTH,
14500276             ACT_INVERSE_VIEWPORT_HEIGHT,
14600280             ACT_VIEWPORT_SIZE,
14700281
14800283
14900286             ACT_VIEW_DIRECTION,
15000290             ACT_VIEW_SIDE_VECTOR,
15100294             ACT_VIEW_UP_VECTOR,
15200298             ACT_FOV,
15300302             ACT_NEAR_CLIP_DISTANCE,
15400306             ACT_FAR_CLIP_DISTANCE,
15500307
15600311             ACT_PASS_NUMBER,
15700312
15800317             ACT_PASS_ITERATION_NUMBER,
15900318
16000319
16100323             ACT_ANIMATION_PARAMETRIC,
16200324
16300325         };
16400326
165<a name="l00330"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw87">00330</a>         <span class="keyword">enum</span> ACDataType {
16600332             ACDT_NONE,
16700334             ACDT_INT,
16800336             ACDT_REAL
16900337         };
17000338
171<a name="l00341"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw88">00341</a>         <span class="keyword">enum</span> ElementType {
17200342             ET_INT,
17300343             ET_REAL
17400344         };
17500345
176<a name="l00346"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html">00346</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html">AutoConstantDefinition</a>
17700347         {
178<a name="l00348"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantDefinitiono0">00348</a>             AutoConstantType acType;
179<a name="l00349"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantDefinitiono1">00349</a>             <a class="code" href="namespaceOgre.html#a471">String</a> name;
180<a name="l00350"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantDefinitiono2">00350</a>             size_t elementCount;
181<a name="l00352"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantDefinitiono3">00352</a>             ElementType elementType;
182<a name="l00354"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantDefinitiono4">00354</a>             ACDataType dataType;
18300355
184<a name="l00356"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantDefinitiona0">00356</a>             <a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html">AutoConstantDefinition</a>(AutoConstantType _acType, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; _name,
18500357                 size_t _elementCount, ElementType _elementType,
18600358                 ACDataType _dataType)
18700359                 :acType(_acType), name(_name), elementCount(_elementCount),
18800360                 elementType(_elementType), dataType(_dataType)
18900361             {
19000362                 
19100363             }
19200364         };
19300365
194<a name="l00367"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html">00367</a>         <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a17">_OgrePrivate</a> AutoConstantEntry
19500368         {
19600369         <span class="keyword">public</span>:
197<a name="l00371"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo0">00371</a>             AutoConstantType paramType;
198<a name="l00373"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo1">00373</a>             size_t index;
19900375             <span class="keyword">union</span>{
200<a name="l00376"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo2">00376</a>                 size_t data;
201<a name="l00377"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntryo3">00377</a>                 <a class="code" href="namespaceOgre.html#a465">Real</a> fData;
20200378             };
20300379
204<a name="l00380"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntrya0">00380</a>             AutoConstantEntry(AutoConstantType theType, size_t theIndex, size_t theData)
20500381                 : paramType(theType), index(theIndex), data(theData) {}
20600382
207<a name="l00383"></a><a class="code" href="classOgre_1_1GpuProgramParameters_1_1AutoConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1AutoConstantEntrya1">00383</a>             AutoConstantEntry(AutoConstantType theType, size_t theIndex, <a class="code" href="namespaceOgre.html#a465">Real</a> theData)
20800384                 : paramType(theType), index(theIndex), fData(theData) {}
20900385
21000386         };
211<a name="l00391"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">00391</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>
21200392         {
213<a name="l00393"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1RealConstantEntryo0">00393</a>             <span class="keywordtype">float</span> val[4];
214<a name="l00394"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1RealConstantEntryo1">00394</a>             <span class="keywordtype">bool</span> isSet;
215<a name="l00395"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1RealConstantEntrya0">00395</a>             <a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>() : isSet(false)  {}
21600396         };
217<a name="l00401"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">00401</a>         <span class="keyword">struct </span><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>
21800402         {
219<a name="l00403"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1IntConstantEntryo0">00403</a>             <span class="keywordtype">int</span> val[4];
220<a name="l00404"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1IntConstantEntryo1">00404</a>             <span class="keywordtype">bool</span> isSet;
221<a name="l00405"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html#Ogre_1_1GpuProgramParameters_1_1IntConstantEntrya0">00405</a>             <a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>() : isSet(false) {}
22200406         };
22300407
22400408         <span class="comment">// nfz</span>
225<a name="l00413"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html">00413</a> <span class="comment"></span>        <span class="keyword">struct </span><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html">ConstantDefinition</a>
22600414         {
227<a name="l00415"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono0">00415</a>             <a class="code" href="namespaceOgre.html#a471">String</a> name;
228<a name="l00416"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono1">00416</a>             size_t entryIndex;
229<a name="l00417"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono2">00417</a>             size_t elementCount;
230<a name="l00418"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono3">00418</a>             size_t arraySize;
231<a name="l00419"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono4">00419</a>             ElementType elementType;
232<a name="l00420"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono5">00420</a>             size_t autoIndex;
233<a name="l00421"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono6">00421</a>             <span class="keywordtype">bool</span>   isAllocated;
234<a name="l00422"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiono7">00422</a>             <span class="keywordtype">bool</span>   isAuto;
23500423
236<a name="l00424"></a><a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html#Ogre_1_1GpuProgramParameters_1_1ConstantDefinitiona0">00424</a>             <a class="code" href="structOgre_1_1GpuProgramParameters_1_1ConstantDefinition.html">ConstantDefinition</a>()
23700425                 : entryIndex(0)
23800426                 , elementCount(0)
23900427                 , arraySize(1)
24000428                 , elementType(ET_INT)
24100429                 , autoIndex(0)
24200430                 , isAllocated(false)
24300431                 , isAuto(false)
24400432             {}
24500433
24600434         };
24700435
24800436     <span class="keyword">protected</span>:
249<a name="l00437"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParameterst0">00437</a>         <span class="keyword">static</span> <a class="code" href="structOgre_1_1GpuProgramParameters_1_1AutoConstantDefinition.html">AutoConstantDefinition</a> AutoConstantDictionary[];
25000438         <span class="comment">// Constant lists</span>
251<a name="l00439"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx0">00439</a>         <span class="keyword">typedef</span> std::vector&lt;RealConstantEntry&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx0">RealConstantList</a>;
252<a name="l00440"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx1">00440</a>         <span class="keyword">typedef</span> std::vector&lt;IntConstantEntry&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx1">IntConstantList</a>;
25300441         <span class="comment">// Auto parameter storage</span>
254<a name="l00442"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx2">00442</a>         <span class="keyword">typedef</span> std::vector&lt;AutoConstantEntry&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx2">AutoConstantList</a>;
25500443         <span class="comment">// parameter dictionary container</span>
256<a name="l00444"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx3">00444</a>         <span class="keyword">typedef</span> std::vector&lt;ConstantDefinition&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx3">ConstantDefinitionContainer</a>;
257<a name="l00446"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp0">00446</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx0">RealConstantList</a> mRealConstants;
258<a name="l00448"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp1">00448</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx1">IntConstantList</a> mIntConstants;
259<a name="l00450"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp2">00450</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx2">AutoConstantList</a> mAutoConstants;
260<a name="l00452"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp3">00452</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx3">ConstantDefinitionContainer</a> mConstantDefinitions;
261<a name="l00454"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx4">00454</a>         <span class="keyword">typedef</span> std::map&lt;String, size_t&gt; <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx4">ParamNameMap</a>;
262<a name="l00455"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp4">00455</a>         <a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersx4">ParamNameMap</a> mParamNameMap;
263<a name="l00457"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp5">00457</a>         <span class="keywordtype">bool</span> mTransposeMatrices;
264<a name="l00459"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp6">00459</a>         <span class="keywordtype">bool</span> mAutoAddParamName;
265<a name="l00461"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp7">00461</a>         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>* mActivePassIterationEntry;
266<a name="l00463"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersp8">00463</a>         size_t mActivePassIterationEntryIndex;
26700464
26800465
26900466     <span class="keyword">public</span>:
27000467         GpuProgramParameters();
271<a name="l00468"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa1">00468</a>         ~GpuProgramParameters() {}
27200469
27300471         GpuProgramParameters(<span class="keyword">const</span> GpuProgramParameters&amp; oth);
27400473         GpuProgramParameters&amp; operator=(<span class="keyword">const</span> GpuProgramParameters&amp; oth);
27500474
27600475
27700481         <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);
27800489         <span class="keywordtype">void</span> setConstant(size_t index, <a class="code" href="namespaceOgre.html#a465">Real</a> val);
27900497         <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);
28000504         <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);
28100512         <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);
28200519         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <span class="keywordtype">float</span> *val, size_t count);
28300526         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <span class="keywordtype">double</span> *val, size_t count);
28400532         <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);
28500533         
28600548         <span class="keywordtype">void</span> setConstant(size_t index, <span class="keyword">const</span> <span class="keywordtype">int</span> *val, size_t count);
28700549
288<a name="l00551"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa13">00551</a>         <span class="keywordtype">void</span> resetRealConstants(<span class="keywordtype">void</span>) { mRealConstants.clear(); }
289<a name="l00553"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa14">00553</a>         <span class="keywordtype">void</span> resetIntConstants(<span class="keywordtype">void</span>) { mIntConstants.clear(); }
29000554
291<a name="l00555"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw0">00555</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>;
292<a name="l00556"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw1">00556</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>;
29300558         <a class="code" href="classOgre_1_1ConstVectorIterator.html">RealConstantIterator</a> getRealConstantIterator(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
29400560         <a class="code" href="classOgre_1_1ConstVectorIterator.html">IntConstantIterator</a> getIntConstantIterator(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
29500561
29600566         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>* getRealConstantEntry(<span class="keyword">const</span> size_t index);
29700571         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>* getIntConstantEntry(<span class="keyword">const</span> size_t index);
29800572         
29900576         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1RealConstantEntry.html">RealConstantEntry</a>* getNamedRealConstantEntry(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name);
30000580         <a class="code" href="structOgre_1_1GpuProgramParameters_1_1IntConstantEntry.html">IntConstantEntry</a>* getNamedIntConstantEntry(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name);
301<a name="l00582"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa21">00582</a>         size_t getRealConstantCount(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mRealConstants.size(); }
302<a name="l00584"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa22">00584</a>         size_t getIntConstantCount(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mIntConstants.size(); }
303<a name="l00586"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa23">00586</a>         <span class="keywordtype">bool</span> hasRealConstantParams(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(mRealConstants.empty()); }
304<a name="l00588"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa24">00588</a>         <span class="keywordtype">bool</span> hasIntConstantParams(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(mIntConstants.empty()); }
30500589
30600603         <span class="keywordtype">void</span> setAutoConstant(size_t index, AutoConstantType acType, size_t extraInfo = 0);
30700604         <span class="keywordtype">void</span> setAutoConstantReal(size_t index, AutoConstantType acType, <a class="code" href="namespaceOgre.html#a465">Real</a> rData);
30800609         <span class="keywordtype">void</span> setConstantFromTime(size_t index, <a class="code" href="namespaceOgre.html#a465">Real</a> factor);
30900610
31000612         <span class="keywordtype">void</span> clearAutoConstants(<span class="keywordtype">void</span>);
311<a name="l00613"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersw2">00613</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>;
31200615         <a class="code" href="classOgre_1_1ConstVectorIterator.html">AutoConstantIterator</a> getAutoConstantIterator(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
313<a name="l00617"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa30">00617</a>         size_t getAutoConstantCount(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mAutoConstants.size(); }
31400622         AutoConstantEntry* getAutoConstantEntry(<span class="keyword">const</span> size_t index);
315<a name="l00624"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa32">00624</a>         <span class="keywordtype">bool</span> hasAutoConstants(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(mAutoConstants.empty()); }
31600626         <span class="keywordtype">void</span> _updateAutoParamsNoLights(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AutoParamDataSource.html">AutoParamDataSource</a>&amp; source);
31700628         <span class="keywordtype">void</span> _updateAutoParamsLightsOnly(<span class="keyword">const</span> <a class="code" href="classOgre_1_1AutoParamDataSource.html">AutoParamDataSource</a>&amp; source);
31800629
319<a name="l00641"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa35">00641</a>         <span class="keywordtype">void</span> setAutoAddParamName(<span class="keywordtype">bool</span> state) { mAutoAddParamName = state; }
32000642
32100662         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <a class="code" href="namespaceOgre.html#a465">Real</a> val);
32200682         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keywordtype">int</span> val);
32300687         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector4.html">Vector4</a>&amp; vec);
32400700         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Vector3.html">Vector3</a>&amp; vec);
32500705         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>&amp; m);
32600713         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1Matrix4.html">Matrix4</a>* m, size_t numEntries);
32700734         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <span class="keywordtype">float</span> *val, size_t count);
32800755         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <span class="keywordtype">double</span> *val, size_t count);
32900760         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a>&amp; colour);
33000761         
33100782         <span class="keywordtype">void</span> setNamedConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> <span class="keywordtype">int</span> *val, size_t count);
33200783
33300798         <span class="keywordtype">void</span> setNamedAutoConstant(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, AutoConstantType acType, size_t extraInfo = 0);
33400799
33500807         <span class="keywordtype">void</span> setNamedConstantFromTime(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <a class="code" href="namespaceOgre.html#a465">Real</a> factor);
33600809         <span class="keywordtype">void</span> _mapParameterNameToIndex(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> size_t index );
33700810
33800812         size_t getParamIndex(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name);
33900813
34000814
341<a name="l00822"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa50">00822</a>         <span class="keywordtype">void</span> setTransposeMatrices(<span class="keywordtype">bool</span> val) { mTransposeMatrices = val; }
342<a name="l00824"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa51">00824</a>         <span class="keywordtype">bool</span> getTransposeMatrices(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mTransposeMatrices; }
34300825
34400829         <span class="keywordtype">void</span> copyConstantsFrom(<span class="keyword">const</span> GpuProgramParameters&amp; source);
34500830
34600843         size_t addConstantDefinition(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <span class="keyword">const</span> size_t index,
34700844             <span class="keyword">const</span> size_t elementCount, <span class="keyword">const</span> ElementType elementType);
34800845
34900849         <span class="keyword">const</span> ConstantDefinition* getConstantDefinition(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name) <span class="keyword">const</span>;
35000854         <span class="keyword">const</span> ConstantDefinition* getConstantDefinition(<span class="keyword">const</span> size_t idx) <span class="keyword">const</span>;
35100858         <span class="keyword">const</span> ConstantDefinition* findMatchingConstantDefinition(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name,
35200859             <span class="keyword">const</span> size_t entryIndex, <span class="keyword">const</span> ElementType elementType) <span class="keyword">const</span>;
35300860
354<a name="l00863"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa57">00863</a>         size_t getNumConstantDefinitions(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mConstantDefinitions.size(); }
35500869         <span class="keywordtype">void</span> setConstantDefinitionAutoState( <span class="keyword">const</span> size_t index,
35600870             <span class="keyword">const</span> <span class="keywordtype">bool</span> isAuto, <span class="keyword">const</span> size_t autoIndex );
35700874         <span class="keyword">static</span> <span class="keyword">const</span> AutoConstantDefinition* getAutoConstantDefinition(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name);
35800879         <span class="keyword">static</span> <span class="keyword">const</span> AutoConstantDefinition* getAutoConstantDefinition(<span class="keyword">const</span> size_t idx);
35900882         <span class="keyword">static</span> size_t getNumAutoConstantDefinitions(<span class="keywordtype">void</span>);
36000885         <span class="keywordtype">void</span> incPassIterationNumber(<span class="keywordtype">void</span>);
36100889         RealConstantEntry* getPassIterationEntry(<span class="keywordtype">void</span>);
362<a name="l00893"></a><a class="code" href="classOgre_1_1GpuProgramParameters.html#Ogre_1_1GpuProgramParametersa61">00893</a>         size_t getPassIterationEntryIndex(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mActivePassIterationEntryIndex; }
36300894     };
364<a name="l00895"></a><a class="code" href="namespaceOgre.html#a164">00895</a> 
36500897     <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>;
36600898
36700899     <span class="comment">// Forward declaration </span>
36800900     <span class="keyword">class </span><a class="code" href="classOgre_1_1GpuProgramPtr.html">GpuProgramPtr</a>;
36900901
37000911     <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>
37100912     {
372<a name="l00913"></a><a class="code" href="classOgre_1_1GpuProgram_1_1CmdType.html">00913</a>     <span class="keyword">protected</span>:
37300915         <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>
37400916         {
37500917         <span class="keyword">public</span>:
37600918             <a class="code" href="namespaceOgre.html#a471">String</a> doGet(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span>;
377<a name="l00919"></a><a class="code" href="classOgre_1_1GpuProgram_1_1CmdSyntax.html">00919</a>             <span class="keywordtype">void</span> doSet(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; val);
37800920         };
37900921         <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>
38000922         {
38100923         <span class="keyword">public</span>:
38200924             <a class="code" href="namespaceOgre.html#a471">String</a> doGet(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span>;
383<a name="l00925"></a><a class="code" href="classOgre_1_1GpuProgram_1_1CmdSkeletal.html">00925</a>             <span class="keywordtype">void</span> doSet(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; val);
38400926         };
38500927         <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>
38600928         {
38700929         <span class="keyword">public</span>:
38800930             <a class="code" href="namespaceOgre.html#a471">String</a> doGet(<span class="keyword">const</span> <span class="keywordtype">void</span>* target) <span class="keyword">const</span>;
38900931             <span class="keywordtype">void</span> doSet(<span class="keywordtype">void</span>* target, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; val);
390<a name="l00932"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramt0">00932</a>         };
391<a name="l00933"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramt1">00933</a>         <span class="comment">// Command object for setting / getting parameters</span>
392<a name="l00934"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramt2">00934</a>         <span class="keyword">static</span> CmdType msTypeCmd;
39300935         <span class="keyword">static</span> CmdSyntax msSyntaxCmd;
39400936         <span class="keyword">static</span> CmdSkeletal msSkeletalCmd;
395<a name="l00937"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp2">00937</a>    
396<a name="l00939"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp3">00939</a>         <a class="code" href="namespaceOgre.html#a658">GpuProgramType</a> mType;
397<a name="l00941"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp4">00941</a>         <a class="code" href="namespaceOgre.html#a471">String</a> mFilename;
398<a name="l00943"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp5">00943</a>         <a class="code" href="namespaceOgre.html#a471">String</a> mSource;
399<a name="l00945"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp6">00945</a>         <span class="keywordtype">bool</span> mLoadFromFile;
400<a name="l00947"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp7">00947</a>         <a class="code" href="namespaceOgre.html#a471">String</a> mSyntaxCode;
401<a name="l00949"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp8">00949</a>         <span class="keywordtype">bool</span> mSkeletalAnimation;
402<a name="l00951"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp9">00951</a>         <span class="keywordtype">bool</span> mMorphAnimation;
403<a name="l00953"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp10">00953</a>         <a class="code" href="namespaceOgre.html#a467">ushort</a> mPoseAnimation;
404<a name="l00955"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramp11">00955</a>         <a class="code" href="classOgre_1_1SharedPtr.html">GpuProgramParametersSharedPtr</a> mDefaultParams;
40500957         <span class="keywordtype">bool</span> mPassSurfaceAndLightStates;
40600958
40700967         <span class="keywordtype">void</span> setupBaseParamDictionary(<span class="keywordtype">void</span>);
408<a name="l00968"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuProgramb9">00968</a> 
40900970         size_t calculateSize(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; } <span class="comment">// TODO </span>
41000971
41100973         <span class="keywordtype">void</span> loadImpl(<span class="keywordtype">void</span>);
41200974     <span class="keyword">public</span>:
41300975
41400976         GpuProgram(<a class="code" href="classOgre_1_1ResourceManager.html">ResourceManager</a>* creator, <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; name, <a class="code" href="namespaceOgre.html#a529">ResourceHandle</a> handle,
415<a name="l00977"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1GpuPrograma1">00977</a>             <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">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);
41600978
41700979         <span class="keyword">virtual</span> ~GpuProgram() {}
41800980
41900985         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceFile(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; filename);
42000986
42100991         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSource(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; source);
422<a name="l00992"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma6">00992</a> 
42300994         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; getSyntaxCode(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSyntaxCode; }
42400995
42500997         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSyntaxCode(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; syntax);
426<a name="l00998"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma8">00998</a> 
427<a name="l01000"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma9">01000</a>         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; getSourceFile(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mFilename; }
42801002         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; getSource(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mSource; }
429<a name="l01004"></a><a class="code" href="classOgre_1_1GpuProgram.html#Ogre_1_1HighLevelGpuPrograma11">01004</a>         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setType(GpuProgramType t);
43001006         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a658">GpuProgramType</a> getType(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mType; }
43101007
43201012         <span class="keyword">virtual</span> GpuProgram* _getBindingDelegate(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> <span class="keyword">this</span>; }
43301013
43401015         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSupported(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
43501016
43601024         <span class="keyword">virtual</span> GpuProgramParametersSharedPtr createParameters(<span class="keywordtype">void</span>);
43701025
43801032         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSkeletalAnimationIncluded(<span class="keywordtype">bool</span> included)
43901033         { mSkeletalAnimation = included; }
44001034
44101041         <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; }
44201042
44301049         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMorphAnimationIncluded(<span class="keywordtype">bool</span> included)
44401050         { mMorphAnimation = included; }
44501051
44601059         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setPoseAnimationIncluded(ushort poseCount)
44701060         { mPoseAnimation = poseCount; }
44801061
44901068         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMorphAnimationIncluded(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mMorphAnimation; }
45001069
45101076         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isPoseAnimationIncluded(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mPoseAnimation &gt; 0; }
45201080         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a467">ushort</a> getNumberOfPosesIncluded(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> mPoseAnimation; }
45301081
45401092         <span class="keyword">virtual</span> <a class="code" href="namespaceOgre.html#a164">GpuProgramParametersSharedPtr</a> getDefaultParameters(<span class="keywordtype">void</span>);
45501093
45601096         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> hasDefaultParameters(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !mDefaultParams.isNull(); }
45701097
45801106         <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSurfaceAndPassLightStates(<span class="keywordtype">bool</span> state)
45901107             { mPassSurfaceAndLightStates = state; }
46001108
46101112         <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; }
46201113
46301117         <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>&amp; getLanguage(<span class="keywordtype">void</span>) <span class="keyword">const</span>;
46401118
46501119     <span class="keyword">protected</span>:
46601121         <span class="keyword">virtual</span> <span class="keywordtype">void</span> loadFromSource(<span class="keywordtype">void</span>) = 0;
46701122
46801123     };
46901124
47001125
47101132     <span class="keyword">class </span><a class="code" href="class__OgreExport.html">_OgreExport</a> GpuProgramPtr : <span class="keyword">public</span> SharedPtr&lt;GpuProgram&gt;
472<a name="l01133"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra0">01133</a>     {
473<a name="l01134"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra1">01134</a>     <span class="keyword">public</span>:
474<a name="l01135"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra2">01135</a>         GpuProgramPtr() : <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr</a>&lt;GpuProgram&gt;() {}
475<a name="l01136"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra3">01136</a>         <span class="keyword">explicit</span> GpuProgramPtr(GpuProgram* rep) : <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr</a>&lt;GpuProgram&gt;(rep) {}
47601137         GpuProgramPtr(<span class="keyword">const</span> GpuProgramPtr&amp; r) : <a class="code" href="classOgre_1_1SharedPtr.html">SharedPtr</a>&lt;GpuProgram&gt;(r) {}
47701138         GpuProgramPtr(<span class="keyword">const</span> ResourcePtr&amp; r) : SharedPtr&lt;GpuProgram&gt;()
47801139         {
47901140             <span class="comment">// lock &amp; copy other mutex pointer</span>
48001141             <a class="code" href="OgrePrerequisites_8h.html#a15">OGRE_LOCK_MUTEX</a>(*r.OGRE_AUTO_MUTEX_NAME)
48101142             <a class="code" href="OgrePrerequisites_8h.html#a20">OGRE_COPY_AUTO_SHARED_MUTEX</a>(r.OGRE_AUTO_MUTEX_NAME)
48201143             pRep = static_cast&lt;GpuProgram*&gt;(r.getPointer());
48301144             pUseCount = r.useCountPointer();
48401145             <span class="keywordflow">if</span> (pUseCount)
48501146             {
48601147                 ++(*pUseCount);
48701148             }
48801149         }
489<a name="l01150"></a><a class="code" href="classOgre_1_1GpuProgramPtr.html#Ogre_1_1GpuProgramPtra4">01150</a> 
49001152         GpuProgramPtr&amp; operator=(<span class="keyword">const</span> <a class="code" href="classOgre_1_1SharedPtr.html">ResourcePtr</a>&amp; r)
49101153         {
49201154             <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>()))
49301155                 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
49401156             release();
49501157             <span class="comment">// lock &amp; copy other mutex pointer</span>
49601158             <a class="code" href="OgrePrerequisites_8h.html#a15">OGRE_LOCK_MUTEX</a>(*r.OGRE_AUTO_MUTEX_NAME)
49701159             <a class="code" href="OgrePrerequisites_8h.html#a20">OGRE_COPY_AUTO_SHARED_MUTEX</a>(r.OGRE_AUTO_MUTEX_NAME)
49801160             pRep = static_cast&lt;GpuProgram*&gt;(r.<a class="code" href="classOgre_1_1SharedPtr.html#Ogre_1_1SharedPtra12">getPointer</a>());
49901161             pUseCount = r.<a class="code" href="classOgre_1_1SharedPtr.html#Ogre_1_1SharedPtra11">useCountPointer</a>();
50001162             <span class="keywordflow">if</span> (pUseCount)
50101163             {
50201164                 ++(*pUseCount);
50301165             }
50401166             <span class="keywordflow">return</span> *<span class="keyword">this</span>;
50501167         }
50601169         GpuProgramPtr&amp; operator=(<span class="keyword">const</span> <a class="code" href="classOgre_1_1HighLevelGpuProgramPtr.html">HighLevelGpuProgramPtr</a>&amp; r);
50701170     };
50801171 }
50901172
51001173 <span class="preprocessor">#endif</span>
511</pre></div><hr>
512<p>
513Copyright &copy; 2000-2005 by The OGRE Team<br />
514<!--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/>
515This 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/>
516                <!--/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#">
517                <Work rdf:about="">
518                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
519        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
520                </Work>
521                <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> -->
522
523Last modified Sun Mar 12 14:37:42 2006
524</p>
525</body>
526</html>
Note: See TracBrowser for help on using the repository browser.