MatInstance Class Reference

#include <matInstance.h>

Inheritance diagram for MatInstance:

Inheritance graph
[legend]
List of all members.

Public Member Functions

virtual ~MatInstance ()
virtual void addStateBlockDesc (const GFXStateBlockDesc &desc)
 Add this stateblock to the base state block and recalculate everything.
virtual MaterialParametersallocMaterialParameters ()
 Get a MaterialParameters block for this frame.
virtual void setMaterialParameters (MaterialParameters *param)
 Set the current parameters for this BaseMatInstance.
virtual MaterialParametersgetMaterialParameters ()
 Get the current parameters for this BaseMatInstance (BaseMatInstances are created with a default active MaterialParameters which is managed by BaseMatInstance.
virtual MaterialParameterHandlegetMaterialParameterHandle (const String &name)
 Returns a MaterialParameterHandle for name.
virtual bool setupPass (SceneState *, const SceneGraphData &sgData)
virtual void setTransforms (const MatrixF &world, const MatrixF &view, const MatrixF &projection)
virtual void setLightInfo (SceneState *, const SceneGraphData &sgData)
virtual void setEyePosition (MatrixF objTrans, Point3F position)
virtual void setBuffers (GFXVertexBufferHandleBase *vertBuffer, GFXPrimitiveBufferHandle *primBuffer)
virtual void setTextureStages (SceneState *state, const SceneGraphData &sgData)
virtual void init (const GFXMaterialFeatureData::FeatureListHandle instanceData, const GFXMaterialFeatureData::FeatureListHandle globalData, GFXVertexFlags vertFlags)
virtual void reInit (const GFXMaterialFeatureData::FeatureListHandle globalData)
virtual MaterialgetMaterial ()
ProcessedMaterialgetProcessedMaterial () const
virtual bool hasGlow ()
virtual U32 getCurPass ()
virtual U32 getCurStageNum ()
virtual RenderPassDatagetPass (U32 pass)
virtual const GFXVertexFlags getVertFlags () const
virtual GFXMaterialFeatureData::FeatureListHandle getFeatureData () const
virtual void dumpShaderInfo () const

Protected Member Functions

 MatInstance (Material &mat)
 Create a material instance by reference to a Material.
bool filterGlowPasses (const SceneGraphData &sgData)
virtual void processMaterial (const GFXMaterialFeatureData::FeatureListHandle globalData)
virtual ProcessedMaterialgetShaderMaterial ()

Protected Attributes

MaterialmMaterial
ProcessedMaterialmProcessedMaterial
GFXMaterialFeatureData::FeatureListHandle mFeatureList
S32 mCurPass
GFXVertexFlags mVertFlags
U32 mMaxStages
bool mHasGlow
GFXStateBlockDesc mUserDefinedState
Vector< MatInstanceParameterHandle * > mCurrentHandles
Vector< MatInstParameters * > mCurrentParameters
MatInstParametersmActiveParameters
MatInstParametersmDefaultParameters

Private Member Functions

void construct ()

Friends

class Material

Constructor & Destructor Documentation

virtual MatInstance::~MatInstance (  )  [virtual]

MatInstance::MatInstance ( Material mat  )  [protected]

Create a material instance by reference to a Material.


Member Function Documentation

virtual void MatInstance::addStateBlockDesc ( const GFXStateBlockDesc desc  )  [virtual]

Add this stateblock to the base state block and recalculate everything.

Implements BaseMatInstance.

virtual MaterialParameters* MatInstance::allocMaterialParameters (  )  [virtual]

Get a MaterialParameters block for this frame.

Implements BaseMatInstance.

virtual void MatInstance::setMaterialParameters ( MaterialParameters param  )  [virtual]

Set the current parameters for this BaseMatInstance.

Implements BaseMatInstance.

virtual MaterialParameters* MatInstance::getMaterialParameters (  )  [virtual]

Get the current parameters for this BaseMatInstance (BaseMatInstances are created with a default active MaterialParameters which is managed by BaseMatInstance.

Implements BaseMatInstance.

virtual MaterialParameterHandle* MatInstance::getMaterialParameterHandle ( const String name  )  [virtual]

Returns a MaterialParameterHandle for name.

Implements BaseMatInstance.

virtual bool MatInstance::setupPass ( SceneState ,
const SceneGraphData sgData 
) [virtual]

Implements BaseMatInstance.

virtual void MatInstance::setTransforms ( const MatrixF world,
const MatrixF view,
const MatrixF projection 
) [virtual]

Implements BaseMatInstance.

virtual void MatInstance::setLightInfo ( SceneState ,
const SceneGraphData sgData 
) [virtual]

Implements BaseMatInstance.

virtual void MatInstance::setEyePosition ( MatrixF  objTrans,
Point3F  position 
) [virtual]

Implements BaseMatInstance.

virtual void MatInstance::setBuffers ( GFXVertexBufferHandleBase vertBuffer,
GFXPrimitiveBufferHandle primBuffer 
) [virtual]

Implements BaseMatInstance.

virtual void MatInstance::setTextureStages ( SceneState state,
const SceneGraphData sgData 
) [virtual]

Implements BaseMatInstance.

virtual void MatInstance::init ( const GFXMaterialFeatureData::FeatureListHandle  instanceData,
const GFXMaterialFeatureData::FeatureListHandle  globalData,
GFXVertexFlags  vertFlags 
) [virtual]

Parameters:
instanceData Should contain all of the features that this instance can support. For example, if it supports lightmaps then LightMap should be turned on, but if it's an instance for a mesh without lightmaps, then lightmap should be off.
globalData Used to turn features on and off at a more broad level. By default, just get the one from the MaterialManager. This and instance data are AND'ed together and used with the material setup to figure out which features to turn on and off.
vertFlags The vertex type to be used with this instance.

Implements BaseMatInstance.

virtual void MatInstance::reInit ( const GFXMaterialFeatureData::FeatureListHandle  globalData  )  [virtual]

Implements BaseMatInstance.

virtual Material* MatInstance::getMaterial (  )  [inline, virtual]

Implements BaseMatInstance.

ProcessedMaterial* MatInstance::getProcessedMaterial (  )  const [inline]

virtual bool MatInstance::hasGlow (  )  [virtual]

Implements BaseMatInstance.

virtual U32 MatInstance::getCurPass (  )  [inline, virtual]

Implements BaseMatInstance.

virtual U32 MatInstance::getCurStageNum (  )  [virtual]

Implements BaseMatInstance.

virtual RenderPassData* MatInstance::getPass ( U32  pass  )  [virtual]

Implements BaseMatInstance.

virtual const GFXVertexFlags MatInstance::getVertFlags (  )  const [inline, virtual]

Implements BaseMatInstance.

virtual GFXMaterialFeatureData::FeatureListHandle MatInstance::getFeatureData (  )  const [inline, virtual]

Implements BaseMatInstance.

virtual void MatInstance::dumpShaderInfo (  )  const [virtual]

Reimplemented from BaseMatInstance.

bool MatInstance::filterGlowPasses ( const SceneGraphData sgData  )  [protected]

virtual void MatInstance::processMaterial ( const GFXMaterialFeatureData::FeatureListHandle  globalData  )  [protected, virtual]

Reimplemented in sgMatInstance.

virtual ProcessedMaterial* MatInstance::getShaderMaterial (  )  [protected, virtual]

void MatInstance::construct (  )  [private]


Friends And Related Function Documentation

friend class Material [friend]


Member Data Documentation

Vector<MatInstanceParameterHandle*> MatInstance::mCurrentHandles [protected]