本文整理汇总了C++中MeshSource::GetMeshBufferCount方法的典型用法代码示例。如果您正苦于以下问题:C++ MeshSource::GetMeshBufferCount方法的具体用法?C++ MeshSource::GetMeshBufferCount怎么用?C++ MeshSource::GetMeshBufferCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MeshSource
的用法示例。
在下文中一共展示了MeshSource::GetMeshBufferCount方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _build
void MeshGroup::_build(int index)
{
const MultiMap<MeshSource *, Mesh *>::Node * i = mMeshBucket[index].Begin();
while (i != mMeshBucket[index].End())
{
int iVertexCount = 0;
int iIndexCount = 0;
MeshSource * source = i->key;
for (int j = 0; j < source->GetMeshBufferCount(); ++j)
{
MeshBuffer * mb = source->GetMeshBuffer(j);
RenderOp * pRenderOp = mb->GetRenderOp();
d_assert (
!pRenderOp->vertexDeclarations[0].HasElement(eVertexSemantic::POSITION, eVertexType::FLOAT3) &&
pRenderOp->vertexBuffers[0] != NULL &&
pRenderOp->indexBuffer != NULL &&
pRenderOp->primType != ePrimType::TRIANGLE_LIST);
iVertexCount += pRenderOp->vertexBuffers[0]->GetCount();
iIndexCount += pRenderOp->indexBuffer->GetCount();
}
int first = 0, last = 0;
int vcount = 0, icount = 0;
while (last < i->members.Size())
{
vcount += iVertexCount;
icount += iIndexCount;
last += 1;
if (last == i->members.Size() ||
iVertexCount > 4096 ||
iIndexCount > 4096 * 3)
{
_genMesh(i->members, first, last, index != 0);
first = last;
}
}
i = i->Next();
}
}