Ouvrir le menu principal

MacGeneration

Recherche

Flash 10.1 : Cocoa et Core Animation pour de meilleures performances

Anthony Nelzin-Santos

lundi 15 février 2010 à 09:17 • 61

Logiciels

« Ils sont feignants. Ils ont pourtant le potentiel pour faire des choses intéressantes, mais refusent de l'exploiter. », tels étaient les mots de Steve Jobs à l'encontre d'Adobe pour justifier l'absence de Flash dans iPhone OS et rappeler que la version Mac de Flash n'était pas aussi stable et puissante que la version PC. La situation est plus complexe que cela, comme le rappelle Tinic Uro, ingénieur chez Adobe sur le projet Flash Player, qui détaille l'utilisation d'une technologie Apple récente, Core Animation, pour améliorer les performances de Flash Player 10.1.

Intégrée pour la première fois dans Leopard, et présente dans l'iPhone OS, Core Animation est une interface de programmation qui permet notamment de produire des interfaces utilisateur animées. De nombreuses applications d'Apple l'utilisent, par exemple QuickTime X pour tous les effets de son interface (palette et barre d'outils disparaissant gracieusement). Core Animation permet aux développeurs de se faciliter la tâche : ils prévoient l'état de base de leur interface, l'état de sortie, et Core Animation calcule ce qu'il y a au milieu. Et Core Animation peut être accéléré par une carte graphique, pour grandement accélérer les choses et décharger le processeur central des tâches de rendu graphique.

Comme l'explique Tinic Uro, quatre méthodes sont disponibles pour l'affichage de Flash dans une fenêtre de navigateur sous Mac OS X :
- QuickDraw, qui remonte au Lisa, et qui est obsolète depuis Tiger. C'est la méthode utilisée par Opera, et les anciennes versions de Firefox et de Safari ;
- Quartz 2D (Core Graphics) son remplaçant côté rendu 2D. C'est la méthode utilisée actuellement par les versions les plus récentes de Firefox et de Safari ;
- OpenGL, qu'aucun navigateur ne supporte ;
- et donc Core Animation, que seul Safari 4 sur Snow Leopard supporte.

Mais comme on ne saurait se contenter de cette première couche de complexité, il existe trois manières d'intégrer du contenu Flash dans une page Web :
- le mode Normal, qui empêche l'utilisation de HTML par-dessus la couche SWF ;
- le mode Opaque, qui le permet ;
- le mode Transparent, qui rend le SWF transparent pour permettre de voir le HTML dessous.

Ce qui donne le croisement suivant pour Flash 10.0 :

flash-core-animation

Safari utilise donc Quartz 2D pour le rendu des éléments HTML, ce qui ne pose pas de problèmes à ce framework 2D pour du contenu statique. Mais dès que l'on ajoute Flash, les choses compliquent : à chaque nouvelle frame, Flash Player va demander le rafraîchissement de sa zone. Safari va alors isoler cette zone, mais va devoir repasser le HTML qui est derrière l'objet Flash, avant de dire à Flash Player qu'il peut désormais passer à la frame suivante. Rien de bien compliqué quand l'arrière-plan HTML est simple, mais c'est rarement le cas, surtout avec les capacités graphiques du CSS 3 (dégradés, etc.) : les allers-retours de l'un à l'autre consomment bientôt beaucoup de ressources processeur.

Pour faire court et peu technique, l'utilisation de Core Animation permet de simplifier considérablement ce dialogue entre Safari et Flash, et donc d'améliorer les performances.

Dialogue entre Safari et Flash, mais aussi entre Apple et Adobe, car pour mieux intégrer Core Animation et les plug-ins de navigateur, les ingénieurs des deux sociétés ont dû travailler ensemble, selon Tinic Uro. Résultat : avec les dernières versions de développement de Flash 10.1 et la dernière version de Safari, c'est Core Animation qui est utilisé à chaque fois qu'un objet Flash est l'objet de premier plan dans une page Web (c'est toujours le cas en mode Normal). Ce qui donne ce nouveau croisement :

flash-core-animation

Des versions de développement qui approchent la version finale, qui promet des gains de performances sensibles, même si de l'aveu même de Tinic Uro, cela ne sera pas suffisant pour régler tous les problèmes de performances de Flash sur Mac. Sur du contenu particulièrement compliqué qui ne reflète pas l'usage léger de Flash sur Web, l'ingénieur d'Adobe montre que le navigateur ne souffre plus grâce à Core Animation, tandis que le plug-in Flash lui-même demande moins de ressources :

flash-core-animation

Cerise sur le gâteau, que les plus pointus auront déjà débusquée : qui dit utilisation de Core Animation dit passage au Cocoa : Flash Player 10.1 se débarrasse en effet du vieux Carbon pour Safari, coupant l'herbe sous le pied de Steve Jobs (« Ils n'ont jamais rien fait pour mettre à profit les avancées d'Apple »). Carbon est cependant toujours présent dans Flash 10.1, mais uniquement pour Firefox et Opera.

Les torts ne sont sans doute pas tout à fait partagés dans cette affaire, mais la balle semble être résolument dans le camp d'Adobe pour améliorer la situation de Flash sur Mac. Mais la firme de San Jose semble y travailler : reste à voir ce qu'il en sera réellement dans les tâches de navigation quotidienne, pour les utilisateurs plutôt que pour les développeurs.

Soutenez MacGeneration sur Tipeee

MacGeneration a besoin de vous

Vous pouvez nous aider en vous abonnant ou en nous laissant un pourboire

Soutenez MacGeneration sur Tipeee

macOS 15.7 ainsi qu'iOS 18.7 corrigent des failles de sécurité, et l'iPhone 6s a aussi droit à sa mise à jour 🆕

16/09/2025 à 22:31

• 27


ChatGPT va essayer de deviner l’âge de ses utilisateurs pour protéger les ados

16/09/2025 à 21:50

• 4


Revue de tests des Apple Watch SE 3, Series 11 et Ultra 3 : des fortunes très diverses

16/09/2025 à 19:13

• 46


Sur iOS 26, Apple Plans se rapproche un petit peu de Waze

16/09/2025 à 19:13

• 90


iOS 26 : notre guide des nouveautés est en vente !

16/09/2025 à 18:10

• 83


À quoi ressemble le nouvel Assistant de réparation de macOS Tahoe 26

16/09/2025 à 17:13

• 9


Back to School : Microsoft Office 2021 à vie pour Mac à prix cassé 📍

16/09/2025 à 16:01

• 0


SFR Box 10+ : la box Wi-Fi 7 de SFR est disponible pour tous

16/09/2025 à 15:43

• 23


macOS Tahoe : Safari disparait de la partition de restauration (ou presque)

16/09/2025 à 15:15

• 12


watchOS 26 apporte les notifications d’hypertension sur plusieurs Apple Watch

16/09/2025 à 12:27

• 60


Free Mobile inclut un VPN gratuit, qui permet par hasard de contourner le blocage anti-porno

16/09/2025 à 12:08

• 60


Liquid Glass sur le web : c’est possible, mais c’est compliqué

16/09/2025 à 12:00

• 3


Astuce : récupérer les icônes dans les boîtes grises sur macOS Tahoe

16/09/2025 à 09:28

• 54


L'alimentation adaptative activée par défaut sur les iPhone 17

16/09/2025 à 09:06

• 20


Amazon annonce le retour des « Jours Flash Prime », les 7 et 8 octobre 2025

16/09/2025 à 08:13

• 14


iOS 26 : les six nouveautés pour vos AirPods

16/09/2025 à 06:38

• 23