[go: nahoru, domu]

Aller au contenu

« Cairo (logiciel) » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
→‎Systèmes cibles : Correction d'accord du participe passé
m Ajout d'une espace manquante après modèle de langue
 
(18 versions intermédiaires par 12 utilisateurs non affichées)
Ligne 4 : Ligne 4 :
| logo = Cairo.png
| logo = Cairo.png
| image =
| image =
| description =
| développeur =
| développeur =
| version avancée =
| version avancée =
| date de version avancée = {{Date|6|septembre|2010|en informatique}}
| date de version avancée =
| environnements = [[Multiplate-forme]]
| environnements = [[Multiplate-forme]]
| langue =
| type = manipulation d'[[image vectorielle|images vectorielles]]
| type = manipulation d'[[image vectorielle|images vectorielles]]
| licences = [[Licence publique générale limitée GNU|LGPL]]/[[Mozilla Public License|MPL]]
| site web = [http://cairographics.org/ cairographics.org]
}}
}}
'''Cairo''' est une [[bibliothèque logicielle]] de manipulation d'[[image vectorielle|images vectorielles]], qui permet d'afficher les images avec le [[X Window System]] ou [[Microsoft Windows]]. ''Cairo'' permet également de créer du [[Postscript]] ou du [[PDF]]. Son [[interface de programmation]] est fondée sur Postscript<ref>{{en}}Jon Masters, Richard Blum,''Professional Linux Programming'', John Wiley & Sons - 2007, {{ISBN|9780470149492}}</ref>.
'''Cairo''' est une [[bibliothèque logicielle]] de manipulation d'[[image vectorielle|images vectorielles]], qui permet d'afficher les images avec le [[X Window System]] ou [[Microsoft Windows]]. ''Cairo'' permet également de créer du [[PostScript]] ou du [[Portable Document Format|PDF]]. Son [[interface de programmation]] est fondée sur PostScript<ref>{{en}} Jon Masters, Richard Blum,''Professional Linux Programming'', John Wiley & Sons - 2007, {{ISBN|9780470149492}}</ref>.


== Systèmes cibles ==
== Systèmes cibles ==
Cette bibliothèque a été implémentée sur [[X Window System|X]], [[OpenGL]] (''via'' Cairo-gl, introduit avec la version 1.10<ref>{{en}} [http://lists.cairographics.org/archives/cairo-announce/2010-September/000167.html cairo release 1.10.0 now available] le {{Date|6|septembre|2010|en informatique}}</ref>{{,}}<ref>{{en}} [http://lists.cairographics.org/archives/cairo/2009-July/017735.html New OpenGL backend merged] le {{Date|23|juillet|2009|en informatique}}</ref> à l'initiative d'[[Eric Anholt]]<ref>{{en}} [http://anholt.livejournal.com/42146.html FOSDEM 2010] le {{Date|7|février|2010|en informatique}}</ref>, qui succède à la bibliothèque [[glitz]]. Il existe aussi une implémentation drm (Direct Rendering Module) pour les circuits graphiques Intel en attendant que cairo-gl soit optimisé), [[Apple]] [[Mac OS X]], ''via'' [[Quartz (informatique)|Quartz]], ainsi que [[Microsoft Windows]] (2000, XP, Vista) ou les [[Framebuffer|tampons mémoires]] (utilisé sur les [[Assistant personnel|PDA]] et les téléphones [[Global System for Mobile Communications|GSM]]).
{{Pas clair|Cette bibliothèque a été implémentée sur [[X Window System|X]], [[OpenGL]] (''via'' Cairo-gl, introduit avec la version 1.10<ref>{{en}} [http://lists.cairographics.org/archives/cairo-announce/2010-September/000167.html cairo release 1.10.0 now available] le {{Date|6|septembre|2010|en informatique}}</ref>{{,}}<ref>{{en}} [http://lists.cairographics.org/archives/cairo/2009-July/017735.html New OpenGL backend merged] le {{Date|23|juillet|2009|en informatique}}</ref> à l'initiative d'[[Eric Anholt]]<ref>{{en}} [http://anholt.livejournal.com/42146.html FOSDEM 2010] le {{Date|7|février|2010|en informatique}}</ref>, qui succède à la bibliothèque Glitz.}} Il existe aussi une implémentation drm (Direct Rendering Module) pour les circuits graphiques Intel en attendant que cairo-gl soit optimisé), [[Apple]] [[macOS]], ''via'' [[Quartz (informatique)|Quartz]], ainsi que [[Microsoft Windows]] (2000, XP, Vista) ou les [[Framebuffer|tampons mémoires]] (utilisé sur les [[Assistant personnel|PDA]] et les téléphones [[Global System for Mobile Communications|GSM]]).


Il peut utiliser une sortie image vers des fichiers [[Portable Network Graphics|PNG]] mais aussi une sortie vers des fichiers [[PostScript]], [[Portable Document Format|PDF]] ou [[Scalable Vector Graphics|SVG]]. Cairo utilise l'accélération matérielle si elle est disponible pour une fonction et reviendra à un affichage logiciel si celle-ci n'est pas disponible.
Il peut utiliser une sortie image vers des fichiers [[Portable Network Graphics|PNG]] mais aussi une sortie vers des fichiers [[PostScript]], [[Portable Document Format|PDF]] ou [[Scalable Vector Graphics|SVG]]. Cairo utilise l'accélération matérielle si elle est disponible pour une fonction et reviendra à un affichage logiciel si celle-ci n'est pas disponible.
Ligne 23 : Ligne 19 :
Cairo a été commencé par [[Keith Packard]] et [[Carl Worth]] à la base spécialement pour le X Window System. Son nom original était '''Xr''' ou '''Xr/Xc''', mais il s'est vu finalement porté sur les différents systèmes afin de permettre aux différents développeurs d'applications de ne pas avoir à réécrire la partie affichage pour les différentes plateformes.
Cairo a été commencé par [[Keith Packard]] et [[Carl Worth]] à la base spécialement pour le X Window System. Son nom original était '''Xr''' ou '''Xr/Xc''', mais il s'est vu finalement porté sur les différents systèmes afin de permettre aux différents développeurs d'applications de ne pas avoir à réécrire la partie affichage pour les différentes plateformes.


Il avait à la base un but similaire à la technologie Quartz utilisée par [[Apple]] avec [[Aqua (informatique)|Aqua]] à l'époque du début du projet. Aujourd'hui, la technologie [[Windows Presentation Foundation]] de [[Microsoft]] utilise également le même principe, ce qui permet à Windows de bénéficier des mêmes technologies que MacOSX ou X11, mais avec une consommation de mémoire plus importante.
Il avait à la base un but similaire à la technologie Quartz utilisée par [[Apple]] avec [[Aqua (informatique)|Aqua]] à l'époque du début du projet. Aujourd'hui, la technologie [[Windows Presentation Foundation]] de [[Microsoft]] utilise également le même principe, ce qui permet à Windows de bénéficier des mêmes technologies que macOS ou X11, mais avec une consommation de mémoire plus importante.


Cairo est développé en langage [[C (langage)|C]], mais dispose de [[binding]] en [[C++]], [[Ruby]]<ref>{{en}} [http://cairo.rubyforge.org/ Rcairo] pour Ruby</ref>, [[Java (langage)|Java]], [[Python (langage)|Python]], [[PHP]], [[Perl (langage)|Perl]], [[Lua]], [[Mono (logiciel)|Mono]], [[OCaml]], [[Common Lisp]], [[Scheme]], [[Haskell]] et d'autres langages<ref name="bindings">{{en}} [http://cairographics.org/bindings/ Cairo bindings], langages permettant d'utiliser nativement la bibliothèque Cairo</ref>.
Cairo est développé en langage [[C (langage)|C]], mais dispose de [[Binding|liaisons]] en [[C++]], [[Ruby]]<ref>{{en}} [http://cairo.rubyforge.org/ Rcairo] pour Ruby</ref>, [[Java (langage)|Java]], [[Python (langage)|Python]], [[PHP]], [[Perl (langage)|Perl]], [[Lua]], [[Mono (logiciel)|Mono]], [[OCaml]], [[Common Lisp]], [[Scheme]], [[Haskell]], [[Fortran]] et d'autres langages<ref name="bindings">{{en}} [http://cairographics.org/bindings/ Cairo bindings], langages permettant d'utiliser nativement la bibliothèque Cairo</ref>.


== Historique ==
== Historique ==
Ligne 32 : Ligne 28 :
:La série 1.2 a eu pour but d'améliorer les performances d'affichage et d'empreinte mémoire.
:La série 1.2 a eu pour but d'améliorer les performances d'affichage et d'empreinte mémoire.
:La série 1.4 a continué sur cette voie et amélioré les sorties PS et PDF
:La série 1.4 a continué sur cette voie et amélioré les sorties PS et PDF
Entre la version 1.4.0 et la version 1.4.4, 60 % des appels à la fonction malloc(), principal goulot d'étranglement, ont été éliminés afin d'améliorer les performances<ref>[http://cairographics.org/news/cairo-1.4.4/ cairo 1.4.4 release available] Changements de la version 1.4.4</ref>. D'autres améliorations ont été amenées dans les versions suivantes pour réduire les reconstructions de motifs déjà à jour (notamment ''via'' des caches et du [[clipping]]) en cas de demandes intensives des applications.
Entre la version 1.4.0 et la version 1.4.4, 60 % des appels à la fonction [[malloc]](), principal goulot d'étranglement, ont été éliminés afin d'améliorer les performances<ref>[http://cairographics.org/news/cairo-1.4.4/ cairo 1.4.4 release available] Changements de la version 1.4.4</ref>. D'autres améliorations ont été amenées dans les versions suivantes pour réduire les reconstructions de motifs déjà à jour (notamment ''via'' des caches et du [[Clipping (infographie)|clipping]]) en cas de demandes intensives des applications.
:La série de développement 1.5 a grandement amélioré les sorties [[Portable Document Format|PDF]] en réduisant le recours à des [[Image matricielle|bitmaps]]. Dans des cas extrêmes, jusqu'alors, si une fonction n'était pas supportée, tout le PDF se retrouvait en bitmap. Le nombre de fonctions PS supportées est également accru. Certaines de ses fonctions ont été réinsérées dans la version 1.4
:La série de développement 1.5 a grandement amélioré les sorties [[Portable Document Format|PDF]] en réduisant le recours à des [[Image matricielle|bitmaps]]. Dans des cas extrêmes, jusqu'alors, si une fonction n'était pas supportée, tout le PDF se retrouvait en bitmap. Le nombre de fonctions PS supportées est également accru. Certaines de ses fonctions ont été réinsérées dans la version 1.4
:La version 1.6 s'est concentrée sur l'amélioration des sorties PDF et PS, ainsi qu'une meilleure gestion de X (pseudo-couleurs) et une refonte des sorties Quartz et impression win32.
:La version 1.6 s'est concentrée sur l'amélioration des sorties PDF et PS, ainsi qu'une meilleure gestion de X (pseudo-couleurs) et une refonte des sorties Quartz et impression win32.
:La version 1.8 apporte différentes amélioration autour de la gestion du texte, dont la possibilité d'importer les fontes de caractère dans les PDF, parallèlement au texte.
:La version 1.8 apporte différentes amélioration autour de la gestion du texte, dont la possibilité d'importer les fontes de caractère dans les PDF, parallèlement au texte.
:La version 1.10, voit le ''backend'' glitz complètement remplacé par le ''backend'' gl qui donne déjà de meilleurs résultats, ainsi qu'un ''backend'' drm (seuls les processeurs graphics intel étant supportés), permettant l'accès direct aux fonctions de la carte graphique, sans passer par OpenGL), un ''backend'' [[OpenVG]] est également en cours de développement. Cette version réintroduit le support du format RGB16, et ajoute une API permettant d'accéder au matériel.
:La version 1.10, voit le ''backend'' Glitz complètement remplacé par le ''backend'' gl qui donne déjà de meilleurs résultats, ainsi qu'un ''backend'' drm (seuls les processeurs graphics intel étant supportés), permettant l'accès direct aux fonctions de la [[carte graphique]], sans passer par OpenGL), un ''backend'' [[OpenVG]] est également en cours de développement. Cette version réintroduit le support du format RGB16, et ajoute une API permettant d'accéder au matériel.


== Logiciels et bibliothèques utilisant Cairo ==
== Logiciels et bibliothèques utilisant Cairo ==

Les bibliothèques de dessin vectoriel goocanvas et librsvg l'utilisent pour le rendu. Ce sont des bibliothèques en C avec des ''binding'' pour les langages [[Python (langage)|Python]] et [[Ruby]].
Les bibliothèques de dessin vectoriel goocanvas et librsvg l'utilisent pour le rendu. Ce sont des bibliothèques en C avec des ''binding'' pour les langages [[Python (langage)|Python]] et [[Ruby]].


Les bibliothèques graphiques [[GTK+]], [[FLTK]], [[GNUstep]]<ref name="bindings" /> l'utilisent également pour le dessin des widgets, mais n'ont pas de fonctions vectorielles poussées. Dans le cas de GTK+ goocanvas a pour but de remplir ce manque.
Les bibliothèques graphiques [[GTK (boîte à outils)|GTK]], [[FLTK]], [[GNUstep]]<ref name="bindings" /> l'utilisent également pour le dessin des widgets, mais n'ont pas de fonctions vectorielles poussées. Dans le cas de GTK goocanvas a pour but de remplir ce manque.
L'environnement de bureau [[GNOME]], utilisant GTK+, bénéficie donc de ces avantages.
L'environnement de bureau [[GNOME]], utilisant GTK, bénéficie donc de ces avantages.


La bibliothèque de gestion de PDF [[poppler]] (fork de [[Xpdf]])<ref>{{en}} [http://poppler.freedesktop.org/ Poppler] sur Freedesktop.org</ref>, utilise en partie Cairo afin d'afficher les pdf qu'elle ouvre. Cette bibliothèque est utilisée par les lecteurs de PDF libres [[ePDFView]], [[Evince]], [[Kat (informatique)|Kat]], le greffon KDE PDF kfile ainsi que pour l'importation des PDF dans [[Inkscape]].
La bibliothèque de gestion de PDF {{lien|langue=en|trad=Poppler (software)|fr=Poppler}} (fork de [[Xpdf]])<ref>{{en}} [http://poppler.freedesktop.org/ Poppler] sur Freedesktop.org</ref>, utilise en partie Cairo afin d'afficher les PDF qu'elle ouvre. Cette bibliothèque est utilisée par les lecteurs de PDF libres [[ePDFView]], [[Evince]], [[Kat (informatique)|Kat]], le greffon KDE PDF kfile ainsi que pour l'importation des PDF dans [[Inkscape]].


L'environnement de bureau [[KDE]] (utilisant [[Qt]]) n'utilise par contre pas Cairo, certains tests ont montré en octobre 2006 que Qt 4.3 avait, au moins dans certains cas simples, un rendu beaucoup plus rapide que Cairo 1.2.5 <ref>{{en}} [http://zrusin.blogspot.com/2006/10/benchmarks.html Benchmark] Cairo 1.2.5 + Glitz, Qt 4.3 + Xrender, Qt 4.3 + OpenGL, octobre 2006</ref>. Cependant cairo a été grandement optimisé à la sortie de la 1.4.0, certaines fonctions étaient 96 fois plus rapides<ref>{{fr}} [http://linuxfr.org/2007/03/07/22166.html Sortie de cairo 1.4.0] sur Linuxfr.org</ref> et le test serait à refaire aujourd'hui.
L'environnement de bureau [[KDE]] (utilisant [[Qt]]) n'utilise par contre pas Cairo, certains tests ayant montré en {{date-|octobre 2006}} que Qt 4.3 avait, au moins dans certains cas simples, un rendu beaucoup plus rapide que Cairo 1.2.5<ref>{{en}} [http://zrusin.blogspot.com/2006/10/benchmarks.html Benchmark] Cairo 1.2.5 + Glitz, Qt 4.3 + Xrender, Qt 4.3 + OpenGL, octobre 2006</ref>. Cependant Cairo ayant été grandement optimisé à la version 1.4.0 — avec certaines fonctions devenant 96 fois plus rapides qu'auparavant<ref>{{fr}} [http://linuxfr.org/2007/03/07/22166.html Sortie de cairo 1.4.0] sur Linuxfr.org</ref> —, le test serait à refaire aujourd'hui.


[[Gecko (moteur de rendu)|Gecko]] 2.0, le [[Moteur de rendu HTML|moteur]] de [[Mozilla Firefox]] 4, utilise Cairo pour l'affichage.
[[Gecko (moteur de rendu)|Gecko]] 2.0, le [[Moteur de rendu HTML|moteur]] de [[Mozilla Firefox]] 4, utilise Cairo pour l'affichage.


Le logiciel de dessin vectoriel libre [[Inkscape]] l'utilise pour le rendu en fil de fer depuis la version 0.45<ref>{{en}} [http://wiki.inkscape.org/wiki/index.php/ReleaseNotes045#Outline_mode Inkscape 0.45 release notes ; Outline mode]</ref> et les exportations PDF, PNG et PS dans la version 0.46<ref>{{en}} [http://wiki.inkscape.org/wiki/index.php/ReleaseNotes046#Import.2FExport Inkscape 0.46 release notes ; Import/export]</ref>. Le rendu plein et texturé utilise pour le moment la bibliothèque livarot sur lequel son prédécesseur, [[Sodipodi]] était basé. Étant donné les gains en termes de performance et de gestion de mémoire, la totalité du rendu devrait être dédiée à cairo dans les versions suivantes.
Le logiciel de dessin vectoriel libre [[Inkscape]] l'utilise pour le rendu en fil de fer depuis la version 0.45<ref>{{en}} [http://wiki.inkscape.org/wiki/index.php/ReleaseNotes045#Outline_mode Inkscape 0.45 release notes ; Outline mode]</ref> et les exportations PDF, PNG et PS dans la version 0.46<ref>{{en}} [http://wiki.inkscape.org/wiki/index.php/ReleaseNotes046#Import.2FExport Inkscape 0.46 release notes ; Import/export]</ref>. Le rendu plein et texturé utilise pour le moment la bibliothèque livarot sur lequel son prédécesseur, [[Sodipodi]] était basé. Étant donné les gains en matière de performances et de gestion de mémoire, la totalité du rendu devrait être dédiée à Cairo dans les versions suivantes.


Le logiciel éducatif pour enfants [[GCompris]] est en cours de portage sur goocanvas afin de bénéficier également des avantages de Cairo.
Le logiciel éducatif pour enfants [[GCompris]] est en cours de portage sur goocanvas afin de bénéficier également des avantages de Cairo.


== Références ==
== Notes et références ==
{{Références}}
{{Références}}


== Voir aussi ==
== Annexes ==

=== Articles connexes ===
=== Articles connexes ===

* [[Freedesktop.org]]
* [[Freedesktop.org]]
* [[Scalable Vector Graphics]]
* [[Scalable Vector Graphics]]
* [[Skia]]


=== Liens externes ===
=== Liens externes ===
* {{Site officiel}}

* [http://cairographics.org Site officiel]
* [http://www.gnomejournal.org/article/34/writing-a-widget-using-cairo-and-gtk28 Writing a Widget Using Cairo and GTK+2.8] : article de ''GNOME Journal''


{{Palette|Freedesktop}}
{{Palette|Freedesktop}}
Ligne 75 : Ligne 67 :
[[Catégorie:Bibliothèque logicielle]]
[[Catégorie:Bibliothèque logicielle]]
[[Catégorie:Logiciel libre sous licence GPL]]
[[Catégorie:Logiciel libre sous licence GPL]]
[[Catégorie:Logiciel graphique]]
[[Catégorie:Bibliothèque logicielle graphique]]
[[Catégorie:Logiciel pour Unix]]
[[Catégorie:Logiciel pour Unix]]
[[Catégorie:Logiciel pour Windows]]
[[Catégorie:Logiciel pour Windows]]

Dernière version du 7 juillet 2024 à 07:00

Cairo
Description de l'image Cairo.png.

Informations
Développé par Keith Packard, Carl Worth (d), Behdad Esfahbod (en) et Chris Wilson (d)Voir et modifier les données sur Wikidata
Dernière version 1.18.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt gitlab.freedesktop.org/cairo/cairoVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation GNU/Linux, Microsoft Windows, macOS et type UnixVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Type manipulation d'images vectorielles
Licence MPL-1.1 et licence publique générale limitée GNU version 2.1Voir et modifier les données sur Wikidata
Site web www.cairographics.orgVoir et modifier les données sur Wikidata

Cairo est une bibliothèque logicielle de manipulation d'images vectorielles, qui permet d'afficher les images avec le X Window System ou Microsoft Windows. Cairo permet également de créer du PostScript ou du PDF. Son interface de programmation est fondée sur PostScript[2].

Systèmes cibles

[modifier | modifier le code]

Cette bibliothèque a été implémentée sur X, OpenGL (via Cairo-gl, introduit avec la version 1.10[3],[4] à l'initiative d'Eric Anholt[5], qui succède à la bibliothèque Glitz.[pas clair] Il existe aussi une implémentation drm (Direct Rendering Module) pour les circuits graphiques Intel en attendant que cairo-gl soit optimisé), Apple macOS, via Quartz, ainsi que Microsoft Windows (2000, XP, Vista) ou les tampons mémoires (utilisé sur les PDA et les téléphones GSM).

Il peut utiliser une sortie image vers des fichiers PNG mais aussi une sortie vers des fichiers PostScript, PDF ou SVG. Cairo utilise l'accélération matérielle si elle est disponible pour une fonction et reviendra à un affichage logiciel si celle-ci n'est pas disponible.

Cairo a été commencé par Keith Packard et Carl Worth à la base spécialement pour le X Window System. Son nom original était Xr ou Xr/Xc, mais il s'est vu finalement porté sur les différents systèmes afin de permettre aux différents développeurs d'applications de ne pas avoir à réécrire la partie affichage pour les différentes plateformes.

Il avait à la base un but similaire à la technologie Quartz utilisée par Apple avec Aqua à l'époque du début du projet. Aujourd'hui, la technologie Windows Presentation Foundation de Microsoft utilise également le même principe, ce qui permet à Windows de bénéficier des mêmes technologies que macOS ou X11, mais avec une consommation de mémoire plus importante.

Cairo est développé en langage C, mais dispose de liaisons en C++, Ruby[6], Java, Python, PHP, Perl, Lua, Mono, OCaml, Common Lisp, Scheme, Haskell, Fortran et d'autres langages[7].

Les versions mineures paires sont les versions stables et impaires instables :

La stabilisation des fonctions minimum a été assuré pour la version 1.0.
La série 1.2 a eu pour but d'améliorer les performances d'affichage et d'empreinte mémoire.
La série 1.4 a continué sur cette voie et amélioré les sorties PS et PDF

Entre la version 1.4.0 et la version 1.4.4, 60 % des appels à la fonction malloc(), principal goulot d'étranglement, ont été éliminés afin d'améliorer les performances[8]. D'autres améliorations ont été amenées dans les versions suivantes pour réduire les reconstructions de motifs déjà à jour (notamment via des caches et du clipping) en cas de demandes intensives des applications.

La série de développement 1.5 a grandement amélioré les sorties PDF en réduisant le recours à des bitmaps. Dans des cas extrêmes, jusqu'alors, si une fonction n'était pas supportée, tout le PDF se retrouvait en bitmap. Le nombre de fonctions PS supportées est également accru. Certaines de ses fonctions ont été réinsérées dans la version 1.4
La version 1.6 s'est concentrée sur l'amélioration des sorties PDF et PS, ainsi qu'une meilleure gestion de X (pseudo-couleurs) et une refonte des sorties Quartz et impression win32.
La version 1.8 apporte différentes amélioration autour de la gestion du texte, dont la possibilité d'importer les fontes de caractère dans les PDF, parallèlement au texte.
La version 1.10, voit le backend Glitz complètement remplacé par le backend gl qui donne déjà de meilleurs résultats, ainsi qu'un backend drm (seuls les processeurs graphics intel étant supportés), permettant l'accès direct aux fonctions de la carte graphique, sans passer par OpenGL), un backend OpenVG est également en cours de développement. Cette version réintroduit le support du format RGB16, et ajoute une API permettant d'accéder au matériel.

Logiciels et bibliothèques utilisant Cairo

[modifier | modifier le code]

Les bibliothèques de dessin vectoriel goocanvas et librsvg l'utilisent pour le rendu. Ce sont des bibliothèques en C avec des binding pour les langages Python et Ruby.

Les bibliothèques graphiques GTK, FLTK, GNUstep[7] l'utilisent également pour le dessin des widgets, mais n'ont pas de fonctions vectorielles poussées. Dans le cas de GTK goocanvas a pour but de remplir ce manque. L'environnement de bureau GNOME, utilisant GTK, bénéficie donc de ces avantages.

La bibliothèque de gestion de PDF Poppler (en) (fork de Xpdf)[9], utilise en partie Cairo afin d'afficher les PDF qu'elle ouvre. Cette bibliothèque est utilisée par les lecteurs de PDF libres ePDFView, Evince, Kat, le greffon KDE PDF kfile ainsi que pour l'importation des PDF dans Inkscape.

L'environnement de bureau KDE (utilisant Qt) n'utilise par contre pas Cairo, certains tests ayant montré en que Qt 4.3 avait, au moins dans certains cas simples, un rendu beaucoup plus rapide que Cairo 1.2.5[10]. Cependant Cairo ayant été grandement optimisé à la version 1.4.0 — avec certaines fonctions devenant 96 fois plus rapides qu'auparavant[11] —, le test serait à refaire aujourd'hui.

Gecko 2.0, le moteur de Mozilla Firefox 4, utilise Cairo pour l'affichage.

Le logiciel de dessin vectoriel libre Inkscape l'utilise pour le rendu en fil de fer depuis la version 0.45[12] et les exportations PDF, PNG et PS dans la version 0.46[13]. Le rendu plein et texturé utilise pour le moment la bibliothèque livarot sur lequel son prédécesseur, Sodipodi était basé. Étant donné les gains en matière de performances et de gestion de mémoire, la totalité du rendu devrait être dédiée à Cairo dans les versions suivantes.

Le logiciel éducatif pour enfants GCompris est en cours de portage sur goocanvas afin de bénéficier également des avantages de Cairo.

Notes et références

[modifier | modifier le code]
  1. « cairo-1.18.0 », (consulté le )
  2. (en) Jon Masters, Richard Blum,Professional Linux Programming, John Wiley & Sons - 2007, (ISBN 9780470149492)
  3. (en) cairo release 1.10.0 now available le
  4. (en) New OpenGL backend merged le
  5. (en) FOSDEM 2010 le
  6. (en) Rcairo pour Ruby
  7. a et b (en) Cairo bindings, langages permettant d'utiliser nativement la bibliothèque Cairo
  8. cairo 1.4.4 release available Changements de la version 1.4.4
  9. (en) Poppler sur Freedesktop.org
  10. (en) Benchmark Cairo 1.2.5 + Glitz, Qt 4.3 + Xrender, Qt 4.3 + OpenGL, octobre 2006
  11. (fr) Sortie de cairo 1.4.0 sur Linuxfr.org
  12. (en) Inkscape 0.45 release notes ; Outline mode
  13. (en) Inkscape 0.46 release notes ; Import/export

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]