Sprite *UILayer::getSprite()
{
RenderTexture *pRender = RenderTexture::create(getContentSize().width, getContentSize().height);
pRender->begin();
visit();
pRender->end();
Texture2D *pTexture = pRender->getSprite()->getTexture();
pTexture->setAliasTexParameters();
Sprite *pSprite = Sprite::createWithTexture(pTexture);
pSprite->setFlippedY(true);
return pSprite;
}
```
这段代码被调用之后如果不释放这个UIlayer,返回的Sprite就是这个Layer的截图没有问题
但是如果这个UILayer之后被释放了,Sprite就变成全黑的了,Sprite并没有释放,底层不是很了解,不知道3.0的RenderTexture怎么弄的
是这样的,3.0截屏需要在截完屏的下一帧才能处理RenderTexture。
在这篇文章中就有介绍到这个特点。