#include <OgreMaterialSerializer.h>
Collaboration diagram for Ogre::MaterialSerializer:
Public Methods | |
MaterialSerializer () | |
default constructor | |
virtual | ~MaterialSerializer () |
default destructor | |
void | queueForExport (const Material *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 Material *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 (DataChunk &chunk, const String &filename="") |
Parses a Material script file passed as a chunk. | |
Protected Types | |
typedef std::map< String, ATTRIBUTE_PARSER > | AttribParserList |
Keyword-mapped attribute parsers. | |
typedef std::multimap< TextureUnitState::TextureEffectType, TextureUnitState::TextureEffect > | EffectMap |
Protected Methods | |
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 Material *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. | |
Private Methods | |
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 |
Definition at line 77 of file OgreMaterialSerializer.h.
|
Keyword-mapped attribute parsers.
Definition at line 81 of file OgreMaterialSerializer.h. |
|
Definition at line 122 of file OgreMaterialSerializer.h. Referenced by writeTextureUnit(). |
|
|
default destructor
Definition at line 134 of file OgreMaterialSerializer.h. |
|
Definition at line 160 of file OgreMaterialSerializer.h. Referenced by writeMaterial(), writePass(), writeTechnique(), and writeTextureUnit(). |
|
Clears the internal buffer.
Definition at line 1986 of file OgreMaterialSerializer.cpp. References mBuffer. Referenced by exportMaterial(), exportQueued(), and queueForExport(). |
|
Definition at line 2270 of file OgreMaterialSerializer.cpp. References Ogre::FilterOptions, Ogre::FO_ANISOTROPIC, Ogre::FO_LINEAR, Ogre::FO_NONE, and Ogre::FO_POINT. Referenced by writeTextureUnit(). |
|
Definition at line 169 of file OgreMaterialSerializer.h. Referenced by writeMaterial(), writePass(), writeTechnique(), and writeTextureUnit(). |
|
Exports an in-memory Material to the named material script file.
Definition at line 1951 of file OgreMaterialSerializer.cpp. References clearQueue(), exportQueued(), mDefaults, and writeMaterial(). |
|
Exports queued material(s) to a named material script file.
Definition at line 1959 of file OgreMaterialSerializer.cpp. References clearQueue(), Except, Ogre::LML_CRITICAL, and mBuffer. Referenced by exportMaterial(). |
|
Internal method for saving a program definition which has been built up.
Definition at line 1881 of file OgreMaterialSerializer.cpp. References Ogre::MaterialScriptProgramDefinition::customParameters, Ogre::MaterialScriptProgramDefinition::language, Ogre::logParseError(), mScriptContext, Ogre::MaterialScriptProgramDefinition::name, Ogre::MaterialScriptContext::programDef, Ogre::MaterialScriptProgramDefinition::progType, Ogre::StringInterface::setParameter(), Ogre::GpuProgram::setSourceFile(), Ogre::MaterialScriptProgramDefinition::source, and Ogre::MaterialScriptProgramDefinition::syntax. Referenced by parseScriptLine(). |
|
Returns a string representing the parsed material(s).
Definition at line 1991 of file OgreMaterialSerializer.cpp. References mBuffer. |
|
internal method for finding & invoking an attribute parser.
Definition at line 1932 of file OgreMaterialSerializer.cpp. References Ogre::logParseError(), mScriptContext, Ogre::String::split(), and Ogre::StringVector. Referenced by parseScriptLine(). |
|
Parses a Material script file passed as a chunk.
Definition at line 1711 of file OgreMaterialSerializer.cpp. References Ogre::MaterialScriptContext::filename, Ogre::DataChunk::getLine(), Ogre::DataChunk::isEOF(), Ogre::MaterialScriptContext::lineNo, Ogre::logParseError(), Ogre::MaterialScriptContext::material, mScriptContext, Ogre::MSS_NONE, parseScriptLine(), Ogre::MaterialScriptContext::pass, Ogre::MaterialScriptContext::program, Ogre::MaterialScriptContext::section, Ogre::MaterialScriptContext::technique, and Ogre::MaterialScriptContext::textureUnit. Referenced by Ogre::MaterialManager::parseAllSources(), and Ogre::MaterialManager::parseScript(). |
|
internal method for parsing a material
Definition at line 1762 of file OgreMaterialSerializer.cpp. References finishProgramDefinition(), invokeParser(), Ogre::logParseError(), Ogre::MaterialScriptContext::material, mMaterialAttribParsers, mPassAttribParsers, mProgramAttribParsers, mProgramRefAttribParsers, mRootAttribParsers, mScriptContext, Ogre::MSS_MATERIAL, Ogre::MSS_NONE, Ogre::MSS_PASS, Ogre::MSS_PROGRAM, Ogre::MSS_PROGRAM_REF, Ogre::MSS_TECHNIQUE, Ogre::MSS_TEXTUREUNIT, mTechniqueAttribParsers, mTextureUnitAttribParsers, Ogre::parseProgramCustomParameter(), Ogre::MaterialScriptContext::pass, Ogre::MaterialScriptContext::program, Ogre::MaterialScriptContext::programDef, Ogre::MaterialScriptContext::section, Ogre::String::split(), Ogre::StringVector, Ogre::MaterialScriptContext::technique, and Ogre::MaterialScriptContext::textureUnit. Referenced by parseScript(). |
|
Queue an in-memory Material to the internal buffer for export.
Definition at line 1977 of file OgreMaterialSerializer.cpp. References clearQueue(), mDefaults, and writeMaterial(). |
|
Definition at line 179 of file OgreMaterialSerializer.h. Referenced by writeEnvironmentMapEffect(), writeMaterial(), writePass(), writeRotationEffect(), writeScrollEffect(), writeTechnique(), writeTextureUnit(), and writeTransformEffect(). |
|
Definition at line 2670 of file OgreMaterialSerializer.cpp. References Ogre::ColourValue::a, Ogre::ColourValue::b, Ogre::ColourValue::g, Ogre::ColourValue::r, and writeValue(). Referenced by writePass(), and writeTextureUnit(). |
|
Definition at line 194 of file OgreMaterialSerializer.h. |
|
Definition at line 2639 of file OgreMaterialSerializer.cpp. References Ogre::CMPF_ALWAYS_FAIL, Ogre::CMPF_ALWAYS_PASS, Ogre::CMPF_EQUAL, Ogre::CMPF_GREATER, Ogre::CMPF_GREATER_EQUAL, Ogre::CMPF_LESS, Ogre::CMPF_LESS_EQUAL, Ogre::CMPF_NOT_EQUAL, Ogre::CompareFunction, and writeValue(). Referenced by writePass(), and writeTextureUnit(). |
|
Definition at line 2500 of file OgreMaterialSerializer.cpp. References Ogre::TextureUnitState::TextureEffect::subtype, writeAttribute(), and writeValue(). Referenced by writeTextureUnit(). |
|
Definition at line 2679 of file OgreMaterialSerializer.cpp. References Ogre::LayerBlendOperationEx, Ogre::LBX_ADD, Ogre::LBX_ADD_SIGNED, Ogre::LBX_ADD_SMOOTH, Ogre::LBX_BLEND_CURRENT_ALPHA, Ogre::LBX_BLEND_DIFFUSE_ALPHA, Ogre::LBX_BLEND_MANUAL, Ogre::LBX_BLEND_TEXTURE_ALPHA, Ogre::LBX_DOTPRODUCT, Ogre::LBX_MODULATE, Ogre::LBX_MODULATE_X2, Ogre::LBX_MODULATE_X4, Ogre::LBX_SOURCE1, Ogre::LBX_SOURCE2, Ogre::LBX_SUBTRACT, and writeValue(). Referenced by writeTextureUnit(). |
|
Definition at line 2728 of file OgreMaterialSerializer.cpp. References Ogre::LayerBlendSource, Ogre::LBS_CURRENT, Ogre::LBS_DIFFUSE, Ogre::LBS_MANUAL, Ogre::LBS_SPECULAR, Ogre::LBS_TEXTURE, and writeValue(). Referenced by writeTextureUnit(). |
|
Definition at line 1996 of file OgreMaterialSerializer.cpp. References beginSection(), endSection(), Ogre::Material::getName(), Ogre::LML_CRITICAL, writeAttribute(), and writeTechnique(). Referenced by exportMaterial(), and queueForExport(). |
|
|
Definition at line 2520 of file OgreMaterialSerializer.cpp. References Ogre::TextureUnitState::TextureEffect::arg1, writeAttribute(), and writeValue(). Referenced by writeTextureUnit(). |
|
|
Definition at line 2624 of file OgreMaterialSerializer.cpp. References Ogre::SBF_ONE, Ogre::SBF_ONE_MINUS_SOURCE_ALPHA, Ogre::SBF_ONE_MINUS_SOURCE_COLOUR, Ogre::SBF_SOURCE_ALPHA, Ogre::SBF_SOURCE_COLOUR, Ogre::SceneBlendFactor, and writeValue(). Referenced by writePass(), and writeTextureUnit(). |
|
Definition at line 2577 of file OgreMaterialSerializer.cpp. References Ogre::TextureUnitState::TextureEffect::arg1, Ogre::TextureUnitState::TextureEffect::arg2, writeAttribute(), and writeValue(). Referenced by writeTextureUnit(). |
|
Definition at line 2014 of file OgreMaterialSerializer.cpp. References beginSection(), endSection(), writeAttribute(), and writePass(). Referenced by writeMaterial(). |
|
|
|
Definition at line 189 of file OgreMaterialSerializer.h. Referenced by writeColourValue(), writeCompareFunction(), writeEnvironmentMapEffect(), writeLayerBlendOperationEx(), writeLayerBlendSource(), writePass(), writeRotationEffect(), writeSceneBlendFactor(), writeScrollEffect(), writeTextureUnit(), and writeTransformEffect(). |
|
Definition at line 157 of file OgreMaterialSerializer.h. Referenced by clearQueue(), exportQueued(), getQueuedAsString(), MaterialSerializer(), and writeTextureUnit(). |
|
Definition at line 158 of file OgreMaterialSerializer.h. Referenced by exportMaterial(), queueForExport(), writePass(), and writeTextureUnit(). |
|
Parsers for the material section of a script.
Definition at line 98 of file OgreMaterialSerializer.h. Referenced by MaterialSerializer(), and parseScriptLine(). |
|
Parsers for the pass section of a script.
Definition at line 102 of file OgreMaterialSerializer.h. Referenced by MaterialSerializer(), and parseScriptLine(). |
|
Parsers for the program definition section of a script.
Definition at line 108 of file OgreMaterialSerializer.h. Referenced by MaterialSerializer(), and parseScriptLine(). |
|
Parsers for the program reference section of a script.
Definition at line 106 of file OgreMaterialSerializer.h. Referenced by MaterialSerializer(), and parseScriptLine(). |
|
Parsers for the root of the material script.
Definition at line 96 of file OgreMaterialSerializer.h. Referenced by MaterialSerializer(), and parseScriptLine(). |
|
Definition at line 83 of file OgreMaterialSerializer.h. Referenced by finishProgramDefinition(), invokeParser(), MaterialSerializer(), parseScript(), and parseScriptLine(). |
|
Parsers for the technique section of a script.
Definition at line 100 of file OgreMaterialSerializer.h. Referenced by MaterialSerializer(), and parseScriptLine(). |
|
Parsers for the texture unit section of a script.
Definition at line 104 of file OgreMaterialSerializer.h. Referenced by MaterialSerializer(), and parseScriptLine(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:18:07 2004