GFXD3D9ShaderConstBuffer Class Reference

#include <gfxD3D9Shader.h>

Inheritance diagram for GFXD3D9ShaderConstBuffer:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 GFXD3D9ShaderConstBuffer (GFXD3D9Shader *shader, GFXD3D9ShaderBufferLayout *vertexLayoutF, GFXD3D9ShaderBufferLayout *vertexLayoutI, GFXD3D9ShaderBufferLayout *pixelLayoutF, GFXD3D9ShaderBufferLayout *pixelLayoutI)
 ~GFXD3D9ShaderConstBuffer ()
void activate (GFXD3D9ShaderConstBuffer *mPrevShaderBuffer)
 Called by GFXD3D9Device to activate this buffer.
bool isDirty ()
 Used internally by GXD3D9ShaderConstBuffer to determine if it's dirty.
GFXShaderConstBuffer interface
virtual GFXShadergetShader ()
 Return the shader that created this buffer.
Set shader constant values
Actually set shader constant values
Parameters:
name Name of the constant, this should be a name contained in the array returned in getShaderConstDesc, if an invalid name is used, its ignored.


virtual void set (GFXShaderConstHandle *handle, const F32 fv)
virtual void set (GFXShaderConstHandle *handle, const Point2F &fv)
virtual void set (GFXShaderConstHandle *handle, const Point3F &fv)
virtual void set (GFXShaderConstHandle *handle, const Point4F &fv)
virtual void set (GFXShaderConstHandle *handle, const ColorF &fv)
virtual void set (GFXShaderConstHandle *handle, const S32 f)
virtual void set (GFXShaderConstHandle *handle, const Point2I &fv)
virtual void set (GFXShaderConstHandle *handle, const Point3I &fv)
virtual void set (GFXShaderConstHandle *handle, const Point4I &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< F32 > &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< Point2F > &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< Point3F > &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< Point4F > &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< S32 > &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< Point2I > &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< Point3I > &fv)
virtual void set (GFXShaderConstHandle *handle, const AlignedArray< Point4I > &fv)
virtual void set (GFXShaderConstHandle *handle, const MatrixF &mat, const GFXShaderConstType matType=GFXSCT_Float4x4)
 Specify the type of the matrix, only the GFXSCT types ending in NxN are valid.
virtual void set (GFXShaderConstHandle *handle, const MatrixF *mat, const U32 arraySize, const GFXShaderConstType matrixType=GFXSCT_Float4x4)
 Same as above, but in array form.
GFXResource interface
virtual const String describeSelf () const
 The resource should put a description of itself (number of vertices, size/width of texture, etc.) in buffer.
virtual void zombify ()
 When called the resource should destroy all device sensitive information (e.g. D3D resources in D3DPOOL_DEFAULT.
virtual void resurrect ()
 When called the resource should restore all device sensitive information destroyed by zombify().

Private Attributes

GFXD3D9ShadermShader
GFXD3D9ShaderBufferLayout * mVertexConstBufferLayoutF
GenericConstBuffermVertexConstBufferF
GFXD3D9ShaderBufferLayout * mPixelConstBufferLayoutF
GenericConstBuffermPixelConstBufferF
GFXD3D9ShaderBufferLayout * mVertexConstBufferLayoutI
GenericConstBuffermVertexConstBufferI
GFXD3D9ShaderBufferLayout * mPixelConstBufferLayoutI
GenericConstBuffermPixelConstBufferI

Constructor & Destructor Documentation

GFXD3D9ShaderConstBuffer::GFXD3D9ShaderConstBuffer ( GFXD3D9Shader shader,
GFXD3D9ShaderBufferLayout *  vertexLayoutF,
GFXD3D9ShaderBufferLayout *  vertexLayoutI,
GFXD3D9ShaderBufferLayout *  pixelLayoutF,
GFXD3D9ShaderBufferLayout *  pixelLayoutI 
)

GFXD3D9ShaderConstBuffer::~GFXD3D9ShaderConstBuffer (  ) 


Member Function Documentation

void GFXD3D9ShaderConstBuffer::activate ( GFXD3D9ShaderConstBuffer mPrevShaderBuffer  ) 

Called by GFXD3D9Device to activate this buffer.

Parameters:
mPrevShaderBuffer The previously active buffer

bool GFXD3D9ShaderConstBuffer::isDirty (  ) 

Used internally by GXD3D9ShaderConstBuffer to determine if it's dirty.

virtual GFXShader* GFXD3D9ShaderConstBuffer::getShader (  )  [virtual]

Return the shader that created this buffer.

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const F32  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const Point2F fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const Point3F fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const Point4F fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const ColorF fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const S32  f 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const Point2I fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const Point3I fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const Point4I fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< F32 > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< Point2F > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< Point3F > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< Point4F > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< S32 > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< Point2I > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< Point3I > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const AlignedArray< Point4I > &  fv 
) [virtual]

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const MatrixF mat,
const GFXShaderConstType  matType = GFXSCT_Float4x4 
) [virtual]

Specify the type of the matrix, only the GFXSCT types ending in NxN are valid.

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::set ( GFXShaderConstHandle handle,
const MatrixF mat,
const U32  arraySize,
const GFXShaderConstType  matrixType = GFXSCT_Float4x4 
) [virtual]

Same as above, but in array form.

We don't use an AlignedArray here because the packing of non 4x4 arrays will differ more than we can express with an AlignedArray. So the API is responsible for marshaling the data into the format it needs. In practice, that means that 4x4 matrices are going to be quickest (straight memory copy on D3D and GL). Other dimensions will require "interesting" code to handle marshaling.

Implements GFXShaderConstBuffer.

virtual const String GFXD3D9ShaderConstBuffer::describeSelf (  )  const [virtual]

The resource should put a description of itself (number of vertices, size/width of texture, etc.) in buffer.

Implements GFXShaderConstBuffer.

virtual void GFXD3D9ShaderConstBuffer::zombify (  )  [virtual]

When called the resource should destroy all device sensitive information (e.g. D3D resources in D3DPOOL_DEFAULT.

Implements GFXResource.

virtual void GFXD3D9ShaderConstBuffer::resurrect (  )  [virtual]

When called the resource should restore all device sensitive information destroyed by zombify().

Implements GFXResource.


Member Data Documentation

GFXD3D9ShaderBufferLayout* GFXD3D9ShaderConstBuffer::mVertexConstBufferLayoutF [private]

GFXD3D9ShaderBufferLayout* GFXD3D9ShaderConstBuffer::mPixelConstBufferLayoutF [private]

GFXD3D9ShaderBufferLayout* GFXD3D9ShaderConstBuffer::mVertexConstBufferLayoutI [private]

GFXD3D9ShaderBufferLayout* GFXD3D9ShaderConstBuffer::mPixelConstBufferLayoutI [private]