ETC1纹理压缩保证可在OpenGL ES 2.0 Android设备上使用?

时间:2015-01-29 14:52:28

标签: android compression textures opengl-es-2.0 opengl-extensions

我对Android设备上ETC1 Textue压缩的可用性(或不可用)感到有些困惑。

我在不同的地方看到这个(来自Android Docs):

  

警告:大多数Android设备都支持ETC1格式,但不保证可以使用。要检查设备是否支持ETC1格式,请调用ETC1Util.isETC1Supported()方法。

我也相信(如果我错了,请纠正我),OpenGL ES 2.0强制要求ETC1支持。

因此,有人可以澄清来自文档的上述声明是否仅仅意味着ETC1压缩支持不能保证可用OpenGL ES 1.x,设备,但可能可用扩展的方式,因此在这些设备上,您应该调用ETC1Util.isETC1Supported()方法来检查可用性

如果我的假设是正确的,那么我也会假设我可以 100%保证我的目标的 所有 可以使用ETC1设备(因为我的应用程序使用OpenGL ES 2.0,我检查了应用程序的可用性)。因此我需要检查ETC1Util.isETC1Supported()?

或许我误解了它,我仍然需要检查?

1 个答案:

答案 0 :(得分:0)

基于官方Android文档,保证支持ES 2.0的设备也支持ETC1。我发现至少有两页说明:

  • 在页面Creating Multiple APKs for Different GL Textures上,在"图表您的要求下":

      

    请注意,您的某个APK通常最好支持ETC1,因为所有支持OpenGL ES 2.0规范的Android设备都支持该纹理格式。

  • 在包含supports-gl-texture文档的页面上,在包含各种格式的表格中,它显示为GL_OES_compressed_ETC1_RGB8_texture

      

    爱立信纹理压缩。在OpenGL ES 2.0中指定,适用于所有支持OpenGL ES 2.0的Android设备。