2011-08-20 119 views
4

我的iPhone游戏中有OpenAL的性能问题。我的游戏以60fps的速度运行,但是当我初始化OpenAL时,游戏开始混乱。这是我的初始化代码:OpenAL初始化会损害我的iPhone游戏的性能

ALCdevice* device = alcOpenDevice(NULL); 
    ALCcontext *context; 

    if(device) { 
     context = alcCreateContext(device, NULL); 
     alcMakeContextCurrent(context); 
    } 

我不创造任何OpenAL来源,也没有负载/发出任何声音。抖动(游戏一直颠簸)是由初始化OpenAL造成的。 XCode乐器说游戏以稳定的60fps运行,但它显然是抖动(当我不在游戏上面运行代码时,运行顺利)。

这也不会发生在使用iOS 3.1.3的老式iPod Touch 2G上。在iOS 4的所有其他设备上,出现抖动,这也是疯狂的。 我也试图把OpenAL的东西放在一个单独的线程中,但它没有帮助。

有没有人注意到类似的行为?

+0

我修改了你的帖子以显示“设备”和“上下文”的最可能的定义;请确认你正在做类似的事情。 – RJFalconer

回答

0

尝试在上下文设置后调用alcGetError()以确保成功。

这是在模拟器上还是在实际的手机上失败?

在发布的代码之后,您是否正在使用声音进行任何操作?在你发布的代码中,如果alcOpenDevice失败,那么你将没有上下文,但你也不会返回。