我对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()?
或许我误解了它,我仍然需要检查?
答案 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设备。