#include <driver_opengl_vertex_buffer_hard.h>
Inheritance diagram for NL3D::CVertexBufferHardGLMapObjectATI:
Definition at line 401 of file driver_opengl_vertex_buffer_hard.h.
Public Types | |
enum | TVBType { NVidiaVB, ATIVB, ATIMapObjectVB, UnknownVB } |
Public Member Functions | |
CVertexBufferHardGLMapObjectATI (CDriverGL *drv) | |
uint | getATIValueOffset (uint value) |
uint | getATIVertexObjectId () const |
get Handle of the ATI buffer. | |
const sint & | getRefCount () const |
void | initFormat (uint16 vertexFormat, const uint8 *typeArray, uint32 numVertices, const uint8 *uvRouting) |
void | initGL (CVertexArrayRangeMapObjectATI *var, uint vertexObjectID) |
virtual | ~CVertexBufferHardGLMapObjectATI () |
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 () |
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 | |
CVertexArrayRangeMapObjectATI * | _VertexArrayRange |
uint | _VertexObjectId |
void * | _VertexPtr |
Friends | |
struct | CPtrInfo |
|
Definition at line 95 of file driver_opengl_vertex_buffer_hard.h.
00095 { NVidiaVB, ATIVB, ATIMapObjectVB, UnknownVB }; |
|
Definition at line 812 of file driver_opengl_vertex_buffer_hard.cpp.
00812 : IVertexBufferHardGL(drv), 00813 _VertexObjectId(0), 00814 _VertexPtr(NULL), 00815 _VertexArrayRange(NULL) 00816 { 00817 // Flag our type 00818 VBType = ATIMapObjectVB; 00819 } |
|
Definition at line 822 of file driver_opengl_vertex_buffer_hard.cpp. References nglDeleteObjectBufferATI.
00823 { 00824 if (_VertexObjectId) nglDeleteObjectBufferATI(_VertexObjectId); 00825 } |
|
Implements NL3D::IVertexBufferHardGL. Definition at line 862 of file driver_opengl_vertex_buffer_hard.cpp. References NL3D::CDriverGL::_CurrentVertexBufferHard.
|
|
Implements NL3D::IVertexBufferHardGL. Definition at line 851 of file driver_opengl_vertex_buffer_hard.cpp. References NL3D::CDriverGL::_CurrentVertexBufferHard.
|
|
Definition at line 425 of file driver_opengl_vertex_buffer_hard.h. References NL3D::IVertexBufferHard::getValueOff(), uint, and value. Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().
00426 { 00427 return (uint) getValueOff (value); 00428 } |
|
get Handle of the ATI buffer.
Definition at line 431 of file driver_opengl_vertex_buffer_hard.h. References uint. Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().
00431 { return _VertexObjectId;} |
|
Definition at line 120 of file vertex_buffer_hard.h. Referenced by NL3D::CDriverGL::profileVBHardAllocation().
00120 {return _Name;} |
|
|
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 } |
|
Definition at line 70 of file smart_ptr.h. References NLMISC::CRefCount::crefs, and sint.
00071 { 00072 return crefs; 00073 } |
|
Definition at line 57 of file vertex_buffer_hard.h. References uint8. Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().
00057 { return _UVRouting; } |
|
NB: the order of those methods follow the order in memory of the elements:
Definition at line 82 of file vertex_buffer_hard.h. References nlassert, sint, uint, and value. Referenced by getATIValueOffset(), NL3D::CVertexBufferHardGLATI::getATIValueOffset(), NL3D::CVertexBufferHardGLNVidia::getNVidiaValueEx(), NL3D::CNearVertexBufferInfo::setupVertexBufferHard(), and NL3D::CFarVertexBufferInfo::setupVertexBufferHard().
|
|
Definition at line 55 of file vertex_buffer_hard.h. References nlassert, uint, and value. Referenced by NL3D::CVertexBufferInfo::setupVertexBufferHard().
|
|
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); } |
|
|
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 } |
|
setup ptrs allocated by createVBHard() Definition at line 873 of file driver_opengl_vertex_buffer_hard.cpp. References uint. Referenced by NL3D::CVertexArrayRangeMapObjectATI::createVBHardGL().
00874 { 00875 _VertexArrayRange = var; 00876 _VertexObjectId = vertexObjectID; 00877 } |
|
Lock the entire VertexBuffer. The returned buffer is a write only buffer. (undefined result if you read it). Write note:
Implements NL3D::IVertexBufferHard. Definition at line 828 of file driver_opengl_vertex_buffer_hard.cpp. References nglMapObjectBufferATI.
00829 { 00830 if (_VertexPtr) return _VertexPtr; // already locked 00831 if (!_VertexObjectId) return NULL; 00832 _VertexPtr = nglMapObjectBufferATI(_VertexObjectId); 00833 return _VertexPtr; 00834 } |
|
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 880 of file driver_opengl_vertex_buffer_hard.cpp.
00881 {
00882 // no op.
00883 }
|
|
Definition at line 96 of file vertex_buffer_hard.cpp.
00097 { 00098 _Name= name; 00099 } |
|
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
Implements NL3D::IVertexBufferHard. Definition at line 845 of file driver_opengl_vertex_buffer_hard.cpp. References uint, and unlock().
00846 { 00847 unlock(); // can't do a lock on a range of the vb.. 00848 } |
|
UnLock the VertexBuffer so the Gfx card can now use it. Implements NL3D::IVertexBufferHard. Definition at line 837 of file driver_opengl_vertex_buffer_hard.cpp. References nglUnmapObjectBufferATI. Referenced by unlock().
00838 { 00839 if (!_VertexObjectId || !_VertexPtr) return; 00840 nglUnmapObjectBufferATI(_VertexObjectId); 00841 _VertexPtr = NULL; 00842 } |
|
Definition at line 67 of file smart_ptr.h. |
|
Definition at line 111 of file driver_opengl_vertex_buffer_hard.h. |
|
Definition at line 134 of file vertex_buffer_hard.h. |
|
Definition at line 137 of file vertex_buffer_hard.h. |
|
Definition at line 146 of file vertex_buffer_hard.h. |
|
Definition at line 140 of file vertex_buffer_hard.h. |
|
Definition at line 143 of file vertex_buffer_hard.h. |
|
Definition at line 128 of file vertex_buffer_hard.h. |
|
Definition at line 127 of file vertex_buffer_hard.h. |
|
Definition at line 153 of file vertex_buffer_hard.h. |
|
Definition at line 438 of file driver_opengl_vertex_buffer_hard.h. |
|
Definition at line 436 of file driver_opengl_vertex_buffer_hard.h. |
|
Definition at line 437 of file driver_opengl_vertex_buffer_hard.h. |
|
Definition at line 131 of file vertex_buffer_hard.h. |
|
Definition at line 79 of file smart_ptr.h. Referenced by NLMISC::CRefCount::CRefCount(), NLMISC::CRefCount::getRefCount(), and NLMISC::CRefCount::~CRefCount(). |
|
|
Referenced by NLMISC::CRefCount::CRefCount(). |
|
Definition at line 80 of file smart_ptr.h. Referenced by NLMISC::CRefCount::CRefCount(), and NLMISC::CRefCount::~CRefCount(). |
|
Definition at line 97 of file driver_opengl_vertex_buffer_hard.h. Referenced by NL3D::CDriverGL::fenceOnCurVBHardIfNeeded(), NL3D::IVertexBufferHardGL::IVertexBufferHardGL(), and NL3D::CVertexBufferInfo::setupVertexBufferHard(). |