OGRE  13.6
Object-Oriented Graphics Rendering Engine
Ogre::RTShader::SubRenderStateFactory Class Referenceabstract

Abstract factory interface for creating SubRenderState implementation instances. More...

#include <OgreShaderSubRenderState.h>

+ Inheritance diagram for Ogre::RTShader::SubRenderStateFactory:

Public Member Functions

 SubRenderStateFactory ()
 
virtual ~SubRenderStateFactory ()
 
virtual SubRenderStatecreateInstance ()
 Create an instance of the SubRenderState sub class it suppose to create. More...
 
virtual SubRenderStatecreateInstance (ScriptCompiler *compiler, PropertyAbstractNode *prop, Pass *pass, SGScriptTranslator *translator)
 Create an instance of the SubRenderState based on script properties. More...
 
virtual SubRenderStatecreateInstance (ScriptCompiler *compiler, PropertyAbstractNode *prop, TextureUnitState *texState, SGScriptTranslator *translator)
 Create an instance of the SubRenderState based on script properties. More...
 
virtual SubRenderStatecreateOrRetrieveInstance (SGScriptTranslator *translator)
 Retrieve the previous instance the SRS in the script translator or create a new instance if not found. More...
 
virtual void destroyAllInstances ()
 Destroy all the instances that created by this factory. More...
 
virtual void destroyInstance (SubRenderState *subRenderState)
 Destroy the given instance. More...
 
virtual const StringgetType () const =0
 Get the type of this sub render state factory. More...
 
virtual void writeInstance (MaterialSerializer *ser, SubRenderState *subRenderState, const TextureUnitState *srcTextureUnit, const TextureUnitState *dstTextureUnit)
 Write the given sub-render state instance using the material serializer. More...
 
virtual void writeInstance (MaterialSerializer *ser, SubRenderState *subRenderState, Pass *srcPass, Pass *dstPass)
 Write the given sub-render state instance using the material serializer. More...
 

Detailed Description

Abstract factory interface for creating SubRenderState implementation instances.

Plugins or 3rd party applications can add new types of sub render states to the RTShader System by creating subclasses of the SubRenderState class. Because multiple instances of these sub class may be required, a factory class to manage the instances is also required.

SubRenderStateFactory subclasses must allow the creation and destruction of SubRenderState subclasses. They must also be registered with the ShaderGenerator::addSubRenderStateFactory. All factories have a type which identifies them and the sub class of SubRenderState they creates.

Constructor & Destructor Documentation

◆ SubRenderStateFactory()

Ogre::RTShader::SubRenderStateFactory::SubRenderStateFactory ( )
inline

◆ ~SubRenderStateFactory()

virtual Ogre::RTShader::SubRenderStateFactory::~SubRenderStateFactory ( )
virtual

Member Function Documentation

◆ getType()

virtual const String& Ogre::RTShader::SubRenderStateFactory::getType ( ) const
pure virtual

◆ createInstance() [1/3]

virtual SubRenderState* Ogre::RTShader::SubRenderStateFactory::createInstance ( )
virtual

Create an instance of the SubRenderState sub class it suppose to create.


◆ createInstance() [2/3]

virtual SubRenderState* Ogre::RTShader::SubRenderStateFactory::createInstance ( ScriptCompiler compiler,
PropertyAbstractNode prop,
Pass pass,
SGScriptTranslator translator 
)
inlinevirtual

Create an instance of the SubRenderState based on script properties.


This method is called in the context of script parsing and let this factory the opportunity to create custom SubRenderState instances based on extended script properties.

Parameters
compilerThe compiler instance.
propThe abstract property node.
passThe pass that is the parent context of this node.
translatorThe translator instance holding existing scripts.

Reimplemented in Ogre::RTShader::FFPTransformFactory, Ogre::RTShader::FFPTexturingFactory, Ogre::RTShader::TriplanarTexturingFactory, Ogre::RTShader::IntegratedPSSM3Factory, Ogre::RTShader::HardwareSkinningFactory, and Ogre::RTShader::GBufferFactory.

◆ createInstance() [3/3]

virtual SubRenderState* Ogre::RTShader::SubRenderStateFactory::createInstance ( ScriptCompiler compiler,
PropertyAbstractNode prop,
TextureUnitState texState,
SGScriptTranslator translator 
)
inlinevirtual

Create an instance of the SubRenderState based on script properties.


This method is called in the context of script parsing and let this factory the opportunity to create custom SubRenderState instances based on extended script properties.

Parameters
compilerThe compiler instance.
propThe abstract property node.
texStateThe pass that is the parent context of this node.
translatorThe translator instance holding existing scripts.

Reimplemented in Ogre::RTShader::LayeredBlendingFactory.

◆ createOrRetrieveInstance()

virtual SubRenderState* Ogre::RTShader::SubRenderStateFactory::createOrRetrieveInstance ( SGScriptTranslator translator)
virtual

Retrieve the previous instance the SRS in the script translator or create a new instance if not found.

Parameters
translatorThe translator instance holding existing scripts.

◆ destroyInstance()

virtual void Ogre::RTShader::SubRenderStateFactory::destroyInstance ( SubRenderState subRenderState)
virtual

Destroy the given instance.

Parameters
subRenderStateThe instance to destroy.

◆ destroyAllInstances()

virtual void Ogre::RTShader::SubRenderStateFactory::destroyAllInstances ( )
virtual

Destroy all the instances that created by this factory.


◆ writeInstance() [1/2]

virtual void Ogre::RTShader::SubRenderStateFactory::writeInstance ( MaterialSerializer ser,
SubRenderState subRenderState,
Pass srcPass,
Pass dstPass 
)
inlinevirtual

Write the given sub-render state instance using the material serializer.

This method is called in the context of material serialization. It is useful for integrating into bigger context of material exporters from various environment that want to take advantage of the RT Shader System. Sub classes of this interface should override in case they need to write custom properties into the script context.

Parameters
serThe material serializer instance.
subRenderStateThe sub render state instance to write down.
srcPassThe source pass.
dstPassThe generated shader based pass.

Reimplemented in Ogre::RTShader::FFPTransformFactory, Ogre::RTShader::FFPTexturingFactory, Ogre::RTShader::HardwareSkinningFactory, and Ogre::RTShader::GBufferFactory.

◆ writeInstance() [2/2]

virtual void Ogre::RTShader::SubRenderStateFactory::writeInstance ( MaterialSerializer ser,
SubRenderState subRenderState,
const TextureUnitState srcTextureUnit,
const TextureUnitState dstTextureUnit 
)
inlinevirtual

Write the given sub-render state instance using the material serializer.

This method is called in the context of material serialization. It is useful for integrating into bigger context of material exporters from various environment that want to take advantage of the RT Shader System. Sub classes of this interface should override in case they need to write custom properties into the script context.

Parameters
serThe material serializer instance.
subRenderStateThe sub render state instance to write down.
srcTextureUnitThe source texture unit state.
dstTextureUnitThe generated shader based texture unit state.

Reimplemented in Ogre::RTShader::LayeredBlendingFactory.


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