Quartz如何处理纹理压缩?
问题描述:
我在iPhone上开发,大部分游戏都使用OpenGL ES,但也有一些菜单使用CGImage和Quartz来显示。在OpenGL ES中,我知道无论图像压缩如何进行(JPG,PNG等),作为纹理存储在内存中的数据都是8位纹理,除非我使用PVRTC,在这种情况下,我可以将它2或4位。由于CGImage很大,我们一直有内存问题,所以我的问题是...... Quartz和CGImage使用什么类型的优化和压缩?我无法在苹果的文档中找到详细信息,当我真的想知道如果将尺寸设置为2的帮助时,将256色图像放入JPG还是PNG,等等。速度不重要,记忆是这里的瓶颈。Quartz如何处理纹理压缩?
谢谢。
答
石英是未压缩的。它用于快速合成和渲染像素精确的内容。一旦你的图像被绘制到上下文中,它们来自何处并不重要,但是无论像素是多少(如果我正确记得的话,通常每个像素4个字节),它们会采用每个像素所需的任何内容。它所做的一件大事是将alpha预先乘以避免混合。
现在,如果不显示内存压力下的某些视图可以驱逐它们的内容,并根据需要重新构建它们。在这些情况下,来自压缩源的CGImage通常会占用较少的内存,但我认为这与您描述的情况无关。
完美,非常感谢您的信息。 – Eli 2009-07-23 17:58:54