Android——OpenGL没有';不带模拟器显示?
当我在模拟器上运行我的程序时,它会显示一个Android——OpenGL没有';不带模拟器显示?,android,testing,emulation,Android,Testing,Emulation,当我在模拟器上运行我的程序时,它会显示一个ImageView初始屏幕,然后应用程序的其余部分会显示一个黑屏,该应用程序使用GLSurfaceViews。OGL在我的手机上运行良好。我已经在两台计算机(低性能和高性能)上测试了该程序,但都没有显示GLSurfaceViews。我还使用Google apidemos interweb站点上的一些OGL演示测试了模拟器,但两台计算机上都没有显示这些演示。我的程序使用OGL es 1.1,但是我也使用OGL es 1.0进行了测试,但没有结果。如何在模拟
ImageView
初始屏幕,然后应用程序的其余部分会显示一个黑屏,该应用程序使用GLSurfaceViews
。OGL在我的手机上运行良好。我已经在两台计算机(低性能和高性能)上测试了该程序,但都没有显示GLSurfaceViews。我还使用Google apidemos interweb站点上的一些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);
}
嗯,有一些可能性。首先,让我们看看应该可以工作的东西是否可以在模拟器上工作。你能到这里试试这个教程并通过你的模拟器运行它吗:(先做这一点) 这样我们就知道问题是出在代码还是模拟器上了 之后,您可能需要查看是否存在所有的问题
请在评论中告诉我您的进展。我运行了链接程序,它显示了红色背景,这很好。因此,我添加了一些简单的代码来绘制一个正方形(发布在上面),而这个正方形没有在模拟器上呈现(在手机上工作)。现在该怎么办?我认为您的示例代码缺少一些小的OpenGL调用。也许可以看看该教程的第二部分,看看这是否也有效:我缺少gl.glEnableClientState(GL10.gl\u VERTEX\u数组);我的手机根本不在乎。这是一个已解决的重大问题。非常感谢。@农场鸵鸟:没问题。尽管将来您可能还需要检查手机/平板电脑是否也支持您正在使用的OpenGL扩展:以防您想要使用OpenGL的更多功能,并且您不确定这些功能是否受支持(否则您也会遇到其他错误)。