[692] | 1 | <html> |
---|
| 2 | <head> |
---|
| 3 | <title>OgreMaterialScriptCompiler.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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div> |
---|
| 10 | <h1>OgreMaterialScriptCompiler.h</h1><a href="OgreMaterialScriptCompiler_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span> |
---|
| 11 | 00002 <span class="comment">-----------------------------------------------------------------------------</span> |
---|
| 12 | 00003 <span class="comment">This source file is part of OGRE</span> |
---|
| 13 | 00004 <span class="comment"> (Object-oriented Graphics Rendering Engine)</span> |
---|
| 14 | 00005 <span class="comment">For the latest info, see http://www.stevestreeting.com/ogre/</span> |
---|
| 15 | 00006 <span class="comment"></span> |
---|
| 16 | 00007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span> |
---|
| 17 | 00008 <span class="comment">Also see acknowledgements in Readme.html</span> |
---|
| 18 | 00009 <span class="comment"></span> |
---|
| 19 | 00010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span> |
---|
| 20 | 00011 <span class="comment">the terms of the GNU General Public License as published by the Free Software</span> |
---|
| 21 | 00012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span> |
---|
| 22 | 00013 <span class="comment">version.</span> |
---|
| 23 | 00014 <span class="comment"></span> |
---|
| 24 | 00015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span> |
---|
| 25 | 00016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span> |
---|
| 26 | 00017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.</span> |
---|
| 27 | 00018 <span class="comment"></span> |
---|
| 28 | 00019 <span class="comment">You should have received a copy of the GNU General Public License along with</span> |
---|
| 29 | 00020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span> |
---|
| 30 | 00021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span> |
---|
| 31 | 00022 <span class="comment">http://www.gnu.org/copyleft/gpl.html.</span> |
---|
| 32 | 00023 <span class="comment">-----------------------------------------------------------------------------</span> |
---|
| 33 | 00024 <span class="comment">*/</span> |
---|
| 34 | 00025 |
---|
| 35 | 00026 <span class="preprocessor">#ifndef __MaterialScriptScompiler_H__</span> |
---|
| 36 | 00027 <span class="preprocessor"></span><span class="preprocessor">#define __MaterialScriptScompiler_H__</span> |
---|
| 37 | 00028 <span class="preprocessor"></span> |
---|
| 38 | 00029 <span class="preprocessor">#include "<a class="code" href="OgreCompiler2Pass_8h.html">OgreCompiler2Pass.h</a>"</span> |
---|
| 39 | 00030 <span class="preprocessor">#include "<a class="code" href="OgrePrerequisites_8h.html">OgrePrerequisites.h</a>"</span> |
---|
| 40 | 00031 <span class="comment">//#include "OgreMaterial.h"</span> |
---|
| 41 | 00032 <span class="comment">//#include "OgreBlendMode.h"</span> |
---|
| 42 | 00033 <span class="comment">//#include "OgreTextureUnitState.h"</span> |
---|
| 43 | 00034 <span class="comment">//#include "OgreGpuProgram.h"</span> |
---|
| 44 | 00035 |
---|
| 45 | 00036 <span class="keyword">namespace </span>Ogre { |
---|
| 46 | 00037 |
---|
| 47 | <a name="l00038"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html">00038</a> <span class="keyword">class </span><a class="code" href="OgrePlatform_8h.html#a16">_OgreExport</a> MaterialScriptCompiler : <span class="keyword">public</span> <a class="code" href="classOgre_1_1Compiler2Pass.html">Compiler2Pass</a> |
---|
| 48 | 00039 { |
---|
| 49 | 00040 |
---|
| 50 | 00041 <span class="keyword">public</span>: |
---|
| 51 | 00042 MaterialScriptCompiler(<span class="keywordtype">void</span>); |
---|
| 52 | 00043 ~MaterialScriptCompiler(<span class="keywordtype">void</span>); |
---|
| 53 | <a name="l00046"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilera2">00046</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>& getClientBNFGrammer(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> materialScript_BNF; } |
---|
| 54 | 00047 |
---|
| 55 | <a name="l00050"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilera3">00050</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>& getClientGrammerName(<span class="keywordtype">void</span>) { <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a> grammerName(<span class="stringliteral">"Material Script"</span>); <span class="keywordflow">return</span> grammerName; } |
---|
| 56 | 00051 |
---|
| 57 | 00052 <span class="keyword">protected</span>: |
---|
| 58 | 00053 <span class="comment">// Token ID enumeration</span> |
---|
| 59 | <a name="l00054"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerx83">00054</a> <span class="keyword">enum</span> TokenID { |
---|
| 60 | 00055 <span class="comment">// Terminal Tokens section</span> |
---|
| 61 | 00056 ID_UNKOWN = 0, ID_OPENBRACE, ID_CLOSEBRACE, |
---|
| 62 | 00057 ID_VERTEX_PROGRAM, ID_FRAGMENT_PROGRAM, |
---|
| 63 | 00058 <span class="comment">// material</span> |
---|
| 64 | 00059 ID_MATERIAL, ID_CLONE, ID_TECHNIQUE, ID_SET_TEXTURE_ALIAS, ID_LOD_DISTANCES, |
---|
| 65 | 00060 ID_RECEIVE_SHADOWS, ID_TRANSPARENCY_CASTS_SHADOWS, ID_LOD_INDEX, |
---|
| 66 | 00061 |
---|
| 67 | 00062 <span class="comment">// pass</span> |
---|
| 68 | 00063 ID_PASS, ID_AMBIENT, ID_DIFFUSE, ID_SPECULAR, ID_EMISSIVE, |
---|
| 69 | 00064 ID_VERTEXCOLOUR, ID_SCENE_BLEND, ID_BLEND_ADD, ID_BLEND_MODULATE, ID_COLOUR_BLEND, ID_ALPHA_BLEND, |
---|
| 70 | 00065 ID_BLEND_ONE, ID_BLEND_ZERO, ID_BLEND_DEST_COLOUR, |
---|
| 71 | 00066 ID_BLEND_SRC_COLOUR, ID_BLEND_ONCE_MINUS_DEST_COLOUR, ID_BLEND_ONE_MINUS_SRC_COLOUR, |
---|
| 72 | 00067 ID_BLEND_DEST_ALPHA, ID_BLEND_SRC_ALPHA, ID_BLEND_ONE_MINUS_DEST_ALPHA, ID_BLEND_ONE_MINUS_SRC_ALPHA, |
---|
| 73 | 00068 ID_DEPTH_CHECK, ID_DEPTH_WRITE, ID_ALPHA_REJECTION, ID_DEPTH_FUNC, ID_ALWAYS_FAIL, ID_ALWAYS_PASS, |
---|
| 74 | 00069 ID_LESS_EQUAL, ID_LESS, ID_EQUAL, ID_NOT_EQUAL, ID_GREATER_EQUAL, ID_GREATER, |
---|
| 75 | 00070 |
---|
| 76 | 00071 ID_COLOUR_WRITE, ID_CULL_HARDWARE, ID_CLOCKWISE, ID_ANTICLOCKWISE, ID_CULL_NONE, |
---|
| 77 | 00072 ID_CULL_SOFTWARE, ID_CULL_BACK, ID_CULL_FRONT, |
---|
| 78 | 00073 ID_SHADING, ID_FLAT, ID_GOURAUD, ID_PHONG, |
---|
| 79 | 00074 ID_LIGHTING, ID_MAX_LIGHTS, ID_FOG_OVERRIDE, |
---|
| 80 | 00075 ID_POINT_SIZE, ID_POINT_SPRITES, ID_POINT_SIZE_ATTENUATION, |
---|
| 81 | 00076 ID_POINT_SIZE_MIN, ID_POINT_SIZE_MAX, |
---|
| 82 | 00077 |
---|
| 83 | 00078 ID_TEXTURE_UNIT, |
---|
| 84 | 00079 |
---|
| 85 | 00080 <span class="comment">// general</span> |
---|
| 86 | 00081 ID_ON, ID_OFF, ID_TRUE, ID_FALSE |
---|
| 87 | 00082 }; |
---|
| 88 | 00083 |
---|
| 89 | <a name="l00085"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerx84">00085</a> <span class="keyword">enum</span> <a class="code" href="namespaceOgre.html#a665">MaterialScriptSection</a> |
---|
| 90 | 00086 { |
---|
| 91 | 00087 <a class="code" href="namespaceOgre.html#a665a343">MSS_NONE</a>, |
---|
| 92 | 00088 <a class="code" href="namespaceOgre.html#a665a344">MSS_MATERIAL</a>, |
---|
| 93 | 00089 <a class="code" href="namespaceOgre.html#a665a345">MSS_TECHNIQUE</a>, |
---|
| 94 | 00090 <a class="code" href="namespaceOgre.html#a665a346">MSS_PASS</a>, |
---|
| 95 | 00091 <a class="code" href="namespaceOgre.html#a665a347">MSS_TEXTUREUNIT</a>, |
---|
| 96 | 00092 <a class="code" href="namespaceOgre.html#a665a348">MSS_PROGRAM_REF</a>, |
---|
| 97 | 00093 <a class="code" href="namespaceOgre.html#a665a349">MSS_PROGRAM</a>, |
---|
| 98 | 00094 <a class="code" href="namespaceOgre.html#a665a350">MSS_DEFAULT_PARAMETERS</a>, |
---|
| 99 | 00095 <a class="code" href="namespaceOgre.html#a665a351">MSS_TEXTURESOURCE</a> |
---|
| 100 | 00096 }; |
---|
| 101 | <a name="l00098"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html">00098</a> <span class="keyword">struct </span><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html">MaterialScriptProgramDefinition</a> |
---|
| 102 | 00099 { |
---|
| 103 | <a name="l00100"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono0">00100</a> <a class="code" href="namespaceOgre.html#a471">String</a> name; |
---|
| 104 | <a name="l00101"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono1">00101</a> <a class="code" href="namespaceOgre.html#a658">GpuProgramType</a> progType; |
---|
| 105 | <a name="l00102"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono2">00102</a> <a class="code" href="namespaceOgre.html#a471">String</a> language; |
---|
| 106 | <a name="l00103"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono3">00103</a> <a class="code" href="namespaceOgre.html#a471">String</a> source; |
---|
| 107 | <a name="l00104"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono4">00104</a> <a class="code" href="namespaceOgre.html#a471">String</a> syntax; |
---|
| 108 | <a name="l00105"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono5">00105</a> <span class="keywordtype">bool</span> supportsSkeletalAnimation; |
---|
| 109 | <a name="l00106"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono6">00106</a> <span class="keywordtype">bool</span> supportsMorphAnimation; |
---|
| 110 | <a name="l00107"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono7">00107</a> <a class="code" href="namespaceOgre.html#a467">ushort</a> supportsPoseAnimation; <span class="comment">// number of simultaneous poses supported</span> |
---|
| 111 | <a name="l00108"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinitiono8">00108</a> std::map<String, String> customParameters; |
---|
| 112 | 00109 }; |
---|
| 113 | <a name="l00111"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html">00111</a> <span class="keyword">struct </span><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html">MaterialScriptContext</a> |
---|
| 114 | 00112 { |
---|
| 115 | <a name="l00113"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto0">00113</a> <a class="code" href="namespaceOgre.html#a665">MaterialScriptSection</a> section; |
---|
| 116 | <a name="l00114"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto1">00114</a> <a class="code" href="namespaceOgre.html#a471">String</a> groupName; |
---|
| 117 | <a name="l00115"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto2">00115</a> <a class="code" href="classOgre_1_1MaterialPtr.html">MaterialPtr</a> material; |
---|
| 118 | <a name="l00116"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto3">00116</a> <a class="code" href="classOgre_1_1Technique.html">Technique</a>* technique; |
---|
| 119 | <a name="l00117"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto4">00117</a> <a class="code" href="classOgre_1_1Pass.html">Pass</a>* pass; |
---|
| 120 | <a name="l00118"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto5">00118</a> <a class="code" href="classOgre_1_1TextureUnitState.html">TextureUnitState</a>* textureUnit; |
---|
| 121 | <a name="l00119"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto6">00119</a> <a class="code" href="classOgre_1_1GpuProgramPtr.html">GpuProgramPtr</a> program; <span class="comment">// used when referencing a program, not when defining it</span> |
---|
| 122 | <a name="l00120"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto7">00120</a> <span class="keywordtype">bool</span> isProgramShadowCaster; <span class="comment">// when referencing, are we in context of shadow caster</span> |
---|
| 123 | <a name="l00121"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto8">00121</a> <span class="keywordtype">bool</span> isProgramShadowReceiver; <span class="comment">// when referencing, are we in context of shadow caster</span> |
---|
| 124 | <a name="l00122"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto9">00122</a> <a class="code" href="classOgre_1_1SharedPtr.html">GpuProgramParametersSharedPtr</a> programParams; |
---|
| 125 | <a name="l00123"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto10">00123</a> <a class="code" href="namespaceOgre.html#a467">ushort</a> numAnimationParametrics; |
---|
| 126 | <a name="l00124"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto11">00124</a> <a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptProgramDefinition.html">MaterialScriptProgramDefinition</a>* programDef; <span class="comment">// this is used while defining a program</span> |
---|
| 127 | 00125 |
---|
| 128 | <a name="l00126"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto12">00126</a> <span class="keywordtype">int</span> techLev, <span class="comment">//Keep track of what tech, pass, and state level we are in</span> |
---|
| 129 | 00127 passLev, |
---|
| 130 | 00128 stateLev; |
---|
| 131 | <a name="l00129"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto15">00129</a> <a class="code" href="namespaceOgre.html#a580">StringVector</a> defaultParamLines; |
---|
| 132 | 00130 |
---|
| 133 | 00131 <span class="comment">// Error reporting state</span> |
---|
| 134 | <a name="l00132"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto16">00132</a> size_t lineNo; |
---|
| 135 | <a name="l00133"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto17">00133</a> <a class="code" href="namespaceOgre.html#a471">String</a> filename; |
---|
| 136 | <a name="l00134"></a><a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html#Ogre_1_1MaterialScriptCompiler_1_1MaterialScriptContexto18">00134</a> <a class="code" href="namespaceOgre.html#a77">AliasTextureNamePairList</a> textureAliases; |
---|
| 137 | 00135 }; |
---|
| 138 | 00136 |
---|
| 139 | <a name="l00137"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerp0">00137</a> <a class="code" href="structOgre_1_1MaterialScriptCompiler_1_1MaterialScriptContext.html">MaterialScriptContext</a> mScriptContext; |
---|
| 140 | 00138 |
---|
| 141 | 00139 <span class="comment">// static library database for tokens and BNF rules</span> |
---|
| 142 | <a name="l00140"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilert0">00140</a> <span class="keyword">static</span> TokenRule materialScript_RulePath[]; |
---|
| 143 | 00141 <span class="comment">// simplified Backus - Naur Form (BNF) grammer for material scripts</span> |
---|
| 144 | <a name="l00142"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilert1">00142</a> <span class="keyword">static</span> <a class="code" href="namespaceOgre.html#a471">String</a> materialScript_BNF; |
---|
| 145 | 00143 |
---|
| 146 | <a name="l00144"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerx0">00144</a> <span class="keyword">typedef</span> void (MaterialScriptCompiler::* <a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerx0">MSC_Action</a>)(<span class="keywordtype">void</span>); |
---|
| 147 | <a name="l00145"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerx1">00145</a> <span class="keyword">typedef</span> std::map<size_t, MSC_Action> TokenActionMap; |
---|
| 148 | <a name="l00146"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerx2">00146</a> <span class="keyword">typedef</span> TokenActionMap::iterator TokenActionIterator; |
---|
| 149 | <a name="l00151"></a><a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilert2">00151</a> <span class="keyword">static</span> TokenActionMap mTokenActionMap; |
---|
| 150 | 00152 |
---|
| 151 | 00156 <span class="keyword">virtual</span> <span class="keywordtype">void</span> executeTokenAction(<span class="keyword">const</span> size_t tokenID); |
---|
| 152 | 00159 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setupTokenDefinitions(<span class="keywordtype">void</span>); |
---|
| 153 | 00160 <span class="keywordtype">void</span> addLexemeTokenAction(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>& lexeme, <span class="keyword">const</span> size_t token, <span class="keyword">const</span> <a class="code" href="classOgre_1_1MaterialScriptCompiler.html#Ogre_1_1MaterialScriptCompilerx0">MSC_Action</a> action = 0); |
---|
| 154 | 00161 |
---|
| 155 | 00162 <span class="keywordtype">void</span> logParseError(<span class="keyword">const</span> <a class="code" href="namespaceOgre.html#a471">String</a>& error); |
---|
| 156 | 00163 |
---|
| 157 | 00164 <span class="comment">// support methods that convert tokens</span> |
---|
| 158 | 00165 <a class="code" href="classOgre_1_1ColourValue.html">ColourValue</a> _parseColourValue(<span class="keywordtype">void</span>); |
---|
| 159 | 00166 <a class="code" href="namespaceOgre.html#a640">CompareFunction</a> convertCompareFunction(<span class="keywordtype">void</span>); |
---|
| 160 | 00167 |
---|
| 161 | 00168 <span class="comment">// Token Actions which get called when tokens are created during parsing.</span> |
---|
| 162 | 00169 <span class="keywordtype">void</span> parseOpenBrace(<span class="keywordtype">void</span>); |
---|
| 163 | 00170 <span class="keywordtype">void</span> parseCloseBrace(<span class="keywordtype">void</span>); |
---|
| 164 | 00171 <span class="keywordtype">void</span> parseVertexProgram(<span class="keywordtype">void</span>); |
---|
| 165 | 00172 <span class="keywordtype">void</span> parseFragmentProgram(<span class="keywordtype">void</span>); |
---|
| 166 | 00173 <span class="keywordtype">void</span> parseMaterial(<span class="keywordtype">void</span>); |
---|
| 167 | 00174 <span class="comment">// Technique related actions</span> |
---|
| 168 | 00175 <span class="keywordtype">void</span> parseTechnique(<span class="keywordtype">void</span>); |
---|
| 169 | 00176 <span class="keywordtype">void</span> parseTransparencyCastsShadows(<span class="keywordtype">void</span>); |
---|
| 170 | 00177 <span class="keywordtype">void</span> parseReceiveShadows(<span class="keywordtype">void</span>); |
---|
| 171 | 00178 <span class="comment">// Pass related Actions</span> |
---|
| 172 | 00179 <span class="keywordtype">void</span> parsePass(<span class="keywordtype">void</span>); |
---|
| 173 | 00180 <span class="keywordtype">void</span> parseAmbient(<span class="keywordtype">void</span>); |
---|
| 174 | 00181 <span class="keywordtype">void</span> parseDiffuse(<span class="keywordtype">void</span>); |
---|
| 175 | 00182 <span class="keywordtype">void</span> parseSpecular(<span class="keywordtype">void</span>); |
---|
| 176 | 00183 <span class="keywordtype">void</span> parseEmissive(<span class="keywordtype">void</span>); |
---|
| 177 | 00184 <span class="keywordtype">void</span> parseDepthCheck(<span class="keywordtype">void</span>); |
---|
| 178 | 00185 <span class="keywordtype">void</span> parseDepthWrite(<span class="keywordtype">void</span>); |
---|
| 179 | 00186 <span class="keywordtype">void</span> parseDepthFunc(<span class="keywordtype">void</span>); |
---|
| 180 | 00187 <span class="keywordtype">void</span> parseAlphaRejection(<span class="keywordtype">void</span>); |
---|
| 181 | 00188 <span class="keywordtype">void</span> parseColourWrite(<span class="keywordtype">void</span>); |
---|
| 182 | 00189 <span class="keywordtype">void</span> parseCullHardware(<span class="keywordtype">void</span>); |
---|
| 183 | 00190 <span class="keywordtype">void</span> parseCullSoftware(<span class="keywordtype">void</span>); |
---|
| 184 | 00191 <span class="keywordtype">void</span> parseLighting(<span class="keywordtype">void</span>); |
---|
| 185 | 00192 <span class="keywordtype">void</span> parseMaxLights(<span class="keywordtype">void</span>); |
---|
| 186 | 00193 <span class="keywordtype">void</span> parseShading(<span class="keywordtype">void</span>); |
---|
| 187 | 00194 <span class="keywordtype">void</span> parsePointSize(<span class="keywordtype">void</span>); |
---|
| 188 | 00195 <span class="keywordtype">void</span> parsePointSprites(<span class="keywordtype">void</span>); |
---|
| 189 | 00196 <span class="keywordtype">void</span> parsePointSizeMin(<span class="keywordtype">void</span>); |
---|
| 190 | 00197 <span class="keywordtype">void</span> parsePointSizeMax(<span class="keywordtype">void</span>); |
---|
| 191 | 00198 <span class="keywordtype">void</span> parsePointSizeAttenuation(<span class="keywordtype">void</span>); |
---|
| 192 | 00199 |
---|
| 193 | 00200 <span class="keywordtype">void</span> parseTextureUnit(<span class="keywordtype">void</span>); |
---|
| 194 | 00201 <span class="keywordtype">void</span> parseTextureCustomParameter(<span class="keywordtype">void</span>); |
---|
| 195 | 00202 <span class="keywordtype">void</span> finishProgramDefinition(<span class="keywordtype">void</span>); |
---|
| 196 | 00203 |
---|
| 197 | 00204 }; |
---|
| 198 | 00205 } |
---|
| 199 | 00206 |
---|
| 200 | 00207 <span class="preprocessor">#endif</span> |
---|
| 201 | </pre></div><hr> |
---|
| 202 | <p> |
---|
| 203 | Copyright © 2000-2005 by The OGRE Team<br /> |
---|
| 204 | <!--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/> |
---|
| 205 | This 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/> |
---|
| 206 | <!--/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#"> |
---|
| 207 | <Work rdf:about=""> |
---|
| 208 | <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" /> |
---|
| 209 | <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" /> |
---|
| 210 | </Work> |
---|
| 211 | <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> --> |
---|
| 212 | |
---|
| 213 | Last modified Sun Mar 12 14:37:43 2006 |
---|
| 214 | </p> |
---|
| 215 | </body> |
---|
| 216 | </html> |
---|