本文整理汇总了C++中VertexDeclaration::findElementsBySource方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexDeclaration::findElementsBySource方法的具体用法?C++ VertexDeclaration::findElementsBySource怎么用?C++ VertexDeclaration::findElementsBySource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexDeclaration
的用法示例。
在下文中一共展示了VertexDeclaration::findElementsBySource方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WriteSubMesh
//.........这里部分代码省略.........
ibuf->lock(HardwareBuffer::HBL_READ_ONLY));
}
else
{
pShort = static_cast<unsigned short*>(
ibuf->lock(HardwareBuffer::HBL_READ_ONLY));
}
void* indata = subMod->CreateIndexData(s->indexData->indexCount,use32BitIndexes?TRUE:FALSE);
if (use32BitIndexes)
{
memcpy(indata,pInt,sizeof(unsigned int)*s->indexData->indexCount);
}
else
{
memcpy(indata,pShort,sizeof(unsigned short)*s->indexData->indexCount);
}
ibuf->unlock();
// vertex declaration
VertexDeclaration* decl = vertexData->vertexDeclaration;
VertexBufferBinding* bind = vertexData->vertexBufferBinding;
VertexBufferBinding::VertexBufferBindingMap::const_iterator b, bend;
bend = bind->getBindings().end();
// iterate over buffers
int bindCount = 0;
for(b = bind->getBindings().begin(); b != bend; ++b,++bindCount)
{
const HardwareVertexBufferSharedPtr vbuf = b->second;
unsigned short bufferIdx = b->first;
// get all the elements that relate to this buffer
VertexDeclaration::VertexElementList elems = decl->findElementsBySource(bufferIdx);
VertexDeclaration::VertexElementList::iterator i, iend;
iend = elems.end();
unsigned short nuDemiureCoords = 0;
for (i = elems.begin(); i != iend; ++i)
{
VertexElement& elem = *i;
D3DDECLTYPE type = ConverteVertType(elem.getType());
D3DDECLUSAGE usage;
bool texcoord = false;
switch(elem.getSemantic())
{
case VES_POSITION:
usage = D3DDECLUSAGE_POSITION;
break;
case VES_NORMAL:
usage = D3DDECLUSAGE_NORMAL;
break;
case VES_TANGENT:
usage = D3DDECLUSAGE_TANGENT;
break;
case VES_BINORMAL:
usage = D3DDECLUSAGE_BINORMAL;
break;
case VES_DIFFUSE:
case VES_SPECULAR:
usage = D3DDECLUSAGE_COLOR;
break;
case VES_TEXTURE_COORDINATES:
usage = D3DDECLUSAGE_TEXCOORD;
++nuDemiureCoords;