OGRE  1.9.0
Ogre::VertexElement Class Reference

This class declares the usage of a single vertex buffer as a component of a complete VertexDeclaration. More...

#include <OgreHardwareVertexBuffer.h>

Inheritance diagram for Ogre::VertexElement:

Public Member Functions

 VertexElement ()
 Constructor, should not be called directly, only needed because of list.
 
 VertexElement (unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0)
 Constructor, should not be called directly, call VertexDeclaration::addElement.
 
void baseVertexPointerToElement (void *pBase, float **pElem) const
 Adjusts a pointer to the base of a vertex to point at this element.
 
void baseVertexPointerToElement (void *pBase, RGBA **pElem) const
 Adjusts a pointer to the base of a vertex to point at this element.
 
void baseVertexPointerToElement (void *pBase, unsigned char **pElem) const
 Adjusts a pointer to the base of a vertex to point at this element.
 
void baseVertexPointerToElement (void *pBase, unsigned short **pElem) const
 Adjusts a pointer to the base of a vertex to point at this element.
 
void baseVertexPointerToElement (void *pBase, void **pElem) const
 Adjusts a pointer to the base of a vertex to point at this element.
 
unsigned short getIndex (void) const
 Gets the index of this element, only applicable for repeating elements.
 
size_t getOffset (void) const
 Gets the offset into the buffer where this element starts.
 
VertexElementSemantic getSemantic (void) const
 Gets the meaning of this element.
 
size_t getSize (void) const
 Gets the size of this element in bytes.
 
unsigned short getSource (void) const
 Gets the vertex buffer index from where this element draws it's values.
 
VertexElementType getType (void) const
 Gets the data format of this element.
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, const char *, int, const char *)
 
void operator delete (void *ptr, void *)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, const char *, int, const char *)
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info
 
void * operator new (size_t sz, void *ptr)
 placement operator new
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info
 
bool operator== (const VertexElement &rhs) const
 

Static Public Member Functions

static uint32 convertColourValue (const ColourValue &src, VertexElementType dst)
 Utility method for converting colour to a packed 32-bit colour type.
 
static void convertColourValue (VertexElementType srcType, VertexElementType dstType, uint32 *ptr)
 Utility method for converting colour from one packed 32-bit colour type to another.
 
static VertexElementType getBaseType (VertexElementType multiType)
 Simple converter function which will a type into it's single-value equivalent - makes switches on type easier.
 
static VertexElementType getBestColourVertexElementType (void)
 Utility method to get the most appropriate packed colour vertex element format.
 
static unsigned short getTypeCount (VertexElementType etype)
 Utility method which returns the count of values in a given type.
 
static size_t getTypeSize (VertexElementType etype)
 Utility method for helping to calculate offsets.
 
static VertexElementType multiplyTypeCount (VertexElementType baseType, unsigned short count)
 Simple converter function which will turn a single-value type into a multi-value type based on a parameter.
 

Protected Attributes

unsigned short mIndex
 Index of the item, only applicable for some elements like texture coords.
 
size_t mOffset
 The offset in the buffer that this element starts at.
 
VertexElementSemantic mSemantic
 The meaning of the element.
 
unsigned short mSource
 The source vertex buffer, as bound to an index using VertexBufferBinding.
 
VertexElementType mType
 The type of element.
 

Detailed Description

This class declares the usage of a single vertex buffer as a component of a complete VertexDeclaration.

Remarks
Several vertex buffers can be used to supply the input geometry for a rendering operation, and in each case a vertex buffer can be used in different ways for different operations; the buffer itself does not define the semantics (position, normal etc), the VertexElement class does.

Definition at line 167 of file OgreHardwareVertexBuffer.h.

Constructor & Destructor Documentation

◆ VertexElement() [1/2]

Ogre::VertexElement::VertexElement ( )

Constructor, should not be called directly, only needed because of list.

Definition at line 182 of file OgreHardwareVertexBuffer.h.

◆ VertexElement() [2/2]

Ogre::VertexElement::VertexElement ( unsigned short source,
size_t offset,
VertexElementType theType,
VertexElementSemantic semantic,
unsigned short index = 0 )

Constructor, should not be called directly, call VertexDeclaration::addElement.

Member Function Documentation

◆ baseVertexPointerToElement() [1/5]

void Ogre::VertexElement::baseVertexPointerToElement ( void * pBase,
float ** pElem ) const

Adjusts a pointer to the base of a vertex to point at this element.

Remarks
This variant is for float pointers, passed as a parameter because we can't rely on covariant return types.
Parameters
pBasePointer to the start of a vertex in this buffer.
pElemPointer to a pointer which will be set to the start of this element.

Definition at line 264 of file OgreHardwareVertexBuffer.h.

◆ baseVertexPointerToElement() [2/5]

void Ogre::VertexElement::baseVertexPointerToElement ( void * pBase,
RGBA ** pElem ) const

Adjusts a pointer to the base of a vertex to point at this element.

Remarks
This variant is for RGBA pointers, passed as a parameter because we can't rely on covariant return types.
Parameters
pBasePointer to the start of a vertex in this buffer.
pElemPointer to a pointer which will be set to the start of this element.

Definition at line 281 of file OgreHardwareVertexBuffer.h.

◆ baseVertexPointerToElement() [3/5]

void Ogre::VertexElement::baseVertexPointerToElement ( void * pBase,
unsigned char ** pElem ) const

Adjusts a pointer to the base of a vertex to point at this element.

Remarks
This variant is for char pointers, passed as a parameter because we can't rely on covariant return types.
Parameters
pBasePointer to the start of a vertex in this buffer.
pElemPointer to a pointer which will be set to the start of this element.

Definition at line 294 of file OgreHardwareVertexBuffer.h.

◆ baseVertexPointerToElement() [4/5]

void Ogre::VertexElement::baseVertexPointerToElement ( void * pBase,
unsigned short ** pElem ) const

Adjusts a pointer to the base of a vertex to point at this element.

Remarks
This variant is for ushort pointers, passed as a parameter because we can't rely on covariant return types.
Parameters
pBasePointer to the start of a vertex in this buffer.
pElemPointer to a pointer which will be set to the start of this element.

Definition at line 306 of file OgreHardwareVertexBuffer.h.

◆ baseVertexPointerToElement() [5/5]

void Ogre::VertexElement::baseVertexPointerToElement ( void * pBase,
void ** pElem ) const

Adjusts a pointer to the base of a vertex to point at this element.

Remarks
This variant is for void pointers, passed as a parameter because we can't rely on covariant return types.
Parameters
pBasePointer to the start of a vertex in this buffer.
pElemPointer to a pointer which will be set to the start of this element.

Definition at line 250 of file OgreHardwareVertexBuffer.h.

◆ convertColourValue() [1/2]

static uint32 Ogre::VertexElement::convertColourValue ( const ColourValue & src,
VertexElementType dst )
static

Utility method for converting colour to a packed 32-bit colour type.

Parameters
srcsource colour
dstThe destination type

◆ convertColourValue() [2/2]

static void Ogre::VertexElement::convertColourValue ( VertexElementType srcType,
VertexElementType dstType,
uint32 * ptr )
static

Utility method for converting colour from one packed 32-bit colour type to another.

Parameters
srcTypeThe source type
dstTypeThe destination type
ptrRead / write value to change

◆ getBaseType()

static VertexElementType Ogre::VertexElement::getBaseType ( VertexElementType multiType)
static

Simple converter function which will a type into it's single-value equivalent - makes switches on type easier.

◆ getBestColourVertexElementType()

static VertexElementType Ogre::VertexElement::getBestColourVertexElementType ( void )
static

Utility method to get the most appropriate packed colour vertex element format.

◆ getIndex()

unsigned short Ogre::VertexElement::getIndex ( void ) const

Gets the index of this element, only applicable for repeating elements.

Definition at line 195 of file OgreHardwareVertexBuffer.h.

◆ getOffset()

size_t Ogre::VertexElement::getOffset ( void ) const

Gets the offset into the buffer where this element starts.

Definition at line 189 of file OgreHardwareVertexBuffer.h.

◆ getSemantic()

VertexElementSemantic Ogre::VertexElement::getSemantic ( void ) const

Gets the meaning of this element.

Definition at line 193 of file OgreHardwareVertexBuffer.h.

◆ getSize()

size_t Ogre::VertexElement::getSize ( void ) const

Gets the size of this element in bytes.

◆ getSource()

unsigned short Ogre::VertexElement::getSource ( void ) const

Gets the vertex buffer index from where this element draws it's values.

Definition at line 187 of file OgreHardwareVertexBuffer.h.

◆ getType()

VertexElementType Ogre::VertexElement::getType ( void ) const

Gets the data format of this element.

Definition at line 191 of file OgreHardwareVertexBuffer.h.

◆ getTypeCount()

static unsigned short Ogre::VertexElement::getTypeCount ( VertexElementType etype)
static

Utility method which returns the count of values in a given type.

◆ getTypeSize()

static size_t Ogre::VertexElement::getTypeSize ( VertexElementType etype)
static

Utility method for helping to calculate offsets.

◆ multiplyTypeCount()

static VertexElementType Ogre::VertexElement::multiplyTypeCount ( VertexElementType baseType,
unsigned short count )
static

Simple converter function which will turn a single-value type into a multi-value type based on a parameter.

◆ operator delete() [1/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void * ptr)
inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

◆ operator delete() [2/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void * ptr,
const char * ,
int ,
const char *  )
inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

◆ operator delete() [3/3]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void * ptr,
void *  )
inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

◆ operator delete[]() [1/2]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void * ptr)
inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

◆ operator delete[]() [2/2]

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void * ptr,
const char * ,
int ,
const char *  )
inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

◆ operator new() [1/3]

template<class Alloc >
void * Ogre::AllocatedObject< Alloc >::operator new ( size_t sz)
inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

◆ operator new() [2/3]

template<class Alloc >
void * Ogre::AllocatedObject< Alloc >::operator new ( size_t sz,
const char * file,
int line,
const char * func )
inherited

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

◆ operator new() [3/3]

template<class Alloc >
void * Ogre::AllocatedObject< Alloc >::operator new ( size_t sz,
void * ptr )
inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

◆ operator new[]() [1/2]

template<class Alloc >
void * Ogre::AllocatedObject< Alloc >::operator new[] ( size_t sz)
inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

◆ operator new[]() [2/2]

template<class Alloc >
void * Ogre::AllocatedObject< Alloc >::operator new[] ( size_t sz,
const char * file,
int line,
const char * func )
inherited

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

◆ operator==()

bool Ogre::VertexElement::operator== ( const VertexElement & rhs) const

Definition at line 231 of file OgreHardwareVertexBuffer.h.

References mIndex, mOffset, mSemantic, mSource, and mType.

Member Data Documentation

◆ mIndex

unsigned short Ogre::VertexElement::mIndex
protected

Index of the item, only applicable for some elements like texture coords.

Definition at line 179 of file OgreHardwareVertexBuffer.h.

Referenced by operator==().

◆ mOffset

size_t Ogre::VertexElement::mOffset
protected

The offset in the buffer that this element starts at.

Definition at line 173 of file OgreHardwareVertexBuffer.h.

Referenced by operator==().

◆ mSemantic

VertexElementSemantic Ogre::VertexElement::mSemantic
protected

The meaning of the element.

Definition at line 177 of file OgreHardwareVertexBuffer.h.

Referenced by operator==().

◆ mSource

unsigned short Ogre::VertexElement::mSource
protected

The source vertex buffer, as bound to an index using VertexBufferBinding.

Definition at line 171 of file OgreHardwareVertexBuffer.h.

Referenced by operator==().

◆ mType

VertexElementType Ogre::VertexElement::mType
protected

The type of element.

Definition at line 175 of file OgreHardwareVertexBuffer.h.

Referenced by operator==().


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