【问题标题】:Android -- OpenGL doesn't display w/ emulator?Android - OpenGL 不显示带模拟器?
【发布时间】:2011-06-06 20:01:18
【问题描述】:

当我在模拟器上运行我的程序时,它会显示一个ImageView 初始屏幕,然后在应用程序的其余部分显示一个黑屏,它使用GLSurfaceViews。 OGL 在我的手机上运行良好。我已经在两台计算机(低性能和高性能)上测试了该程序,并且都没有显示 GLSurfaceViews。我还使用 Google apidemos 网站上的一些 OGL 演示测试了模拟器,并且演示不会在两台计算机上显示。我的程序使用 OGL es 1.1,但是我也使用 OGL es 1.0 进行了测试,但无济于事。如何在模拟器上显示 ogl?谢谢。

这是一些在模拟器上不起作用的简单方形渲染代码示例


public void onDrawFrame(GL10 gl) {
  //This works
  gl.glClearColor(_red, _green, _blue, 1.0f);
  gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
  //This doesn't
  float vertices[] = { .5f, .5f, 0, .5f, -.5f, 0, -.5f, .5f, 0, -.5f, -.5f, 0 };
  FloatBuffer vertexSquareBuffer = ByteBuffer.allocateDirect(4 * 3 * 4)
    .order(ByteOrder.nativeOrder()).asFloatBuffer();
  vertexSquareBuffer.put(vertices);
  vertexSquareBuffer.position(0);
  gl.glColor4f(1, 1, 0, 0.5f);
  gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexSquareBuffer);
  gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0,4);
}

【问题讨论】:

    标签: android testing emulation


    【解决方案1】:

    嗯,有一些可能性。首先让我们看看应该工作的东西是否在你的模拟器上工作。你能不能到这里试试这个教程并通过你的模拟器运行它:http://www.droidnova.com/android-3d-game-tutorial-part-i,312.html(先做这个)

    这样我们就知道问题出在您的代码还是模拟器上。

    之后您可能需要查看是否有所有required shared object libraries present

    在 cmets 中告诉我你的进展情况。

    【讨论】:

    • 我运行了链接的程序,它显示红色背景,这很好。所以我添加了一些简单的代码来绘制一个正方形(上面发布)并且没有在模拟器上呈现(在手机上工作)。现在该怎么办?
    • 我认为您的示例代码缺少一些次要的 OpenGL 调用。也许看看该教程的第二部分,看看它是否也有效:droidnova.com/android-3d-game-tutorial-part-ii,328.html
    • 我错过了 gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);我的手机不在乎。这是解决的一个大问题。非常感谢。
    • @farm 鸵鸟:没问题。尽管将来您可能还想检查手机/平板电脑是否也支持您正在使用的 OpenGL 扩展:stackoverflow.com/q/2093594/83446 以防万一您想使用 OpenGL 的更多功能并且您不确定它们是否受支持(因为否则你也会遇到其他错误)。
    猜你喜欢
    • 2012-01-08
    • 2014-12-28
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 2012-02-14
    • 1970-01-01
    相关资源
    最近更新 更多