OgreMaterialSerializer.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of OGRE
4  (Object-oriented Graphics Rendering Engine)
5 For the latest info, see http://www.ogre3d.org/
6 
7 Copyright (c) 2000-2013 Torus Knot Software Ltd
8 
9 Permission is hereby granted, free of charge, to any person obtaining a copy
10 of this software and associated documentation files (the "Software"), to deal
11 in the Software without restriction, including without limitation the rights
12 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 copies of the Software, and to permit persons to whom the Software is
14 furnished to do so, subject to the following conditions:
15 
16 The above copyright notice and this permission notice shall be included in
17 all copies or substantial portions of the Software.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 THE SOFTWARE.
26 -----------------------------------------------------------------------------
27 */
28 #ifndef __MaterialSerializer_H__
29 #define __MaterialSerializer_H__
30 
31 #include "OgrePrerequisites.h"
32 #include "OgreMaterial.h"
33 #include "OgreBlendMode.h"
34 #include "OgreTextureUnitState.h"
35 #include "OgreGpuProgram.h"
36 #include "OgreStringVector.h"
37 #include "OgreHeaderPrefix.h"
38 
39 namespace Ogre {
40 
49  {
59  };
62  {
70  ushort supportsPoseAnimation; // number of simultaneous poses supported
73  };
76  {
91 
92  int techLev, //Keep track of what tech, pass, and state level we are in
96 
98  size_t lineNo;
101  };
103  typedef bool (*ATTRIBUTE_PARSER)(String& params, MaterialScriptContext& context);
104 
107  {
108  public:
109 
110  // Material serialize event.
112  {
116  MSE_POST_WRITE
117  };
118 
122  class Listener
123  {
124  public:
125  virtual ~Listener() {}
126 
135  SerializeEvent event, bool& skip, const Material* mat)
136  { (void)ser; (void)event; (void)skip; (void)mat; }
137 
146  SerializeEvent event, bool& skip, const Technique* tech)
147  { (void)ser; (void)event; (void)skip; (void)tech; }
148 
157  SerializeEvent event, bool& skip, const Pass* pass)
158  { (void)ser; (void)event; (void)skip; (void)pass; }
159 
171  SerializeEvent event, bool& skip,
172  const String& attrib,
173  const GpuProgramPtr& program,
174  const GpuProgramParametersSharedPtr& params,
175  GpuProgramParameters* defaultParams)
176  {
177  (void)ser;
178  (void)event;
179  (void)skip;
180  (void)attrib;
181  (void)program;
182  (void)params;
183  (void)defaultParams;
184  }
185 
194  SerializeEvent event, bool& skip, const TextureUnitState* textureUnit)
195  {
196  (void)ser;
197  (void)event;
198  (void)skip;
199  (void)textureUnit;
200  }
201  };
202 
203  protected:
206 
208 
212  bool parseScriptLine(String& line);
214  bool invokeParser(String& line, AttribParserList& parsers);
235 
238  typedef ListenerList::iterator ListenerListIterator;
239  typedef ListenerList::const_iterator ListenerListConstIterator;
241 
242 
243  void writeMaterial(const MaterialPtr& pMat, const String& materialName = "");
244  void writeTechnique(const Technique* pTech);
245  void writePass(const Pass* pPass);
246  void writeVertexProgramRef(const Pass* pPass);
251  void writeFragmentProgramRef(const Pass* pPass);
252  void writeGpuProgramRef(const String& attrib, const GpuProgramPtr& program, const GpuProgramParametersSharedPtr& params);
253  void writeGpuPrograms(void);
255  const unsigned short level = 4, const bool useMainBuffer = true);
257  const unsigned short level = 4, const bool useMainBuffer = true);
259  const unsigned short level = 4, const bool useMainBuffer = true);
261  const String& commandName, const String& identifier,
262  const GpuProgramParameters::AutoConstantEntry* autoEntry,
263  const GpuProgramParameters::AutoConstantEntry* defaultAutoEntry,
264  bool isFloat, bool isDouble, size_t physicalIndex, size_t physicalSize,
265  const GpuProgramParametersSharedPtr& params, GpuProgramParameters* defaultParams,
266  const unsigned short level, const bool useMainBuffer);
268  void writeSceneBlendFactor(const SceneBlendFactor c_src, const SceneBlendFactor c_dest,
269  const SceneBlendFactor a_src, const SceneBlendFactor a_dest);
270  void writeSceneBlendFactor(const SceneBlendFactor sbf_src, const SceneBlendFactor sbf_dest);
273  void writeColourValue(const ColourValue &colour, bool writeAlpha = false);
276 
278 
283 
285 
286 
290  void fireMaterialEvent(SerializeEvent event, bool& skip, const Material* mat);
291 
295  void fireTechniqueEvent(SerializeEvent event, bool& skip, const Technique* tech);
296 
300  void firePassEvent(SerializeEvent event, bool& skip, const Pass* pass);
301 
305  void fireGpuProgramRefEvent(SerializeEvent event, bool& skip,
306  const String& attrib,
307  const GpuProgramPtr& program,
308  const GpuProgramParametersSharedPtr& params,
309  GpuProgramParameters* defaultParams);
310 
311 
315  void fireTextureUnitStateEvent(SerializeEvent event, bool& skip, const TextureUnitState* textureUnit);
316 
317  public:
321  virtual ~MaterialSerializer() {}
322 
331  void queueForExport(const MaterialPtr& pMat, bool clearQueued = false,
332  bool exportDefaults = false, const String& materialName = "");
342  void exportQueued(const String& filename, const bool includeProgDef = false, const String& programFilename = "");
354  void exportMaterial(const MaterialPtr& pMat, const String& filename, bool exportDefaults = false,
355  const bool includeProgDef = false, const String& programFilename = "",
356  const String& materialName = "");
358  const String &getQueuedAsString() const;
360  void clearQueue();
361 
364  void parseScript(DataStreamPtr& stream, const String& groupName);
365 
369  void addListener(Listener* listener);
370 
374  void removeListener(Listener* listener);
375 
376  private:
380  typedef GpuProgramDefinitionContainer::iterator GpuProgramDefIterator;
382  bool mDefaults;
383 
384  public:
385  void beginSection(unsigned short level, const bool useMainBuffer = true)
386  {
387  String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
388  buffer += "\n";
389  for (unsigned short i = 0; i < level; ++i)
390  {
391  buffer += "\t";
392  }
393  buffer += "{";
394  }
395  void endSection(unsigned short level, const bool useMainBuffer = true)
396  {
397  String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
398  buffer += "\n";
399  for (unsigned short i = 0; i < level; ++i)
400  {
401  buffer += "\t";
402  }
403  buffer += "}";
404  }
405 
406  void writeAttribute(unsigned short level, const String& att, const bool useMainBuffer = true)
407  {
408  String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
409  buffer += "\n";
410  for (unsigned short i = 0; i < level; ++i)
411  {
412  buffer += "\t";
413  }
414  buffer += att;
415  }
416 
417  void writeValue(const String& val, const bool useMainBuffer = true)
418  {
419  String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
420  buffer += (" " + val);
421  }
422 
423  String quoteWord(const String& val)
424  {
425  if (val.find_first_of(" \t") != String::npos)
426  return ("\"" + val + "\"");
427  else return val;
428  }
429 
430 
431  void writeComment(unsigned short level, const String& comment, const bool useMainBuffer = true)
432  {
433  String& buffer = (useMainBuffer ? mBuffer : mGpuProgramBuffer);
434  buffer += "\n";
435  for (unsigned short i = 0; i < level; ++i)
436  {
437  buffer += "\t";
438  }
439  buffer += "// " + comment;
440  }
441 
442 
443 
444  };
447 }
448 
449 #include "OgreHeaderSuffix.h"
450 
451 #endif
Ogre::MaterialScriptProgramDefinition::customParameters
vector< std::pair< String, String > >::type customParameters
Definition: OgreMaterialSerializer.h:72
OgreHeaderSuffix.h
Ogre::MaterialScriptContext::groupName
String groupName
Definition: OgreMaterialSerializer.h:78
Ogre::MaterialSerializer::writeSceneBlendFactor
void writeSceneBlendFactor(const SceneBlendFactor c_src, const SceneBlendFactor c_dest, const SceneBlendFactor a_src, const SceneBlendFactor a_dest)
Ogre::TextureUnitState
Class representing the state of a single texture unit during a Pass of a Technique,...
Definition: OgreTextureUnitState.h:63
Ogre::MaterialSerializer::writeScrollEffect
void writeScrollEffect(const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
Ogre::MaterialSerializer::mTechniqueAttribParsers
AttribParserList mTechniqueAttribParsers
Parsers for the technique section of a script.
Definition: OgreMaterialSerializer.h:224
Ogre::MaterialSerializer::MSE_PRE_WRITE
@ MSE_PRE_WRITE
Definition: OgreMaterialSerializer.h:113
Ogre::AllocatedObject
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Definition: OgreMemoryAllocatedObject.h:59
Ogre
Definition: OgreAndroidLogListener.h:35
Ogre::MaterialScriptProgramDefinition::source
String source
Definition: OgreMaterialSerializer.h:66
Ogre::MaterialSerializer::writeRotationEffect
void writeRotationEffect(const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
Ogre::MaterialScriptContext::material
MaterialPtr material
Definition: OgreMaterialSerializer.h:79
Ogre::MaterialSerializer::queueForExport
void queueForExport(const MaterialPtr &pMat, bool clearQueued=false, bool exportDefaults=false, const String &materialName="")
Queue an in-memory Material to the internal buffer for export.
OgreTextureUnitState.h
Ogre::MaterialSerializer::writeGpuPrograms
void writeGpuPrograms(void)
Ogre::MaterialSerializer::writeLayerBlendOperationEx
void writeLayerBlendOperationEx(const LayerBlendOperationEx op)
Ogre::map
Definition: OgrePrerequisites.h:534
Ogre::MaterialSerializer::finishProgramDefinition
void finishProgramDefinition(void)
Internal method for saving a program definition which has been built up.
Ogre::ushort
unsigned short ushort
Definition: OgrePrerequisites.h:113
Ogre::MaterialSerializer::writeMaterial
void writeMaterial(const MaterialPtr &pMat, const String &materialName="")
Ogre::set
Definition: OgrePrerequisites.h:520
Ogre::MSS_DEFAULT_PARAMETERS
@ MSS_DEFAULT_PARAMETERS
Definition: OgreMaterialSerializer.h:57
Ogre::MaterialSerializer::parseScriptLine
bool parseScriptLine(String &line)
internal method for parsing a material
Ogre::MaterialSerializer::Listener::passEventRaised
virtual void passEventRaised(MaterialSerializer *ser, SerializeEvent event, bool &skip, const Pass *pass)
Called when pass section event raised.
Definition: OgreMaterialSerializer.h:156
Ogre::MaterialScriptProgramDefinition::name
String name
Definition: OgreMaterialSerializer.h:63
Ogre::MaterialScriptContext::isFragmentProgramShadowCaster
bool isFragmentProgramShadowCaster
When referencing, are we in context of shadow caster.
Definition: OgreMaterialSerializer.h:85
Ogre::StringVector
vector< String >::type StringVector
Definition: OgreStringVector.h:45
Ogre::MaterialSerializer::Listener::techniqueEventRaised
virtual void techniqueEventRaised(MaterialSerializer *ser, SerializeEvent event, bool &skip, const Technique *tech)
Called when technique section event raised.
Definition: OgreMaterialSerializer.h:145
Ogre::MaterialSerializer::convertFiltering
String convertFiltering(FilterOptions fo)
Ogre::MaterialSerializer::GpuProgramDefinitionContainer
set< String >::type GpuProgramDefinitionContainer
Definition: OgreMaterialSerializer.h:379
Ogre::MaterialScriptContext::technique
Technique * technique
Definition: OgreMaterialSerializer.h:80
Ogre::MaterialSerializer::writeLowLevelGpuProgramParameters
void writeLowLevelGpuProgramParameters(const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level=4, const bool useMainBuffer=true)
Ogre::MaterialSerializer::writeLayerBlendSource
void writeLayerBlendSource(const LayerBlendSource lbs)
Ogre::MaterialSerializer::mMaterialAttribParsers
AttribParserList mMaterialAttribParsers
Parsers for the material section of a script.
Definition: OgreMaterialSerializer.h:222
Ogre::LayerBlendSource
LayerBlendSource
List of valid sources of values for blending operations used in TextureUnitState::setColourOperation ...
Definition: OgreBlendMode.h:113
Ogre::GpuProgramParameters::AutoConstantEntry
Structure recording the use of an automatic parameter.
Definition: OgreGpuProgramParams.h:1216
Ogre::MaterialSerializer::mTextureUnitAttribParsers
AttribParserList mTextureUnitAttribParsers
Parsers for the texture unit section of a script.
Definition: OgreMaterialSerializer.h:228
Ogre::MaterialSerializer::writeCompareFunction
void writeCompareFunction(const CompareFunction cf)
Ogre::MaterialSerializer::writeComment
void writeComment(unsigned short level, const String &comment, const bool useMainBuffer=true)
Definition: OgreMaterialSerializer.h:431
Ogre::MaterialSerializer::writeVertexProgramRef
void writeVertexProgramRef(const Pass *pPass)
Ogre::MSS_PASS
@ MSS_PASS
Definition: OgreMaterialSerializer.h:53
Ogre::MaterialScriptContext::passLev
int passLev
Definition: OgreMaterialSerializer.h:93
Ogre::Material
Class encapsulates rendering properties of an object.
Definition: OgreMaterial.h:89
Ogre::MaterialScriptProgramDefinition::usesVertexTextureFetch
bool usesVertexTextureFetch
Definition: OgreMaterialSerializer.h:71
Ogre::MaterialSerializer::Listener
Class that allows listening in on the various stages of material serialization process.
Definition: OgreMaterialSerializer.h:123
Ogre::MaterialScriptProgramDefinition::progType
GpuProgramType progType
Definition: OgreMaterialSerializer.h:64
Ogre::MaterialSerializer::mProgramAttribParsers
AttribParserList mProgramAttribParsers
Parsers for the program definition section of a script.
Definition: OgreMaterialSerializer.h:232
Ogre::MaterialSerializer::writeValue
void writeValue(const String &val, const bool useMainBuffer=true)
Definition: OgreMaterialSerializer.h:417
Ogre::MSS_PROGRAM
@ MSS_PROGRAM
Definition: OgreMaterialSerializer.h:56
Ogre::MaterialSerializer::writeSceneBlendFactor
void writeSceneBlendFactor(const SceneBlendFactor sbf)
Ogre::MaterialScriptContext::section
MaterialScriptSection section
Definition: OgreMaterialSerializer.h:77
Ogre::MaterialSerializer::~MaterialSerializer
virtual ~MaterialSerializer()
default destructor
Definition: OgreMaterialSerializer.h:321
Ogre::MaterialSerializer::writeShadowCasterFragmentProgramRef
void writeShadowCasterFragmentProgramRef(const Pass *pPass)
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::MaterialSerializer::fireTextureUnitStateEvent
void fireTextureUnitStateEvent(SerializeEvent event, bool &skip, const TextureUnitState *textureUnit)
Internal methods that invokes registered listeners callback.
Ogre::MaterialScriptContext::isVertexProgramShadowReceiver
bool isVertexProgramShadowReceiver
When referencing, are we in context of shadow caster.
Definition: OgreMaterialSerializer.h:86
Ogre::MaterialSerializer::writeNamedGpuProgramParameters
void writeNamedGpuProgramParameters(const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level=4, const bool useMainBuffer=true)
Ogre::ATTRIBUTE_PARSER
bool(* ATTRIBUTE_PARSER)(String &params, MaterialScriptContext &context)
Function def for material attribute parser; return value determines if the next line should be {.
Definition: OgreMaterialSerializer.h:103
Ogre::Pass
Class defining a single pass of a Technique (of a Material), i.e.
Definition: OgrePass.h:81
Ogre::Technique
Class representing an approach to rendering this particular Material.
Definition: OgreTechnique.h:54
Ogre::MaterialSerializer::exportQueued
void exportQueued(const String &filename, const bool includeProgDef=false, const String &programFilename="")
Exports queued material(s) to a named material script file.
Ogre::MSS_TEXTURESOURCE
@ MSS_TEXTURESOURCE
Definition: OgreMaterialSerializer.h:58
Ogre::MaterialScriptContext::isVertexProgramShadowCaster
bool isVertexProgramShadowCaster
Used when referencing a program, not when defining it.
Definition: OgreMaterialSerializer.h:84
Ogre::MaterialSerializer::mScriptContext
MaterialScriptContext mScriptContext
Definition: OgreMaterialSerializer.h:207
Ogre::MaterialSerializer::Listener::~Listener
virtual ~Listener()
Definition: OgreMaterialSerializer.h:125
OgreMaterial.h
Ogre::MaterialSerializer::mGpuProgramDefinitionContainer
GpuProgramDefinitionContainer mGpuProgramDefinitionContainer
Definition: OgreMaterialSerializer.h:381
Ogre::MaterialSerializer::writeShadowReceiverFragmentProgramRef
void writeShadowReceiverFragmentProgramRef(const Pass *pPass)
Ogre::CompareFunction
CompareFunction
Comparison functions used for the depth/stencil buffer operations and others.
Definition: OgreCommon.h:65
Ogre::MaterialSerializer::mProgramDefaultParamAttribParsers
AttribParserList mProgramDefaultParamAttribParsers
Parsers for the program definition section of a script.
Definition: OgreMaterialSerializer.h:234
Ogre::GpuProgramType
GpuProgramType
Enumerates the types of programs which can run on the GPU.
Definition: OgreGpuProgram.h:51
Ogre::MaterialSerializer::GpuProgramDefIterator
GpuProgramDefinitionContainer::iterator GpuProgramDefIterator
Definition: OgreMaterialSerializer.h:380
Ogre::MaterialScriptProgramDefinition
Struct for holding a program definition which is in progress.
Definition: OgreMaterialSerializer.h:62
Ogre::MaterialSerializer::mRootAttribParsers
AttribParserList mRootAttribParsers
Parsers for the root of the material script.
Definition: OgreMaterialSerializer.h:220
Ogre::MSS_TEXTUREUNIT
@ MSS_TEXTUREUNIT
Definition: OgreMaterialSerializer.h:54
Ogre::MaterialSerializer::beginSection
void beginSection(unsigned short level, const bool useMainBuffer=true)
Definition: OgreMaterialSerializer.h:385
Ogre::MSS_TECHNIQUE
@ MSS_TECHNIQUE
Definition: OgreMaterialSerializer.h:52
Ogre::MaterialSerializer::removeListener
void removeListener(Listener *listener)
Remove a listener from this Serializer.
OgreHeaderPrefix.h
Ogre::MaterialScriptProgramDefinition::language
String language
Definition: OgreMaterialSerializer.h:65
Ogre::MaterialSerializer::EffectMap
multimap< TextureUnitState::TextureEffectType, TextureUnitState::TextureEffect >::type EffectMap
Definition: OgreMaterialSerializer.h:277
Ogre::SceneBlendFactor
SceneBlendFactor
Blending factors for manually blending objects with the scene.
Definition: OgreBlendMode.h:235
Ogre::MaterialSerializer::Listener::materialEventRaised
virtual void materialEventRaised(MaterialSerializer *ser, SerializeEvent event, bool &skip, const Material *mat)
Called when material section event raised.
Definition: OgreMaterialSerializer.h:134
Ogre::MaterialSerializer::mProgramRefAttribParsers
AttribParserList mProgramRefAttribParsers
Parsers for the program reference section of a script.
Definition: OgreMaterialSerializer.h:230
Ogre::MaterialSerializer::AttribParserList
map< String, ATTRIBUTE_PARSER >::type AttribParserList
Keyword-mapped attribute parsers.
Definition: OgreMaterialSerializer.h:205
OgrePrerequisites.h
Ogre::MaterialSerializer::quoteWord
String quoteWord(const String &val)
Definition: OgreMaterialSerializer.h:423
Ogre::MaterialSerializer::writeGpuProgramParameter
void writeGpuProgramParameter(const String &commandName, const String &identifier, const GpuProgramParameters::AutoConstantEntry *autoEntry, const GpuProgramParameters::AutoConstantEntry *defaultAutoEntry, bool isFloat, bool isDouble, size_t physicalIndex, size_t physicalSize, const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level, const bool useMainBuffer)
Ogre::MaterialSerializer::addListener
void addListener(Listener *listener)
Register a listener to this Serializer.
Ogre::MaterialScriptContext::pass
Pass * pass
Definition: OgreMaterialSerializer.h:81
Ogre::MaterialSerializer
Class for serializing Materials to / from a .material script.
Definition: OgreMaterialSerializer.h:107
Ogre::MaterialScriptProgramDefinition::syntax
String syntax
Definition: OgreMaterialSerializer.h:67
Ogre::AliasTextureNamePairList
map< String, String >::type AliasTextureNamePairList
Alias / Texture name pair (first = alias, second = texture name)
Definition: OgreCommon.h:553
Ogre::MaterialSerializer::SerializeEvent
SerializeEvent
Definition: OgreMaterialSerializer.h:112
Ogre::MaterialSerializer::ListenerListIterator
ListenerList::iterator ListenerListIterator
Definition: OgreMaterialSerializer.h:238
Ogre::FilterOptions
FilterOptions
Filtering options for textures / mipmaps.
Definition: OgreCommon.h:101
Ogre::MaterialScriptContext::numAnimationParametrics
ushort numAnimationParametrics
Definition: OgreMaterialSerializer.h:89
Ogre::MaterialSerializer::writeTextureUnit
void writeTextureUnit(const TextureUnitState *pTex)
Ogre::MaterialSerializer::mBuffer
String mBuffer
Definition: OgreMaterialSerializer.h:377
Ogre::MSS_MATERIAL
@ MSS_MATERIAL
Definition: OgreMaterialSerializer.h:51
_OgreExport
#define _OgreExport
Definition: OgrePlatform.h:257
Ogre::MaterialSerializer::parseScript
void parseScript(DataStreamPtr &stream, const String &groupName)
Parses a Material script file passed as a stream.
Ogre::MaterialSerializer::writeColourValue
void writeColourValue(const ColourValue &colour, bool writeAlpha=false)
Ogre::GpuProgramParameters
Collects together the program parameters used for a GpuProgram.
Definition: OgreGpuProgramParams.h:703
Ogre::MaterialScriptContext::lineNo
size_t lineNo
Error reporting state.
Definition: OgreMaterialSerializer.h:98
Ogre::MaterialSerializer::MaterialSerializer
MaterialSerializer()
default constructor
Ogre::MaterialScriptContext::techLev
int techLev
This is used while defining a program.
Definition: OgreMaterialSerializer.h:92
Ogre::MaterialSerializer::writeEnvironmentMapEffect
void writeEnvironmentMapEffect(const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
Ogre::MaterialSerializer::MSE_WRITE_END
@ MSE_WRITE_END
Definition: OgreMaterialSerializer.h:115
Ogre::MaterialScriptContext::program
GpuProgramPtr program
Definition: OgreMaterialSerializer.h:83
Ogre::MaterialSerializer::writeGpuProgramRef
void writeGpuProgramRef(const String &attrib, const GpuProgramPtr &program, const GpuProgramParametersSharedPtr &params)
Ogre::MaterialScriptSection
MaterialScriptSection
Enum to identify material sections.
Definition: OgreMaterialSerializer.h:49
Ogre::MaterialSerializer::MSE_WRITE_BEGIN
@ MSE_WRITE_BEGIN
Definition: OgreMaterialSerializer.h:114
Ogre::MaterialScriptProgramDefinition::supportsSkeletalAnimation
bool supportsSkeletalAnimation
Definition: OgreMaterialSerializer.h:68
Ogre::MaterialSerializer::clearQueue
void clearQueue()
Clears the internal buffer.
Ogre::MaterialSerializer::writeSceneBlendFactor
void writeSceneBlendFactor(const SceneBlendFactor sbf_src, const SceneBlendFactor sbf_dest)
Ogre::MaterialSerializer::ListenerList
vector< Listener * >::type ListenerList
Listeners list of this Serializer.
Definition: OgreMaterialSerializer.h:237
Ogre::MaterialSerializer::endSection
void endSection(unsigned short level, const bool useMainBuffer=true)
Definition: OgreMaterialSerializer.h:395
Ogre::SharedPtr< Material >
Ogre::MaterialScriptContext::filename
String filename
Definition: OgreMaterialSerializer.h:99
Ogre::MaterialScriptContext::programParams
GpuProgramParametersSharedPtr programParams
When referencing, are we in context of shadow caster.
Definition: OgreMaterialSerializer.h:88
Ogre::MaterialSerializer::writeGPUProgramParameters
void writeGPUProgramParameters(const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level=4, const bool useMainBuffer=true)
Ogre::MaterialSerializer::mPassAttribParsers
AttribParserList mPassAttribParsers
Parsers for the pass section of a script.
Definition: OgreMaterialSerializer.h:226
Ogre::MaterialScriptProgramDefinition::supportsPoseAnimation
ushort supportsPoseAnimation
Definition: OgreMaterialSerializer.h:70
Ogre::MaterialSerializer::writeTechnique
void writeTechnique(const Technique *pTech)
Ogre::MaterialSerializer::mDefaults
bool mDefaults
Definition: OgreMaterialSerializer.h:382
Ogre::multimap::type
std::multimap< K, V, P, A > type
Definition: OgrePrerequisites.h:550
Ogre::MaterialSerializer::Listener::textureUnitStateEventRaised
virtual void textureUnitStateEventRaised(MaterialSerializer *ser, SerializeEvent event, bool &skip, const TextureUnitState *textureUnit)
Called when texture unit state section event raised.
Definition: OgreMaterialSerializer.h:193
OgreBlendMode.h
Ogre::ColourValue
Class representing colour.
Definition: OgreColourValue.h:58
Ogre::MaterialSerializer::writeShadowCasterVertexProgramRef
void writeShadowCasterVertexProgramRef(const Pass *pPass)
Ogre::MaterialSerializer::exportMaterial
void exportMaterial(const MaterialPtr &pMat, const String &filename, bool exportDefaults=false, const bool includeProgDef=false, const String &programFilename="", const String &materialName="")
Exports a single in-memory Material to the named material script file.
Ogre::MaterialSerializer::firePassEvent
void firePassEvent(SerializeEvent event, bool &skip, const Pass *pass)
Internal methods that invokes registered listeners callback.
Ogre::MaterialScriptContext::defaultParamLines
StringVector defaultParamLines
Definition: OgreMaterialSerializer.h:95
Ogre::MaterialSerializer::getQueuedAsString
const String & getQueuedAsString() const
Returns a string representing the parsed material(s)
OgreGpuProgram.h
Ogre::MaterialSerializer::writeAttribute
void writeAttribute(unsigned short level, const String &att, const bool useMainBuffer=true)
Definition: OgreMaterialSerializer.h:406
Ogre::MaterialSerializer::writeShadowReceiverVertexProgramRef
void writeShadowReceiverVertexProgramRef(const Pass *pPass)
Ogre::MaterialSerializer::Listener::gpuProgramRefEventRaised
void gpuProgramRefEventRaised(MaterialSerializer *ser, SerializeEvent event, bool &skip, const String &attrib, const GpuProgramPtr &program, const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams)
Called when GPU program reference section event raised.
Definition: OgreMaterialSerializer.h:170
Ogre::MaterialScriptContext
Struct for holding the script context while parsing.
Definition: OgreMaterialSerializer.h:76
Ogre::MSS_PROGRAM_REF
@ MSS_PROGRAM_REF
Definition: OgreMaterialSerializer.h:55
Ogre::MaterialSerializer::fireGpuProgramRefEvent
void fireGpuProgramRefEvent(SerializeEvent event, bool &skip, const String &attrib, const GpuProgramPtr &program, const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams)
Internal methods that invokes registered listeners callback.
Ogre::MaterialScriptContext::programDef
MaterialScriptProgramDefinition * programDef
Definition: OgreMaterialSerializer.h:90
Ogre::MSS_NONE
@ MSS_NONE
Definition: OgreMaterialSerializer.h:50
Ogre::MaterialSerializer::writeTransformEffect
void writeTransformEffect(const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
Ogre::MaterialSerializer::invokeParser
bool invokeParser(String &line, AttribParserList &parsers)
internal method for finding & invoking an attribute parser.
Ogre::LayerBlendOperationEx
LayerBlendOperationEx
Expert list of valid texture blending operations, for use with TextureUnitState::setColourOperationEx...
Definition: OgreBlendMode.h:75
Ogre::MaterialSerializer::mListeners
ListenerList mListeners
Definition: OgreMaterialSerializer.h:240
Ogre::MaterialScriptProgramDefinition::supportsMorphAnimation
bool supportsMorphAnimation
Definition: OgreMaterialSerializer.h:69
Ogre::MaterialSerializer::fireMaterialEvent
void fireMaterialEvent(SerializeEvent event, bool &skip, const Material *mat)
Internal methods that invokes registered listeners callback.
Ogre::MaterialScriptContext::textureUnit
TextureUnitState * textureUnit
Definition: OgreMaterialSerializer.h:82
OgreStringVector.h
Ogre::MaterialSerializer::writeFragmentProgramRef
void writeFragmentProgramRef(const Pass *pPass)
Ogre::MaterialSerializer::writePass
void writePass(const Pass *pPass)
Ogre::vector
Definition: OgrePrerequisites.h:492
Ogre::MaterialSerializer::mGpuProgramBuffer
String mGpuProgramBuffer
Definition: OgreMaterialSerializer.h:378
Ogre::MaterialSerializer::ListenerListConstIterator
ListenerList::const_iterator ListenerListConstIterator
Definition: OgreMaterialSerializer.h:239
Ogre::MaterialScriptContext::isFragmentProgramShadowReceiver
bool isFragmentProgramShadowReceiver
When referencing, are we in context of shadow caster.
Definition: OgreMaterialSerializer.h:87
Ogre::MaterialScriptContext::stateLev
int stateLev
Definition: OgreMaterialSerializer.h:94
Ogre::MaterialScriptContext::textureAliases
AliasTextureNamePairList textureAliases
Definition: OgreMaterialSerializer.h:100
Ogre::TextureUnitState::TextureEffect
Internal structure defining a texture effect.
Definition: OgreTextureUnitState.h:160
Ogre::MaterialSerializer::fireTechniqueEvent
void fireTechniqueEvent(SerializeEvent event, bool &skip, const Technique *tech)
Internal methods that invokes registered listeners callback.

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.