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

Work only if ARRAY_RANGE_NV is enabled. More...

#include <driver_opengl_vertex_buffer_hard.h>

Inheritance diagram for NL3D::CVertexBufferHardGLNVidia:

NL3D::IVertexBufferHardGL NL3D::IVertexBufferHard NLMISC::CRefCount List of all members.

Public Methods

 CVertexBufferHardGLNVidia (CDriverGL *drv)
virtual ~CVertexBufferHardGLNVidia ()
void initGL (CVertexArrayRangeNVidia *var, void *vertexPtr)
bool isFenceSet () const
void setFence ()
void finishFence ()
void * getNVidiaValueEx (uint value)
Implementation
virtual void * lock ()
 Lock the entire VertexBuffer. More...

virtual void unlock ()
 UnLock the VertexBuffer so the Gfx card can now use it. More...

virtual void unlock (uint startVert, uint endVert)
 Same as unlock() but give hints to driver on vertices that have changed. More...

virtual void enable ()
virtual void disable ()

Private Attributes

CVertexArrayRangeNVidia_VertexArrayRange
void * _VertexPtr
GLuint _Fence
bool _FenceSet

Detailed Description

Work only if ARRAY_RANGE_NV is enabled.

Definition at line 174 of file driver_opengl_vertex_buffer_hard.h.


Constructor & Destructor Documentation

NL3D::CVertexBufferHardGLNVidia::CVertexBufferHardGLNVidia CDriverGL   drv
 

Definition at line 260 of file driver_opengl_vertex_buffer_hard.cpp.

References _FenceSet, _VertexArrayRange, _VertexPtr, NL3D::IVertexBufferHardGL::GPURenderingAfterFence, and NL3D::IVertexBufferHardGL::NVidiaVertexBufferHard.

NL3D::CVertexBufferHardGLNVidia::~CVertexBufferHardGLNVidia   [virtual]
 

Definition at line 274 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _VertexArrayRange, _VertexPtr, finishFence, and nglDeleteFencesNV.


Member Function Documentation

void NL3D::CVertexBufferHardGLNVidia::disable   [virtual]
 

Implements NL3D::IVertexBufferHardGL.

Definition at line 350 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::IVertexBufferHardGL::_Driver, _VertexArrayRange, and nlassert.

void NL3D::CVertexBufferHardGLNVidia::enable   [virtual]
 

Implements NL3D::IVertexBufferHardGL.

Definition at line 338 of file driver_opengl_vertex_buffer_hard.cpp.

References NL3D::IVertexBufferHardGL::_Driver, _VertexArrayRange, and nlassert.

void NL3D::CVertexBufferHardGLNVidia::finishFence  
 

Definition at line 372 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _FenceSet, isFenceSet, and nglFinishFenceNV.

Referenced by lock, and ~CVertexBufferHardGLNVidia.

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

Definition at line 205 of file driver_opengl_vertex_buffer_hard.h.

References nlassert, and value.

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

Definition at line 293 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _VertexArrayRange, _VertexPtr, and nglGenFencesNV.

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

Definition at line 197 of file driver_opengl_vertex_buffer_hard.h.

Referenced by finishFence, and setFence.

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 302 of file driver_opengl_vertex_buffer_hard.cpp.

References _VertexPtr, finishFence, NL3D::IVertexBufferHardGL::GPURenderingAfterFence, and setFence.

void NL3D::CVertexBufferHardGLNVidia::setFence  
 

Definition at line 362 of file driver_opengl_vertex_buffer_hard.cpp.

References _Fence, _FenceSet, GL_ALL_COMPLETED_NV, isFenceSet, and nglSetFenceNV.

Referenced by lock.

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 331 of file driver_opengl_vertex_buffer_hard.cpp.

void NL3D::CVertexBufferHardGLNVidia::unlock   [virtual]
 

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

Implements NL3D::IVertexBufferHard.

Definition at line 325 of file driver_opengl_vertex_buffer_hard.cpp.


Member Data Documentation

GLuint NL3D::CVertexBufferHardGLNVidia::_Fence [private]
 

Definition at line 218 of file driver_opengl_vertex_buffer_hard.h.

Referenced by finishFence, initGL, setFence, and ~CVertexBufferHardGLNVidia.

bool NL3D::CVertexBufferHardGLNVidia::_FenceSet [private]
 

Definition at line 220 of file driver_opengl_vertex_buffer_hard.h.

Referenced by CVertexBufferHardGLNVidia, finishFence, and setFence.

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

Definition at line 214 of file driver_opengl_vertex_buffer_hard.h.

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

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

Definition at line 215 of file driver_opengl_vertex_buffer_hard.h.

Referenced by CVertexBufferHardGLNVidia, initGL, lock, and ~CVertexBufferHardGLNVidia.


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