【问题标题】:What is android opengl equivalent to surfaceHolder.lockCanvas()什么是 android opengl 等价于 surfaceHolder.lockCanvas()
【发布时间】:2012-04-27 09:45:33
【问题描述】:

我正在尝试为 3D android 游戏构建游戏框架。我正在尝试使用本教程来做到这一点,

http://www.javacodegeeks.com/2011/07/android-game-development-game-loop.html

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

我的问题是,由于我使用单独的线程来调用我的更新和绘制方法,它们是否等同于我使用 android OpenGL GL10 类对画布所做的操作?

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

虽然这应该是我的程序中使用 opengl GL10 类的唯一对象,但我想确保我可以控制 GL10 相机,如果这是最好的方法吗?

【问题讨论】:

    标签: android multithreading opengl-es


    【解决方案1】:

    我不确定我是否了解 Canvas API 和表面支架的东西。但是,在 Android 上使用 OpenGL,GLSurfaceView 似乎是您想要的 (code)。它派生自 SurfaceView 并使用EGL 进行低级表面管理。它已经启动了第二个渲染线程,调用Renderer 方法。您可能想查看threading model of Replica Island; Chris 使用第三个线程来更新游戏世界。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多