[英]OpenGl ES 2.0 – Program not running on Moto G
我已经创建了一个通过模拟器处理Eclipse的小项目。 我试过在Moto G上运行它,但它不起作用。 编辑两次读取getError,因此以下语句为假-“ 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 =“ 0x00020000” android:required =“ true”
最后一点是,我现在在带有gradle文件而不是Eclipse的Android Studio上运行。 这是因为后者由于依赖性而自行更新并且不再工作。
在此先感谢您的帮助。
标记
在ES 2.0中,这确实不是有效的调用:
GLES20.glEnable(GLES20.GL_TEXTURE_2D);
在旧版本的ES(1.x)和使用固定管道的OpenGL中,必须启用纹理。
使用可编程管道,这是ES 2.0及更高版本中的唯一选项,这已经没有意义了。 如果要使用纹理,可以在着色器中对纹理进行采样。 如果您不想使用纹理化,则...不要。 无需启用纹理。
您可以在手册页上找到glEnable()
的有效参数。
Eclipse停止工作,所以我尝试了Android Studio。 我很确定该程序正在使用Eclipse。 我有一个像这样的支票reqGlEsVersion> = 0x20000。 在Android Studio上,这返回0,因此我的EGL上下文没有被创建。 显然,这个的价值和AVD设置的问题是有问题的。 一旦我发表评论,就可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.