我在我的 cocos2d 项目中实现了 GPUImage 框架,GPUImage 框架是一个 BSD 许可的 iOS 库,可让您将 GPU 加速过滤器和其他效果应用于图像、实时摄像机视频和电影。
当我调用任何一个 GPUImage 过滤器时,我得到“ cocos2d OpenGL error 0x0502 in -[EAGLView swapBuffers] ”错误。
你知道在这种情况下可能是什么问题吗?
谢谢和问候,普拉卡什。
我在我的 cocos2d 项目中实现了 GPUImage 框架,GPUImage 框架是一个 BSD 许可的 iOS 库,可让您将 GPU 加速过滤器和其他效果应用于图像、实时摄像机视频和电影。
当我调用任何一个 GPUImage 过滤器时,我得到“ cocos2d OpenGL error 0x0502 in -[EAGLView swapBuffers] ”错误。
你知道在这种情况下可能是什么问题吗?
谢谢和问候,普拉卡什。
我不知道您的代码在做什么,但我所看到的是,如果应用程序的方向从正常方向发生变化,有时会出现交换缓冲区问题。尝试在使用代码之前和之后打印主视图的大小。
我碰巧遇到了同样的问题。我发现以下帖子很有用: iOS 和多个 OpenGL 视图
就我而言,cocos2d 文件没有必要的“setCurrentContext”命令,所以我将它添加到 CCEAGLView-ios.mm 中。它解决了我的问题。
(void) layoutSubviews
{
[renderer_ resizeFromLayer:(CAEAGLLayer*)self.layer];
size_ = [renderer_ backingSize];
[EAGLContext setCurrentContext: context_];
cocos2d::Size size;
size.width = size_.width;
size.height = size_.height;
cocos2d::Director::getInstance()->drawScene();
}