Hello,
I render my game screen to texture by CCRenderTexture. I do this in visit(), which I use for standart rendering.
So only difference is change buffers for render.
cocos2d::CCRenderTexture* m_pOffScreen;
m_pOffScreen = CCRenderTexture::renderTextureWithWidthAndHeight((int) s.width, (int) s.height);
m_pOffScreen->retain();
m_pOffScreen->setPosition(ccp(s.width / 2, s.height / 2));
void GameScreen::visit()
{
if (mRenderToTexture)
{
m_pOffScreen->begin();
}
LSScreen::visit();
if (mRenderToTexture)
{
m_pOffScreen->end();
mRenderToTexture = false;
m_game_ui->setIsVisible(true);
mScreenShotNumber++;
std::string screenShotName = "img" + LSUtils::intToString(mScreenShotNumber) + ".png";
m_pOffScreen->saveBuffer(kCCImageFormatPNG, screenShotName.c_str());
LSDevice::saveImageToGallery(screenShotName);
}
}
But in rendered image its wrong z-order (see screenshots).
For rendering we use bachnodes and setting z-order by setVertexZ().
(In this time is not possible to add file. I do it later.)
standart_render.png (920.9 KB)
to_texture_render.png (892.4 KB)