小编Asa*_* R.的帖子

Cocos2D-iPhone中的多线程OpenGL编程

为了尝试为我正在开发的iPhone游戏创建加载栏(使用Cocos2D),我想使用多线程方法.

一个线程显示一个加载屏幕并运行主应用程序事件循环,而一个新线程在后台静默加载所有Sprite(通过spriteWithFile),然后将它们添加到一个层.

我使用NSThread的detachNewThreadSelector方法创建新线程(该方法通过performSelectorOnMainThread将加载状态的更新发送到主线程).

我面临的问题是新线程中的任何OpenGL调用(例如在spriteWithFile方法中找到的调用)都会出现BUS ERROR或某种类型的内存访问错误.我假设这是因为两个线程都试图同时进行OpenGL调用,或者新线程不知道OpenGL上下文.

必须采取哪些措施才能允许多个线程使用Cocos2D-iPhone在iPhone上进行OpenGL调用.

iphone multithreading opengl-es cocos2d-iphone

9
推荐指数
1
解决办法
7882
查看次数