这有什么区别,以及我如何查询实际手机支持的内容? (GL10或GL11)
我有一个HTC Legend,是否支持GL11? 或英雄......等......?
答案 0 :(得分:8)
有一个API:
public int getGLVersion()
{
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
ConfigurationInfo info = am.getDeviceConfigurationInfo();
return info.reqGlEsVersion;
}
高位16位表示主要版本,低位16位表示次要版本。有关更多信息,请访问this link。 所以:
如果您想要字符串表示(用于显示),请调用ConfigurationInfo.getGlEsVersion()
答案 1 :(得分:1)
您可以在GL10实例上使用instanceof
来测试是否支持GL11或更高版本:
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
if(gl instanceof GL11)
{
// ...
}
}
答案 2 :(得分:0)
使用glGetString查询版本信息,在解析返回的字符串时必须小心 - 某些实现并不完全遵循规范 - 但代码here适用于我。
答案 3 :(得分:0)
实际上,任何实际拥有图形硬件的东西都支持1.1。 1.0是为软件实现而设计的配置文件,并且不存在仅支持1.0 afaik的硬件。
如果它没有图形硬件,你真的不想在它上面运行你的gl应用程序,因为性能很差,所以你也可以设置AndroidManifest.xml来指定版本0x00010001,然后你知道它会支持GL11。
此外,在11年或之后发布的任何内容都很可能支持GLES 2.0(以及所有gl2.0支持gl1.1)
检查Android市场统计数据,90.5%的设备支持2.0,而1.0甚至不在统计数据中,因为1.0从未被任何人使用过。