NL3D::CVertexBufferReadWrite Class Reference

The vertex buffer accessor read / write. More...

#include <vertex_buffer.h>

List of all members.

Public Member Functions

 CVertexBufferReadWrite ()
 ~CVertexBufferReadWrite ()
void unlock ()
 Unlock the vertex buffer.
void setVertexCoord (uint idx, float x, float y, float z)
void setVertexCoord (uint idx, const CVector &v)
void setNormalCoord (uint idx, const CVector &v)
void setTexCoord (uint idx, uint8 stage, float u, float v)
void setTexCoord (uint idx, uint8 stage, const CUV &uv)
void setColor (uint idx, CRGBA rgba)
void setSpecular (uint idx, CRGBA rgba)
void setWeight (uint idx, uint8 wgt, float w)
void setPaletteSkin (uint idx, CPaletteSkin ps)
void setValueFloat1Ex (CVertexBuffer::TValue valueId, uint idx, float value)
void setValueFloat2Ex (CVertexBuffer::TValue valueId, uint idx, float x, float y)
void setValueFloat3Ex (CVertexBuffer::TValue valueId, uint idx, float x, float y, float z)
void setValueFloat3Ex (CVertexBuffer::TValue valueId, uint idx, const CVector &vector)
void setValueFloat4Ex (CVertexBuffer::TValue valueId, uint idx, float x, float y, float z, float w)
void setValueUChar4Ex (CVertexBuffer::TValue valueId, uint idx, CRGBA rgba)
NLMISC::CVectorgetVertexCoordPointer (uint idx=0)
 Get a pointer on a value.
NLMISC::CVectorgetNormalCoordPointer (uint idx=0)
NLMISC::CUVgetTexCoordPointer (uint idx=0, uint8 stage=0)
void * getColorPointer (uint idx=0)
void * getSpecularPointer (uint idx=0)
floatgetWeightPointer (uint idx=0, uint8 wgt=0)
CPaletteSkingetPaletteSkinPointer (uint idx=0)
void * getValueEx (CVertexBuffer::TValue valueId, uint idx=0)
void touchVertices (uint first, uint last)
 Touch the updated vertices.
const CVertexBuffergetParent () const

Private Member Functions

void operator= (const CVertexBufferReadWrite &)
 CVertexBufferReadWrite (const CVertexBufferReadWrite &)

Private Attributes

CVertexBuffer_Parent
uint _First
uint _Last

Friends

class CVertexBuffer

Detailed Description

The vertex buffer accessor read / write.

Definition at line 749 of file vertex_buffer.h.


Constructor & Destructor Documentation

NL3D::CVertexBufferReadWrite::CVertexBufferReadWrite (  )  [inline]

Definition at line 754 of file vertex_buffer.h.

References _Parent.

NL3D::CVertexBufferReadWrite::~CVertexBufferReadWrite (  )  [inline]

Definition at line 758 of file vertex_buffer.h.

References unlock().

NL3D::CVertexBufferReadWrite::CVertexBufferReadWrite ( const CVertexBufferReadWrite  )  [inline, private]

Definition at line 821 of file vertex_buffer.h.


Member Function Documentation

void * NL3D::CVertexBufferReadWrite::getColorPointer ( uint  idx = 0  ) 
NLMISC::CVector * NL3D::CVertexBufferReadWrite::getNormalCoordPointer ( uint  idx = 0  ) 
CPaletteSkin * NL3D::CVertexBufferReadWrite::getPaletteSkinPointer ( uint  idx = 0  ) 
const CVertexBuffer* NL3D::CVertexBufferReadWrite::getParent (  )  const [inline]

Definition at line 815 of file vertex_buffer.h.

References _Parent.

Referenced by NL3D::CVertexStreamManager::isBRGA(), NL3D::nlCheckVBA(), and NL3D::nlCheckVBARange().

void * NL3D::CVertexBufferReadWrite::getSpecularPointer ( uint  idx = 0  ) 
NLMISC::CUV * NL3D::CVertexBufferReadWrite::getTexCoordPointer ( uint  idx = 0,
uint8  stage = 0 
)
void* NL3D::CVertexBufferReadWrite::getValueEx ( CVertexBuffer::TValue  valueId,
uint  idx = 0 
) [inline]
NLMISC::CVector * NL3D::CVertexBufferReadWrite::getVertexCoordPointer ( uint  idx = 0  ) 

Get a pointer on a value.

For Color pointers : This method returns a (CRGBA*) or a (CBGRA*) regarding the vertex color format returned by CVertexBufferReadWrite::getVertexColorFormat(). A call to IDriver::activeVertexBuffer() will change this format to the format returned by IDriver::getVertexColorFormat(). So, before each write of vertex color in the vertex buffer, the vertex color format must be checked with CVertexBuffer::getVertexColorFormat().

Definition at line 1165 of file vertex_buffer.cpp.

References NL3D::CVertexBuffer::_LockedBuffer, _Parent, NL3D::CVertexBuffer::_VertexSize, NL3D::CVertexBuffer::checkLockedBuffer(), and nlassert.

Referenced by NL3D::CVegetableManager::addInstance(), NL3D::CMeshMRMGeom::applyGeomorphWithVBHardPtr(), NL3D::CMeshMRMGeom::applySkin(), NL3D::CMeshMRMGeom::bkupOriginalSkinVerticesSubset(), NL3D::CVegetableShape::build(), NL3D::CPSConstraintMesh::CMeshDisplayShare::buildVB(), NL3D::CVertexBuffer::copyVertices(), NL3D::CCloud::dispBill(), NL3D::CPSTailDot::displayRibbons(), NL3D::CPSRibbonLookAt::displayRibbons(), NL3D::CPSRibbon::displayRibbons(), NL3D::CCloud::dispXYZ(), NL3D::DrawDot(), NL3D::CPSFaceHelper::drawFaces(), NL3D::CPSFanLightHelper::drawFanLight(), NL3D::CPSFaceLookAtHelper::drawLookAt(), NL3D::CPSFaceLookAtHelper::drawLookAtAlignOnMotion(), NL3D::CPSConstraintMeshHelper::drawMeshs(), NL3D::CPSConstraintMeshHelper::drawPrerotatedMeshs(), NL3D::CDriverUser::drawQuads(), NL3D::CPSShockWaveHelper::drawShockWave(), NL3D::CDriverUser::drawTriangles(), NL3D::CCoarseMeshManager::flushRender(), NL3D::CCloud::genBill(), NL3D::CCloud::generate(), NL3D::CMeshMRMSkinnedGeom::getVertexBuffer(), NL3D::CCloud::light(), NL3D::CVertexStreamManager::lock(), NL3D::CVegetableVBAllocator::lockBuffer(), NL3D::CPSConstraintMesh::makePrerotatedVb(), NL3D::nlCheckVBA(), NL3D::nlCheckVBARange(), NL3D::CSegRemanence::render(), NL3D::CPackedZone16::render(), NL3D::CPackedZone32::render(), NL3D::CNoise3d::render(), NL3D::CComputedString::render2DClip(), NL3D::CComputedString::render2DUnProjected(), NL3D::CNoise3d::render2passes(), NL3D::CNoise3d::renderGrid(), NL3D::CNoise3d::renderGrid2passes(), NL3D::CCloud::reset(), NL3D::CMeshMRMGeom::restoreOriginalSkinPart(), NL3D::CMeshMRMGeom::restoreOriginalSkinVertices(), NL3D::CMeshGeom::restoreOriginalSkinVertices(), NL3D::CNearVertexBufferInfo::setupVertexBuffer(), NL3D::CFarVertexBufferInfo::setupVertexBuffer(), NL3D::CVegetableManager::swapIgRdrPassHardMode(), NL3D::CRenderTrav::traverse(), NL3D::CFlareModel::traverseRender(), NL3D::CMeshMorpher::update(), NL3D::CVegetableManager::updateInstanceLighting(), NL3D::CFlareModel::updateOcclusionQuery(), and NL3D::CMeshMorpher::updateSkinned().

float * NL3D::CVertexBufferReadWrite::getWeightPointer ( uint  idx = 0,
uint8  wgt = 0 
)
void NL3D::CVertexBufferReadWrite::operator= ( const CVertexBufferReadWrite  )  [inline, private]

Definition at line 820 of file vertex_buffer.h.

void NL3D::CVertexBufferReadWrite::setColor ( uint  idx,
CRGBA  rgba 
) [inline]
void NL3D::CVertexBufferReadWrite::setNormalCoord ( uint  idx,
const CVector v 
) [inline]
void NL3D::CVertexBufferReadWrite::setPaletteSkin ( uint  idx,
CPaletteSkin  ps 
) [inline]
void NL3D::CVertexBufferReadWrite::setSpecular ( uint  idx,
CRGBA  rgba 
) [inline]
void NL3D::CVertexBufferReadWrite::setTexCoord ( uint  idx,
uint8  stage,
const CUV uv 
) [inline]
void NL3D::CVertexBufferReadWrite::setTexCoord ( uint  idx,
uint8  stage,
float  u,
float  v 
) [inline]
void NL3D::CVertexBufferReadWrite::setValueFloat1Ex ( CVertexBuffer::TValue  valueId,
uint  idx,
float  value 
) [inline]
void NL3D::CVertexBufferReadWrite::setValueFloat2Ex ( CVertexBuffer::TValue  valueId,
uint  idx,
float  x,
float  y 
) [inline]
void NL3D::CVertexBufferReadWrite::setValueFloat3Ex ( CVertexBuffer::TValue  valueId,
uint  idx,
const CVector vector 
) [inline]
void NL3D::CVertexBufferReadWrite::setValueFloat3Ex ( CVertexBuffer::TValue  valueId,
uint  idx,
float  x,
float  y,
float  z 
) [inline]
void NL3D::CVertexBufferReadWrite::setValueFloat4Ex ( CVertexBuffer::TValue  valueId,
uint  idx,
float  x,
float  y,
float  z,
float  w 
) [inline]
void NL3D::CVertexBufferReadWrite::setValueUChar4Ex ( CVertexBuffer::TValue  valueId,
uint  idx,
CRGBA  rgba 
) [inline]
void NL3D::CVertexBufferReadWrite::setVertexCoord ( uint  idx,
const CVector v 
) [inline]
void NL3D::CVertexBufferReadWrite::setVertexCoord ( uint  idx,
float  x,
float  y,
float  z 
) [inline]
void NL3D::CVertexBufferReadWrite::setWeight ( uint  idx,
uint8  wgt,
float  w 
) [inline]
void NL3D::CVertexBufferReadWrite::touchVertices ( uint  first,
uint  last 
)

Touch the updated vertices.

If the method is not call, the accessor update all the vertices.

Parameters:
first is the index of the first vertices to update.
last is the index of the last vertices to update + 1.

Definition at line 1279 of file vertex_buffer.cpp.

References _First, _Last, _Parent, NL3D::CVertexBuffer::checkLockedBuffer(), and nlassert.

Referenced by NL3D::CVertexStreamManager::unlock().

void NL3D::CVertexBufferReadWrite::unlock (  )  [inline]

Friends And Related Function Documentation

friend class CVertexBuffer [friend]

Definition at line 752 of file vertex_buffer.h.


Member Data Documentation

Definition at line 824 of file vertex_buffer.h.

Referenced by NL3D::CVertexBuffer::lock(), touchVertices(), and unlock().

Definition at line 824 of file vertex_buffer.h.

Referenced by NL3D::CVertexBuffer::lock(), touchVertices(), and unlock().


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

Generated on Thu Jan 7 08:30:14 2010 for NeL by  doxygen 1.6.1