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

Work only if ARRAY_RANGE_NV is enabled. More...

#include <driver_opengl_vertex_buffer_hard.h>

Inheritance diagram for NL3D::CVertexArrayRangeNVidia:

NL3D::IVertexArrayRange List of all members.

Public Methods

 CVertexArrayRangeNVidia (CDriverGL *drv)
void enable ()
 active this VertexArrayRange as the current vertex array range used. no-op if already setup. More...

void disable ()
 disable this VertexArrayRange. _Driver->_CurrentVertexArrayRange= NULL;. More...

void freeVB (void *ptr)
 free a VB allocated with allocateVB. No-op if NULL. 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

bool allocated () const
 true if allocated. More...

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


Private Attributes

void * _VertexArrayPtr
uint32 _VertexArraySize
NLMISC::CHeapMemory _HeapMemory

Detailed Description

Work only if ARRAY_RANGE_NV is enabled.

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

Definition at line 126 of file driver_opengl_vertex_buffer_hard.h.


Constructor & Destructor Documentation

NL3D::CVertexArrayRangeNVidia::CVertexArrayRangeNVidia CDriverGL   drv
 

Definition at line 94 of file driver_opengl_vertex_buffer_hard.cpp.

References _VertexArrayPtr, and _VertexArraySize.


Member Function Documentation

bool NL3D::CVertexArrayRangeNVidia::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 102 of file driver_opengl_vertex_buffer_hard.cpp.

References _HeapMemory, _VertexArrayPtr, _VertexArraySize, NLMISC::CHeapMemory::initHeap, and nlassert.

bool NL3D::CVertexArrayRangeNVidia::allocated   const [inline, private]
 

true if allocated.

Definition at line 164 of file driver_opengl_vertex_buffer_hard.h.

References _VertexArrayPtr.

Referenced by createVBHardGL.

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

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

Definition at line 206 of file driver_opengl_vertex_buffer_hard.cpp.

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

Referenced by createVBHardGL.

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

create a IVertexBufferHardGL.

Implements NL3D::IVertexArrayRange.

Definition at line 220 of file driver_opengl_vertex_buffer_hard.cpp.

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

void NL3D::CVertexArrayRangeNVidia::disable  
 

disable this VertexArrayRange. _Driver->_CurrentVertexArrayRange= NULL;.

Definition at line 192 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::IVertexArrayRange::_Driver.

void NL3D::CVertexArrayRangeNVidia::enable  
 

active this VertexArrayRange as the current vertex array range used. no-op if already setup.

Definition at line 167 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::IVertexArrayRange::_Driver, _VertexArrayPtr, _VertexArraySize, and nglVertexArrayRangeNV.

void NL3D::CVertexArrayRangeNVidia::free   [virtual]
 

free this space.

Implements NL3D::IVertexArrayRange.

Definition at line 145 of file driver_opengl_vertex_buffer_hard.cpp.

References _HeapMemory, _VertexArrayPtr, _VertexArraySize, and NLMISC::CHeapMemory::reset.

void NL3D::CVertexArrayRangeNVidia::freeVB void *    ptr
 

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

Definition at line 213 of file driver_opengl_vertex_buffer_hard.cpp.

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

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

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

Implements NL3D::IVertexArrayRange.

Definition at line 138 of file driver_opengl_vertex_buffer_hard.cpp.

References _VertexArraySize.


Member Data Documentation

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

Definition at line 161 of file driver_opengl_vertex_buffer_hard.h.

Referenced by allocate, allocateVB, free, and freeVB.

void* NL3D::CVertexArrayRangeNVidia::_VertexArrayPtr [private]
 

Definition at line 157 of file driver_opengl_vertex_buffer_hard.h.

Referenced by allocate, allocated, CVertexArrayRangeNVidia, enable, and free.

uint32 NL3D::CVertexArrayRangeNVidia::_VertexArraySize [private]
 

Definition at line 158 of file driver_opengl_vertex_buffer_hard.h.

Referenced by allocate, CVertexArrayRangeNVidia, enable, free, and sizeAllocated.


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