Specialisation of VertexDeclaration for D3D11. More...
#include <OgreD3D11VertexDeclaration.h>
Public Types | |
typedef list< VertexElement >::type | VertexElementList |
Defines the list of vertex elements that makes up this declaration. More... | |
Public Member Functions | |
D3D11VertexDeclaration (D3D11Device &device) | |
~D3D11VertexDeclaration () | |
const VertexElement & | addElement (unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0) |
See VertexDeclaration. More... | |
void | bindToShader (D3D11HLSLProgram *boundVertexProgram, VertexBufferBinding *binding) |
virtual VertexDeclaration * | clone (HardwareBufferManagerBase *mgr=0) const |
Clones this declaration. More... | |
void | closeGapsInSource (void) |
Remove any gaps in the source buffer list used by this declaration. More... | |
virtual const VertexElement * | findElementBySemantic (VertexElementSemantic sem, unsigned short index=0) const |
Finds a VertexElement with the given semantic, and index if there is more than one element with the same semantic. More... | |
virtual VertexElementList | findElementsBySource (unsigned short source) const |
Based on the current elements, gets the size of the vertex for a given buffer source. More... | |
VertexDeclaration * | getAutoOrganisedDeclaration (bool skeletalAnimation, bool vertexAnimation, bool vertexAnimationNormals) const |
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. More... | |
D3D11_INPUT_ELEMENT_DESC * | getD3DVertexDeclaration (D3D11HLSLProgram *boundVertexProgram, VertexBufferBinding *binding) |
const VertexElement * | getElement (unsigned short index) const |
Get a single element. More... | |
size_t | getElementCount (void) const |
Get the number of elements in the declaration. More... | |
const VertexElementList & | getElements (void) const |
Gets read-only access to the list of vertex elements. More... | |
unsigned short | getMaxSource (void) const |
Gets the index of the highest source value referenced by this declaration. More... | |
virtual unsigned short | getNextFreeTextureCoordinate () const |
Return the index of the next free texture coordinate set which may be added to this declaration. More... | |
virtual size_t | getVertexSize (unsigned short source) const |
Gets the vertex size defined by this declaration for a given source. More... | |
const VertexElement & | insertElement (unsigned short atPosition, unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0) |
See VertexDeclaration. More... | |
void | modifyElement (unsigned short elem_index, unsigned short source, size_t offset, VertexElementType theType, VertexElementSemantic semantic, unsigned short index=0) |
See VertexDeclaration. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
bool | operator!= (const VertexDeclaration &rhs) const |
bool | operator== (const VertexDeclaration &rhs) const |
void | removeAllElements (void) |
See VertexDeclaration. More... | |
void | removeElement (unsigned short elem_index) |
See VertexDeclaration. More... | |
void | removeElement (VertexElementSemantic semantic, unsigned short index=0) |
See VertexDeclaration. More... | |
void | sort (void) |
Sorts the elements in this list to be compatible with the maximum number of rendering APIs / graphics cards. More... | |
Static Public Member Functions | |
static bool | vertexElementLess (const VertexElement &e1, const VertexElement &e2) |
Sort routine for vertex elements. More... | |
Protected Types | |
typedef map< D3D11HLSLProgram *, ID3D11InputLayout * >::type | ShaderToILayoutMap |
typedef ShaderToILayoutMap::iterator | ShaderToILayoutMapIterator |
typedef map< D3D11HLSLProgram *, D3D11_INPUT_ELEMENT_DESC * > ::type | ShaderToInputDesc |
typedef ShaderToInputDesc::iterator | ShaderToInputDescIterator |
Protected Member Functions | |
ID3D11InputLayout * | getILayoutByShader (D3D11HLSLProgram *boundVertexProgram, VertexBufferBinding *binding) |
Gets the D3D11-specific vertex declaration. More... | |
Protected Attributes | |
ShaderToInputDesc | mD3delems |
VertexElementList | mElementList |
D3D11Device & | mlpD3DDevice |
bool | mNeedsRebuild |
ShaderToILayoutMap | mShaderToILayoutMap |
Specialisation of VertexDeclaration for D3D11.
Definition at line 38 of file OgreD3D11VertexDeclaration.h.
|
protected |
Definition at line 45 of file OgreD3D11VertexDeclaration.h.
|
protected |
Definition at line 46 of file OgreD3D11VertexDeclaration.h.
|
protected |
Definition at line 47 of file OgreD3D11VertexDeclaration.h.
|
protected |
Definition at line 48 of file OgreD3D11VertexDeclaration.h.
|
inherited |
Defines the list of vertex elements that makes up this declaration.
Definition at line 322 of file OgreHardwareVertexBuffer.h.
Ogre::D3D11VertexDeclaration::D3D11VertexDeclaration | ( | D3D11Device & | device | ) |
Ogre::D3D11VertexDeclaration::~D3D11VertexDeclaration | ( | ) |
|
virtual |
See VertexDeclaration.
Reimplemented from Ogre::VertexDeclaration.
void Ogre::D3D11VertexDeclaration::bindToShader | ( | D3D11HLSLProgram * | boundVertexProgram, |
VertexBufferBinding * | binding | ||
) |
|
virtualinherited |
Clones this declaration.
mgr | Optional HardwareBufferManager to use for creating the clone (if null, use the current default). |
|
inherited |
Remove any gaps in the source buffer list used by this declaration.
|
virtualinherited |
Finds a VertexElement with the given semantic, and index if there is more than one element with the same semantic.
|
virtualinherited |
Based on the current elements, gets the size of the vertex for a given buffer source.
source | The buffer binding index for which to get the vertex size. Gets a list of elements which use a given source. |
|
inherited |
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.
skeletalAnimation | Whether this vertex data is going to be skeletally animated |
vertexAnimation | Whether this vertex data is going to be vertex animated |
vertexAnimationNormals | Whether vertex data animation is going to include normals animation |
D3D11_INPUT_ELEMENT_DESC* Ogre::D3D11VertexDeclaration::getD3DVertexDeclaration | ( | D3D11HLSLProgram * | boundVertexProgram, |
VertexBufferBinding * | binding | ||
) |
|
inherited |
Get a single element.
|
inlineinherited |
Get the number of elements in the declaration.
Definition at line 333 of file OgreHardwareVertexBuffer.h.
|
inherited |
Gets read-only access to the list of vertex elements.
|
protected |
Gets the D3D11-specific vertex declaration.
|
inherited |
Gets the index of the highest source value referenced by this declaration.
|
virtualinherited |
Return the index of the next free texture coordinate set which may be added to this declaration.
|
virtualinherited |
Gets the vertex size defined by this declaration for a given source.
|
virtual |
See VertexDeclaration.
Reimplemented from Ogre::VertexDeclaration.
|
virtual |
See VertexDeclaration.
Reimplemented from Ogre::VertexDeclaration.
|
inlineinherited |
Definition at line 95 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 101 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 107 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 112 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 118 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
operator new, with debug line info
Definition at line 67 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 72 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
placement operator new
Definition at line 78 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
array operator new, with debug line info
Definition at line 85 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 90 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 482 of file OgreHardwareVertexBuffer.h.
|
inlineinherited |
Definition at line 465 of file OgreHardwareVertexBuffer.h.
References Ogre::VertexDeclaration::mElementList.
|
virtual |
See VertexDeclaration.
Reimplemented from Ogre::VertexDeclaration.
|
virtual |
See VertexDeclaration.
Reimplemented from Ogre::VertexDeclaration.
|
virtual |
See VertexDeclaration.
Reimplemented from Ogre::VertexDeclaration.
|
inherited |
Sorts the elements in this list to be compatible with the maximum number of rendering APIs / graphics cards.
|
staticinherited |
Sort routine for vertex elements.
|
protected |
Definition at line 50 of file OgreD3D11VertexDeclaration.h.
|
protectedinherited |
Definition at line 326 of file OgreHardwareVertexBuffer.h.
Referenced by Ogre::VertexDeclaration::operator==().
|
protected |
Definition at line 41 of file OgreD3D11VertexDeclaration.h.
|
protected |
Definition at line 43 of file OgreD3D11VertexDeclaration.h.
|
protected |
Definition at line 52 of file OgreD3D11VertexDeclaration.h.