OpenGl ES 2.0 - 程序未在Moto G上运行

时间:2015-02-10 19:31:35

标签: android eclipse opengl-es android-studio

我创建了一个通过模拟器处理Eclipse的小项目。我试过在Moto G上运行它,但它不起作用。编辑读取getError两次,因此以下语句为false - " GLES20.glGetError()未显示任何错误"但是logcat正在显示下方。

W/Adreno-ES20﹕ <core_glUseProgram:1546>: GL_INVALID_OPERATION
W/Adreno-ES20﹕ <core_glGetAttribLocation:639>: GL_INVALID_OPERATION
W/Adreno-ES20﹕ <core_glGetAttribLocation:639>: GL_INVALID_OPERATION

有趣的是,使用步骤调试,下面的前两个没有显示上面的问题但是最后一个日志:GL_INVALID_ENUM?

GLES20.glEnable( GLES20.GL_CULL_FACE );
GLES20.glCullFace(GLES20.GL_BACK);
GLES20.glEnable(GLES20.GL_TEXTURE_2D);

你有什么想法吗?我在清单中列出了以下内容。

uses-feature android:glEsVersion =&#34; 0x00020000&#34;机器人:需要=&#34;真&#34;

最后一点是我现在在Android Studio上使用gradle文件而不是Eclipse运行。这是因为后者更新了自己,并且由于依赖性而不再工作。

感谢您提前提供任何帮助。

标记

2 个答案:

答案 0 :(得分:0)

这确实不是ES 2.0中的有效调用:

GLES20.glEnable(GLES20.GL_TEXTURE_2D);

在旧版本的ES(1.x)和使用固定管道的OpenGL中,必须启用纹理。

使用可编程管道,这是ES 2.0及更高版本中的唯一选项,这已经没有意义了。如果要使用纹理,可以在着色器中对纹理进行采样。如果你不想使用纹理,你......不要。没有必要启用纹理。

您可以在man page上找到glEnable()的有效参数。

答案 1 :(得分:0)

Eclipse停止工作,所以我尝试了Android Studio。我非常确定该程序正在使用Eclipse。我有一张像这样的支票reqGlEsVersion&gt; = 0x20000。在Android Studio上,这返回0,所以我的EGL上下文没有被创建。显然,这个的价值和AVD设置的问题是有问题的。一旦我评论出来就没关系。