ETC1Util isETC1Supported()在某些设备上运行不正常

时间:2012-01-22 14:58:29

标签: android opengl-es compression textures

我正在开发一款带有大量纹理和网格物体的Android OpenGL应用程序。对于纹理,我正在使用ETC1压缩(大多数纹理是2048x1024像素)。

在索尼爱立信Xperia Arc上测试我的实际构建后,我得到了OutOfMemory异常。我一整天都在Nexus One上测试了这个问题并且有相同的例外。新的三星Nexus(Prime)或三星Note没有问题。

我发现Xperia Arc和Nexus One上的本机堆大幅增长。我发现isETC1Supported()在这些设备上失败,因此ETC1Util回退到未压缩模式。但这些设备确实支持ETC1压缩。如果检查GL_EXTENSIONS字符串,则显示文本“GL_OES_compressed_ETC1_RGB8_texture”。 ETC1Util内部的ETC1支持检查在isETC1Supported()函数内以其他方式完成。

所以我创建了自己的ETC1Util版本并修改了isETC1Supported()检查。现在一切都在这些设备上正常工作!

是否有人在其他设备上遇到同样的问题?

0 个答案:

没有答案