OGRE-Next: Ogre::v1::VertexElement Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::v1::VertexElement Class Reference
Core » RenderSystem

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::v1::VertexElement:
[legend]

## 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 () const
| Gets the index of this element, only applicable for repeating elements.
size_t | getOffset () const
| Gets the offset into the buffer where this element starts.
VertexElementSemantic | getSemantic () const
| Gets the meaning of this element.
uint32 | getSize () const
| Gets the size of this element in bytes.
unsigned short | getSource () const
| Gets the vertex buffer index from where this element draws it's values.
VertexElementType | getType () const
| Gets the data format of this element.
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 ()
| Utility method to get the most appropriate packed colour vertex element format.
static uint8 | getTypeCount (VertexElementType etype)
| Utility method which returns the count of values in a given type.
static uint32 | getTypeSize (VertexElementType etype)
| Utility method for helping to calculate offsets.
static bool | isTypeNormalized (VertexElementType etype)
| Utility method which returns true if the type is SNORM or NORM.
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.

## 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.

## Constructor & Destructor Documentation

## ◆ VertexElement() [1/2]

Ogre::v1::VertexElement::VertexElement | ( |  | ) |
| inline

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

Referenced by operator==().

## ◆ VertexElement() [2/2]

Ogre::v1::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::v1::VertexElement::baseVertexPointerToElement | ( | void * | pBase,
|  | float ** | pElem ) const
| inline

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

  pBase | Pointer to the start of a vertex in this buffer.
  pElem | Pointer to a pointer which will be set to the start of this element.

## ◆ baseVertexPointerToElement() [2/5]

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

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

  pBase | Pointer to the start of a vertex in this buffer.
  pElem | Pointer to a pointer which will be set to the start of this element.

## ◆ baseVertexPointerToElement() [3/5]

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

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

  pBase | Pointer to the start of a vertex in this buffer.
  pElem | Pointer to a pointer which will be set to the start of this element.

## ◆ baseVertexPointerToElement() [4/5]

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

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

  pBase | Pointer to the start of a vertex in this buffer.
  pElem | Pointer to a pointer which will be set to the start of this element.

## ◆ baseVertexPointerToElement() [5/5]

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

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

  pBase | Pointer to the start of a vertex in this buffer.
  pElem | Pointer to a pointer which will be set to the start of this element.

## ◆ convertColourValue() [1/2]

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

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

Parameters

  src | source colour
  dst | The destination type

## ◆ convertColourValue() [2/2]

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

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

Parameters

  srcType | The source type
  dstType | The destination type
  ptr | Read / write value to change

## ◆ getBaseType()

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

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

Referenced by Ogre::VertexBufferDownloadHelper::getNormal(), and Ogre::VertexBufferDownloadHelper::getVector4().

## ◆ getBestColourVertexElementType()

VertexElementType Ogre::v1::VertexElement::getBestColourVertexElementType | ( |  | ) |
| static

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

## ◆ getIndex()

unsigned short Ogre::v1::VertexElement::getIndex | ( |  | ) | const
| inline

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

## ◆ getOffset()

size_t Ogre::v1::VertexElement::getOffset | ( |  | ) | const
| inline

Gets the offset into the buffer where this element starts.

## ◆ getSemantic()

VertexElementSemantic Ogre::v1::VertexElement::getSemantic | ( |  | ) | const
| inline

Gets the meaning of this element.

## ◆ getSize()

uint32 Ogre::v1::VertexElement::getSize | ( |  | ) | const

Gets the size of this element in bytes.

## ◆ getSource()

unsigned short Ogre::v1::VertexElement::getSource | ( |  | ) | const
| inline

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

## ◆ getType()

VertexElementType Ogre::v1::VertexElement::getType | ( |  | ) | const
| inline

Gets the data format of this element.

## ◆ getTypeCount()

uint8 Ogre::v1::VertexElement::getTypeCount | ( | VertexElementType | etype | ) |
| static

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

Referenced by Ogre::VertexBufferDownloadHelper::getVector4().

## ◆ getTypeSize()

uint32 Ogre::v1::VertexElement::getTypeSize | ( | VertexElementType | etype | ) |
| static

Utility method for helping to calculate offsets.

Referenced by Ogre::VertexBufferDownloadHelper::getNormal(), and Ogre::VertexBufferDownloadHelper::getVector4().

## ◆ isTypeNormalized()

bool Ogre::v1::VertexElement::isTypeNormalized | ( | VertexElementType | etype | ) |
| static

Utility method which returns true if the type is SNORM or NORM.

## ◆ multiplyTypeCount()

VertexElementType Ogre::v1::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==()

bool Ogre::v1::VertexElement::operator== | ( | const VertexElement & | rhs | ) | const
| inline

References VertexElement().

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

- OgreHardwareVertexBuffer.h