Nota: Para outros significados de Cairo, veja Cairo (desambiguação).

Cairo é uma biblioteca de software usada para fornecer para desenvolvedores de software uma interface de programação baseada em gráficos vetoriais, independente dos dispositivos. Ela é projetada para fornecer primitivos para desenho bidimensional através de um número de diferentes módulos. Cairo é projetado para usar aceleração via hardware quando disponível.

cairo
O logotipo da biblioteca gráfica cairo.
Desenvolvedor Carl Worth, Behdad Esfahbod
Versão estável 1.8.10 (19 de fevereiro de 2010; há 14 anos) [±] [+/-]
Versão em teste 1.9.6 (19 de fevereiro de 2010; há 14 anos) [±] [+/-]
Escrito em C
Sistema operacional Multiplataforma
Gênero(s) Biblioteca gráfica
Licença GNU Lesser General Public License ou Mozilla Public License
Página oficial http://cairographics.org/

Apesar de ser escrito em C, há ligaduras para usar a biblioteca gráfica cairo a partir de várias outras linguagens de programação, incluindo Factor, Haskell, Lua, Perl, Python, Ruby, Scheme, Smalltalk e muitas outras.[1] bi-licenciado sob a GNU Lesser General Public License e a Mozilla Public License, cairo é software livre.

História editar

O projeto cairo foi fundado por Keith Packard e Carl Worth para usar no X Window System.[2] Ele foi chamado originalmente Xr ou Xr/Xc. O nome mudou para enfatizar a ideia de que era multiplataforma e não estava preso ao X Window System.[3] O nome cairo foi derivado do nome original Xr, similar às letras gregas chi e rho.[4]

Módulos editar

O cairo suporte saída para um número de diferentes módulos, conhecidos como "superfícies" em seu código. Suporte a módulos inclui saída ao X Window System, Win32 GDI, Mac OS X Quartz, a interface de aplicação BeOS, OS/2, OpenGL contextos (diretamente[5] e via glitz), buffer local de imagem, ficheiros PNG, PDF, PostScript, DirectFB e SVG.

Há outros módulos em desenvolvimento almejando as APIs gráficas OpenVG,[6] Qt,[7] Skia,[8] and Windows' Direct2D.[9]

Tecnologias similares editar

O cairo foi comparado a tecnologias similares, como WPF e GDI+ da Microsoft, Quartz 2D da Apple Inc, e Anti-Grain Geometry (AGG).

Uso notável editar

Cairo é popular na comunidade de software livre para fornecer suporte multiplataforma a desenho avançado em duas dimensões.

  • GTK+, começando em 2005 a versão 2.8 usa o cairo para desenhar a maioria dos seus widgets.[10]
  • O projeto Mozilla fez uso do cairo nas versões recentes do seu Gecko, usado para desenhar a saída gráfica dos produtos Mozilla. Gecko 1.8, o motor de disposição para o Firefox 2.0 e SeaMonkey 1.0, usou o cairo para desenhar conteúdos SVG e <canvas>. Gecko 1.9,[11] o lançamento do Gecko que serve de base para o Firefox 3, usa cairo como módulo gráfico para desenhar ambos conteúdo de páginas na internet e a interface de usuário (ou "chrome").
  • O conjunto de ferramentas WebKit usa o cairo para desenhar no porte para o GTK+. Suporte também foi adicionado para conteúdo SVG e <canvas> usando cairo.
  • A biblioteca Poppler usa o cairo para desenhar documentos PDF. O cairo permite o desenho de gráficos vetoriais com bordas suavizadas e objetos transparentes.
  • O conjunto de ferramentas para janelas Shoes para Ruby usa o cairo para desenho em duas dimensões.
  • O robô de desenho ShoeBot baseado em Python usa cairo para desenhar em duas dimensões.
  • O aplicativo de gráficos vetoriais Inkscape usa a biblioteca cairo para seu modo de exibição em traços, assim como para exportações PDF e PostScript, desde a versão 0.46.[12]
  • Os desenvolvedores do AmigaOS 4.1 basearam sua GUI Workbench nas bibliotecas cairo. Isto significa que aquele sistema operativo possui na verdade uma GUI completa baseada em vetores, e devido a sua implementação interna de 3D acelerado por hardware Porter-Duff composition engine, pode realizar efeitos como aproximação instantânea de toda a GUI na tela.
  • FontForge mudou seu desenho para o cairo desde a metade de outubro de 2008.

Ver também editar

Referências

  1. «Language bindings» 
  2. «Xr: Cross-device Rendering for Vector Graphics». Consultado em 8 de junho de 2009 
  3. «Mailing list thread about the cairo name change». Consultado em 8 de junho de 2009 
  4. «Mailing list thread about the cairo name change». Consultado em 2 de dezembro de 2006 
  5. Chris Wilson (22 de julho de 2009). «New OpenGL backend merged». Consultado em 12 de fevereiro de 2010 
  6. Øyvind Kolås (24 de janeiro de 2008). «Announcing OpenVG backend». Consultado em 12 de fevereiro de 2010 
  7. Vladimir Vukićević (6 de maio de 2008). «Well Isn't That Qt». Consultado em 12 de fevereiro de 2010 
  8. Chris Wilson (31 de agosto de 2009). «Cool Stuff». Consultado em 12 de fevereiro de 2010 
  9. Bas Schouten (22 de novembro de 2009). «Direct2D: Hardware Rendering a Browser». Consultado em 12 de fevereiro de 2010 
  10. «GTK+ to Use Cairo Vector Engine». Consultado em 27 de dezembro de 2009 
  11. «Gecko 1.9 Roadmap». Consultado em 27 de dezembro de 2009 
  12. «ReleaseNotes046». Inkscape Wiki. Consultado em 31 de março de 2008 

Ligações externas editar