# Cairo (gráficos)

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.
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. bi-licenciado sob a GNU Lesser General Public License e a Mozilla Public License, cairo é software livre.

## História

O projeto cairo foi fundado por Keith Packard e Carl Worth para usar no X Window System. 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. O nome cairo foi derivado do nome original Xr, similar às letras gregas chi e rho.

## Módulos

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 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, Qt, Skia, and Windows' Direct2D.

## Tecnologias similares

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

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.
* 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, 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.
* 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.