"L. Spiro Engine"
|
Provides rendering functionality to models. More...
#include <LSDIntermediateDrawableMeshInstance.h>
Classes | |
struct | LSD_INTERM_MAT_LIST |
struct | LSD_RENDER_LAYER |
struct | LSD_RENDER_PART |
struct | LSD_RENDER_TYPE_DATA |
Public Types | |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_LAYER * | LPLSD_RENDER_LAYER |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_LAYER | LPCLSD_RENDER_LAYER |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_TYPE_DATA * | LPLSD_RENDER_TYPE_DATA |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_TYPE_DATA | LPCLSD_RENDER_TYPE_DATA |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_PART * | LPLSD_RENDER_PART |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_PART | LPCLSD_RENDER_PART |
Public Member Functions | |
CIntermediateDrawableMeshInstance &LSE_CALL | operator= (const CIntermediateDrawableMeshInstance &_idmiOther) |
LSSTD_ERRORS LSE_CALL | CreateGraphicsData (const CIntermediateMeshInstance &_imiInstance, const CIntermediateSharedMesh **_ppismMeshes, const CMaterial **_ppmMaterials, LSUINT32 _ui32TotalMaterials, const CModelTexture *_pmtTextures, LSUINT32 _ui32TotalTextures, const CVector< CSharedModel::LSD_MODEL_IMAGE > &_vModelImages) |
LSVOID LSE_CALL | SetAllocator (CAllocator *_paAllocator) |
LSE_INLINE CVector < LSD_RENDER_PART, LSUINT32 > &LSE_CALL | GetRenderParts () |
LSVOID LSE_CALL | DebugRender (CModelTexture *_pmtTextures, LSBOOL _bOpaque) |
Protected Types | |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_INTERM_MAT_LIST * | LPLSD_INTERM_MAT_LIST |
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_INTERM_MAT_LIST | LPCLSD_INTERM_MAT_LIST |
Protected Member Functions | |
LSUINT32 LSE_CALL | FindTextureByName (const CModelTexture *_pmtTextures, LSUINT32 _ui32Total, const CString &_sName) |
LSUINT32 LSE_CALL | FindImageByFileName (const CVector< CSharedModel::LSD_MODEL_IMAGE > &_vModelImages, const CString &_sFileName) |
LSVOID LSE_CALL | ComputeTangentBinormal (LSD_RENDER_PART &_rpPart, LSUINT32 _ui32Index, LSUINT32 _ui32Slot=0UL) |
Protected Attributes | |
CVector< LSD_RENDER_PART, LSUINT32 > | m_vRenderParts |
Provides rendering functionality to models.
Class CIntermediateDrawableMeshInstance Description: Provides rendering functionality to models. This class represents one part of a model, such as an arm, leg, etc.
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_INTERM_MAT_LIST * lsd::CIntermediateDrawableMeshInstance::LPLSD_INTERM_MAT_LIST [protected] |
An intermediate material set is used to break a mesh into the necessary vertex buffers to render it. All vertices on a mesh will have the same general properties, such as having normals, colors, number of UV layers, etc. The only difference is the number of types of materials.
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_LAYER * lsd::CIntermediateDrawableMeshInstance::LPLSD_RENDER_LAYER |
A layer in a render part.
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_PART * lsd::CIntermediateDrawableMeshInstance::LPLSD_RENDER_PART |
List of render parts.
typedef struct lsd::CIntermediateDrawableMeshInstance::LSD_RENDER_TYPE_DATA * lsd::CIntermediateDrawableMeshInstance::LPLSD_RENDER_TYPE_DATA |
Data needed for a render type. For example, ambient-only pass, lighting pass, etc.
LSVOID LSE_CALL lsd::CIntermediateDrawableMeshInstance::ComputeTangentBinormal | ( | LSD_RENDER_PART & | _rpPart, |
LSUINT32 | _ui32Index, | ||
LSUINT32 | _ui32Slot = 0UL |
||
) | [protected] |
Compute the tangent and binormal for a vertex. Used for normal mapping.
_rpPart | The render part to update with the tangent and binormal. |
_ui32Index | Index of the first vertex on the face. |
_ui32Slot | Slot of the face. Vertices and normals are assumed to be slot 0. _ui32Slot is used for UV coordinates only. |
LSSTD_ERRORS LSE_CALL lsd::CIntermediateDrawableMeshInstance::CreateGraphicsData | ( | const CIntermediateMeshInstance & | _imiInstance, |
const CIntermediateSharedMesh ** | _ppismMeshes, | ||
const CMaterial ** | _ppmMaterials, | ||
LSUINT32 | _ui32TotalMaterials, | ||
const CModelTexture * | _pmtTextures, | ||
LSUINT32 | _ui32TotalTextures, | ||
const CVector< CSharedModel::LSD_MODEL_IMAGE > & | _vModelImages | ||
) |
Create graphics data from the given mesh instance and shared mesh data.
_imiInstance | The instance from which to generate graphics data. |
_ppismMeshes | The shared mesh data needed as a reference for polygon data. |
_ppmMaterials | Materials used by the model. |
_ui32TotalMaterials | Total materials to which _ppmMaterials points. |
_pmtTextures | Texture instances used by the model. |
_ui32TotalTextures | Total textures to which _pmtTextures points. |
_vModelImages | Model image data. |
LSVOID LSE_CALL lsd::CIntermediateDrawableMeshInstance::DebugRender | ( | CModelTexture * | _pmtTextures, |
LSBOOL | _bOpaque | ||
) |
Debug rendering of objects.
_pmtTextures | Textures referenced by this model. |
_bOpaque | If true, opaque objects are rendered, otherwise transparent ones are. |
LSUINT32 LSE_CALL lsd::CIntermediateDrawableMeshInstance::FindImageByFileName | ( | const CVector< CSharedModel::LSD_MODEL_IMAGE > & | _vModelImages, |
const CString & | _sFileName | ||
) | [protected] |
Find an image by its file name.
_vModelImages | Array of images. |
_sPath | File name of the image to find. |
LSUINT32 LSE_CALL lsd::CIntermediateDrawableMeshInstance::FindTextureByName | ( | const CModelTexture * | _pmtTextures, |
LSUINT32 | _ui32Total, | ||
const CString & | _sName | ||
) | [protected] |
Find a texture by its name.
_pmtTextures | Ponter to an array of textures. |
_ui32Total | Number of textures to which _pmtTextures points. |
_sName | Name of the texture to find. |
LSE_INLINE CVector< CIntermediateDrawableMeshInstance::LSD_RENDER_PART, LSUINT32 > &LSE_CALL lsd::CIntermediateDrawableMeshInstance::GetRenderParts | ( | ) |
Get the render parts of this mesh for read and write.
CIntermediateDrawableMeshInstance& LSE_CALL lsd::CIntermediateDrawableMeshInstance::operator= | ( | const CIntermediateDrawableMeshInstance & | _idmiOther | ) |
Copy operator.
_idmiOther | The object to copy. |
LSVOID LSE_CALL lsd::CIntermediateDrawableMeshInstance::SetAllocator | ( | CAllocator * | _paAllocator | ) |
Set the allocator for this object. Can be done only once.
_paAllocator | The allocator to use for all data allocated by this object. |
CVector<LSD_RENDER_PART, LSUINT32> lsd::CIntermediateDrawableMeshInstance::m_vRenderParts [protected] |
Vertex buffers used by this model part.