#include <vertex_buffer_hard.h>
Inheritance diagram for NL3D::IVertexBufferHard:

Nevrax France
Definition at line 46 of file vertex_buffer_hard.h.
Public Member Functions | |
| const sint & | getRefCount () const |
Data Fields | |
| sint | crefs |
| CPtrInfo * | pinfo |
Static Public Attributes | |
| CPtrInfo | NullPtrInfo |
Protected Member Functions | |
| void | initFormat (uint16 vertexFormat, const uint8 *typeArray, uint32 numVertices, const uint8 *uvRouting) |
| IVertexBufferHard () | |
| Constructor: build good offfsets / size. | |
| virtual | ~IVertexBufferHard () |
Protected Attributes | |
| 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 |
Friends | |
| struct | CPtrInfo |
|
|
Constructor: build good offfsets / size.
Definition at line 149 of file vertex_buffer_hard.h.
00149 {}
|
|
|
Definition at line 150 of file vertex_buffer_hard.h.
00150 {}
|
|
|
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 NL3D::CVertexBufferHardGLMapObjectATI::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 in NL3D::IVertexBufferHardGL. Definition at line 36 of file vertex_buffer_hard.cpp. References uint, uint16, uint32, uint8, and value.
00037 {
00038 // _NbVerts.
00039 _NbVerts= numVertices;
00040
00041 // Compute format: flags / offsets, for each component.
00042 _VertexSize=0;
00043 _Flags=0;
00044
00045 // For each values
00046 for (uint value=0; value<CVertexBuffer::NumValue; value++)
00047 {
00048 // Flag for this value
00049 uint flag=1<<value;
00050
00051 // Value used ?
00052 if (vertexFormat & flag)
00053 {
00054 // Use it
00055 _Flags|=flag;
00056
00057 // Value offset
00058 _Offset[value]=_VertexSize;
00059
00060 // New vertex size
00061 _VertexSize+=CVertexBuffer::SizeType[typeArray[value]];
00062
00063 // Setup the type
00064 _Type[value]=typeArray[value];
00065 }
00066 }
00067
00068 // For each UV channel
00069 uint i;
00070 for (i=0; i<CVertexBuffer::MaxStage; i++)
00071 _UVRouting[i] = uvRouting ? uvRouting[i] : i;
00072 }
|
|
|
Lock the entire VertexBuffer. The returned buffer is a write only buffer. (undefined result if you read it). Write note:
Implemented in NL3D::CVertexBufferHardGLNVidia, NL3D::CVertexBufferHardGLATI, and NL3D::CVertexBufferHardGLMapObjectATI. Referenced by NL3D::CMeshMRMGeom::applyGeomorph(), NL3D::CDriverGL::deleteVertexBufferHard(), NL3D::CDriverGL::resetVertexArrayRange(), NL3D::CMeshMorpher::update(), and NL3D::CMeshMorpher::updateSkinned(). |
|
|
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 Implemented in NL3D::CVertexBufferHardGLNVidia, NL3D::CVertexBufferHardGLATI, and NL3D::CVertexBufferHardGLMapObjectATI. |
|
|
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
Implemented in NL3D::CVertexBufferHardGLNVidia, NL3D::CVertexBufferHardGLATI, and NL3D::CVertexBufferHardGLMapObjectATI. |
|
|
UnLock the VertexBuffer so the Gfx card can now use it. Implemented in NL3D::CVertexBufferHardGLNVidia, NL3D::CVertexBufferHardGLATI, and NL3D::CVertexBufferHardGLMapObjectATI. Referenced by NL3D::CMeshMRMGeom::applyGeomorph(), NL3D::CDriverGL::deleteVertexBufferHard(), NL3D::CDriverGL::resetVertexArrayRange(), NL3D::CMeshMorpher::update(), and NL3D::CMeshMorpher::updateSkinned(). |
|
|
Definition at line 67 of file smart_ptr.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 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(). |
1.3.6