# Ogre::MaterialSerializer Class Reference

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

`#include <OgreMaterialSerializer.h>`

List of all members.

## Public Member Functions

| MaterialSerializer ()
| default constructor
virtual | ~MaterialSerializer ()
| default destructor
void | queueForExport (const MaterialPtr &pMat, bool clearQueued=false, bool exportDefaults=false)
| Queue an in-memory Material to the internal buffer for export.
void | exportQueued (const String &filename)
| Exports queued material(s) to a named material script file.
void | exportMaterial (const MaterialPtr &pMat, const String &filename, bool exportDefaults=false)
| Exports an in-memory Material to the named material script file.
const String & | getQueuedAsString () 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.

## Protected Types

typedef std::map< String, ATTRIBUTE_PARSER > | AttribParserList
| Keyword-mapped attribute parsers.
typedef std::multimap< TextureUnitState::TextureEffectType, TextureUnitState::TextureEffect > | 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)
void | writeTechnique (const Technique *pTech)
void | writePass (const Pass *pPass)
void | writeTextureUnit (const TextureUnitState *pTex)
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)

## 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.

## Private Member Functions

void | beginSection (unsigned short level)
void | endSection (unsigned short level)
void | writeAttribute (unsigned short level, const String &att)
void | writeValue (const String &val)
void | writeComment (unsigned short level, const String &comment)

## Private Attributes

String | mBuffer
bool | mDefaults

## Detailed Description

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

Definition at line 89 of file OgreMaterialSerializer.h.

## Member Typedef Documentation

typedef std::map<String, ATTRIBUTE_PARSER> Ogre::MaterialSerializer::AttribParserList `[protected]`

| Keyword-mapped attribute parsers. Definition at line 93 of file OgreMaterialSerializer.h.

typedef std::multimap<TextureUnitState::TextureEffectType, TextureUnitState::TextureEffect> Ogre::MaterialSerializer::EffectMap `[protected]`

| Definition at line 136 of file OgreMaterialSerializer.h.

## Constructor & Destructor Documentation

Ogre::MaterialSerializer::MaterialSerializer | ( |  | ) |

| default constructor

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

| default destructor Definition at line 148 of file OgreMaterialSerializer.h.

## Member Function Documentation

void Ogre::MaterialSerializer::beginSection | ( | unsigned short | level | ) | `[private]`

| Definition at line 171 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 | ) | `[private]`

| Definition at line 180 of file OgreMaterialSerializer.h.

void Ogre::MaterialSerializer::exportMaterial | ( | const MaterialPtr & | pMat,
|  | const String & | filename,
|  | bool | exportDefaults = false
| ) |

| Exports an in-memory Material to the named material script file.

void Ogre::MaterialSerializer::exportQueued | ( | const String & | filename | ) |

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

void Ogre::MaterialSerializer::finishProgramDefinition | ( | void |  | ) | `[protected]`

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

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.

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
| ) |

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

void Ogre::MaterialSerializer::writeAttribute | ( | unsigned short | level,
|  | const String & | att
| ) | `[private]`

| Definition at line 190 of file OgreMaterialSerializer.h. References Ogre::String.

void Ogre::MaterialSerializer::writeColourValue | ( | const ColourValue & | colour,
|  | bool | writeAlpha = false
| ) | `[protected]`

void Ogre::MaterialSerializer::writeComment | ( | unsigned short | level,
|  | const String & | comment
| ) | `[private]`

| Definition at line 205 of file OgreMaterialSerializer.h. References Ogre::String.

void Ogre::MaterialSerializer::writeCompareFunction | ( | const CompareFunction | cf | ) | `[protected]`

void Ogre::MaterialSerializer::writeEnvironmentMapEffect | ( | const TextureUnitState::TextureEffect & | effect,
|  | const TextureUnitState * | pTex
| ) | `[protected]`

void Ogre::MaterialSerializer::writeLayerBlendOperationEx | ( | const LayerBlendOperationEx | op | ) | `[protected]`

void Ogre::MaterialSerializer::writeLayerBlendSource | ( | const LayerBlendSource | lbs | ) | `[protected]`

void Ogre::MaterialSerializer::writeMaterial | ( | const MaterialPtr & | pMat | ) | `[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::writeScrollEffect | ( | const TextureUnitState::TextureEffect & | effect,
|  | const TextureUnitState * | pTex
| ) | `[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 | ) | `[private]`

| Definition at line 200 of file OgreMaterialSerializer.h. References Ogre::String.

## Member Data Documentation

String Ogre::MaterialSerializer::mBuffer `[private]`

| Definition at line 168 of file OgreMaterialSerializer.h.

bool Ogre::MaterialSerializer::mDefaults `[private]`

| Definition at line 169 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mMaterialAttribParsers `[protected]`

| Parsers for the material section of a script. Definition at line 110 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mPassAttribParsers `[protected]`

| Parsers for the pass section of a script. Definition at line 114 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mProgramAttribParsers `[protected]`

| Parsers for the program definition section of a script. Definition at line 120 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mProgramDefaultParamAttribParsers `[protected]`

| Parsers for the program definition section of a script. Definition at line 122 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mProgramRefAttribParsers `[protected]`

| Parsers for the program reference section of a script. Definition at line 118 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mRootAttribParsers `[protected]`

| Parsers for the root of the material script. Definition at line 108 of file OgreMaterialSerializer.h.

MaterialScriptContext Ogre::MaterialSerializer::mScriptContext `[protected]`

| Definition at line 95 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mTechniqueAttribParsers `[protected]`

| Parsers for the technique section of a script. Definition at line 112 of file OgreMaterialSerializer.h.

AttribParserList Ogre::MaterialSerializer::mTextureUnitAttribParsers `[protected]`

| Parsers for the texture unit section of a script. Definition at line 116 of file OgreMaterialSerializer.h.

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

- OgreMaterialSerializer.h

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Feb 12 13:01:01 2006