解雇UIViewController时cocos2dx OpenGL错误0x0506

And*_*kha 1 c++ objective-c ios cocos2d-x

我遇到了一个非常困难的问题.在Cocos2d-x我正在处理的游戏中(它的主要部分是由另一个开发人员编写的,我刚刚完成它,现在它应该只在iOS上工作所以我不关心所有Android相关的东西)我需要使用UIViewController.我以一种非常通常的方式呈现并解雇:

当下:

 SDMoreAppsViewController *vc = [[SDMoreAppsViewController new] autorelease];
 [viewController presentViewController:vc animated:NO completion:nil];// viewController is UIWindow root view controller
Run Code Online (Sandbox Code Playgroud)

解雇:

 UIViewController *controller = self.presentingViewController;
[controller dismissViewControllerAnimated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

成功解除视图控制器后,我在控制台中看到消息告诉我opengl error 0x0506已经出现.这个消息是从方法印刷swapBuffersEAGLViewdrawCCSprite.随着这条消息,我的整个场景变得反应迟钝.点击按钮没有结果.

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

我正在使用cocos2d-x版本cocos2d-2.1rc0-x-2.1.3.

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

小智 5

在presentViewController之前,暂停渲染:

CCDirector::sharedDirector()->pause();
CCDirector::sharedDirector()->stopAnimation();
Run Code Online (Sandbox Code Playgroud)

在完成块中调用resume和startAnimation