• [^] # Re: Azure/Skia

    Posté par . En réponse à la dépêche Firefox 27. Évalué à 10.

    Alors, moi aussi ça m'a intrigué et je suis allé me renseigner.
    Azure est une couche d'abstraction 2D (donc pas une implémentation) développée in-house pour remplacer cairo qu'ils utilisaient avant et qui ne répondait pas à leurs besoins.
    Notamment, cairo est statefull c'est à dire qu'on précise un état (couleurs d'avant et arrière plan, largeur des traits, pointillés ou pas, chemin courant, surface source pour le remplissage, ce genre de trucs) et ensuite on dessine en une seule commande qui ne prends quasi aucun arguments. On peut donc dessiner plusieurs fois en gardant un état presque identique (je dessine, je change légèrement mon état, je redessine) mais ça ne correspond pas du tout au modèle du web où chaque nouvelle opération de dessin importe un état complet depuis le CSS, et avec une bibliothèque comme cairo ça pourrit les perfs. Azure est une API stateless.

    Skia est une bibliothèque de dessin 2D (donc directement concurrente à cairo) multiplateforme qui n'est pas de Mozilla à l'origine et qui est aussi utilisée par Chrome. Elle est utilisée comme backend à Azure et possède elle même plusieurs backends, certains CPU, certains GPU, selon les plateformes.