本文整理汇总了C++中VertexBufferPtr::Unmap方法的典型用法代码示例。如果您正苦于以下问题:C++ VertexBufferPtr::Unmap方法的具体用法?C++ VertexBufferPtr::Unmap怎么用?C++ VertexBufferPtr::Unmap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VertexBufferPtr
的用法示例。
在下文中一共展示了VertexBufferPtr::Unmap方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EndUpdate
void EndUpdate(){
if (mVertexBuffer && mMapped)
{
mVertexBuffer->Unmap(0);
mMapped = 0;
}
}
示例2: Render
void Render(const RenderParam& param, RenderParamOut* paramOut){
RenderEventMarker mark("ParticleRenderObject");
if (mMapped)
{
mVertexBuffer->Unmap(0);
mMapped = 0;
}
if (param.mRenderPass != RENDER_PASS::PASS_NORMAL || !mVertexBuffer || mBatches.empty())
return;
auto& renderer = Renderer::GetInstance();
mMaterial->Bind(true);
mVertexBuffer->Bind();
renderer.SetPrimitiveTopology(PRIMITIVE_TOPOLOGY_POINTLIST);
/*for (auto batch : mBatches){
++sNumDrawCalls;
pRenderer->Draw(batch.second, batch.first);
sNumDrawPrimitives += batch.second;
}*/
//draw
UINT num = 0;
UINT start = mBatches[0].first;
for(const auto& it : mBatches)
{
if (start > it.first)
{
// draw
assert(start + num <= mMaxVertices);
renderer.Draw(num, start);
++sNumDrawCalls;
sNumDrawPrimitives += num;
start = it.first;
num = 0;
}
num += it.second;
}
if (num)
{
assert(num < mMaxVertices);
renderer.Draw(num, start);
++sNumDrawCalls;
sNumDrawPrimitives += num;
}
mMaterial->Unbind();
}