Filtres et déchargement dynamique de bitmaps

Evitez les filtres, y compris ceux traités par le biais de Pixel Bender.

Utilisez un minimum d’effets tels que les filtres, y compris ceux traités sur les périphériques mobiles par le biais de Pixel Bender. Lors de l’application d’un filtre à un objet d’affichage, le moteur d’exécution crée deux bitmaps en mémoire, chacun de la taille de l’objet d’affichage. Le premier est une version pixellisée de l’objet d’affichage et sert à créer le second, auquel le filtre est appliqué :

Afficher le graphique en taille réelle
Deux bitmaps en mémoire lors de l’application d’un filtre

Lors de la modification de l’une des propriétés d’un filtre, les deux bitmaps sont mis à jour en mémoire pour créer le bitmap résultant. Ce processus sollicite l’unité centrale et les deux bitmaps peuvent nécessiter beaucoup de mémoire.

Flash Player 10.1 et AIR 2.5 proposent un nouveau comportement de filtrage sur toutes les plates-formes. Si le filtre n’est pas modifié sous 30 secondes, ou s’il est masqué ou hors écran, la mémoire utilisée par le bitmap non filtré est libérée.

Cette fonction économise donc la moitié de la mémoire exigée par un filtre sur toutes les plates-formes. Considérez par exemple un objet de texte auquel est appliqué un filtre de flou. Le texte en question est purement décoratif et ne subit aucune modification. Après 30 secondes, le bitmap non filtré est libéré de la mémoire. Il se produit le même résultat si le texte est masqué pendant 30 secondes ou est hors écran. Lors de la modification de l’une des propriétés du filtre, le bitmap non filtré en mémoire est recréé. Cette fonction s’appelle déchargement dynamique de bitmap. Même avec ces optimisations, utilisez les filtres avec précaution. Leur modification sollicite énormément l’unité centrale ou le processeur graphique.

Il est recommandé de créer des bitmaps dans un outil de création, tel qu’Adobe® Photoshop®, pour émuler les filtres, si possible. Evitez l’utilisation de bitmaps dynamiques créés à l’exécution dans ActionScript. L’utilisation de bitmaps créés en externe permet au moteur d’exécution de réduire la charge de l’unité centrale ou du processeur graphique, surtout si les propriétés du filtre ne changent pas à terme. Si possible, créez les effets requis sur un bitmap dans un outil de création. Vous pouvez ensuite afficher ce bitmap dans le moteur d’exécution sans le traiter, ce qui est beaucoup plus rapide.