android – 检测OpenGl ES 2.0是否可用

android – 检测OpenGl ES 2.0是否可用,第1张

概述我正在为API级别> = 7创建 Android应用程序.一个屏幕通过ndk使用带有OpenGL ES 2.0的GLSurfaceView.如何检测opengl 2.0是否可用?我不能在我的AndroidManifest.xml中使用android:glEsVersion =“0x00020000”,因为我必须支持API级别> = 7的所有手机.如果不支持2.0,我将显示静态屏幕. 我正在使用nd 我正在为API级别> = 7创建 Android应用程序.一个屏幕通过ndk使用带有OpenGL ES 2.0的GLSurfaceVIEw.如何检测opengl 2.0是否可用?我不能在我的AndroIDManifest.xml中使用androID:glEsversion =“0x00020000”,因为我必须支持API级别> = 7的所有手机.如果不支持2.0,我将显示静态屏幕.

我正在使用ndk附带的hello-gl2示例应用程序中的类似代码.在GL2JNIVIEw中,当它设置Opengl上下文时,如果它没有找到合适的opengl配置(在我的情况下是一个需要opengl es 2.0的配置),它会抛出IllegalArgumentException(“No configs match configSpec”)并且应用程序崩溃.我无法找到拦截该异常并在该屏幕上执行其他 *** 作的方法.有任何想法吗?

解决方法 这是我在互联网中发现的:
private boolean checkGL20Support( Context context ){    EGL10 egl = (EGL10) EGLContext.getEGL();           EGLdisplay display = egl.eglGetdisplay(EGL10.EGL_DEFAulT_disPLAY);    int[] version = new int[2];    egl.eglinitialize(display,version);    int EGL_OPENGL_ES2_BIT = 4;    int[] configAttribs =    {        EGL10.EGL_RED_SIZE,4,EGL10.EGL_GREEN_SIZE,EGL10.EGL_BLUE_SIZE,EGL10.EGL_RENDERABLE_TYPE,EGL_OPENGL_ES2_BIT,EGL10.EGL_NONE    };    EGLConfig[] configs = new EGLConfig[10];    int[] num_config = new int[1];    egl.eglChooseConfig(display,configAttribs,configs,10,num_config);         egl.eglTerminate(display);    return num_config[0] > 0;}

资料来源:http://www.badlogicgames.com/wordpress/?p=343

总结

以上是内存溢出为你收集整理的android – 检测OpenGl ES 2.0是否可用全部内容,希望文章能够帮你解决android – 检测OpenGl ES 2.0是否可用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1137770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存