MCPcopy Create free account
hub / github.com/axmolengine/axmol / draw

Method draw

tests/cpp-tests/Source/ClippingNodeTest/ClippingNodeTest.cpp:611–649  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

609}
610
611void RawStencilBufferTest::draw(Renderer* renderer, const Mat4& transform, uint32_t flags)
612{
613 auto winPoint = Vec2(Director::getInstance()->getWinSize());
614 auto planeSize = winPoint * (1.0 / _planeCount);
615
616 renderer->addCallbackCommand([=]() { renderer->setStencilTest(true); }, _globalZOrder);
617
618 for (int i = 0, cmdIndex = 0; i < _planeCount; i++)
619 {
620 auto spritePoint = planeSize * i;
621 spritePoint.x += planeSize.x / 2;
622 spritePoint.y = 0;
623 _sprites.at(i)->setPosition(spritePoint);
624 _spritesStencil.at(i)->setPosition(spritePoint);
625
626 renderer->clear(ClearFlag::STENCIL, Color4F::BLACK, 0.f, 0x0, _globalZOrder);
627
628 renderer->addCommand(&_renderCmds[cmdIndex]);
629 cmdIndex++;
630
631 Director* director = Director::getInstance();
632 AXASSERT(nullptr != director, "Director is null when setting matrix stack");
633 director->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
634
635 _modelViewTransform = this->transform(transform);
636 _spritesStencil.at(i)->visit(renderer, _modelViewTransform, flags);
637 director->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
638
639 renderer->addCommand(&_renderCmds[cmdIndex]);
640 cmdIndex++;
641
642 director->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
643 _modelViewTransform = this->transform(transform);
644 _sprites.at(i)->visit(renderer, _modelViewTransform, flags);
645 director->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW);
646 }
647
648 renderer->addCallbackCommand([=]() { renderer->setStencilTest(false); }, _globalZOrder);
649}
650
651void RawStencilBufferTest::onBeforeDrawClip(int planeIndex)
652{

Callers

nothing calls this directly

Calls 12

getInstanceFunction · 0.85
addCallbackCommandMethod · 0.80
setStencilTestMethod · 0.80
pushMatrixMethod · 0.80
popMatrixMethod · 0.80
Vec2Function · 0.50
setPositionMethod · 0.45
atMethod · 0.45
clearMethod · 0.45
addCommandMethod · 0.45
transformMethod · 0.45
visitMethod · 0.45

Tested by

no test coverage detected