移动设备 AIR 应用程序中的 GPU 呈现

通过在应用程序描述符中加入 <renderMode>gpu</renderMode> ,在 AIR 应用程序中启用硬件图形加速。不能在运行时更改呈现模式。在台式计算机上,会忽略 renderMode 设置;当前不支持 GPU 图形加速。

GPU 呈现模式限制

当在 AIR 2.5 中使用 GPU 呈现模式时,存在下列限制:

  • 如果 GPU 不能呈现某个对象,该对象就完全不显示。CPU 呈现没有回退功能。

  • 不支持下列混合模式:图层、alpha、擦除、叠加、强光、变亮、变暗。

  • 不支持滤镜。

  • 不支持 PixelBender。

  • 许多 GPU 单位的最大纹理大小为 1024x1024。在 ActionScript 中,它会在所有转换之后转变为显示对象的最大最终呈现大小。

  • Adobe 不建议在播放视频的 AIR 应用程序中使用 GPU 呈现模式。

  • 在 GPU 呈现模式中,文本字段并非总是在虚拟键盘打开时移动到可见位置。要确保用户输入文本时文本字段可见,请执行以下操作之一。当文本字段获得焦点时,将其放在屏幕上半部分或将其移到屏幕上半部分。

  • GPU 呈现模式在某些设备上被禁用,因为在这些设备上该模式无法可靠地工作。有关最新信息,请参阅 AIR 开发人员发行说明。

GPU 呈现模式最佳实践

下列方法可以使 GPU 呈现加速:

  • 限制舞台上可见项目的数量。每个项目都需要花费一些时间来呈现其周围的其他项目并与它们合成。当您不再需要显示显示对象时,可将其 visible 属性设置为 false 。不要简单地将其移出舞台、将其隐藏在另一个对象后面或将其 alpha 属性设置为 0。如果彻底不再需要显示对象,使用 removeChild() 将其从舞台删除。

  • 重复使用对象,而不是创建和销毁它们。

  • 使位图的大小接近但小于 2 n 乘 2 m 位。尺寸不必正好为 2 的整数次幂,但是应该接近 2 的整数次幂,而不需要更大。例如,31 乘 15 像素的图像比 33 乘 17 像素的图像的呈现速度更快。(31 和 15 刚刚小于 2 的整数次幂:32 和 16。)

  • 如果可能,在调用 Graphic.beginBitmapFill() 方法时将 repeat 参数设置为 false。

  • 不要过分夸张。将背景色作为背景。不要将较大形状进行叠放。每个必须绘制的像素都需要成本。

  • 避免使用带有狭长突起、自相交的边缘或边缘周围存在许多细节的形状。呈现这些形状需要的时间比边缘平滑的显示对象长。

  • 限制显示对象的大小。

  • 针对不经常更新图形的线索对象启用 cacheAsBitMap 和 cacheAsBitmapMatrix。

  • 避免使用 ActionScript 绘图 API(Graphics 类)创建图形。而是尽可能在创作时以静态方式创建这些对象。

  • 先将位图资产缩放到最终大小,然后再将其导入。

手机版 AIR 2.0.3 中的 GPU 呈现模式

GPU 呈现在利用 Packager for iPhone 创建的手机版 AIR 应用程序中更受限制。GPU 只对位图、实体形状和设置了 cacheAsBitmap 属性的显示对象有效。此外,对于设置了 cacheAsBitmap cacheAsBitmapMatrix 的对象,GPU 可有效地呈现旋转或缩放的对象。GPU 还用于其他显示对象的串联中,这样通常会导致呈现性能变差。