Die Komponente Cairo (gb.cairo) ist eine 2D-Grafik-Bibliothek mit Unterstützung für mehrere Ausgabemedien: Bilder, PDF-Datei, Postscript- oder SVG-Dateien. Cairo wurde entwickelt, um konsistente Ausgaben auf allen o.a. Ausgabemedien zu produzieren und gleichzeitig die Vorteile der Display-Hardware-Beschleunigung zu nutzen – sofern verfügbar. Die Cairo-API bietet Operationen ähnlich zu den Operationen zum Zeichnen von/bei Postscript und PDF. Operationen in Cairo enthalten u.a. das Zeichnen und Füllen von Linien und Flächen, das Zeichnen von Bézier-Kurven dritten Grades, die Umwandlung und Anordnung von Bildern sowie das Text-Rendering mit Anti-Aliasing. Alle Zeichenoperationen können für jede affine Transformation wie zum Beispiel Skalierung, Translation, Drehung oder Scherung über eine Matrix transformiert werden. In Cairo wird vektor-basiert gezeichnet. Die Cairo-Komponente von Gambas übernimmt diese Art.
Es gibt grundlegende Unterschiede in der Benutzung der Methoden zwischen der Komponente Cairo und der Klasse Paint, wie zum Beispiel in den Oberflächen, auf denen gezeichnet wird oder in der Aufbereitung der Pinsel zum Zeichnen, auch wenn die Schnittstellen sehr ähnlich sind. Mit den Methoden der Klasse Cairo der gleichnamigen Komponente Cairo (gb.cairo) erfolgt das Zeichnen vorwiegend mit Anweisungsfolgen nach einem festen Konstruktionsplan, denn es ist – ähnlich wie bei Paint – kein Freihand-Zeichnen.
Abbildung 25.1.0.1: Kreise und Ellipsen – gezeichnet mit Methoden der Klasse Cairo der Komponente Cairo
Zuerst werden wesentliche Eigenschaften der Klasse Cairo vorgestellt und danach deren Methoden beschrieben. Die vorgestellten Beispiele und Projekte sowie ihre Beschreibung vervollständigen abschließend den praxisorientierten Zugang zu diesem Thema. Die Vorstellung von Eigenschaften und Methoden weiterer Klassen der Komponente ergänzen die Beschreibungen.
Die Komponente Cairo (gb.cairo) besitzt die Klassen: