当解除UIViewController时,cocos2dx OpenGL错误0x0506

cocos2dx OpenGL error 0x0506 when dismissing UIViewController

本文关键字:cocos2dx OpenGL 错误 0x0506 UIViewController      更新时间:2023-10-16

我遇到了一个非常困难的问题。在我目前正在开发的Cocos2d-x游戏中(它的主要部分是由另一位开发者编写的,我刚刚完成,现在它应该只在iOS上运行,所以我不在乎所有与Android相关的东西),我需要使用UIViewController。我以一种非常常见的方式呈现并驳回:

目前:

 SDMoreAppsViewController *vc = [[SDMoreAppsViewController new] autorelease];
 [viewController presentViewController:vc animated:NO completion:nil];// viewController is UIWindow root view controller

驳回:

 UIViewController *controller = self.presentingViewController;
[controller dismissViewControllerAnimated:NO completion:nil];

一旦视图控制器被成功解除,我就会在控制台中看到消息,告诉我opengl error 0x0506已经出现。此消息是从EAGLView的方法swapBuffersCCSprite的方法draw打印的。伴随着这条消息,我的整个场景都变得毫无反应。点击按钮没有结果。

我已经尝试了很多东西。我试着推送我的视图控制器,并将其添加为子视图,而不是显示,但它甚至没有显示视图控制器(viewWillAppear方法没有被调用),我也试着将其视图添加为应用程序窗口的子视图,但这也带来了很多不同的错误。

我使用的是cocos2d-x版本cocos2d-2.1rc0-x-2.1.3。

以前有人解决过这样的问题吗?有什么建议吗?

presentViewController之前,暂停渲染:

CCDirector::sharedDirector()->pause();
CCDirector::sharedDirector()->stopAnimation();

在完成块中调用resume和startAnimation