Skip to content

Commit 3886445

Browse files
author
minggo
authored
fix issue that render texture will have wrong effect if using with global z order (#18629)
1 parent 881e5d1 commit 3886445

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

cocos/2d/CCRenderTexture.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,12 @@ void RenderTexture::draw(Renderer *renderer, const Mat4 &transform, uint32_t fla
771771
}
772772
}
773773

774+
void RenderTexture::setGlobalZOrder(float globalZOrder)
775+
{
776+
Node::setGlobalZOrder(globalZOrder);
777+
_sprite->setGlobalZOrder(globalZOrder);
778+
}
779+
774780
void RenderTexture::begin()
775781
{
776782
Director* director = Director::getInstance();
@@ -805,15 +811,17 @@ void RenderTexture::begin()
805811
renderer->addCommand(&_groupCommand);
806812
renderer->pushGroup(_groupCommand.getRenderQueueID());
807813

808-
_beginCommand.init(_globalZOrder);
814+
// Begine command should be the first command of the command group.
815+
_beginCommand.init(INT_MIN);
809816
_beginCommand.func = CC_CALLBACK_0(RenderTexture::onBegin, this);
810817

811818
Director::getInstance()->getRenderer()->addCommand(&_beginCommand);
812819
}
813820

814821
void RenderTexture::end()
815822
{
816-
_endCommand.init(_globalZOrder);
823+
// End command should be the last command of the command group.
824+
_endCommand.init(INT_MAX);
817825
_endCommand.func = CC_CALLBACK_0(RenderTexture::onEnd, this);
818826

819827
Director* director = Director::getInstance();

cocos/2d/CCRenderTexture.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ class CC_DLL RenderTexture : public Node
264264
// Overrides
265265
virtual void visit(Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags) override;
266266
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override;
267+
virtual void setGlobalZOrder(float globalZOrder) override;
267268

268269
/** Flag: Use stack matrix computed from scene hierarchy or generate new modelView and projection matrix.
269270
*

0 commit comments

Comments
 (0)