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

This a vertex buffer created by Driver. More...

#include <vertex_buffer_hard.h>

Inheritance diagram for NL3D::IVertexBufferHard:

NLMISC::CRefCount NL3D::IVertexBufferHardGL NL3D::CVertexBufferHardGLATI NL3D::CVertexBufferHardGLNVidia List of all members.

Public Methods

Misc Get.
uint16 getVertexFormat (void) const
uint16 getVertexSize (void) const
uint32 getNumVertices (void) const
CVertexBuffer::TType getValueType (uint value) const
uint8 getNumWeight () const
Get component offsets.
sint getValueOff (uint value) const
Vertex access.
virtual void * lock ()=0
 Lock the entire VertexBuffer. More...

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

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


Protected Methods

 IVertexBufferHard ()
 Constructor: build good offfsets / size. More...

virtual ~IVertexBufferHard ()
void initFormat (uint16 vertexFormat, const uint8 *typeArray, uint32 numVertices)

Protected Attributes

uint8 _Type [CVertexBuffer::NumValue]
uint8 _Pad
uint16 _VertexSize
uint16 _Flags
uint16 _InternalFlags
uint32 _NbVerts
uint16 _Offset [CVertexBuffer::NumValue]

Detailed Description

This a vertex buffer created by Driver.

His pointer may be allocated on AGP Ram or VRAM. see CVertexBuffer, because it use the same flags for vertex format. IVertexBufferHard are created / deleted by IDriver.

Author:
Lionel Berenguier , Nevrax France
Date:
2001

Definition at line 46 of file vertex_buffer_hard.h.


Constructor & Destructor Documentation

NL3D::IVertexBufferHard::IVertexBufferHard   [inline, protected]
 

Constructor: build good offfsets / size.

Definition at line 130 of file vertex_buffer_hard.h.

virtual NL3D::IVertexBufferHard::~IVertexBufferHard   [inline, protected, virtual]
 

Definition at line 131 of file vertex_buffer_hard.h.


Member Function Documentation

uint32 NL3D::IVertexBufferHard::getNumVertices void    const [inline]
 

Definition at line 54 of file vertex_buffer_hard.h.

Referenced by NL3D::CVertexBufferHardGLATI::unlock.

uint8 NL3D::IVertexBufferHard::getNumWeight   const
 

Definition at line 71 of file vertex_buffer_hard.cpp.

References _Type.

sint NL3D::IVertexBufferHard::getValueOff uint    value const [inline]
 

  • * - * - * - * - * - * -

Definition at line 81 of file vertex_buffer_hard.h.

References _Flags, _Offset, nlassert, and value.

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

Definition at line 55 of file vertex_buffer_hard.h.

References _Type, nlassert, and value.

uint16 NL3D::IVertexBufferHard::getVertexFormat void    const [inline]
 

Definition at line 52 of file vertex_buffer_hard.h.

uint16 NL3D::IVertexBufferHard::getVertexSize void    const [inline]
 

Definition at line 53 of file vertex_buffer_hard.h.

Referenced by NL3D::CVertexBufferHardGLATI::unlock.

void NL3D::IVertexBufferHard::initFormat uint16    vertexFormat,
const uint8   typeArray,
uint32    numVertices
[protected]
 

Reimplemented in NL3D::IVertexBufferHardGL.

Definition at line 36 of file vertex_buffer_hard.cpp.

References _Flags, _NbVerts, _Offset, _Type, _VertexSize, and value.

virtual void* NL3D::IVertexBufferHard::lock   [pure 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.

Implemented in NL3D::CVertexBufferHardGLNVidia.

virtual void NL3D::IVertexBufferHard::unlock uint    startVert,
uint    endVert
[pure 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());

Implemented in NL3D::CVertexBufferHardGLNVidia.

virtual void NL3D::IVertexBufferHard::unlock   [pure virtual]
 

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

Implemented in NL3D::CVertexBufferHardGLNVidia.


Member Data Documentation

uint16 NL3D::IVertexBufferHard::_Flags [protected]
 

Definition at line 118 of file vertex_buffer_hard.h.

Referenced by getValueOff, and initFormat.

uint16 NL3D::IVertexBufferHard::_InternalFlags [protected]
 

Definition at line 121 of file vertex_buffer_hard.h.

uint32 NL3D::IVertexBufferHard::_NbVerts [protected]
 

Definition at line 124 of file vertex_buffer_hard.h.

Referenced by initFormat.

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

Definition at line 127 of file vertex_buffer_hard.h.

Referenced by getValueOff, and initFormat.

uint8 NL3D::IVertexBufferHard::_Pad [protected]
 

Definition at line 112 of file vertex_buffer_hard.h.

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

Definition at line 111 of file vertex_buffer_hard.h.

Referenced by getNumWeight, getValueType, and initFormat.

uint16 NL3D::IVertexBufferHard::_VertexSize [protected]
 

Definition at line 115 of file vertex_buffer_hard.h.

Referenced by initFormat.


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