NL3D::CVertexBufferHardGLNVidia Class Reference

#include <driver_opengl_vertex_buffer_hard.h>

Inheritance diagram for NL3D::CVertexBufferHardGLNVidia:

NL3D::IVertexBufferHardGL NL3D::IVertexBufferHard NLMISC::CRefCount

Detailed Description

Work only if ARRAY_RANGE_NV is enabled.

Definition at line 175 of file driver_opengl_vertex_buffer_hard.h.

Public Types

enum  TVBType { NVidiaVB, ATIVB, ATIMapObjectVB, UnknownVB }

Public Member Functions

 CVertexBufferHardGLNVidia (CDriverGL *drv)
void finishFence ()
bool getLockHintStatic () const
void * getNVidiaValueEx (uint value)
const sintgetRefCount () const
void initFormat (uint16 vertexFormat, const uint8 *typeArray, uint32 numVertices, const uint8 *uvRouting)
void initGL (CVertexArrayRangeNVidia *var, void *vertexPtr)
bool isFenceSet () const
void setFence ()
void testFence ()
virtual ~CVertexBufferHardGLNVidia ()
Profiling. Each VBHard has a name to profile its lock.
const std::string & getName () const
void setName (const std::string &name)
Misc Get.
uint32 getNumVertices (void) const
uint8 getNumWeight () const
const uint8getUVRouting () const
CVertexBuffer::TType getValueType (uint value) const
uint16 getVertexFormat (void) const
uint16 getVertexSize (void) const
Get component offsets.
sint getValueOff (uint value) const
Profiling. Each VBHard has a name to profile its lock.
const std::string & getName () const
void setName (const std::string &name)
Misc Get.
uint32 getNumVertices (void) const
uint8 getNumWeight () const
const uint8getUVRouting () const
CVertexBuffer::TType getValueType (uint value) const
uint16 getVertexFormat (void) const
uint16 getVertexSize (void) const
Get component offsets.
sint getValueOff (uint value) const
Implementation
virtual void disable ()
virtual void enable ()
virtual void * lock ()
virtual void lockHintStatic (bool staticLock)
virtual void unlock (uint startVert, uint endVert)
virtual void unlock ()
Profiling. Each VBHard has a name to profile its lock.
const std::string & getName () const
void setName (const std::string &name)
Misc Get.
uint32 getNumVertices (void) const
uint8 getNumWeight () const
const uint8getUVRouting () const
CVertexBuffer::TType getValueType (uint value) const
uint16 getVertexFormat (void) const
uint16 getVertexSize (void) const
Get component offsets.
sint getValueOff (uint value) const
Profiling. Each VBHard has a name to profile its lock.
const std::string & getName () const
void setName (const std::string &name)
Misc Get.
uint32 getNumVertices (void) const
uint8 getNumWeight () const
const uint8getUVRouting () const
CVertexBuffer::TType getValueType (uint value) const
uint16 getVertexFormat (void) const
uint16 getVertexSize (void) const
Get component offsets.
sint getValueOff (uint value) const
Profiling. Each VBHard has a name to profile its lock.
const std::string & getName () const
void setName (const std::string &name)
Misc Get.
uint32 getNumVertices (void) const
uint8 getNumWeight () const
const uint8getUVRouting () const
CVertexBuffer::TType getValueType (uint value) const
uint16 getVertexFormat (void) const
uint16 getVertexSize (void) const
Get component offsets.
sint getValueOff (uint value) const

Data Fields

sint crefs
bool GPURenderingAfterFence
CPtrInfo * pinfo
TVBType VBType

Static Public Attributes

CPtrInfo NullPtrInfo

Protected Attributes

CDriverGL_Driver
uint16 _Flags
uint16 _InternalFlags
std::string _Name
uint32 _NbVerts
uint16 _Offset [CVertexBuffer::NumValue]
uint8 _Pad
uint8 _Type [CVertexBuffer::NumValue]
uint8 _UVRouting [CVertexBuffer::MaxStage]
uint16 _VertexSize

Private Attributes

GLuint _Fence
bool _FenceSet
bool _LockHintStatic
CVertexArrayRangeNVidia_VertexArrayRange
void * _VertexPtr

Friends

struct CPtrInfo


Member Enumeration Documentation

enum NL3D::IVertexBufferHardGL::TVBType [inherited]
 

Enumeration values:
NVidiaVB 
ATIVB 
ATIMapObjectVB 
UnknownVB 

Definition at line 95 of file driver_opengl_vertex_buffer_hard.h.


Constructor & Destructor Documentation

NL3D::CVertexBufferHardGLNVidia::CVertexBufferHardGLNVidia CDriverGL drv  ) 
 

Definition at line 259 of file driver_opengl_vertex_buffer_hard.cpp.

References _FenceSet, _LockHintStatic, _VertexArrayRange, and _VertexPtr.

00259                                                                    : IVertexBufferHardGL(drv)
00260 {
00261         _VertexArrayRange= NULL;
00262         _VertexPtr= NULL;
00263 
00264         GPURenderingAfterFence= false;
00265         _FenceSet= false;
00266 
00267         // Flag our type
00268         VBType = NVidiaVB;      
00269 
00270         // default: dynamic Loick
00271         _LockHintStatic= false;
00272 }

NL3D::CVertexBufferHardGLNVidia::~CVertexBufferHardGLNVidia  )  [virtual]
 

Definition at line 276 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _VertexArrayRange, _VertexPtr, finishFence(), NL3D::CVertexArrayRangeNVidia::freeVB(), and nglDeleteFencesNV.

00277 {
00278         if(_VertexArrayRange)
00279         {
00280                 // Destroy Fence.
00281                 // First wait for completion.
00282                 finishFence();
00283                 // then delete.
00284                 nglDeleteFencesNV(1, &_Fence);
00285 
00286                 // Then free the VAR.
00287                 _VertexArrayRange->freeVB(_VertexPtr);
00288                 _VertexPtr= NULL;
00289                 _VertexArrayRange= NULL;
00290         }
00291 }


Member Function Documentation

void NL3D::CVertexBufferHardGLNVidia::disable  )  [virtual]
 

Implements NL3D::IVertexBufferHardGL.

Definition at line 366 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::CDriverGL::_CurrentVertexBufferHard, _VertexArrayRange, NL3D::CVertexArrayRangeNVidia::disable(), and nlassert.

00367 {
00368         if(_Driver->_CurrentVertexBufferHard != NULL)
00369         {
00370                 nlassert(_VertexArrayRange);
00371                 _VertexArrayRange->disable();
00372                 _Driver->_CurrentVertexBufferHard= NULL;
00373         }
00374 }

void NL3D::CVertexBufferHardGLNVidia::enable  )  [virtual]
 

Implements NL3D::IVertexBufferHardGL.

Definition at line 354 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::CDriverGL::_CurrentVertexBufferHard, _VertexArrayRange, NL3D::CVertexArrayRangeNVidia::enable(), and nlassert.

00355 {
00356         if(_Driver->_CurrentVertexBufferHard != this)
00357         {
00358                 nlassert(_VertexArrayRange);
00359                 _VertexArrayRange->enable();
00360                 _Driver->_CurrentVertexBufferHard= this;
00361         }
00362 }

void NL3D::CVertexBufferHardGLNVidia::finishFence  ) 
 

Definition at line 392 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _FenceSet, isFenceSet(), and nglFinishFenceNV.

Referenced by lock(), and ~CVertexBufferHardGLNVidia().

00393 {
00394         if(isFenceSet())
00395         {
00396                 // Stall CPU while the fence command is not reached in the GPU command stream.
00397                 nglFinishFenceNV(_Fence);
00398                 _FenceSet= false;
00399         }
00400 }

bool NL3D::CVertexBufferHardGLNVidia::getLockHintStatic  )  const [inline]
 

Definition at line 207 of file driver_opengl_vertex_buffer_hard.h.

References _LockHintStatic.

Referenced by NL3D::CDriverGL::fenceOnCurVBHardIfNeeded().

00207 {return _LockHintStatic;}

const std::string& NL3D::IVertexBufferHard::getName void   )  const [inline, inherited]
 

Definition at line 120 of file vertex_buffer_hard.h.

Referenced by NL3D::CDriverGL::profileVBHardAllocation().

00120 {return _Name;}

uint32 NL3D::IVertexBufferHard::getNumVertices void   )  const [inline, inherited]
 

Definition at line 54 of file vertex_buffer_hard.h.

References uint32.

Referenced by NL3D::CDriverGL::activeVertexBufferHard(), NL3D::CVertexArrayRangeMapObjectATI::createVBHardGL(), NL3D::CVertexArrayRangeATI::createVBHardGL(), NL3D::CVertexArrayRangeNVidia::createVBHardGL(), NL3D::CDriverGL::profileVBHardAllocation(), NL3D::CNearVertexBufferInfo::setupVertexBufferHard(), NL3D::CFarVertexBufferInfo::setupVertexBufferHard(), NL3D::CVertexBufferInfo::setupVertexBufferHard(), and NL3D::CVertexBufferHardGLATI::unlock().

00054 {return(_NbVerts);}

uint8 NL3D::IVertexBufferHard::getNumWeight  )  const [inherited]
 

Definition at line 76 of file vertex_buffer_hard.cpp.

References uint8.

Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().

00077 {
00078         // Num weight
00079         switch (_Type[CVertexBuffer::Weight])
00080         {
00081         case CVertexBuffer::Float1:
00082                 return 1;
00083         case CVertexBuffer::Float2:
00084                 return 2;
00085         case CVertexBuffer::Float3:
00086                 return 3;
00087         case CVertexBuffer::Float4:
00088                 return 4;
00089         }
00090 
00091         // No weight
00092         return 0;
00093 }

void* NL3D::CVertexBufferHardGLNVidia::getNVidiaValueEx uint  value  )  [inline]
 

Definition at line 210 of file driver_opengl_vertex_buffer_hard.h.

References _VertexPtr, NL3D::IVertexBufferHard::getValueOff(), nlassert, uint, uint8, and value.

Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().

00211         {
00212                 nlassert(_VertexPtr);
00213                 return (uint8*)_VertexPtr + getValueOff (value);
00214         }

const sint& NLMISC::CRefCount::getRefCount  )  const [inline, inherited]
 

Definition at line 70 of file smart_ptr.h.

References NLMISC::CRefCount::crefs, and sint.

00071         {
00072                 return  crefs;
00073         }

const uint8* NL3D::IVertexBufferHard::getUVRouting  )  const [inline, inherited]
 

Definition at line 57 of file vertex_buffer_hard.h.

References uint8.

Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().

00057 { return _UVRouting; }

sint NL3D::IVertexBufferHard::getValueOff uint  value  )  const [inline, inherited]
 

NB: the order of those methods follow the order in memory of the elements:

  • VertexCoord
  • NormalCoord
  • TexCoord
  • Color
  • Specular
  • Weight
  • PaletteSkin NB: same order as in CVertexBuffer.

Definition at line 82 of file vertex_buffer_hard.h.

References nlassert, sint, uint, and value.

Referenced by NL3D::CVertexBufferHardGLMapObjectATI::getATIValueOffset(), NL3D::CVertexBufferHardGLATI::getATIValueOffset(), getNVidiaValueEx(), NL3D::CNearVertexBufferInfo::setupVertexBufferHard(), and NL3D::CFarVertexBufferInfo::setupVertexBufferHard().

00082 {nlassert(_Flags & (1<<value)); return _Offset[value];}

CVertexBuffer::TType NL3D::IVertexBufferHard::getValueType uint  value  )  const [inline, inherited]
 

Definition at line 55 of file vertex_buffer_hard.h.

References nlassert, uint, and value.

Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().

00055 { nlassert (value<CVertexBuffer::NumValue); return((CVertexBuffer::TType)_Type[value]); }

uint16 NL3D::IVertexBufferHard::getVertexFormat void   )  const [inline, inherited]
 

Definition at line 52 of file vertex_buffer_hard.h.

References uint16.

Referenced by NL3D::CDriverGL::activeVertexBufferHard(), NL3D::CNearVertexBufferInfo::setupVertexBufferHard(), NL3D::CFarVertexBufferInfo::setupVertexBufferHard(), and NL3D::CVertexBufferInfo::setupVertexBufferHard().

00052 { return(_Flags); }

uint16 NL3D::IVertexBufferHard::getVertexSize void   )  const [inline, inherited]
 

Definition at line 53 of file vertex_buffer_hard.h.

References uint16.

Referenced by NL3D::CMeshMRMGeom::applyGeomorph(), NL3D::CVertexArrayRangeMapObjectATI::createVBHardGL(), NL3D::CVertexArrayRangeATI::createVBHardGL(), NL3D::CVertexArrayRangeNVidia::createVBHardGL(), NL3D::CDriverGL::profileVBHardAllocation(), NL3D::CNearVertexBufferInfo::setupVertexBufferHard(), NL3D::CFarVertexBufferInfo::setupVertexBufferHard(), NL3D::CVertexBufferInfo::setupVertexBufferHard(), and NL3D::CVertexBufferHardGLATI::unlock().

00053 {return(_VertexSize);}

void NL3D::IVertexBufferHardGL::initFormat uint16  vertexFormat,
const uint8 typeArray,
uint32  numVertices,
const uint8 uvRouting
[inline, inherited]
 

Reimplemented from NL3D::IVertexBufferHard.

Definition at line 104 of file driver_opengl_vertex_buffer_hard.h.

References uint16, uint32, and uint8.

Referenced by NL3D::CVertexArrayRangeMapObjectATI::createVBHardGL(), NL3D::CVertexArrayRangeATI::createVBHardGL(), and NL3D::CVertexArrayRangeNVidia::createVBHardGL().

00105         {
00106                 IVertexBufferHard::initFormat(vertexFormat, typeArray, numVertices, uvRouting);
00107         }

void NL3D::CVertexBufferHardGLNVidia::initGL CVertexArrayRangeNVidia var,
void *  vertexPtr
 

Definition at line 295 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _VertexArrayRange, _VertexPtr, and nglGenFencesNV.

Referenced by NL3D::CVertexArrayRangeNVidia::createVBHardGL().

00296 {
00297         _VertexArrayRange= var;
00298         _VertexPtr= vertexPtr;
00299         nglGenFencesNV(1, &_Fence);
00300 }

bool NL3D::CVertexBufferHardGLNVidia::isFenceSet  )  const [inline]
 

Definition at line 199 of file driver_opengl_vertex_buffer_hard.h.

References _FenceSet.

Referenced by finishFence(), NL3D::CDriverGL::swapBuffers(), and testFence().

00199 {return _FenceSet;}

void * NL3D::CVertexBufferHardGLNVidia::lock  )  [virtual]
 

Lock the entire VertexBuffer. The returned buffer is a write only buffer. (undefined result if you read it). Write note:

  • for VRAM VertexBufferHard, you should write only one time, to init.
  • for AGP VertexBufferHard, you should write sequentially to take full advantage of the write combiners.
    Returns:
    the adress of the vertex 0. Use getVertexSize(), get*Off() ... to access any part of this VertexBuffer.

Implements NL3D::IVertexBufferHard.

Definition at line 304 of file driver_opengl_vertex_buffer_hard.cpp.

References _LockHintStatic, NL3D::CDriverGL::_VBHardProfiling, _VertexPtr, NL3D::CDriverGL::appendVBHardLockProfile(), finishFence(), setFence(), and NLMISC::TTicks.

00305 {
00306         // sync the 3d card with the system.
00307 
00308         // If the user lock an activated VBHard, after rendering some primitives, we must stall the CPU
00309         // Also always do this for Static Lock VBHard (because no setFence are inserted after rendering
00310         if(GPURenderingAfterFence || _LockHintStatic)
00311         {
00312                 // Set a new fence at the current position in the command stream, replacing the old one
00313                 setFence();
00314                 // And so the GPU has rendered all our primitives.
00315                 GPURenderingAfterFence= false;
00316         }
00317 
00318         // Lock Profile?
00319         TTicks  beforeLock;
00320         if(_Driver->_VBHardProfiling)
00321         {
00322                 beforeLock= CTime::getPerformanceTime();
00323         }
00324 
00325         // Ensure the GPU has finished with the current VBHard.
00326         finishFence();
00327 
00328         // Lock Profile?
00329         if(_Driver->_VBHardProfiling)
00330         {
00331                 TTicks  afterLock;
00332                 afterLock= CTime::getPerformanceTime();
00333                 _Driver->appendVBHardLockProfile(afterLock-beforeLock, this);
00334         }
00335 
00336         return _VertexPtr;
00337 }

void NL3D::CVertexBufferHardGLNVidia::lockHintStatic bool  staticLock  )  [virtual]
 

Indicate what kind of lock to be done on this VertexBuffer (whatever AGP or VRAM buffer) User should set to true if the VBHard is static: nevers change or very rarely. NVidia OpenGL implementation: "Static lock" are slower, but no fences are inserted after a render with this VVBHard, hence, no slowdown because 1/ of fence overhead insertion 2/ of NVidia swapBuffers() and fence issues on GeForce2 cards. Default is false

Implements NL3D::IVertexBufferHard.

Definition at line 377 of file driver_opengl_vertex_buffer_hard.cpp.

References _LockHintStatic.

00378 {
00379         // Store the flag.
00380         _LockHintStatic= staticLock;
00381 }

void NL3D::CVertexBufferHardGLNVidia::setFence  ) 
 

Definition at line 384 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _FenceSet, GL_ALL_COMPLETED_NV, and nglSetFenceNV.

Referenced by NL3D::CDriverGL::fenceOnCurVBHardIfNeeded(), and lock().

00385 {
00386         // NB: if the Fence was set and not finished, then the new one will KICK the old.
00387         nglSetFenceNV(_Fence, GL_ALL_COMPLETED_NV);
00388         _FenceSet= true;
00389 }

void NL3D::IVertexBufferHard::setName const std::string &  name  )  [inherited]
 

Definition at line 96 of file vertex_buffer_hard.cpp.

00097 {
00098         _Name= name;
00099 }

void NL3D::CVertexBufferHardGLNVidia::testFence  ) 
 

Definition at line 403 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _FenceSet, GLboolean(), isFenceSet(), and nglTestFenceNV.

Referenced by NL3D::CDriverGL::swapBuffers().

00404 {
00405         if(isFenceSet())
00406         {
00407                 // Don't stall the CPU
00408                 GLboolean       b= nglTestFenceNV(_Fence);
00409                 // if completed
00410                 if(b==GL_TRUE)
00411                         _FenceSet= false;
00412         }
00413 }

void NL3D::CVertexBufferHardGLNVidia::unlock uint  startVert,
uint  endVert
[virtual]
 

Same as unlock() but give hints to driver on vertices that have changed. Used by ATI-OpenGL drivers. NB: driver may still ignore this information, and so take into acount all vertices

Parameters:
startVert the fisrt vertex to update
endVert the last vertex (not included) to update => numVertices= vertEnd-vertBegin. Hence unlock() as the same effect as unlock(0, getNumVertices());

Implements NL3D::IVertexBufferHard.

Definition at line 347 of file driver_opengl_vertex_buffer_hard.cpp.

References uint.

00348 {
00349         // no op.
00350         // NB: start-end only usefull for ATI ext.
00351 }

void NL3D::CVertexBufferHardGLNVidia::unlock  )  [virtual]
 

UnLock the VertexBuffer so the Gfx card can now use it.

Implements NL3D::IVertexBufferHard.

Definition at line 341 of file driver_opengl_vertex_buffer_hard.cpp.

00342 {
00343         // no op.
00344 }


Friends And Related Function Documentation

friend struct CPtrInfo [friend, inherited]
 

Definition at line 67 of file smart_ptr.h.


Field Documentation

CDriverGL* NL3D::IVertexBufferHardGL::_Driver [protected, inherited]
 

Definition at line 111 of file driver_opengl_vertex_buffer_hard.h.

GLuint NL3D::CVertexBufferHardGLNVidia::_Fence [private]
 

Definition at line 223 of file driver_opengl_vertex_buffer_hard.h.

Referenced by finishFence(), initGL(), setFence(), testFence(), and ~CVertexBufferHardGLNVidia().

bool NL3D::CVertexBufferHardGLNVidia::_FenceSet [private]
 

Definition at line 225 of file driver_opengl_vertex_buffer_hard.h.

Referenced by CVertexBufferHardGLNVidia(), finishFence(), isFenceSet(), setFence(), and testFence().

uint16 NL3D::IVertexBufferHard::_Flags [protected, inherited]
 

Definition at line 134 of file vertex_buffer_hard.h.

uint16 NL3D::IVertexBufferHard::_InternalFlags [protected, inherited]
 

Definition at line 137 of file vertex_buffer_hard.h.

bool NL3D::CVertexBufferHardGLNVidia::_LockHintStatic [private]
 

Definition at line 227 of file driver_opengl_vertex_buffer_hard.h.

Referenced by CVertexBufferHardGLNVidia(), getLockHintStatic(), lock(), and lockHintStatic().

std::string NL3D::IVertexBufferHard::_Name [protected, inherited]
 

Definition at line 146 of file vertex_buffer_hard.h.

uint32 NL3D::IVertexBufferHard::_NbVerts [protected, inherited]
 

Definition at line 140 of file vertex_buffer_hard.h.

uint16 NL3D::IVertexBufferHard::_Offset[CVertexBuffer::NumValue] [protected, inherited]
 

Definition at line 143 of file vertex_buffer_hard.h.

uint8 NL3D::IVertexBufferHard::_Pad [protected, inherited]
 

Definition at line 128 of file vertex_buffer_hard.h.

uint8 NL3D::IVertexBufferHard::_Type[CVertexBuffer::NumValue] [protected, inherited]
 

Definition at line 127 of file vertex_buffer_hard.h.

uint8 NL3D::IVertexBufferHard::_UVRouting[CVertexBuffer::MaxStage] [protected, inherited]
 

Definition at line 153 of file vertex_buffer_hard.h.

CVertexArrayRangeNVidia* NL3D::CVertexBufferHardGLNVidia::_VertexArrayRange [private]
 

Definition at line 219 of file driver_opengl_vertex_buffer_hard.h.

Referenced by CVertexBufferHardGLNVidia(), disable(), enable(), initGL(), and ~CVertexBufferHardGLNVidia().

void* NL3D::CVertexBufferHardGLNVidia::_VertexPtr [private]
 

Definition at line 220 of file driver_opengl_vertex_buffer_hard.h.

Referenced by CVertexBufferHardGLNVidia(), getNVidiaValueEx(), initGL(), lock(), and ~CVertexBufferHardGLNVidia().

uint16 NL3D::IVertexBufferHard::_VertexSize [protected, inherited]
 

Definition at line 131 of file vertex_buffer_hard.h.

sint NLMISC::CRefCount::crefs [mutable, inherited]
 

Definition at line 79 of file smart_ptr.h.

Referenced by NLMISC::CRefCount::CRefCount(), NLMISC::CRefCount::getRefCount(), and NLMISC::CRefCount::~CRefCount().

bool NL3D::IVertexBufferHardGL::GPURenderingAfterFence [inherited]
 

Definition at line 99 of file driver_opengl_vertex_buffer_hard.h.

Referenced by NL3D::CDriverGL::fenceOnCurVBHardIfNeeded(), NL3D::IVertexBufferHardGL::IVertexBufferHardGL(), NL3D::CDriverGL::render(), NL3D::CDriverGL::renderOrientedQuads(), NL3D::CDriverGL::renderPoints(), NL3D::CDriverGL::renderQuads(), NL3D::CDriverGL::renderSimpleTriangles(), and NL3D::CDriverGL::renderTriangles().

CRefCount::CPtrInfo NLMISC::CRefCount::NullPtrInfo [static, inherited]
 

Referenced by NLMISC::CRefCount::CRefCount().

CPtrInfo* NLMISC::CRefCount::pinfo [mutable, inherited]
 

Definition at line 80 of file smart_ptr.h.

Referenced by NLMISC::CRefCount::CRefCount(), and NLMISC::CRefCount::~CRefCount().

TVBType NL3D::IVertexBufferHardGL::VBType [inherited]
 

Definition at line 97 of file driver_opengl_vertex_buffer_hard.h.

Referenced by NL3D::CDriverGL::fenceOnCurVBHardIfNeeded(), NL3D::IVertexBufferHardGL::IVertexBufferHardGL(), and NL3D::CVertexBufferInfo::setupVertexBufferHard().


The documentation for this class was generated from the following files:
Generated on Tue Mar 16 08:25:30 2004 for NeL by doxygen 1.3.6