2011-08-20 44 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失敗,那麼你將沒有上下文,但你也不會返回。