#include <OgreHardwareVertexBuffer.h>
Inheritance diagram for Ogre::VertexDeclaration:
Public Types | |
typedef std::list< VertexElement > | VertexElementList |
Defines the list of vertex elements that makes up this declaration. | |
Public Methods | |
VertexDeclaration () | |
Standard constructor, not you should use HardwareBufferManager::createVertexDeclaration. | |
virtual | ~VertexDeclaration () |
size_t | getElementCount (void) |
Get the number of elements in the declaration. | |
const VertexElementList & | getElements (void) const |
Gets read-only access to the list of vertex elements. | |
const VertexElement * | getElement (unsigned short index) |
Get a single element. | |
void | sort (void) |
Sorts the elements in this list to be compatible with the maximum number of rendering APIs / graphics cards. | |
void | closeGapsInSource (void) |
Remove any gaps in the source buffer list used by this declaration. | |
VertexDeclaration * | getAutoOrganisedDeclaration (bool animated) |
Generates a new VertexDeclaration for optimal usage based on the current vertex declaration, which can be used with VertexData::reorganiseBuffers later if you wish, or simply used as a template. | |
unsigned short | getMaxSource (void) const |
Gets the indeex of the highest source value referenced by this declaration. | |
virtual const VertexElement & | addElement (unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0) |
Adds a new VertexElement to this declaration. | |
virtual const VertexElement & | insertElement (unsigned short atPosition, unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0) |
Inserts a new VertexElement at a given position in this declaration. | |
virtual void | removeElement (unsigned short elem_index) |
Remove the element at the given index from this declaration. | |
virtual void | removeElement (VertexElementSemantic semantic, unsigned short index=0) |
Remove the element with the given semantic and usage index. | |
virtual void | modifyElement (unsigned short elem_index, unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0) |
Modify an element in-place, params as addElement. | |
virtual const VertexElement * | findElementBySemantic (VertexElementSemantic sem, unsigned short index=0) |
Finds a VertexElement with the given semantic, and index if there is more than one element with the same semantic. | |
virtual VertexElementList | findElementsBySource (unsigned short source) |
Gets a list of elements which use a given source. | |
virtual size_t | getVertexSize (unsigned short source) |
Gets the vertex size defined by this declaration for a given source. | |
virtual VertexDeclaration * | clone (void) |
Clones this declaration. | |
bool | operator== (const VertexDeclaration &rhs) const |
bool | operator!= (const VertexDeclaration &rhs) const |
Static Public Methods | |
bool | vertexElementLess (const VertexElement &e1, const VertexElement &e2) |
Sort routine for vertex elements. | |
Protected Attributes | |
VertexElementList | mElementList |
Like the other classes in this functional area, these declarations should be created and destroyed using the HardwareBufferManager.
Definition at line 262 of file OgreHardwareVertexBuffer.h.
|
Defines the list of vertex elements that makes up this declaration.
Definition at line 266 of file OgreHardwareVertexBuffer.h. Referenced by findElementsBySource(). |
|
Standard constructor, not you should use HardwareBufferManager::createVertexDeclaration.
Definition at line 197 of file OgreHardwareVertexBuffer.cpp. |
|
Definition at line 201 of file OgreHardwareVertexBuffer.cpp. |
|
|
Clones this declaration.
Definition at line 337 of file OgreHardwareVertexBuffer.cpp. References addElement(), and mElementList. Referenced by getAutoOrganisedDeclaration(), and Ogre::PatchMesh::PatchMesh(). |
|
Remove any gaps in the source buffer list used by this declaration.
Definition at line 381 of file OgreHardwareVertexBuffer.cpp. References getElement(), Ogre::VertexElement::getIndex(), Ogre::VertexElement::getOffset(), Ogre::VertexElement::getSemantic(), Ogre::VertexElement::getSource(), Ogre::VertexElement::getType(), mElementList, modifyElement(), and sort(). Referenced by Ogre::VertexData::reorganiseBuffers(). |
|
Finds a VertexElement with the given semantic, and index if there is more than one element with the same semantic.
Definition at line 284 of file OgreHardwareVertexBuffer.cpp. References mElementList, and Ogre::VertexElementSemantic. Referenced by Ogre::TerrainRenderable::_calculateNormals(), Ogre::TerrainRenderable::_generateVertexLighting(), Ogre::ProgressiveMesh::addWorkingData(), Ogre::Mesh::buildTangentVectors(), Ogre::EdgeListBuilder::buildTrianglesEdges(), Ogre::Entity::cloneVertexDataRemoveBlendInfo(), Ogre::Mesh::compileBoneAssignments(), Ogre::PatchSurface::defineSurface(), Ogre::PatchSurface::distributeControlPoints(), Ogre::Entity::EntityShadowRenderable::EntityShadowRenderable(), Ogre::Entity::extractTempBufferInfo(), Ogre::TerrainRenderable::initialise(), Ogre::PatchSurface::interpolateVertexData(), Ogre::EdgeListBuilder::log(), Ogre::Mesh::organiseTangentsBuffer(), Ogre::VertexData::prepareForShadowVolume(), Ogre::VertexData::reorganiseBuffers(), Ogre::Mesh::softwareVertexBlend(), and Ogre::Mesh::suggestTangentVectorBuildParams(). |
|
Gets a list of elements which use a given source.
Definition at line 302 of file OgreHardwareVertexBuffer.cpp. References mElementList, and VertexElementList. Referenced by Ogre::MeshSerializerImpl::readGeometryVertexBuffer(), Ogre::VertexData::reorganiseBuffers(), and Ogre::MeshSerializerImpl::writeGeometry(). |
|
Generates a new VertexDeclaration for optimal usage based on the current vertex declaration, which can be used with VertexData::reorganiseBuffers later if you wish, or simply used as a template.
Definition at line 412 of file OgreHardwareVertexBuffer.cpp. References clone(), getElements(), Ogre::VertexElement::getIndex(), Ogre::VertexElement::getSemantic(), Ogre::VertexElement::getSize(), Ogre::VertexElement::getType(), modifyElement(), sort(), Ogre::VES_NORMAL, and Ogre::VES_POSITION. |
|
Get a single element.
Definition at line 239 of file OgreHardwareVertexBuffer.cpp. References mElementList. Referenced by closeGapsInSource(), and Ogre::Mesh::compileBoneAssignments(). |
|
Get the number of elements in the declaration.
Definition at line 277 of file OgreHardwareVertexBuffer.h. Referenced by Ogre::Mesh::compileBoneAssignments(). |
|
Gets read-only access to the list of vertex elements.
Definition at line 205 of file OgreHardwareVertexBuffer.cpp. References mElementList. Referenced by Ogre::GLRenderSystem::_render(), Ogre::D3DRenderSystem::_render(), Ogre::MeshSerializerImpl::calcGeometrySize(), Ogre::VertexData::clone(), getAutoOrganisedDeclaration(), Ogre::VertexData::prepareForShadowVolume(), Ogre::VertexData::reorganiseBuffers(), and Ogre::MeshSerializerImpl::writeGeometry(). |
|
Gets the indeex of the highest source value referenced by this declaration.
Definition at line 452 of file OgreHardwareVertexBuffer.cpp. References mElementList. Referenced by Ogre::VertexData::reorganiseBuffers(). |
|
Gets the vertex size defined by this declaration for a given source.
Definition at line 320 of file OgreHardwareVertexBuffer.cpp. References mElementList. Referenced by Ogre::BillboardSet::_createBuffers(), Ogre::D3DRenderSystem::_render(), Ogre::PatchSurface::build(), Ogre::TTYGuiElement::checkMemoryAllocation(), Ogre::TextAreaGuiElement::checkMemoryAllocation(), Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createPlane(), Ogre::PatchSurface::defineSurface(), Ogre::PatchSurface::distributeControlPoints(), Ogre::TerrainRenderable::initialise(), Ogre::PanelGuiElement::initialise(), Ogre::BorderPanelGuiElement::initialise(), Ogre::PatchSurface::interpolateVertexData(), Ogre::PatchMesh::load(), Ogre::MeshSerializerImpl_v1_2::readGeometryColours(), Ogre::MeshSerializerImpl_v1_2::readGeometryNormals(), Ogre::MeshSerializerImpl_v1_2::readGeometryPositions(), Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(), Ogre::MeshSerializerImpl_v1_2::readGeometryTexCoords(), Ogre::MeshSerializerImpl::readGeometryVertexBuffer(), Ogre::Rectangle2D::Rectangle2D(), Ogre::VertexData::reorganiseBuffers(), Ogre::PanelGuiElement::updateTextureGeometry(), and Ogre::WireBoundingBox::WireBoundingBox(). |
|
Inserts a new VertexElement at a given position in this declaration.
Reimplemented in Ogre::D3D9VertexDeclaration. Definition at line 220 of file OgreHardwareVertexBuffer.cpp. References addElement(), mElementList, Ogre::VertexElementSemantic, and Ogre::VertexElementType. Referenced by Ogre::Mesh::compileBoneAssignments(). |
|
Modify an element in-place, params as addElement.
Reimplemented in Ogre::D3D9VertexDeclaration. Definition at line 274 of file OgreHardwareVertexBuffer.cpp. References mElementList, Ogre::VertexElementSemantic, and Ogre::VertexElementType. Referenced by closeGapsInSource(), getAutoOrganisedDeclaration(), and Ogre::VertexData::prepareForShadowVolume(). |
|
Definition at line 409 of file OgreHardwareVertexBuffer.h. |
|
Definition at line 392 of file OgreHardwareVertexBuffer.h. References mElementList. |
|
Remove the element with the given semantic and usage index.
Definition at line 260 of file OgreHardwareVertexBuffer.cpp. References mElementList, and Ogre::VertexElementSemantic. |
|
Remove the element at the given index from this declaration.
Reimplemented in Ogre::D3D9VertexDeclaration. Definition at line 251 of file OgreHardwareVertexBuffer.cpp. References mElementList. Referenced by Ogre::Entity::cloneVertexDataRemoveBlendInfo(), Ogre::Mesh::compileBoneAssignments(), and Ogre::PanelGuiElement::updateTextureGeometry(). |
|
Sorts the elements in this list to be compatible with the maximum number of rendering APIs / graphics cards.
Definition at line 376 of file OgreHardwareVertexBuffer.cpp. References mElementList. Referenced by closeGapsInSource(), and getAutoOrganisedDeclaration(). |
|
Sort routine for vertex elements.
Definition at line 351 of file OgreHardwareVertexBuffer.cpp. References Ogre::VertexElement::getIndex(), Ogre::VertexElement::getSemantic(), and Ogre::VertexElement::getSource(). |
|
Definition at line 270 of file OgreHardwareVertexBuffer.h. Referenced by addElement(), clone(), closeGapsInSource(), findElementBySemantic(), findElementsBySource(), Ogre::D3D9VertexDeclaration::getD3DVertexDeclaration(), getElement(), getElements(), getMaxSource(), getVertexSize(), insertElement(), modifyElement(), operator==(), removeElement(), and sort(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:46 2004