I tried taking screenshot of some nodes by calling their visit() method between begin() and end() methods of RenderTexture instance.
I got an unexpected result with 3.0-beta2 while the same code 3.0alpha0 works normal.
bool HelloWorld::init()
{
if ( !Layer::init() ) return false;
Size visibleSize = Director::getInstance()->getVisibleSize();
Point origin = Director::getInstance()->getVisibleOrigin();
auto label = LabelTTF::create("Hello World", "Arial", 24);
label->setPosition(Point(origin.x + visibleSize.width/2,
origin.y + visibleSize.height - label->getContentSize().height));
this->addChild(label, 1);
auto sprite = Sprite::create("HelloWorld.png");
sprite->setPosition(Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
this->addChild(sprite, 0);
RenderTexture *rendTex = RenderTexture::create(visibleSize.width, visibleSize.height );
rendTex->beginWithClear(0.3f, 0.56f, 1.0f, 1.0f);
label->visit();
sprite->visit();
rendTex->end();
rendTex->saveToFile("test.jpg", Image::Format::JPG);
CCLOG("Saved to %s", FileUtils::getInstance()->getWritablePath().c_str() );
return true;
}
render_texture_3-0-beta2-problem.png (15.1 KB)