Ogre::MaterialSerializer Class Reference
[Materials]

Class for serializing Materials to / from a .material script. More...

#include <OgreMaterialSerializer.h>

Inheritance diagram for Ogre::MaterialSerializer:
Inheritance graph
[legend]

List of all members.

Classes

class  Listener
 Class that allows listening in on the various stages of material serialization process. More...

Public Types

enum  SerializeEvent { MSE_PRE_WRITE, MSE_WRITE_BEGIN, MSE_WRITE_END, MSE_POST_WRITE }

Public Member Functions

 MaterialSerializer ()
 default constructor
virtual ~MaterialSerializer ()
 default destructor
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.
void exportQueued (const String &filename, const bool includeProgDef=false, const String &programFilename="")
 Exports queued material(s) to a named material script file.
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.
const StringgetQueuedAsString () const
 Returns a string representing the parsed material(s).
void clearQueue ()
 Clears the internal buffer.
void parseScript (DataStreamPtr &stream, const String &groupName)
 Parses a Material script file passed as a stream.
void addListener (Listener *listener)
 Register a listener to this Serializer.
void removeListener (Listener *listener)
 Remove a listener from this Serializer.
void beginSection (unsigned short level, const bool useMainBuffer=true)
void endSection (unsigned short level, const bool useMainBuffer=true)
void writeAttribute (unsigned short level, const String &att, const bool useMainBuffer=true)
void writeValue (const String &val, const bool useMainBuffer=true)
String quoteWord (const String &val)
void writeComment (unsigned short level, const String &comment, const bool useMainBuffer=true)
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
void * operator new (size_t sz)
void * operator new (size_t sz, void *ptr)
 placement operator new
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
void * operator new[] (size_t sz)
void operator delete (void *ptr)
void operator delete (void *ptr, void *)
void operator delete (void *ptr, const char *, int, const char *)
void operator delete[] (void *ptr)
void operator delete[] (void *ptr, const char *, int, const char *)

Protected Types

typedef map< String,
ATTRIBUTE_PARSER >::type 
AttribParserList
 Keyword-mapped attribute parsers.
typedef vector< Listener * >::type ListenerList
 Listeners list of this Serializer.
typedef ListenerList::iterator ListenerListIterator
typedef
ListenerList::const_iterator 
ListenerListConstIterator
typedef multimap
< TextureUnitState::TextureEffectType,
TextureUnitState::TextureEffect >
::type 
EffectMap

Protected Member Functions

bool parseScriptLine (String &line)
 internal method for parsing a material
bool invokeParser (String &line, AttribParserList &parsers)
 internal method for finding & invoking an attribute parser.
void finishProgramDefinition (void)
 Internal method for saving a program definition which has been built up.
void writeMaterial (const MaterialPtr &pMat, const String &materialName="")
void writeTechnique (const Technique *pTech)
void writePass (const Pass *pPass)
void writeVertexProgramRef (const Pass *pPass)
void writeShadowCasterVertexProgramRef (const Pass *pPass)
void writeShadowCasterFragmentProgramRef (const Pass *pPass)
void writeShadowReceiverVertexProgramRef (const Pass *pPass)
void writeShadowReceiverFragmentProgramRef (const Pass *pPass)
void writeFragmentProgramRef (const Pass *pPass)
void writeGpuProgramRef (const String &attrib, const GpuProgramPtr &program, const GpuProgramParametersSharedPtr &params)
void writeGpuPrograms (void)
void writeGPUProgramParameters (const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level=4, const bool useMainBuffer=true)
void writeNamedGpuProgramParameters (const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level=4, const bool useMainBuffer=true)
void writeLowLevelGpuProgramParameters (const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level=4, const bool useMainBuffer=true)
void writeGpuProgramParameter (const String &commandName, const String &identifier, const GpuProgramParameters::AutoConstantEntry *autoEntry, const GpuProgramParameters::AutoConstantEntry *defaultAutoEntry, bool isFloat, size_t physicalIndex, size_t physicalSize, const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams, const unsigned short level, const bool useMainBuffer)
void writeTextureUnit (const TextureUnitState *pTex)
void writeSceneBlendFactor (const SceneBlendFactor c_src, const SceneBlendFactor c_dest, const SceneBlendFactor a_src, const SceneBlendFactor a_dest)
void writeSceneBlendFactor (const SceneBlendFactor sbf_src, const SceneBlendFactor sbf_dest)
void writeSceneBlendFactor (const SceneBlendFactor sbf)
void writeCompareFunction (const CompareFunction cf)
void writeColourValue (const ColourValue &colour, bool writeAlpha=false)
void writeLayerBlendOperationEx (const LayerBlendOperationEx op)
void writeLayerBlendSource (const LayerBlendSource lbs)
void writeRotationEffect (const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
void writeTransformEffect (const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
void writeScrollEffect (const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
void writeEnvironmentMapEffect (const TextureUnitState::TextureEffect &effect, const TextureUnitState *pTex)
String convertFiltering (FilterOptions fo)
void fireMaterialEvent (SerializeEvent event, bool &skip, const Material *mat)
 Internal methods that invokes registered listeners callback.
void fireTechniqueEvent (SerializeEvent event, bool &skip, const Technique *tech)
 Internal methods that invokes registered listeners callback.
void firePassEvent (SerializeEvent event, bool &skip, const Pass *pass)
 Internal methods that invokes registered listeners callback.
void fireGpuProgramRefEvent (SerializeEvent event, bool &skip, const String &attrib, const GpuProgramPtr &program, const GpuProgramParametersSharedPtr &params, GpuProgramParameters *defaultParams)
 Internal methods that invokes registered listeners callback.
void fireTextureUnitStateEvent (SerializeEvent event, bool &skip, const TextureUnitState *textureUnit)
 Internal methods that invokes registered listeners callback.

Protected Attributes

MaterialScriptContext mScriptContext
AttribParserList mRootAttribParsers
 Parsers for the root of the material script.
AttribParserList mMaterialAttribParsers
 Parsers for the material section of a script.
AttribParserList mTechniqueAttribParsers
 Parsers for the technique section of a script.
AttribParserList mPassAttribParsers
 Parsers for the pass section of a script.
AttribParserList mTextureUnitAttribParsers
 Parsers for the texture unit section of a script.
AttribParserList mProgramRefAttribParsers
 Parsers for the program reference section of a script.
AttribParserList mProgramAttribParsers
 Parsers for the program definition section of a script.
AttribParserList mProgramDefaultParamAttribParsers
 Parsers for the program definition section of a script.
ListenerList mListeners

Private Types

typedef set< String >::type GpuProgramDefinitionContainer
typedef
GpuProgramDefinitionContainer::iterator 
GpuProgramDefIterator

Private Attributes

String mBuffer
String mGpuProgramBuffer
GpuProgramDefinitionContainer mGpuProgramDefinitionContainer
bool mDefaults

Detailed Description

Class for serializing Materials to / from a .material script.

Definition at line 105 of file OgreMaterialSerializer.h.


Member Typedef Documentation

Keyword-mapped attribute parsers.

Definition at line 204 of file OgreMaterialSerializer.h.

Definition at line 276 of file OgreMaterialSerializer.h.

Definition at line 378 of file OgreMaterialSerializer.h.

typedef GpuProgramDefinitionContainer::iterator Ogre::MaterialSerializer::GpuProgramDefIterator [private]

Definition at line 379 of file OgreMaterialSerializer.h.

Listeners list of this Serializer.

Definition at line 236 of file OgreMaterialSerializer.h.

typedef ListenerList::const_iterator Ogre::MaterialSerializer::ListenerListConstIterator [protected]

Definition at line 238 of file OgreMaterialSerializer.h.

typedef ListenerList::iterator Ogre::MaterialSerializer::ListenerListIterator [protected]

Definition at line 237 of file OgreMaterialSerializer.h.


Member Enumeration Documentation

Enumerator:
MSE_PRE_WRITE 
MSE_WRITE_BEGIN 
MSE_WRITE_END 
MSE_POST_WRITE 

Definition at line 110 of file OgreMaterialSerializer.h.


Constructor & Destructor Documentation

Ogre::MaterialSerializer::MaterialSerializer (  ) 

default constructor

virtual Ogre::MaterialSerializer::~MaterialSerializer (  )  [virtual]

default destructor

Definition at line 320 of file OgreMaterialSerializer.h.


Member Function Documentation

void Ogre::MaterialSerializer::addListener ( Listener listener  ) 

Register a listener to this Serializer.

See also:
MaterialSerializer::Listener
void Ogre::MaterialSerializer::beginSection ( unsigned short  level,
const bool  useMainBuffer = true 
)

Definition at line 384 of file OgreMaterialSerializer.h.

void Ogre::MaterialSerializer::clearQueue (  ) 

Clears the internal buffer.

String Ogre::MaterialSerializer::convertFiltering ( FilterOptions  fo  )  [protected]
void Ogre::MaterialSerializer::endSection ( unsigned short  level,
const bool  useMainBuffer = true 
)

Definition at line 394 of file OgreMaterialSerializer.h.

void Ogre::MaterialSerializer::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.

Parameters:
exportDefaults if true then exports all values including defaults
includeProgDef if true includes Gpu shader program definitions in the export material script otherwise if false then program definitions will be exported to a separate file with name programFilename if programFilename is not empty
programFilename the file name of the vertex / fragment program script to be exported. This is only used if includeProgDef is false.
materialName Allow exporting the given material under a different name. In case of empty string the original material name will be used.
void Ogre::MaterialSerializer::exportQueued ( const String filename,
const bool  includeProgDef = false,
const String programFilename = "" 
)

Exports queued material(s) to a named material script file.

Parameters:
filename the file name of the material script to be exported
includeProgDef If true, vertex program and fragment program definitions will be written at the top of the material script
programFilename the file name of the vertex / fragment program script to be exported. This is only used if there are program definitions to be exported and includeProgDef is false when calling queueForExport.
void Ogre::MaterialSerializer::finishProgramDefinition ( void   )  [protected]

Internal method for saving a program definition which has been built up.

void Ogre::MaterialSerializer::fireGpuProgramRefEvent ( SerializeEvent  event,
bool &  skip,
const String attrib,
const GpuProgramPtr program,
const GpuProgramParametersSharedPtr params,
GpuProgramParameters defaultParams 
) [protected]

Internal methods that invokes registered listeners callback.

See also:
Listener::gpuProgramRefEventRaised.
void Ogre::MaterialSerializer::fireMaterialEvent ( SerializeEvent  event,
bool &  skip,
const Material mat 
) [protected]

Internal methods that invokes registered listeners callback.

See also:
Listener::materialEventRaised.
void Ogre::MaterialSerializer::firePassEvent ( SerializeEvent  event,
bool &  skip,
const Pass pass 
) [protected]

Internal methods that invokes registered listeners callback.

See also:
Listener::passEventRaised.
void Ogre::MaterialSerializer::fireTechniqueEvent ( SerializeEvent  event,
bool &  skip,
const Technique tech 
) [protected]

Internal methods that invokes registered listeners callback.

See also:
Listener::techniqueEventRaised.
void Ogre::MaterialSerializer::fireTextureUnitStateEvent ( SerializeEvent  event,
bool &  skip,
const TextureUnitState textureUnit 
) [protected]

Internal methods that invokes registered listeners callback.

See also:
Listener::textureUnitStateEventRaised.
const String& Ogre::MaterialSerializer::getQueuedAsString (  )  const

Returns a string representing the parsed material(s).

bool Ogre::MaterialSerializer::invokeParser ( String line,
AttribParserList parsers 
) [protected]

internal method for finding & invoking an attribute parser.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
const char *  ,
int  ,
const char *   
) [inherited]

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
) [inherited]

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr  )  [inherited]

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr,
const char *  ,
int  ,
const char *   
) [inherited]

Definition at line 118 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr  )  [inherited]

Definition at line 112 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
void *  ptr 
) [inherited]

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz  )  [inherited]

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
const char *  file,
int  line,
const char *  func 
) [inherited]

operator new, with debug line info

Definition at line 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz  )  [inherited]

Definition at line 90 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz,
const char *  file,
int  line,
const char *  func 
) [inherited]

array operator new, with debug line info

Definition at line 85 of file OgreMemoryAllocatedObject.h.

void Ogre::MaterialSerializer::parseScript ( DataStreamPtr stream,
const String groupName 
)

Parses a Material script file passed as a stream.

bool Ogre::MaterialSerializer::parseScriptLine ( String line  )  [protected]

internal method for parsing a material

Returns:
true if it expects the next line to be a {
void Ogre::MaterialSerializer::queueForExport ( const MaterialPtr pMat,
bool  clearQueued = false,
bool  exportDefaults = false,
const String materialName = "" 
)

Queue an in-memory Material to the internal buffer for export.

Parameters:
pMat Material pointer
clearQueued If true, any materials already queued will be removed
exportDefaults If true, attributes which are defaulted will be included in the script exported, otherwise they will be omitted
materialName Allow exporting the given material under a different name. In case of empty string the original material name will be used.
String Ogre::MaterialSerializer::quoteWord ( const String val  ) 

Definition at line 422 of file OgreMaterialSerializer.h.

void Ogre::MaterialSerializer::removeListener ( Listener listener  ) 

Remove a listener from this Serializer.

See also:
MaterialSerializer::Listener
void Ogre::MaterialSerializer::writeAttribute ( unsigned short  level,
const String att,
const bool  useMainBuffer = true 
)

Definition at line 405 of file OgreMaterialSerializer.h.

void Ogre::MaterialSerializer::writeColourValue ( const ColourValue colour,
bool  writeAlpha = false 
) [protected]
void Ogre::MaterialSerializer::writeComment ( unsigned short  level,
const String comment,
const bool  useMainBuffer = true 
)

Definition at line 430 of file OgreMaterialSerializer.h.

void Ogre::MaterialSerializer::writeCompareFunction ( const CompareFunction  cf  )  [protected]
void Ogre::MaterialSerializer::writeEnvironmentMapEffect ( const TextureUnitState::TextureEffect effect,
const TextureUnitState pTex 
) [protected]
void Ogre::MaterialSerializer::writeFragmentProgramRef ( const Pass pPass  )  [protected]
void Ogre::MaterialSerializer::writeGpuProgramParameter ( const String commandName,
const String identifier,
const GpuProgramParameters::AutoConstantEntry autoEntry,
const GpuProgramParameters::AutoConstantEntry defaultAutoEntry,
bool  isFloat,
size_t  physicalIndex,
size_t  physicalSize,
const GpuProgramParametersSharedPtr params,
GpuProgramParameters defaultParams,
const unsigned short  level,
const bool  useMainBuffer 
) [protected]
void Ogre::MaterialSerializer::writeGPUProgramParameters ( const GpuProgramParametersSharedPtr params,
GpuProgramParameters defaultParams,
const unsigned short  level = 4,
const bool  useMainBuffer = true 
) [protected]
void Ogre::MaterialSerializer::writeGpuProgramRef ( const String attrib,
const GpuProgramPtr program,
const GpuProgramParametersSharedPtr params 
) [protected]
void Ogre::MaterialSerializer::writeGpuPrograms ( void   )  [protected]
void Ogre::MaterialSerializer::writeLayerBlendOperationEx ( const LayerBlendOperationEx  op  )  [protected]
void Ogre::MaterialSerializer::writeLayerBlendSource ( const LayerBlendSource  lbs  )  [protected]
void Ogre::MaterialSerializer::writeLowLevelGpuProgramParameters ( const GpuProgramParametersSharedPtr params,
GpuProgramParameters defaultParams,
const unsigned short  level = 4,
const bool  useMainBuffer = true 
) [protected]
void Ogre::MaterialSerializer::writeMaterial ( const MaterialPtr pMat,
const String materialName = "" 
) [protected]
void Ogre::MaterialSerializer::writeNamedGpuProgramParameters ( const GpuProgramParametersSharedPtr params,
GpuProgramParameters defaultParams,
const unsigned short  level = 4,
const bool  useMainBuffer = true 
) [protected]
void Ogre::MaterialSerializer::writePass ( const Pass pPass  )  [protected]
void Ogre::MaterialSerializer::writeRotationEffect ( const TextureUnitState::TextureEffect effect,
const TextureUnitState pTex 
) [protected]
void Ogre::MaterialSerializer::writeSceneBlendFactor ( const SceneBlendFactor  sbf  )  [protected]
void Ogre::MaterialSerializer::writeSceneBlendFactor ( const SceneBlendFactor  sbf_src,
const SceneBlendFactor  sbf_dest 
) [protected]
void Ogre::MaterialSerializer::writeSceneBlendFactor ( const SceneBlendFactor  c_src,
const SceneBlendFactor  c_dest,
const SceneBlendFactor  a_src,
const SceneBlendFactor  a_dest 
) [protected]
void Ogre::MaterialSerializer::writeScrollEffect ( const TextureUnitState::TextureEffect effect,
const TextureUnitState pTex 
) [protected]
void Ogre::MaterialSerializer::writeShadowCasterFragmentProgramRef ( const Pass pPass  )  [protected]
void Ogre::MaterialSerializer::writeShadowCasterVertexProgramRef ( const Pass pPass  )  [protected]
void Ogre::MaterialSerializer::writeShadowReceiverFragmentProgramRef ( const Pass pPass  )  [protected]
void Ogre::MaterialSerializer::writeShadowReceiverVertexProgramRef ( const Pass pPass  )  [protected]
void Ogre::MaterialSerializer::writeTechnique ( const Technique pTech  )  [protected]
void Ogre::MaterialSerializer::writeTextureUnit ( const TextureUnitState pTex  )  [protected]
void Ogre::MaterialSerializer::writeTransformEffect ( const TextureUnitState::TextureEffect effect,
const TextureUnitState pTex 
) [protected]
void Ogre::MaterialSerializer::writeValue ( const String val,
const bool  useMainBuffer = true 
)

Definition at line 416 of file OgreMaterialSerializer.h.

void Ogre::MaterialSerializer::writeVertexProgramRef ( const Pass pPass  )  [protected]

Member Data Documentation

Definition at line 376 of file OgreMaterialSerializer.h.

Definition at line 381 of file OgreMaterialSerializer.h.

Definition at line 377 of file OgreMaterialSerializer.h.

Definition at line 380 of file OgreMaterialSerializer.h.

Definition at line 239 of file OgreMaterialSerializer.h.

Parsers for the material section of a script.

Definition at line 221 of file OgreMaterialSerializer.h.

Parsers for the pass section of a script.

Definition at line 225 of file OgreMaterialSerializer.h.

Parsers for the program definition section of a script.

Definition at line 231 of file OgreMaterialSerializer.h.

Parsers for the program definition section of a script.

Definition at line 233 of file OgreMaterialSerializer.h.

Parsers for the program reference section of a script.

Definition at line 229 of file OgreMaterialSerializer.h.

Parsers for the root of the material script.

Definition at line 219 of file OgreMaterialSerializer.h.

Definition at line 206 of file OgreMaterialSerializer.h.

Parsers for the technique section of a script.

Definition at line 223 of file OgreMaterialSerializer.h.

Parsers for the texture unit section of a script.

Definition at line 227 of file OgreMaterialSerializer.h.


The documentation for this class was generated from the following file:

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Fri May 25 23:38:10 2012