モバイル AIR アプリケーションでの GPU レンダリング

AIR アプリケーションでハードウェアのグラフィックアクセラレーションを有効にするには、アプリケーション記述子に <renderMode>gpu</renderMode> を含めます。実行時にレンダリングモードを変更することはできません。デスクトップコンピューターでは、GPU グラフィックアクセラレーションがサポートされていないので、renderMode の設定は無視されます。

GPU レンダリングモードの制限事項

AIR 2.5 で GPU レンダリングモードを使用する場合、次の制限事項があります。

  • GPU がオブジェクトをレンダリングできない場合、そのオブジェクトはまったく表示されません。CPU レンダリングに置き換えることはできません。

  • ブレンドモードのレイヤー、アルファ、消去、オーバーレイ、ハードライト、比較(明)、比較(暗)はサポートされません。

  • フィルターはサポートされません。

  • PixelBender はサポートされません。

  • 多くの GPU ユニットでは、最大テクスチャサイズは 1024 x 1024 です。ActionScript の場合、この値は、すべての変換の後で、最終的にレンダリングされる表示オブジェクトの最大サイズに変換されます。

  • ビデオを再生する AIR アプリケーションで GPU レンダリングモードを使用することはお勧めしません。

  • GPU レンダリングモードでは、仮想キーボードを開いたときに、テキストフィールドが必ず表示位置に移動されるとは限りません。ユーザーがテキストを入力するときにテキストフィールドが必ず表示されるようにするには、次のどちらかを実行します。テキストフィールドを画面の上半分に配置するか、または、フォーカスを受け取ったときにテキストフィールドを画面の上半分に移動します。

  • GPU レンダリングモードが正常に動作しない一部のデバイスでは、このモードは無効です。最新情報については、AIR 開発者向けリリースノートを参照してください。

GPU レンダリングモードのベストプラクティス

より高速な GPU レンダリングを行うには、次のガイドラインに従います。

  • ステージに表示するアイテムの数を制限してください。アイテムはそれぞれ、レンダリングおよび周囲の他のアイテムとの合成に時間がかかります。表示オブジェクトを表示しないようにする場合は、visible プロパティを false に設定します。·単にステージ外に移動したり、ほかのオブジェクトの背面に隠したり、alpha プロパティを 0 に設定するだけの処理は行わないでください。表示オブジェクトが完全に不要になった場合は、removeChild() を使用してステージから削除します。

  • オブジェクトを作成し、破棄するのではなく、オブジェクトを再利用してください。

  • ビットマップは、2n x 2m ビットに近い、それ未満のサイズにしてください。サイズは正確に 2 の累乗とする必要はありませんが、2 の累乗を超えない範囲で、それに近いものである必要があります。例えば、31 x 15 ピクセルのイメージは、33 x 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 は連携して使用されますが、この場合はレンダリングパフォーマンスが低下します。