# 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::CVertexArrayRangeATI Class Reference

Work only if ATIVertexArrayObject is enabled. More...

#include <driver_opengl_vertex_buffer_hard.h>

Inheritance diagram for NL3D::CVertexArrayRangeATI:

NL3D::IVertexArrayRange List of all members.

Public Methods

 CVertexArrayRangeATI (CDriverGL *drv)
void enable ()
 active this VertexArrayRange as the current vertex array range used. More...

void disable ()
 disable this VertexArrayRange. More...

void freeVB (void *ptr)
 free a VB allocated with allocateVB. No-op if NULL. More...

uint getATIVertexObjectId () const
 get Handle of the ATI buffer. More...

Implementation
virtual bool allocate (uint32 size, IDriver::TVBHardType vbType)
 allocate a vertex array sapce. false if error. must free before re-allocate. More...

virtual void free ()
 free this space. More...

virtual IVertexBufferHardGLcreateVBHardGL (uint16 vertexFormat, const uint8 *typeArray, uint32 numVertices)
 create a IVertexBufferHardGL. More...

virtual uint sizeAllocated () const
 return the size allocated. 0 if not allocated or failure. More...


Private Methods

void * allocateVB (uint32 size)
 Allocate a small subset of the memory. NULL if not enough mem. More...


Private Attributes

uint _VertexObjectId
bool _Allocated
uint32 _VertexArraySize
NLMISC::CHeapMemory _HeapMemory

Detailed Description

Work only if ATIVertexArrayObject is enabled.

else, only call to ctor/dtor/free() is valid. any call to allocateVB() will return NULL.

Definition at line 243 of file driver_opengl_vertex_buffer_hard.h.


Constructor & Destructor Documentation

NL3D::CVertexArrayRangeATI::CVertexArrayRangeATI CDriverGL   drv
 

Definition at line 401 of file driver_opengl_vertex_buffer_hard.cpp.

References _Allocated, _VertexArraySize, and _VertexObjectId.


Member Function Documentation

bool NL3D::CVertexArrayRangeATI::allocate uint32    size,
IDriver::TVBHardType    vbType
[virtual]
 

allocate a vertex array sapce. false if error. must free before re-allocate.

Implements NL3D::IVertexArrayRange.

Definition at line 408 of file driver_opengl_vertex_buffer_hard.cpp.

References _Allocated, _HeapMemory, _VertexArraySize, _VertexObjectId, GL_DYNAMIC_ATI, GL_STATIC_ATI, NLMISC::CHeapMemory::initHeap, nglIsObjectBufferATI, nglNewObjectBufferATI, NL3D_DRV_ATI_FAKE_MEM_START, and nlassert.

void * NL3D::CVertexArrayRangeATI::allocateVB uint32    size [private]
 

Allocate a small subset of the memory. NULL if not enough mem.

Definition at line 522 of file driver_opengl_vertex_buffer_hard.cpp.

References _HeapMemory, and NLMISC::CHeapMemory::allocate.

Referenced by createVBHardGL.

IVertexBufferHardGL * NL3D::CVertexArrayRangeATI::createVBHardGL uint16    vertexFormat,
const uint8   typeArray,
uint32    numVertices
[virtual]
 

create a IVertexBufferHardGL.

Implements NL3D::IVertexArrayRange.

Definition at line 467 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::IVertexArrayRange::_Driver, and allocateVB.

void NL3D::CVertexArrayRangeATI::disable  
 

disable this VertexArrayRange.

_Driver->_CurrentVertexArrayRange= NULL; NB: no-op for ATI, but ensure correct _Driver->_CurrentVertexArrayRange value.

Definition at line 516 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::IVertexArrayRange::_Driver.

void NL3D::CVertexArrayRangeATI::enable  
 

active this VertexArrayRange as the current vertex array range used.

no-op if already setup. NB: no-op for ATI, but ensure correct _Driver->_CurrentVertexArrayRange value.

Definition at line 510 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::IVertexArrayRange::_Driver.

void NL3D::CVertexArrayRangeATI::free   [virtual]
 

free this space.

Implements NL3D::IVertexArrayRange.

Definition at line 451 of file driver_opengl_vertex_buffer_hard.cpp.

References _Allocated, _HeapMemory, _VertexArraySize, _VertexObjectId, nglDeleteObjectBufferATI, and NLMISC::CHeapMemory::reset.

void NL3D::CVertexArrayRangeATI::freeVB void *    ptr
 

free a VB allocated with allocateVB. No-op if NULL.

Definition at line 527 of file driver_opengl_vertex_buffer_hard.cpp.

References _HeapMemory, and NLMISC::CHeapMemory::free.

uint NL3D::CVertexArrayRangeATI::getATIVertexObjectId   const [inline]
 

get Handle of the ATI buffer.

Definition at line 277 of file driver_opengl_vertex_buffer_hard.h.

References _VertexObjectId.

uint NL3D::CVertexArrayRangeATI::sizeAllocated   const [virtual]
 

return the size allocated. 0 if not allocated or failure.

Implements NL3D::IVertexArrayRange.

Definition at line 446 of file driver_opengl_vertex_buffer_hard.cpp.

References _VertexArraySize.


Member Data Documentation

bool NL3D::CVertexArrayRangeATI::_Allocated [private]
 

Definition at line 282 of file driver_opengl_vertex_buffer_hard.h.

Referenced by allocate, CVertexArrayRangeATI, and free.

NLMISC::CHeapMemory NL3D::CVertexArrayRangeATI::_HeapMemory [private]
 

Definition at line 286 of file driver_opengl_vertex_buffer_hard.h.

Referenced by allocate, allocateVB, free, and freeVB.

uint32 NL3D::CVertexArrayRangeATI::_VertexArraySize [private]
 

Definition at line 283 of file driver_opengl_vertex_buffer_hard.h.

Referenced by allocate, CVertexArrayRangeATI, free, and sizeAllocated.

uint NL3D::CVertexArrayRangeATI::_VertexObjectId [private]
 

Definition at line 281 of file driver_opengl_vertex_buffer_hard.h.

Referenced by allocate, CVertexArrayRangeATI, free, and getATIVertexObjectId.


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