Rendu sur GPU dans les applications AIR mobiles

Pour activer l’accélération matérielle des images dans une application AIR, insérez <renderMode>gpu</renderMode> dans le descripteur d’application. Il est impossible de modifier les modes de rendu à l’exécution. Sur les ordinateurs de bureau, le paramètre renderMode est ignoré ; l’accélération des images via le processeur graphique n’est actuellement pas prise en charge.

Limitations du mode de rendu sur GPU

Il existe certaines limitations lors de l’utilisation du mode de rendu sur GPU dans AIR 2.5 :

  • Si le processeur graphique ne parvient pas à effectuer le rendu d’un objet, ce dernier ne s’affiche pas. Il n’existe aucune autre alternative au rendu sur GPU.

  • Les modes de fusion suivants ne sont pas pris en charge : Calque, Alpha, Effacement, Superposition, Lumière crue, Eclaircir et Obscurcir.

  • Les filtres ne sont pas pris en charge.

  • PixelBender n’est pas pris en charge.

  • De nombreux processeurs graphiques disposent d’une taille de texture maximale de 1024 x 1024. Dans ActionScript, cela se traduit par la taille de rendu final maximale d’un objet d’affichage après toutes les transformations.

  • Adobe ne recommande pas l’utilisation du mode de rendu sur GPU dans les applications AIR compatibles avec la vidéo.

  • En mode de rendu sur GPU, les champs de texte ne sont pas toujours déplacés vers un emplacement visible lors de l’ouverture du clavier virtuel. Pour vous assurer que le champ de texte est visible lorsque l’utilisateur saisit du texte, effectuez l’une des opérations suivantes. Placez le champ de texte dans la moitié supérieure de l’écran ou déplacez-le vers la moitié supérieure de l’écran lorsqu’il reçoit le focus.

  • Le mode de rendu sur GPU est désactivé sur certains périphériques sur lesquels il ne fonctionne pas correctement. Voir les notes de version du développeur AIR pour obtenir les dernières informations.

Normes de bonnes pratiques en matière de rendu sur GPU

Les conseils suivants permettent d’accélérer le rendu sur GPU :

  • Limitez le nombre d’éléments visibles sur la scène. Le rendu de chaque élément et son impact sur les éléments qui l’entourent prennent un certain temps. Si vous ne souhaitez plus afficher un objet d’affichage, définissez sa propriété visible sur false. Ne vous contentez pas de le déplacer hors de la scène, placez-le derrière un autre objet afin de le masquer ou définissez sa propriété alpha sur 0. Si vous n’avez plus besoin de l’objet d’affichage, supprimez-le de la scène à l’aide de la propriété removeChild().

  • Réutilisez les objets au lieu de les créer et les détruire.

  • Créez des bitmaps dont la taille est inférieure à 2n x 2m bits, mais proche de cette valeur. Si les dimensions ne sont pas nécessairement exprimées sous la forme 2 à la puissance n, elles ne doivent ni s’en éloigner, ni dépasser cette valeur. Ainsi, le rendu d’une image de 31 x 15 pixels est plus rapide que celui d’une image de 33 x 17 pixels. (32 et 16 sont des puissances de 2, et 31 et 15 sont des valeurs légèrement inférieures.)

  • Dans la mesure du possible, définissez le paramètre repeat sur false lorsque vous appelez la méthode Graphic.beginBitmapFill().

  • Ne dessinez pas inutilement. Appliquez la couleur d’arrière-plan en tant qu’arrière-plan. Ne superposez pas les formes de grande taille. A chaque pixel à dessiner correspond une charge de traitement.

  • Evitez les formes à pointes longues et fines, les bords qui se recoupent ou un grand nombre de détails le long des bords. Le rendu de ces formes est en effet plus long que celui des objets d’affichage aux bords lisses.

  • Limitez la taille des objets d’affichage.

  • Activez cacheAsBitMap et cacheAsBitmapMatrix pour les objets d’affichage dont les images ne sont pas mises à jour fréquemment.

  • Evitez de créer des graphiques par le biais de l’API de dessin d’ActionScript (classe Graphics). Dans la mesure du possible, créez ces objets de façon statique au moment de la création.

  • Mettez à l’échelle les actifs bitmaps à la taille finale avant de les importer.

Mode de rendu sur GPU dans les applications AIR 2.0.3 mobiles

Le rendu sur GPU est soumis à davantage de restrictions dans les applications AIR mobiles créées avec l’outil Packager for iPhone. Le rendu sur GPU n’est efficace que sur les bitmaps, les formes pleines et les objets d’affichage dont la propriété cacheAsBitmap est définie. Le processeur peut par ailleurs effectuer le rendu des objets qui pivotent ou sont mis à l’échelle, et dont les propriétés cacheAsBitmap et cacheAsBitmapMatrix sont activées. Le processeur est utilisé en tandem pour d’autres objets d’affichage, ce qui entraîne généralement des performances de rendu médiocres.