Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Ogre::D3D9VertexDeclaration Class Reference

Specialisation of VertexDeclaration for D3D9. More...

#include <OgreD3D9VertexDeclaration.h>

Inheritance diagram for Ogre::D3D9VertexDeclaration:

Inheritance graph
[legend]
List of all members.

Public Types

typedef std::list< VertexElementVertexElementList
 Defines the list of vertex elements that makes up this declaration.


Public Methods

 D3D9VertexDeclaration (LPDIRECT3DDEVICE9 device)
 ~D3D9VertexDeclaration ()
const VertexElementaddElement (unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0)
 See VertexDeclaration.

const VertexElementinsertElement (unsigned short atPosition, unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0)
 See VertexDeclaration.

void removeElement (unsigned short elem_index)
 See VertexDeclaration.

void modifyElement (unsigned short elem_index, unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0)
 See VertexDeclaration.

LPDIRECT3DVERTEXDECLARATION9 getD3DVertexDeclaration (void)
 Gets the D3D9-specific vertex declaration.

const VertexElementListgetElements (void) const
 Gets read-only access to the list of vertex elements.

const VertexElementgetElement (unsigned short index)
 Get a single element.

virtual void removeElement (VertexElementSemantic semantic, unsigned short index=0)
 Remove the element with the given semantic and usage index.

virtual const VertexElementfindElementBySemantic (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 VertexDeclarationclone (void)
 Clones this declaration.

bool operator== (const VertexDeclaration &rhs) const

Protected Attributes

LPDIRECT3DDEVICE9 mlpD3DDevice
LPDIRECT3DVERTEXDECLARATION9 mlpD3DDecl
bool mNeedsRebuild
VertexElementList mElementList

Detailed Description

Specialisation of VertexDeclaration for D3D9.

Definition at line 34 of file OgreD3D9VertexDeclaration.h.


Member Typedef Documentation

typedef std::list<VertexElement> Ogre::VertexDeclaration::VertexElementList [inherited]
 

Defines the list of vertex elements that makes up this declaration.

Definition at line 248 of file OgreHardwareVertexBuffer.h.

Referenced by Ogre::VertexDeclaration::findElementsBySource().


Constructor & Destructor Documentation

Ogre::D3D9VertexDeclaration::D3D9VertexDeclaration LPDIRECT3DDEVICE9    device
 

Definition at line 33 of file OgreD3D9VertexDeclaration.cpp.

Ogre::D3D9VertexDeclaration::~D3D9VertexDeclaration  
 

Definition at line 38 of file OgreD3D9VertexDeclaration.cpp.

References mlpD3DDecl, and SAFE_RELEASE.


Member Function Documentation

const VertexElement & Ogre::D3D9VertexDeclaration::addElement unsigned short    source,
size_t    offset,
VertexElementType    theType,
VertexElementSemantic    semantic,
unsigned short    index = 0
[virtual]
 

See VertexDeclaration.

Reimplemented from Ogre::VertexDeclaration.

Definition at line 43 of file OgreD3D9VertexDeclaration.cpp.

References mNeedsRebuild, Ogre::VertexElementSemantic, and Ogre::VertexElementType.

VertexDeclaration * Ogre::VertexDeclaration::clone void    [virtual, inherited]
 

Clones this declaration.

Definition at line 315 of file OgreHardwareVertexBuffer.cpp.

References Ogre::VertexDeclaration::addElement(), and Ogre::VertexDeclaration::mElementList.

Referenced by Ogre::PatchMesh::PatchMesh().

const VertexElement * Ogre::VertexDeclaration::findElementBySemantic VertexElementSemantic    sem,
unsigned short    index = 0
[virtual, inherited]
 

Finds a VertexElement with the given semantic, and index if there is more than one element with the same semantic.

Remarks:
If the element is not found, this method returns null.

Definition at line 262 of file OgreHardwareVertexBuffer.cpp.

References Ogre::VertexDeclaration::mElementList, and Ogre::VertexElementSemantic.

Referenced by 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::Mesh::getTangentsBuffer(), Ogre::PatchSurface::interpolateVertexData(), Ogre::EdgeListBuilder::log(), Ogre::VertexData::prepareForShadowVolume(), Ogre::Mesh::softwareVertexBlend(), and Ogre::MeshSerializerImpl::writeGeometry().

VertexDeclaration::VertexElementList Ogre::VertexDeclaration::findElementsBySource unsigned short    source [virtual, inherited]
 

Gets a list of elements which use a given source.

Remarks:
Note that the list of elements is returned by value therefore is separate from the declaration as soon as this method returns.

Definition at line 280 of file OgreHardwareVertexBuffer.cpp.

References Ogre::VertexDeclaration::mElementList, and Ogre::VertexDeclaration::VertexElementList.

LPDIRECT3DVERTEXDECLARATION9 Ogre::D3D9VertexDeclaration::getD3DVertexDeclaration void   
 

Gets the D3D9-specific vertex declaration.

Definition at line 73 of file OgreD3D9VertexDeclaration.cpp.

References Except, Ogre::VertexDeclaration::mElementList, mlpD3DDecl, mlpD3DDevice, mNeedsRebuild, SAFE_RELEASE, Ogre::VES_DIFFUSE, and Ogre::VES_SPECULAR.

Referenced by Ogre::D3D9RenderSystem::setVertexDeclaration().

const VertexElement * Ogre::VertexDeclaration::getElement unsigned short    index [inherited]
 

Get a single element.

Definition at line 216 of file OgreHardwareVertexBuffer.cpp.

References Ogre::VertexDeclaration::mElementList.

Referenced by Ogre::Mesh::compileBoneAssignments().

const VertexDeclaration::VertexElementList & Ogre::VertexDeclaration::getElements void    const [inherited]
 

Gets read-only access to the list of vertex elements.

Definition at line 182 of file OgreHardwareVertexBuffer.cpp.

References Ogre::VertexDeclaration::mElementList.

Referenced by Ogre::GLRenderSystem::_render(), Ogre::D3DRenderSystem::_render(), Ogre::MeshSerializerImpl::calcGeometrySize(), Ogre::VertexData::clone(), and Ogre::VertexData::prepareForShadowVolume().

size_t Ogre::VertexDeclaration::getVertexSize unsigned short    source [virtual, inherited]
 

Gets the vertex size defined by this declaration for a given source.

Definition at line 298 of file OgreHardwareVertexBuffer.cpp.

References Ogre::VertexDeclaration::mElementList.

Referenced by 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::init(), Ogre::PanelGuiElement::initialise(), Ogre::BorderPanelGuiElement::initialise(), Ogre::PatchSurface::interpolateVertexData(), Ogre::PatchMesh::load(), Ogre::MeshSerializerImpl_v1::readGeometry(), Ogre::MeshSerializerImpl::readGeometryColours(), Ogre::MeshSerializerImpl::readGeometryNormals(), Ogre::MeshSerializerImpl::readGeometryPositions(), Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(), Ogre::MeshSerializerImpl::readGeometryTexCoords(), Ogre::Rectangle2D::Rectangle2D(), Ogre::BillboardSet::setPoolSize(), Ogre::PanelGuiElement::updateTextureGeometry(), and Ogre::WireBoundingBox::WireBoundingBox().

const VertexElement & Ogre::D3D9VertexDeclaration::insertElement unsigned short    atPosition,
unsigned short    source,
size_t    offset,
VertexElementType    theType,
VertexElementSemantic    semantic,
unsigned short    index = 0
[virtual]
 

See VertexDeclaration.

Reimplemented from Ogre::VertexDeclaration.

Definition at line 51 of file OgreD3D9VertexDeclaration.cpp.

References mNeedsRebuild, Ogre::VertexElementSemantic, and Ogre::VertexElementType.

void Ogre::D3D9VertexDeclaration::modifyElement unsigned short    elem_index,
unsigned short    source,
size_t    offset,
VertexElementType    theType,
VertexElementSemantic    semantic,
unsigned short    index = 0
[virtual]
 

See VertexDeclaration.

Reimplemented from Ogre::VertexDeclaration.

Definition at line 65 of file OgreD3D9VertexDeclaration.cpp.

References mNeedsRebuild, Ogre::VertexElementSemantic, and Ogre::VertexElementType.

bool Ogre::VertexDeclaration::operator== const VertexDeclaration   rhs const [inherited]
 

Definition at line 335 of file OgreHardwareVertexBuffer.h.

References Ogre::VertexDeclaration::mElementList.

void Ogre::VertexDeclaration::removeElement VertexElementSemantic    semantic,
unsigned short    index = 0
[virtual, inherited]
 

Remove the element with the given semantic and usage index.

Remarks:
In this case 'index' means the usage index for repeating elements such as texture coordinates. For other elements this will always be 0 and does not refer to the index in the vector.

Definition at line 237 of file OgreHardwareVertexBuffer.cpp.

References Ogre::VertexDeclaration::mElementList, and Ogre::VertexElementSemantic.

void Ogre::D3D9VertexDeclaration::removeElement unsigned short    elem_index [virtual]
 

See VertexDeclaration.

Reimplemented from Ogre::VertexDeclaration.

Definition at line 59 of file OgreD3D9VertexDeclaration.cpp.

References mNeedsRebuild.


Member Data Documentation

VertexElementList Ogre::VertexDeclaration::mElementList [protected, inherited]
 

Definition at line 250 of file OgreHardwareVertexBuffer.h.

Referenced by Ogre::VertexDeclaration::addElement(), Ogre::VertexDeclaration::clone(), Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexDeclaration::findElementsBySource(), getD3DVertexDeclaration(), Ogre::VertexDeclaration::getElement(), Ogre::VertexDeclaration::getElements(), Ogre::VertexDeclaration::getVertexSize(), Ogre::VertexDeclaration::insertElement(), Ogre::VertexDeclaration::modifyElement(), Ogre::VertexDeclaration::operator==(), and Ogre::VertexDeclaration::removeElement().

LPDIRECT3DVERTEXDECLARATION9 Ogre::D3D9VertexDeclaration::mlpD3DDecl [protected]
 

Definition at line 38 of file OgreD3D9VertexDeclaration.h.

Referenced by getD3DVertexDeclaration(), and ~D3D9VertexDeclaration().

LPDIRECT3DDEVICE9 Ogre::D3D9VertexDeclaration::mlpD3DDevice [protected]
 

Definition at line 37 of file OgreD3D9VertexDeclaration.h.

Referenced by getD3DVertexDeclaration().

bool Ogre::D3D9VertexDeclaration::mNeedsRebuild [protected]
 

Definition at line 39 of file OgreD3D9VertexDeclaration.h.

Referenced by addElement(), getD3DVertexDeclaration(), insertElement(), modifyElement(), and removeElement().


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

Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:23:56 2004