这两者有何不同,我如何查询实际手机支持的是GL10还是GL11?
我有一部HTC Legend手机,它支持GL11吗?或者Hero...等等...
public int getGLVersion()
{
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
ConfigurationInfo info = am.getDeviceConfigurationInfo();
return info.reqGlEsVersion;
}
高16位表示主版本号,低16位表示次版本号。更多信息,请访问此链接。
如果您想要字符串表示(用于显示),请调用ConfigurationInfo.getGlEsVersion()
。
您可以在GL10实例上使用instanceof
来测试是否支持GL11或更高版本:
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
if(gl instanceof GL11)
{
// ...
}
}
实际上,任何真正拥有图形硬件的设备都将支持1.1。 1.0是为软件实现而设计的概要文件,据我所知不存在仅支持1.0的硬件。
如果没有图形硬件,您无论如何都不想在其上运行gl应用程序,因为性能非常差,因此您可以将AndroidManifest.xml设置为指定版本0x00010001,然后您就知道它将支持GL11。
此外,任何在“11年或之后发布的产品”都很可能支持GLES 2.0(所有gl2.0支持gl1.1)
检查android市场统计数据,90.5%的设备支持2.0,而1.0甚至不在统计数据中,因为没有人使用1.0。