Work only if ARRAY_RANGE_NV is enabled. More...
#include <driver_opengl_vertex_buffer_hard.h>
Inherits NL3D::IVertexBufferHardGL.
Public Member Functions | |
| CVertexBufferHardGLNVidia (CDriverGL *drv, CVertexBuffer *vb) | |
| virtual | ~CVertexBufferHardGLNVidia () |
| void | initGL (CVertexArrayRangeNVidia *var, void *vertexPtr) |
| bool | isFenceSet () const |
| void | setFence () |
| void | finishFence () |
| void | testFence () |
| bool | getLockHintStatic () const |
Implementation | |
| virtual void * | lock () |
| virtual void | unlock () |
| virtual void | unlock (uint start, uint end) |
| virtual void * | getPointer () |
| virtual void | enable () |
| virtual void | disable () |
| virtual void | lockHintStatic (bool staticLock) |
| virtual void | setupVBInfos (CVertexBufferInfo &vb) |
Private Attributes | |
| CVertexArrayRangeNVidia * | _VertexArrayRange |
| void * | _VertexPtr |
| GLuint | _Fence |
| bool | _FenceSet |
| bool | _LockHintStatic |
Work only if ARRAY_RANGE_NV is enabled.
Definition at line 184 of file driver_opengl_vertex_buffer_hard.h.
| NL3D::CVertexBufferHardGLNVidia::CVertexBufferHardGLNVidia | ( | CDriverGL * | drv, | |
| CVertexBuffer * | vb | |||
| ) |
Definition at line 269 of file driver_opengl_vertex_buffer_hard.cpp.
References _FenceSet, _LockHintStatic, _VertexArrayRange, _VertexPtr, NL3D::IVertexBufferHardGL::GPURenderingAfterFence, H_AUTO_OGL, NL3D::IVertexBufferHardGL::NVidiaVB, and NL3D::IVertexBufferHardGL::VBType.
| NL3D::CVertexBufferHardGLNVidia::~CVertexBufferHardGLNVidia | ( | ) | [virtual] |
Definition at line 287 of file driver_opengl_vertex_buffer_hard.cpp.
References _Fence, _VertexArrayRange, _VertexPtr, finishFence(), NL3D::CVertexArrayRangeNVidia::freeVB(), H_AUTO_OGL, and nglDeleteFencesNV.
| void NL3D::CVertexBufferHardGLNVidia::disable | ( | ) | [virtual] |
Implements NL3D::IVertexBufferHardGL.
Definition at line 390 of file driver_opengl_vertex_buffer_hard.cpp.
References NL3D::CDriverGL::_CurrentVertexBufferHard, NL3D::IVertexBufferHardGL::_Driver, _VertexArrayRange, NL3D::CVertexArrayRangeNVidia::disable(), H_AUTO_OGL, and nlassert.
| void NL3D::CVertexBufferHardGLNVidia::enable | ( | ) | [virtual] |
Implements NL3D::IVertexBufferHardGL.
Definition at line 377 of file driver_opengl_vertex_buffer_hard.cpp.
References NL3D::CDriverGL::_CurrentVertexBufferHard, NL3D::IVertexBufferHardGL::_Driver, _VertexArrayRange, NL3D::CVertexArrayRangeNVidia::enable(), H_AUTO_OGL, and nlassert.
| void NL3D::CVertexBufferHardGLNVidia::finishFence | ( | ) |
Definition at line 427 of file driver_opengl_vertex_buffer_hard.cpp.
References _Fence, _FenceSet, H_AUTO_OGL, isFenceSet(), and nglFinishFenceNV.
Referenced by lock(), and ~CVertexBufferHardGLNVidia().
| bool NL3D::CVertexBufferHardGLNVidia::getLockHintStatic | ( | ) | const [inline] |
Definition at line 218 of file driver_opengl_vertex_buffer_hard.h.
References _LockHintStatic.
Referenced by NL3D::CDriverGL::fenceOnCurVBHardIfNeeded().
| void * NL3D::CVertexBufferHardGLNVidia::getPointer | ( | void | ) | [virtual] |
Implements NL3D::IVertexBufferHardGL.
Definition at line 370 of file driver_opengl_vertex_buffer_hard.cpp.
References _VertexPtr, and H_AUTO_OGL.
| void NL3D::CVertexBufferHardGLNVidia::initGL | ( | CVertexArrayRangeNVidia * | var, | |
| void * | vertexPtr | |||
| ) |
Definition at line 307 of file driver_opengl_vertex_buffer_hard.cpp.
References _Fence, _VertexArrayRange, _VertexPtr, H_AUTO_OGL, and nglGenFencesNV.
Referenced by NL3D::CVertexArrayRangeNVidia::createVBHardGL().
| bool NL3D::CVertexBufferHardGLNVidia::isFenceSet | ( | ) | const [inline] |
Definition at line 210 of file driver_opengl_vertex_buffer_hard.h.
References _FenceSet.
Referenced by finishFence(), NL3D::CDriverGL::swapBuffers(), and testFence().
| void * NL3D::CVertexBufferHardGLNVidia::lock | ( | ) | [virtual] |
Implements NL3D::IVertexBufferHardGL.
Definition at line 317 of file driver_opengl_vertex_buffer_hard.cpp.
References NL3D::IVertexBufferHardGL::_Driver, _LockHintStatic, NL3D::CDriverGL::_VBHardProfiling, _VertexPtr, NL3D::CDriverGL::appendVBHardLockProfile(), finishFence(), NLMISC::CTime::getPerformanceTime(), NL3D::IVertexBufferHardGL::GPURenderingAfterFence, H_AUTO_OGL, setFence(), and NL3D::IVertexBufferHardGL::VB.
| void NL3D::CVertexBufferHardGLNVidia::lockHintStatic | ( | bool | staticLock | ) | [virtual] |
Definition at line 402 of file driver_opengl_vertex_buffer_hard.cpp.
References _LockHintStatic, and H_AUTO_OGL.
| void NL3D::CVertexBufferHardGLNVidia::setFence | ( | ) |
Definition at line 418 of file driver_opengl_vertex_buffer_hard.cpp.
References _Fence, _FenceSet, GL_ALL_COMPLETED_NV, H_AUTO_OGL, and nglSetFenceNV.
Referenced by NL3D::CDriverGL::fenceOnCurVBHardIfNeeded(), and lock().
| void NL3D::CVertexBufferHardGLNVidia::setupVBInfos | ( | CVertexBufferInfo & | vb | ) | [virtual] |
Implements NL3D::IVertexBufferHardGL.
Definition at line 411 of file driver_opengl_vertex_buffer_hard.cpp.
References H_AUTO_OGL, NL3D::CVertexBufferInfo::HwNVIDIA, and NL3D::CVertexBufferInfo::VBMode.
| void NL3D::CVertexBufferHardGLNVidia::testFence | ( | ) |
Definition at line 439 of file driver_opengl_vertex_buffer_hard.cpp.
References _Fence, _FenceSet, GLboolean(), H_AUTO_OGL, isFenceSet(), and nglTestFenceNV.
Referenced by NL3D::CDriverGL::swapBuffers().
Implements NL3D::IVertexBufferHardGL.
Definition at line 362 of file driver_opengl_vertex_buffer_hard.cpp.
References H_AUTO_OGL.
| void NL3D::CVertexBufferHardGLNVidia::unlock | ( | ) | [virtual] |
Implements NL3D::IVertexBufferHardGL.
Definition at line 355 of file driver_opengl_vertex_buffer_hard.cpp.
References H_AUTO_OGL.
GLuint NL3D::CVertexBufferHardGLNVidia::_Fence [private] |
Definition at line 226 of file driver_opengl_vertex_buffer_hard.h.
Referenced by finishFence(), initGL(), setFence(), testFence(), and ~CVertexBufferHardGLNVidia().
Definition at line 228 of file driver_opengl_vertex_buffer_hard.h.
Referenced by CVertexBufferHardGLNVidia(), finishFence(), isFenceSet(), setFence(), and testFence().
Definition at line 230 of file driver_opengl_vertex_buffer_hard.h.
Referenced by CVertexBufferHardGLNVidia(), getLockHintStatic(), lock(), and lockHintStatic().
Definition at line 222 of file driver_opengl_vertex_buffer_hard.h.
Referenced by CVertexBufferHardGLNVidia(), disable(), enable(), initGL(), and ~CVertexBufferHardGLNVidia().
void* NL3D::CVertexBufferHardGLNVidia::_VertexPtr [private] |
Definition at line 223 of file driver_opengl_vertex_buffer_hard.h.
Referenced by CVertexBufferHardGLNVidia(), getPointer(), initGL(), lock(), and ~CVertexBufferHardGLNVidia().
1.6.1