opengles “sgx error: background gpu access not permitted”

Well, this one can be really painful.

But solution is simple, just make sure you are stopping every OpenGL AND sound activity in applicationWillResignActive function, not in applicationDidEnterBackground (becouse it’s too late, app is already in background and no OpenGL/Sound is allowed, you can add playing sounds in background into plist but OpenGL won’t be allowed anyway).

opengles的游戏应用中出现了上面的错误,其实很简单在appdelegate的

applicationWillResignActive中进行控制,在进入后台的时候不在进行opengles的render操作和openal的player操作。然后消除这个问题。

对于opengles可以一般都是双缓存的,所以进入钱可以注册消息或者代理模式实现暂停,在暂停函数里面,进行最后一次缓冲的交换,然后return,跳出render函数,

bool wiigotobackground = no;
if(pause){
    f(wiigotobackground){           
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
            //在这里画世界
            //画暂停界面 
            //改变开关状态 
             wiigotobackground = yes;
            [self swapBuffers];//缓存交换            
    }retun;
}

 不再进行更新和渲染,上面是最后一次渲染,为了是画上暂停界面,最终解决问题。

 

posted @ 2013-01-25 19:31  莫若静忘  阅读(253)  评论(0编辑  收藏  举报