cocos2d::CCTexture2D* texture = iSprite->getTexture();
CCRenderTexture* rt = CCRenderTexture::create(texture->getPixelsWide(), texture->getPixelsHigh());
Cocos2d:断言失败:无法将纹理附加到帧缓冲区
当我在主线程中调用CCRenderTexture时 - 一切正常。但是,如果我尝试从子线程调用CCRenderTexture,我会收到此断言。
如何在主线程中调用此方法?因此,disoc_async在cocos 2d-x中不可用。
谢谢!
答案 0 :(得分:0)
在Cocos2D中,任何创建或修改纹理的代码都必须在主线程上运行。这是OpenGL的限制,因为附加或分离纹理必须从创建OpenGL上下文的同一个线程完成。通常这是主线索。
简而言之:您无法在主线程以外的任何线程上创建,渲染或从CCRenderTexture中获取图像。