OGRE  1.10.12
Object-Oriented Graphics Rendering Engine
Ogre::RTShader::TextureAtlasSamplerFactory Class Reference

A factory that enables creation of TextureAtlasSampler instances. More...

#include <OgreShaderExTextureAtlasSampler.h>

+ Inheritance diagram for Ogre::RTShader::TextureAtlasSamplerFactory:

Classes

struct  TextureAtlasAttib
 

Public Types

enum  IndexPositionMode { ipmRelative, ipmAbsolute }
 

Public Member Functions

 TextureAtlasSamplerFactory ()
 
bool addTexutreAtlasDefinition (const Ogre::String &filename, TextureAtlasTablePtr textureAtlasTable=TextureAtlasTablePtr())
 Adds a texture atlas definition from a stream. More...
 
bool addTexutreAtlasDefinition (DataStreamPtr stream, TextureAtlasTablePtr textureAtlasTable=TextureAtlasTablePtr())
 
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)
 
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...
 
const TextureAtlasAttibgetDefaultAtlasingAttributes () const
 Returns the default attributes of texture atlas processing. More...
 
const TextureAtlasTablePtrgetTextureAtlasTable (const String &textureName) const
 Retrieve the texture atlas table information for a given texture. More...
 
virtual const StringgetType () const
 
bool hasMaterialAtlasingAttributes (Ogre::Material *material, TextureAtlasAttib *attrib=NULL) const
 Tells whether a specific material has atlas attributes associated with it. More...
 
void removeAllTextureAtlasTables ()
 Removes all texture atlas table information. More...
 
void removeTextureAtlasTable (const String &textureName)
 Removes the texture atlas information from a given texture. More...
 
void setDefaultAtlasingAttributes (IndexPositionMode mode, ushort offset, bool autoAdjustBorders)
 Set the default attributes concerning atlas texture processing. More...
 
void setMaterialAtlasingAttributes (Ogre::Material *material, IndexPositionMode mode, ushort offset, bool autoAdjustBorders)
 Set the default attributes concerning atlas texture processing for a specific material. More...
 
void setTextureAtlasTable (const String &textureName, const TextureAtlasTablePtr &atlasData, bool autoBorderAdjust=true)
 Set the texture atlas information for a given texture. More...
 
virtual void writeInstance (MaterialSerializer *ser, SubRenderState *subRenderState, Pass *srcPass, Pass *dstPass)
 
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...
 

Static Public Member Functions

static TextureAtlasSamplerFactorygetSingleton (void)
 
static TextureAtlasSamplerFactorygetSingletonPtr (void)
 

Detailed Description

A factory that enables creation of TextureAtlasSampler instances.

Remarks
Sub class of SubRenderStateFactory

Member Enumeration Documentation

◆ IndexPositionMode

Enumerator
ipmRelative 
ipmAbsolute 

Constructor & Destructor Documentation

◆ TextureAtlasSamplerFactory()

Ogre::RTShader::TextureAtlasSamplerFactory::TextureAtlasSamplerFactory ( )

Member Function Documentation

◆ getSingletonPtr()

static TextureAtlasSamplerFactory* Ogre::RTShader::TextureAtlasSamplerFactory::getSingletonPtr ( void  )
static

◆ getSingleton()

static TextureAtlasSamplerFactory& Ogre::RTShader::TextureAtlasSamplerFactory::getSingleton ( void  )
static

◆ getType()

virtual const String& Ogre::RTShader::TextureAtlasSamplerFactory::getType ( ) const
virtual

◆ createInstance() [1/3]

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

◆ writeInstance() [1/2]

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

◆ addTexutreAtlasDefinition() [1/2]

Ogre::RTShader::TextureAtlasSamplerFactory::addTexutreAtlasDefinition ( const Ogre::String filename,
TextureAtlasTablePtr  textureAtlasTable = TextureAtlasTablePtr() 
)

Adds a texture atlas definition from a stream.

This function loads a texture atlas definition file from a stream. The accepted format for this file is the NVidia Texture Atlas Tools ".tai" file format. This file as

The ".tai" format consist of lines, where each line corresponds to a specific texture in the texture atlas. Each line has the following format:

<original texture filename>/t/t<atlas filename>, <atlas idx>, <atlas type>, <woffset>, <hoffset>, <depth offset>, <width>, <height>
Parameters
filenameThe full path to the file containing a ".tai" format data.
textureAtlasTableA table into which the data in the stream will be filled. This parameter will be filled only if it is not null. The system factory keeps a copy of this information in any case.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
streamA stream to a file containing ".tai" format data

◆ addTexutreAtlasDefinition() [2/2]

bool Ogre::RTShader::TextureAtlasSamplerFactory::addTexutreAtlasDefinition ( DataStreamPtr  stream,
TextureAtlasTablePtr  textureAtlasTable = TextureAtlasTablePtr() 
)

◆ setTextureAtlasTable()

void Ogre::RTShader::TextureAtlasSamplerFactory::setTextureAtlasTable ( const String textureName,
const TextureAtlasTablePtr atlasData,
bool  autoBorderAdjust = true 
)

Set the texture atlas information for a given texture.

Parameters
textureNameName of an atlas texture
atlasDataA list of records containing the position and size of each texture in the atlas
autoBorderAdjustSets whether to automatically adjust the image polling area for border issues.See the Border issues paragraph under the class documentation for more information.

◆ removeTextureAtlasTable()

void Ogre::RTShader::TextureAtlasSamplerFactory::removeTextureAtlasTable ( const String textureName)

Removes the texture atlas information from a given texture.

Parameters
textureNameName of an atlas texture

◆ removeAllTextureAtlasTables()

void Ogre::RTShader::TextureAtlasSamplerFactory::removeAllTextureAtlasTables ( )

Removes all texture atlas table information.

◆ getTextureAtlasTable()

const TextureAtlasTablePtr& Ogre::RTShader::TextureAtlasSamplerFactory::getTextureAtlasTable ( const String textureName) const

Retrieve the texture atlas table information for a given texture.

Parameters
textureNameName of an atlas texture

◆ setDefaultAtlasingAttributes()

void Ogre::RTShader::TextureAtlasSamplerFactory::setDefaultAtlasingAttributes ( IndexPositionMode  mode,
ushort  offset,
bool  autoAdjustBorders 
)

Set the default attributes concerning atlas texture processing.

Parameters
modeThe index positioning mode. Tells relative to where the the texture coordinates containing the atlas image to use are positioned.
offsetThe index positioning offset. Tells the offset relative to the index positioning mode.
autoAdjustBordersTells whether to automatically adjust the polled area in the texture relative to the used mipmap level.
See also
TextureAtlasSampler

◆ getDefaultAtlasingAttributes()

const TextureAtlasAttib& Ogre::RTShader::TextureAtlasSamplerFactory::getDefaultAtlasingAttributes ( ) const

Returns the default attributes of texture atlas processing.

See also
setDefaultAtlasingAttributes

◆ setMaterialAtlasingAttributes()

void Ogre::RTShader::TextureAtlasSamplerFactory::setMaterialAtlasingAttributes ( Ogre::Material material,
IndexPositionMode  mode,
ushort  offset,
bool  autoAdjustBorders 
)

Set the default attributes concerning atlas texture processing for a specific material.

Parameters
materialThe material to which to add the information
modeThe index positioning mode. Tells relative to where the the texture coordinates containing the atlas image to use are positioned.
offsetThe index positioning offset. Tells the offset relative to the index positioning mode.
autoAdjustBordersTells whether to automatically adjust the polled area in the texture relative to the used mipmap level.
See also
TextureAtlasSampler

◆ hasMaterialAtlasingAttributes()

bool Ogre::RTShader::TextureAtlasSamplerFactory::hasMaterialAtlasingAttributes ( Ogre::Material material,
TextureAtlasAttib attrib = NULL 
) const

Tells whether a specific material has atlas attributes associated with it.

And returns the attributes to be used.

See also
setMaterialAtlasingAttributes

◆ createInstance() [2/3]

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

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

◆ createInstance() [3/3]

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

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

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

Destroy the given instance.

Parameters
subRenderStateThe instance to destroy.

◆ destroyAllInstances()

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

Destroy all the instances that created by this factory.

◆ writeInstance() [2/2]

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

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: