GTK+ 2, GTK+ 3 zaczynają używać Cairo do rysowania

8
1676
Open Source
Open Source

Niedługo, tj. 29 września zostanie wydany GNOME 2.32, który będzie ostatnią wersją z linii 2.x oraz jako jeden z pierwszych będzie używał zarówno biblioteki GTK+2, jak i GTK+3, która jest rozwijana od kilkunastu miesięcy i wspierana przez większość modułów GNOME.

Podczas, gdy główne prace skupiają się na GTK+ 3.0, GTK+ 2 nadal jest rozwijana, czego dowodem ma być niedługo wydanie stabilnej wersji GTK+ 2.22. Biblioteka nie oferuje tylu ciekawych cech, co jej następczyni, ale za to jest sporo zmian od wersji 2.20. Zmiany objęły m.in. narzędzia do obsługi API, naprawy znalezionych błędów oraz rysowanie GTK+ zostało przeniesione z GDK do Cairo.

GIMP Drawing Kit od dawna pełnił rolę niskopoziomowego narzędzia do renderowania, pomiędzy GTK+, a X Serwerem. Dopiero w 2005 roku, kiedy wydano GTK+ 2.8, pojawiała się integracja Cairo z GDK, dla przejęcia sporej liczby zadań renderingu wektorów graficznych. Wraz z wydaniem GTK+ 2.22 większość rysowania została przełączona bezpośrednio z API GDK do Cairo API.

Spora część kodu została napisana przez Keitha Packarda i programistów X.Org, dzięki czemu biblioteka jest wieloplatformowa, i oprócz wsparcia dla X Windows, posiada wsparcie back-end dla Win32 GDI, Mac OS X Quartz oraz OpenGL bezpośrednio. Jest również eksperymentalny back-end – Cairo-DRM, który pozwala bibliotece komunikować się bezpośrednio z procesorem graficznym, używając Linuksowego Direct Rendering Manager (DRM), dzięki czemu rysowanie jest szybsze, aniżeli Cairo uruchomione na zwykłym procesorze i wiele razy szybsze niż renderowanie oparte na X. Warto nadmienić, że Cairo-DRM jest bardzo pomocne dla projektu Wayland Display Server.

Zmiana API z GDK na Cairo, i porzucenie sporej części starego kodu GDK (jak GdkCC i GdkImage) podyktowana została ulepszeniem semantyki GTK+ i łatwiejszym przenoszeniem aplikacji pod inne platformy, jak Windows i Mac OS X. Ponadto API biblioteki Cairo oferuje więcej ciekawszych funkcji oraz lepszą wydajność rysowania, w szczególności wykorzystania procesora graficznego. Z funkcji tych warto wymienić rysowanie krzywych beziera, antyaliasing,  przezroczyste powierzchnie, wygładzanie rogów i maskowanie, niezależna rozdzielczość.

Większość informacji znaleźć można na blogu Ben Otte, który wykonał większość tej pracy. Dodatkowo Ben pracuje nad większą integracją API GTK+ 3 z Cairo. Pozwoli to na lepsze tworzenie snapshotów, większą niezależność rozdzielczości, szybsze i lepsze zdolności back-endu renderowania, łatwiejszą integrację z aplikacjami Clutter i OpenGL, lepszą wydajność renderowania, oraz zdolność do przekazywania cech Cairo dla widżetów GTK+.

Poprzedni artykułPodsumowanie Summer of Code 2010@Go-OO
Następny artykułWordCamp – pierwszy raz konferencja nt. WordPress odbędzie sie w Polsce
Michał Olber
Interesuję się głównie sprzętem i działaniem jego pod systemami GNU/Linux. Testuję różne dystrybucje i robię recenzje. Interesuję się działaniem sprzętu pod Linuksem, dzięki czemu wiem, jaki zestaw komputerowy wybierać :)

8 KOMENTARZE

  1. […] Wydano GTK+ 3.2 – kolejną wersję biblioteki do tworzenia interfejsu graficznego, która pierwotnie została stworzona dla programu GIMP. Wieloplatformowe narzędzie bazuje na języku C i pozwala tworzyć aplikacje dla Linuksa, Uniksa, Mac OS X i Windows, począwszy od języka w którym została napisana, do Pythona. Jest wykorzystywana w środowisku graficznym GNOME oraz Xfce. GTK+ 3 bardzo wykorzystuje nowe API, wspiera nowe backendy oraz używa Cairo do rysowania. […]

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj