| OGRE 1.11.1 Object-Oriented Graphics Rendering Engine

Public Member Functions | List of all members
Ogre::RTShader::SubRenderStateFactory Class Referenceabstract
Optional Components » RTShaderSystem

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

`#include <OgreShaderSubRenderState.h>`

Inheritance diagram for Ogre::RTShader::SubRenderStateFactory:
[legend]

## Public Member Functions
| SubRenderStateFactory ()
virtual | ~SubRenderStateFactory ()
virtual SubRenderState * | createInstance ()
| Create an instance of the SubRenderState sub class it suppose to create. More...
virtual SubRenderState * | createInstance (ScriptCompiler *compiler, PropertyAbstractNode *prop, Pass *pass, SGScriptTranslator *translator)
| Create an instance of the SubRenderState based on script properties. More...
virtual SubRenderState * | createInstance (ScriptCompiler *compiler, PropertyAbstractNode *prop, TextureUnitState *texState, SGScriptTranslator *translator)
| Create an instance of the SubRenderState based on script properties. More...
virtual SubRenderState * | createOrRetrieveInstance (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 String & | getType () const =0
| Get the type of this sub render state factory. More...
virtual void | writeInstance (MaterialSerializer *ser, SubRenderState *subRenderState, Pass *srcPass, Pass *dstPass)
| Write the given sub-render state instance using the material serializer. 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...

## Detailed Description

Abstract factory interface for creating SubRenderState implementation instances.

Remarks
  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

Get the type of this sub render state factory.

Remarks
  The type string should be the same as the type of the SubRenderState sub class it is going to create.

See also
  SubRenderState::getType.

Implemented in Ogre::RTShader::PerPixelLightingFactory, Ogre::RTShader::NormalMapLightingFactory, Ogre::RTShader::FFPTexturingFactory, Ogre::RTShader::TextureAtlasSamplerFactory, Ogre::RTShader::FFPLightingFactory, Ogre::RTShader::LayeredBlendingFactory, Ogre::RTShader::IntegratedPSSM3Factory, Ogre::RTShader::TriplanarTexturingFactory, Ogre::RTShader::HardwareSkinningFactory, Ogre::RTShader::FFPFogFactory, Ogre::RTShader::FFPColourFactory, Ogre::RTShader::FFPAlphaTestFactory, and Ogre::RTShader::FFPTransformFactory.

## ◆ 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
| ) |  |
| inline virtual

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

  compiler | The compiler instance.
  prop | The abstract property node.
  pass | The pass that is the parent context of this node.
  translator | The translator instance holding existing scripts.

Reimplemented in Ogre::RTShader::PerPixelLightingFactory, Ogre::RTShader::NormalMapLightingFactory, Ogre::RTShader::FFPTexturingFactory, Ogre::RTShader::TextureAtlasSamplerFactory, Ogre::RTShader::FFPLightingFactory, Ogre::RTShader::IntegratedPSSM3Factory, Ogre::RTShader::TriplanarTexturingFactory, Ogre::RTShader::HardwareSkinningFactory, Ogre::RTShader::FFPFogFactory, Ogre::RTShader::FFPColourFactory, and Ogre::RTShader::FFPTransformFactory.

## ◆ createInstance() [3/3]

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

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

  compiler | The compiler instance.
  prop | The abstract property node.
  texState | The pass that is the parent context of this node.
  translator | The 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

  translator | The translator instance holding existing scripts.

## ◆ destroyInstance()

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

Destroy the given instance.

Parameters

  subRenderState | The 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
| ) |  |
| inline virtual

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

  ser | The material serializer instance.
  subRenderState | The sub render state instance to write down.
  srcPass | The source pass.
  dstPass | The generated shader based pass.

Reimplemented in Ogre::RTShader::PerPixelLightingFactory, Ogre::RTShader::NormalMapLightingFactory, Ogre::RTShader::FFPTexturingFactory, Ogre::RTShader::TextureAtlasSamplerFactory, Ogre::RTShader::FFPLightingFactory, Ogre::RTShader::HardwareSkinningFactory, Ogre::RTShader::FFPFogFactory, Ogre::RTShader::FFPColourFactory, and Ogre::RTShader::FFPTransformFactory.

## ◆ writeInstance() [2/2]

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

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

  ser | The material serializer instance.
  subRenderState | The sub render state instance to write down.
  srcTextureUnit | The source texture unit state.
  dstTextureUnit | The generated shader based texture unit state.

Reimplemented in Ogre::RTShader::LayeredBlendingFactory.

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

- OgreShaderSubRenderState.h