Ogre::RTShader::SubRenderStateFactory Class Referenceabstract
Core » RTShader

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...
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 *)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
void * | operator new[] (size_t sz)
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...

## Protected Member Functions

virtual SubRenderState * | createInstanceImpl ()=0
| Create instance implementation method. More...

## Protected Attributes

SubRenderStateSet | mSubRenderStateList

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

Definition at line 232 of file OgreShaderSubRenderState.h.

## Constructor & Destructor Documentation

## SubRenderStateFactory()

Ogre::RTShader::SubRenderStateFactory::SubRenderStateFactory | ( |  | ) |

Definition at line 236 of file OgreShaderSubRenderState.h.

## ~SubRenderStateFactory()

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

virtual

## Member Function Documentation

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

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.

Definition at line 258 of file OgreShaderSubRenderState.h.

## createInstance() [3/3]

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

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.

Definition at line 268 of file OgreShaderSubRenderState.h.

## createInstanceImpl()

virtual SubRenderState* Ogre::RTShader::SubRenderStateFactory::createInstanceImpl | ( |  | ) |

protected pure virtual

Create instance implementation method.

Each sub class of this interface must implement this method in which it will allocate the specific sub class of the SubRenderState.

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

## destroyAllInstances()

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

virtual

Destroy all the instances that created by this factory.

## destroyInstance()

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

virtual

Destroy the given instance.

Parameters

  subRenderState | The instance to destroy.

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

## operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |

inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

## operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |

inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

## operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |

inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [2/2]

template<class Alloc >

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

inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

## operator new() [1/3]

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 68 of file OgreMemoryAllocatedObject.h.

## operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |

inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

## operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |

inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

## operator new[]() [1/2]

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 86 of file OgreMemoryAllocatedObject.h.

## operator new[]() [2/2]

template<class Alloc >

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

inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

## writeInstance() [1/2]

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

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.

Definition at line 294 of file OgreShaderSubRenderState.h.

## writeInstance() [2/2]

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

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.

Definition at line 305 of file OgreShaderSubRenderState.h.

## Member Data Documentation

## mSubRenderStateList

SubRenderStateSet Ogre::RTShader::SubRenderStateFactory::mSubRenderStateList

protected

Definition at line 316 of file OgreShaderSubRenderState.h.

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

- OgreShaderSubRenderState.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.