本文整理汇总了C++中Render::getBatchingMesh方法的典型用法代码示例。如果您正苦于以下问题:C++ Render::getBatchingMesh方法的具体用法?C++ Render::getBatchingMesh怎么用?C++ Render::getBatchingMesh使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Render
的用法示例。
在下文中一共展示了Render::getBatchingMesh方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: draw
void MaskSprite::draw()
{
//draw childs
Scene* scene = getScene();
Object* object = getObject();
//
if (object && scene && isVisible())
{
Render* render = dynamic_cast<Render*>(scene);
Camera* camera = render->getCamera();
//display/view camera
const Mat4& disViewM4 = RenderContext::getDisplay().mul(camera->getGlobalMatrix());
const AABox2& viewBox = camera->getBoxViewport();
/////////////////////////////////////////////////////////////////////////////////////
//new box pos
AABox2 modelBox = getBox().applay(disViewM4);
//culling
if (!modelBox.isIntersection(viewBox)) return;
/////////////////////////////////////////////////////////////////////////////////////
//build queue
queue->clear();
//add all childs
for (auto child : *object)
queue->append([&](const AABox2& mbox) -> bool
{
const AABox2& wbox = mbox.applay(disViewM4);
return modelBox.isIntersection(wbox);
}, child);
//draw filter
RenderContext::setStencil(STENCIL_REPLACE);
RenderContext::stencilClear();
RenderContext::setColorWritable(false, false, false, false);
RenderContext::setZBufferWritable(false);
///////////////////////////////////
//enable state settings
enableStates();
//set uniform
getShader()->uniform(uAlphaMask,alphaMask);
//draw mesh
if (getMesh()) getMesh()->draw();
///////////////////////////////////
//set filter
RenderContext::setStencil(STENCIL_KEEP);
RenderContext::setColorWritable(true, true, true, true);
RenderContext::setZBufferWritable(true);
//draw queue
if (render->getBatchingIsEnable())
queue->draw(render->getBatchingMesh());
else
queue->draw();
//disable filter
RenderContext::setStencil(STENCIL_NONE);
}
}