Tag: 特征检测

在iOS中响应RAM的可用性

我有一个纹理很重的OpenGL游戏,我想根据这个设备有多lessRAM来调整。 我在iPhone 4或iPad2上的最高分辨率纹理工作正常,但较早的设备在加载纹理的过程中崩溃。 我有这些纹理的低分辨率的版本,但我需要知道什么时候使用它们。 我目前的策略是检测特定的旧设备(3GS有一个低分辨率的屏幕,iPad没有相机),然后只加载高分辨率的纹理IPad2及以上和iPhone 4及以上 – 我想我需要为iPod touch做一些事情。 但我更愿意使用特征检测而不是硬编码设备模型,因为模型检测对于将来对API和硬件的更改是脆弱的。 我正在考虑的另一种可能性是首先加载高分辨率的纹理,然后下降,并取代低分辨率的时候,我得到一个低内存警告。 不过,我不确定我会有机会回应。 我注意到,在debugging控制台上出现任何通知之前,应用程序经常死亡。 如何检测我正在运行的设备是否没有足够的RAM来加载我的纹理的高分辨率版本? 退一步来说,是否还有其他一些适用于OpenGL纹理内存的自适应技术? 笔记: 我已经search了关于可用RAM检测的答案,但他们都基本上build议分析内存使用情况,并消除浪费(最大限度地减less临时对象和所有这一切)。 我已经做了尽可能多的事情,而且我也不可能将高分辨率的纹理压缩到较旧的设备上。 PVRTC不是一个选项。 纹理包含片段着色器要使用的数据,并且必须以无损格式存储。