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

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

    przez -
    8 602
    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+.

    Podobne artykuły

    Narzędzia graficzne, grafika

    przez -
    2 276
    Open Source

    przez -
    2 316