Cocos2dx报OpenGL error 0x0506错误

本文解决了iOS8系统中,应用从后台返回时出现OpenGL绘制错误的问题。通过在RootViewController.mm文件中添加两个方法,确保了应用在后台时停止OpenGL绘制,在返回前台时恢复正常绘制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期做第三方sdk接入时,发现iOS8系统下,进行银联充值后,返回游戏有很大几率会报
OpenGL error 0x0506............
之类的绘制问题,游戏卡死,花了很长时间,一直没有头绪

最终找到这篇文章:
[url]http://blog.lessfun.com/blog/2014/09/24/ios8-issue-keyboard-orientation-and-idletimerdisabled-not-working/[/url]

原来后台运行的app,是不允许进行openGL绘制的,而且iOS8要求更严格

好吧,切换到RootViewController.mm,加上这两个方法:

- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
cocos2d::CCApplication::sharedApplication()->applicationDidEnterBackground();
}

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
cocos2d::CCApplication::sharedApplication()->applicationWillEnterForeground();
}


applicationDidEnterBackground主要是在切到后台时做这些:

CCDirector::sharedDirector()->stopAnimation();
SimpleAudioEngine::sharedEngine()->pauseBackgroundMusic();
SimpleAudioEngine::sharedEngine()->pauseAllEffects();


applicationWillEnterForeground是切回前台,做这些:

CCDirector::sharedDirector()->startAnimation();
SimpleAudioEngine::sharedEngine()->resumeBackgroundMusic();
SimpleAudioEngine::sharedEngine()->resumeAllEffects();


done,希望能帮到iOS8下遇到类似问题的朋友
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值