# Home    # nevrax.com   
Nevrax
Nevrax.org
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
Docs
 
Documentation  
Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  

NL3D::CMeshSkinManager Class Reference

A class used to render Skins in a VBHard, grouped by their skeleton This allow optimisation because less VBuffer swap is needed Also, only 2 Big VBHard is created for all the skins, which improves use of AGP space. More...

#include <mesh_skin_manager.h>

List of all members.

Public Methods

 CMeshSkinManager ()
 Constructor. More...

 ~CMeshSkinManager ()
Init/Setup
void init (IDriver *driver, uint vertexFormat, uint maxVertices)
 init the manager with a driver, allocate the VBHards, and setup the vertexFormat. More...

void release ()
 release the VBHard. init() can be called after this. More...

bool enabled () const
 false if error at init, eg if driver do no support VBHard, or if no more AGP memory. More...

IDrivergetDriver () const
 return the driver used. More...

uint getVertexFormat () const
 get the vertexFormat. More...

uint getVertexSize () const
 get the vertexSize. More...

uint getMaxVertices () const
 get max vertices the Buffer allows. More...

Rendering. Those methods must be called only if enabled(), else crash
uint8lock ()
 lock the currently activated VBHard, for future filling. More...

void unlock (uint numVertices)
 unlock the currently activated VBHard. Tell how many vertices have changed. More...

void activate ()
 activate the currentVBhard as the current VB in the driver, for future rendering. More...

void swapVBHard ()
 Swap to the next VBHard. This allow some parralelism, since CPU fill one VBHard while the other is rendered. More...


Private Types

enum  { NumVBHard = 2 }

Private Attributes

NLMISC::CRefPtr< IDriver_Driver
NLMISC::CRefPtr< IVertexBufferHard_VBHard [NumVBHard]
bool _Enabled
uint _VertexFormat
uint _VertexSize
uint _MaxVertices
uint _CurentVBHard


Detailed Description

A class used to render Skins in a VBHard, grouped by their skeleton This allow optimisation because less VBuffer swap is needed Also, only 2 Big VBHard is created for all the skins, which improves use of AGP space.

Author:
Lionel Berenguier , Nevrax France
Date:
2002

Definition at line 46 of file mesh_skin_manager.h.


Member Enumeration Documentation

anonymous enum [private]
 

Enumeration values:
NumVBHard 

Definition at line 95 of file mesh_skin_manager.h.


Constructor & Destructor Documentation

NL3D::CMeshSkinManager::CMeshSkinManager  
 

Constructor.

Definition at line 36 of file mesh_skin_manager.cpp.

References _CurentVBHard, _Enabled, _MaxVertices, _VertexFormat, and _VertexSize.

NL3D::CMeshSkinManager::~CMeshSkinManager  
 

Definition at line 45 of file mesh_skin_manager.cpp.

References release.


Member Function Documentation

void NL3D::CMeshSkinManager::activate  
 

activate the currentVBhard as the current VB in the driver, for future rendering.

Definition at line 117 of file mesh_skin_manager.cpp.

References _CurentVBHard, _Driver, and _VBHard.

bool NL3D::CMeshSkinManager::enabled   const [inline]
 

false if error at init, eg if driver do no support VBHard, or if no more AGP memory.

Definition at line 65 of file mesh_skin_manager.h.

References _Enabled.

IDriver* NL3D::CMeshSkinManager::getDriver   const [inline]
 

return the driver used.

Definition at line 67 of file mesh_skin_manager.h.

References _Driver.

uint NL3D::CMeshSkinManager::getMaxVertices   const [inline]
 

get max vertices the Buffer allows.

Definition at line 73 of file mesh_skin_manager.h.

References _MaxVertices.

uint NL3D::CMeshSkinManager::getVertexFormat   const [inline]
 

get the vertexFormat.

Definition at line 69 of file mesh_skin_manager.h.

References _VertexFormat.

uint NL3D::CMeshSkinManager::getVertexSize   const [inline]
 

get the vertexSize.

Definition at line 71 of file mesh_skin_manager.h.

References _VertexSize.

void NL3D::CMeshSkinManager::init IDriver   driver,
uint    vertexFormat,
uint    maxVertices
 

init the manager with a driver, allocate the VBHards, and setup the vertexFormat.

Must call each time the drive changes

Definition at line 51 of file mesh_skin_manager.cpp.

References _CurentVBHard, _Driver, _Enabled, _MaxVertices, _VBHard, _VertexFormat, _VertexSize, nlassert, NumVBHard, and release.

uint8 * NL3D::CMeshSkinManager::lock  
 

lock the currently activated VBHard, for future filling.

Definition at line 106 of file mesh_skin_manager.cpp.

References _CurentVBHard, and _VBHard.

void NL3D::CMeshSkinManager::release  
 

release the VBHard. init() can be called after this.

Definition at line 84 of file mesh_skin_manager.cpp.

References _CurentVBHard, _Driver, _Enabled, _MaxVertices, _VBHard, _VertexFormat, _VertexSize, and NumVBHard.

Referenced by init, and ~CMeshSkinManager.

void NL3D::CMeshSkinManager::swapVBHard  
 

Swap to the next VBHard. This allow some parralelism, since CPU fill one VBHard while the other is rendered.

Definition at line 122 of file mesh_skin_manager.cpp.

References _CurentVBHard, and NumVBHard.

void NL3D::CMeshSkinManager::unlock uint    numVertices
 

unlock the currently activated VBHard. Tell how many vertices have changed.

Definition at line 111 of file mesh_skin_manager.cpp.

References _CurentVBHard, and _VBHard.


Member Data Documentation

uint NL3D::CMeshSkinManager::_CurentVBHard [private]
 

Definition at line 104 of file mesh_skin_manager.h.

Referenced by activate, CMeshSkinManager, init, lock, release, swapVBHard, and unlock.

NLMISC::CRefPtr<IDriver> NL3D::CMeshSkinManager::_Driver [private]
 

Definition at line 97 of file mesh_skin_manager.h.

Referenced by activate, getDriver, init, and release.

bool NL3D::CMeshSkinManager::_Enabled [private]
 

Definition at line 99 of file mesh_skin_manager.h.

Referenced by CMeshSkinManager, enabled, init, and release.

uint NL3D::CMeshSkinManager::_MaxVertices [private]
 

Definition at line 102 of file mesh_skin_manager.h.

Referenced by CMeshSkinManager, getMaxVertices, init, and release.

NLMISC::CRefPtr<IVertexBufferHard> NL3D::CMeshSkinManager::_VBHard[NumVBHard] [private]
 

Definition at line 98 of file mesh_skin_manager.h.

Referenced by activate, init, lock, release, and unlock.

uint NL3D::CMeshSkinManager::_VertexFormat [private]
 

Definition at line 100 of file mesh_skin_manager.h.

Referenced by CMeshSkinManager, getVertexFormat, init, and release.

uint NL3D::CMeshSkinManager::_VertexSize [private]
 

Definition at line 101 of file mesh_skin_manager.h.

Referenced by CMeshSkinManager, getVertexSize, init, and release.


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