Android OpenGL ES GL10或GL11

在这之间有什么不同,以及我如何查询实际电话所支持的内容? (GL10或GL11)

我有一个HTC Legend,支持GL11吗? 或英雄…等…?

Solutions Collecting From Web of "Android OpenGL ES GL10或GL11"

有一个API:

public int getGLVersion() { ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); ConfigurationInfo info = am.getDeviceConfigurationInfo(); return info.reqGlEsVersion; } 

高位16位表示主要版本,低位16位表示次要版本。 欲了解更多信息,请访问此链接 。 所以:

  • 对于OpenGLES 1.1,getGLVersion()== 0x00010001
  • 对于OpenGLES 2.0,getGLVersion()== 0x00020000

如果您想要string表示(用于显示),请调用ConfigurationInfo.getGlEsVersion()

你可以在你的GL10 instanceof上使用instanceof来testing是否支持GL11或更高版本:

 public void onSurfaceCreated(GL10 gl, EGLConfig config) { if(gl instanceof GL11) { // ... } } 

使用glGetString查询版本信息,parsing返回的string时必须小心 – 有些实现并不完全遵循规范 – 但这里的代码适用于我。

实际上,任何实际上具有graphics硬件的东西都将支持1.1。 1.0是为软件实现而devise的configuration文件,并且不存在仅支持1.0 afaik的硬件。

如果它没有graphics硬件,你不会真的想在它上面运行你的gl应用程序,因为性能很差,所以你可以设置AndroidManifest.xml来指定版本0x00010001,然后你就知道了支持GL11。

另外,在11以后发布的任何东西都可能支持GLES 2.0(所有的gl2.0支持gl1.1)

检查安卓市场统计,90.5%的设备支持2.0,1.0甚至不在统计,因为1.0从来没有被任何人使用。