Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android opengl与surfaceHolder.lockCanvas()的等价物是什么_Android_Multithreading_Opengl Es - Fatal编程技术网

android opengl与surfaceHolder.lockCanvas()的等价物是什么

android opengl与surfaceHolder.lockCanvas()的等价物是什么,android,multithreading,opengl-es,Android,Multithreading,Opengl Es,我正在尝试为3D android游戏构建一个游戏框架。我试着用这个教程 我能够让2D游戏框架正常工作。然后,本教程继续使用android的OpenGL功能,但没有在游戏框架中使用它 我的问题是,因为我使用一个单独的线程来调用我的update和draw方法,它们是否等同于我使用android OpenGl GL10类对画布所做的操作 try { canvas = this.surfaceHolder.lockCanvas(); synchronized (surfaceHolde

我正在尝试为3D android游戏构建一个游戏框架。我试着用这个教程

我能够让2D游戏框架正常工作。然后,本教程继续使用android的OpenGL功能,但没有在游戏框架中使用它

我的问题是,因为我使用一个单独的线程来调用我的update和draw方法,它们是否等同于我使用android OpenGl GL10类对画布所做的操作

try
{
    canvas = this.surfaceHolder.lockCanvas();
    synchronized (surfaceHolder)
    {
         //Update and draw code here
    }
}
finally
{
    surfaceHolder.unlockCanvasAndPost(canvas);
}

虽然这应该是我的程序中使用opengl GL10类的唯一对象,但我想确保我可以控制GL10摄像头,并且这是否是最好的方法?

我不确定我是否理解Canvas API和surface holder的内容。然而,在Android上使用OpenGL,结果似乎是您想要的()。它源于SurfaceView,并使用
EGL
进行低级表面管理。它已经启动第二个线程进行渲染,调用方法。你可能想看看这个问题;Chris使用第三个线程更新游戏世界