Zmiany w projekcie GTK+

Data: 26 września, 2010

Dwa tygodnie temu wydano GTK+ w wersji 2.90.7, lada moment pojawić się ma trzecie wydanie w wersji stabilnej, porzucające GDK na rzecz Cairo.

Nowa wersja GNOME – 3.0 – zostanie wydana dopiero w marcu przyszłego roku z powodu opóźnienia, które już omawialiśmy. Prace nad GTK+ 3.0 są jednak bardzo zaawansowane i stabilne wydanie ma pojawić się na dniach – 29 września.

Deweloperzy projektu zapewniają, iż GTK+ 3.0 będzie można zainstalować równolegle do 2.x, by dać czas programistom aplikacji wykorzystujących tę bibliotekę na migrację na nową wersję, która jest rozwijana już od kilkunastu miesięcy i obsługiwana przez większość modułów środowiska GNOME.

Ważną informacją dotyczącą GTK+ 3.0 jest to, iż stopniowo projekt przesiada się z GDK do Cairo jeśli chodzi o rysowanie okien. GIMP Drawing Kit od dawna pełnił funkcję pośrednika pomiędzy GTK+, a X Serwerem – teraz sytuacja ulega zmianie. Decyzja odnośnie tej zmiany podyktowana została ulepszeniem semantyki GTK+ i łatwiejszym przenoszeniem aplikacji na inne platformy – biblioteka Cairo jest wieloplatformowa, posiada obsługę back-endu dla Win32 GDI, Mac OS X Quartz oraz OpenGL. Więcej na ten temat mówi na swoim blogu Ben Otte.

Podsumowanie zmian wersji 2.90.7 dostępne jest na liście dyskusyjnej.

Podobne wpisy

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone


  1. Będzie wreszcie kompatybilne z X’em i standardami?

    1. przemo_li pisze:

      Rozwiń temat.

      GTK+ działa na Xach, tak samo, nie potrafię sobie przypomnieć jakiego kolwiek standardu jeśli chodzi o zakres którym zajmuje się GTK+.

      1. http://serwer22962.lh.pl/garsc-informacji-ze-swiata-gnome/#comment-5263932

        Poza tym nieprzestrzeganie wielu własność NET_WM_*:
        http://standards.freedesktop.org/wm-spec/

        Oraz innych standardów freedesktop.org.

        Jednym słowem GTK wymaga przeprojektowania i napisania od początku.

        1. Piotr Drąg pisze:

          Nigdy nie zrozumiem, skąd u osób nie mających pojęcia o danym projekcie zawsze pojawia się idea „przepisania i przeprojektowania”. Gdyby była taka potrzeba, to chyba autorzy/opiekunowie projektu sami by na to wpadli? A może oni wiedzą, że naprawienie kilku widocznych bugów jest łatwiejsze niż przepisywanie 15 letniego kodu, który *działa*?

          Anyway, nikt do używania GTK+ nie zmusza. Idź marudzić gdzieś indziej, albo wyślij patche na Bugzillę.

          PS nie mylisz GTK+ (toolkit) z Metacity (window manager)?

        2. marcinsud pisze:

          oO ostatnio już ci wszyscy udowodnili, że bredzisz, a ty dalej swoje. Filmik ci trzeba nakręcić by ci pokazać, że ten błąd istnieje tylko w twojej wyobraźni?

        3. atler pisze:

          W pierwszym linku jest cos o metacity, w drugim tez nie ma nic o gtk. Z dobrym trollem to i zabawnie pogadac mozna, czasami nawet docenic wiedze, ale ciebie to zal czytac bo zawsze nie na temat.

          Tak btw. bo nie jestem na biezaco, co sie stalo z minusami ktore oszczedzaly mi komentarzy oO?

        4. Piotr Drąg pisze:

          A to ja nie wiedziałem, że wdaję się w dyskusję z nierokującym trollem. Wybaczcie, nie śledzę wszystkich komentarzy. Won’t happen again.

        5. mariusz pisze:

          @marcinsud: A moze byc i filmik. Swiezo zainstalowane Ubuntu:
          http://yfrog.com/juoutz
          😉

          Problem z metacity wystepuje. Wylacz Compiz i sprawdz Kadu.

        6. AdamK pisze:

          OO: o NetWM już dawno temu dałem ci linka. Twoich problemów z Metacity nie ma nikt inny, więc jeśli go masz to zgłoś do bugzilli.

        7. @mariusz
          Dzięki, wyręczyłeś mnie.

        8. Dodam tylko, że zerknąłem w kod Kadu i jest tam zwykłe QWidget::hide() i QWidget::show(). Żadnych udziwnień.

        9. s4per pisze:

          Miałem ten sam problem w przypadku tlena…

        10. Tomasz Woźniak pisze:

          @mariusz: u mnie na Ubuntu ten problem z Kadu na Gnome z Compiz nie występuje. Mam też nagrać filmik?

        11. White Eagle pisze:

          Jest to znany problem z metacity, a nie compizem

        12. trasz pisze:

          @Piotr Drąg: Tok myslenia oO jest bardzo prosty: wedlug niego wrogów ludu nalezy rozstrzelac. W przypadku projektow software’owych rozstrzelac mozna co najwyzej developerow; odpowiednikiem w odniesieniu do kodu jest przepisanie od nowa. Stad to, co napisal powyzej.

        13. Reddie pisze:

          @Tomasz Woźniak: to, że u ciebie problem nie występuje nie oznacza, że go nie ma.

        14. Tomasz Woźniak pisze:

          @Reddie: no wiem. Ale oznacza to, że wskazane przyczyny nie są wystarczające do odtworzenia błędu.

        15. iria pisze:

          @Tomasz Woźniak

          Problem z metacity wystepuje. Wylacz Compiz i sprawdz Kadu.

          u mnie na Ubuntu ten problem z Kadu na Gnome z Compiz nie występuje… oznacza to, że wskazane przyczyny nie są wystarczające do odtworzenia błędu.

          Metacity, nie Compiz.

        16. Compiz chyba nie ma tego błędu. Wyłącz Compiza i zostaw samo Metacity.

          Co nie znaczy, że samo GTK nie kombinuje z tymi parametrami okien.
          Bo ono jakoś na Metacity działa. Musi więc robić coś więcej niż czysty X czy Qt.

        17. Tomasz Woźniak pisze:

          @iria, oO: wyłączenie compiza nic nie daje. Dalej działa prawidłowo. Nagrać filmik?

        18. iria pisze:

          Nic nie pisałeś, że wyłączyłeś Compiz i sprawdzałeś na Metacity. Dlatego parę osób zwróciło Ci uwagę. Nie musisz, dla mnie to bez znaczenia.

        19. energizer pisze:

          U mnie ten problem też występuje w Gnome z Kadu na Fedorce.

        20. el.pescado pisze:

          Rzeczywiście, nie zauważyłem tego – nie używam Kadu. Używam za to Psi na co dzień, w którym (niespodzianka!) wspomniany problem nie występuje. Psi napisane jest w Qt. Słowem, jak się chce to się potrafi. Innymi słowy: złej baletnicy…

        21. mariusz pisze:

          @Tomasz Wozniak: Alez ja sie nie upieram, ze kazdemu na kazdym sprzecie nie dziala. U mnie blad wystepowal na archu, na ubuntu i chyba fedorze, przy czym ubuntu jest od razu po instalacji.

          @el.pescado: z psi potwierdzam, na linkowanym wyzej ubuntu dziala poprawnie. Az chyba sprawdze w czym problem…

        22. el.pescado pisze:

          z psi potwierdzam, na linkowanym wyzej ubuntu dziala poprawnie. Az chyba sprawdze w czym problem…

          Skoro to Kadu sprawia problemy, to błąd na pewno musi być w GTK+;) Ale żarty na bok, ta dyskusja ciągnie się już bodaj pod trzecim artykułem, czas napisać w końcu coś mądrego. Wbrew temu co twierdzi oO, problem nie leży po stronie konkretnego toolkitu czy menedżera okien. Po prostu, jest to drobny defekt architektury X-ów, sprawiający, że ta akurat czynność (pobieranie położenia okna) staje się dosyć problematyczne. O czym informuje dokumentacja zarówno GTK+:

          gtk_window_get_position() is not 100% reliable because the X Window System does not specify a way to obtain the geometry of the decorations placed on a window by the window manager. Thus GTK+ is using a „best guess” that works with most window managers.

          Moreover, nearly all window managers are historically broken with respect to their handling of window gravity. So moving a window to its current position as returned by gtk_window_get_position() tends to result in moving the window slightly. Window managers are slowly getting better over time.

          jak i Qt:

          Furthermore, a toolkit cannot simply place windows on the screen. All Qt can do is to send certain hints to the window manager. The window manager, a separate process, may either obey, ignore or misunderstand them. Due to the partially unclear Inter-Client Communication Conventions Manual (ICCCM), window placement is handled quite differently in existing window managers.

          X11 provides no standard or easy way to get the frame geometry once the window is decorated. Qt solves this problem with nifty heuristics and clever code that works on a wide range of window managers that exist today. Don’t be surprised if you find one where QWidget::frameGeometry() returns wrong results though.

          Temat uważam za zamknięty.

        23. Reddie pisze:

          Zaraz. Ja nie piszę aplikacji desktopowych, ale tak na logikę, po co toolitowi znajomość położenia okna z dekoracjami? Jeśli chodzi o to, by okno po schowaniu do traya i przywołaniu z powrotem było w tym samym miejscu, to przecież wystarczy pozycja… Cóż, okna. Dekoracje dorysuje menedżer okien i będą takie same jak przedtem. Z pozycją okna bez dekoracji X11 też ma problemy?

        24. AdamK pisze:

          Sytuacja: program zamyka swoje okno. Zapamiętuje jego położenie (bez dekoracji). Następnie ponownie chce je otworzyć, przekazując do WM te współrzędne. Ten natomiast bierze pod uwagę dekoracje i okno 'przesuwa’ się o grubość dekoracji.

          W sumie głupota i spore przeoczenie, bo funkcje przeliczające z jednych na drugie współrzędne były już w systemach okien daaaawno temu. Takie coś powinno być już dawno dodane do specyfikacji.

        25. el.pescado pisze:

          @Reddie: to właśnie taka pierdoła, która do oO została rozdmuchana do afery. Technicznie, rzecz polega na tym, że kiedy program otwiera okno, zdarzenie to jest przechwytywane przez menedżer okien, który tworzy nowe okno, którego pierwotne staje się dzieckiem. Tak więc aplikacja ma okno top-level, które tak na prawdę nie jest top-level…

      2. sprae pisze:

        przemo_li: Nie warto. To zabieg logiczny porównywalny z „Czy przestałeś już bić swoją żonę?”.

        1. Kubuś Puchatek pisze:

          [OT] Odpowiesz co wynika (wg. logiki) z odpowiedzi „Nie” na tak postawione pytanie?
          Pozdrawiam
          Kamil

        2. Wynika, że nie przestał.

          Co dla inteligentnej osoby znaczy, że albo 1) nadal bije, albo 2) nigdy nie bił, więc nie musiał przestawać.

          Ale co mniej inteligentnym wyjdą inne wnioski.

        3. tbernard pisze:

          Ja jestem co mniej inteligentnym i wyszło mi, że zapomniałeś:
          3) Ktoś bił i przestał i skłamał mówiąc „nie”.

  2. konski_pytong pisze:

    Kiedy całkowicie zniknie GDK i zastąpi je Cairo? 3 To wstęp do tego czy już, definitywne zakończenie?

    1. Kiedy całkowicie zniknie GTK i zastąpi je Qt?

      1. abcd pisze:

        Kiedy całkowicie zniknie Linux i zastąpi go BSD?

        1. Nigdy. Prędzej Linux zastąpi BSD.

        2. trasz pisze:

          No, zaraz po tym, jak wszyscy zaczna uzywac Linuksa na desktopach :->

        3. Linux nie ma już najmniejszych szans zniknąć. Jest używany wszędzie, ogromne firmy w niego zainwestowały ogromne pieniądze. IBM, Novell, RedHat, Canonical, ostatnio Google i Nokia opierając na Linuksie swoje systemy dla komórek, i wiele, wiele innych. Jak na razie to Linux bardzo szybko zdobywa nowe rynki i cały czas się rozwija.

          A jakie zaplecze ma BSD? Jedynie Apple używa BSD w macosie nie dając zbyt dużo w zamian. Wystarczy, żeby rynek serwerów przestawił się całkowicie na Linuksa, i BSD nie ma racji bytu.

          Nie twierdzę, że BSD ma zniknąć, bo ma się na razie całkiem dobrze.
          Ale jeśli miałbym obstawiać, co z tych dwóch zniknie, to na pewno nie będzie to Linux.

        4. trasz pisze:

          @oO: Oczywiscie, ze Linux nie zniknie. Ale znaczenia na desktopach nie nabierze.

          A co do BSD – jest uzywane w calej masie urzadzen, glownie w high-endowych appliance’ach. Tyle, ze go nie widac, bo spolecznosc niespecjalnie nastawia sie na „hype” – w efekcie malo kto wie, jaki procent maszyn z TOP500 ma storage serwowany przez pochodną FreeBSD. ;->

        5. konski_pytong pisze:

          A co ma do desktopu IBM, Novell, RedHat, Google i Nokia?! Bo ja zawsze myślałem ze to rynek enterprise i mobile. Zresztą dlaczego rynek serwerów ma się przestawić na linuksa skoro BSD i Windows lepiej się sprawdza, Linux tylko jako serwer WWW (choć nie zawsze) i przeciętnej bazydanych MySQL -czyli taki system na serwer dla Kowalskiego.

        6. Reddie pisze:

          Rynek serwerów już dawno przestawił się na Linuksa.

        7. trasz pisze:

          @Reddie: Ale nie calkowicie. Co wiecej, w ciagu ostatnich kilku lat widac trend przeciwny – vide IBM i powrot do promowania AIX-a, czy Oracle i Solaris.

        8. revcorey pisze:

          „przeciętnej bazydanych MySQL -czyli taki system na serwer dla Kowalskiego.”
          Skoro dla ciebie oracle to przeciętna baza, a sam oracle robi swoje własne distro kompatybilne z rhel, duże centra obliczeniowe to też dla ciebie przeciętne zastosowania?(łącznie z rynkiem CAE)

        9. el.pescado pisze:

          Rynek serwerów już dawno przestawił się na Linuksa.

          http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers

        10. Reddie pisze:

          @el.pescado: wprawdzie nie musiałeś podawać źródła na poparcie tego, co napisałem, ale i tak dzięki 😉

        11. mikolajs pisze:

          @el.pescado: A przeczytałeś czego dotyczą te statystyki? Poskanuj sobie serwisy wwww to będziesz miał wgląd czego używają.

        12. Reddie pisze:

          @Edek: no, to wszystko prawda i nie pisałem, że jest inaczej. Tym niemniej teza z komentarza konskiego_pytonga, jakoby świat stał Windowsem i BSD jest, delikatnie mówiąc, bzdurna.

        13. konski_pytong pisze:

          gdzie napisałem ze oracle to kiepska baza danych? tak samo ze cały swiat stoi na serwerach freeBSD i Windows? czytajcie ze zrozumieniem a nie nadinterpretowujecie i szukacie sensacji..

        14. el.pescado pisze:

          @Reddie && mikolajs: po raz kolejny zaznaczam, że „serwer” != „serwer www”. Jeżeli chodzi o całość serwerów, Linux, niestety, nie jest najpopularniejszym rozwiązaniem. Serwery WWW, z drugiej strony, są niszą Linuksa.

        15. Reddie pisze:

          @el.pescado: jeżeli chodzi o całość serwerów to nie wiadomo, jakie jest najpopularniejsze rozwiązanie, bo nie da się tego zmierzyć – co masz opisane w podanym przez siebie linku.

          Z kolei trzeba mieć naprawdę spore poczucie humoru, by www nazywać „niszą” 😉

        16. bobycob pisze:

          ptaszyno, nie musiałeś.
          Za to udowodniłeś, że nie masz pojęcia jaka jest różnica między licencję Oracla a PostgreSQL, a zwłaszcza w kwestii ich kosztów. Od tego momentu stałeś się niepisanym ekspertem w oczach wielu bywalców. 🙂

      2. energizer pisze:

        Fajnie by było, ale niestety niektórzy wolą odkrywać koło na nowo choć i tak im jakies kwadratowe wychodzi 😉

  3. Piotr Drąg pisze:

    A tak bardziej na temat: w newsie jest poważny błąd merytoryczny. GTK+ 3.0 ma zostać opublikowane w okolicach grudnia 2010, razem z GTK+ 2.24.

    W zeszłym tygodniu wydano GTK+ 2.22, a 29 września zostanie opublikowane środowisko GNOME 2.32, oparte właśnie na GTK+ 2.22.

    Trochę to skomplikowane. 😉

  4. jarek pisze:

    > posiada obsługę back-endu dla Win32 GDI, Mac OS X Quartz oraz OpenGL

    Nie wiem jak z OGL, ale GDK mialo backendy dla windy i maka – taka
    zreszta chyba byla idea rozwarstwienia GTK / GDK.
    Znow postanowili sobie przeklepac od zera to samo, znow wmawiajac
    ludziom ze tym razem to juz na pewno bedzie super-duper?
    Kiedy obstawiacie kolejne przepisywanie? Za dwa lata?
    Jakie to typowe dla ołpen sors.

    1. Reddie pisze:

      Nie wiem jak z OGL, ale GDK mialo backendy dla windy i maka – taka
      zreszta chyba byla idea rozwarstwienia GTK / GDK.

      To znaczy jaka?

      Bo GTK też działa na Win32 i OSX.

    2. AdamK pisze:

      Cairo jest zdecydowanie lepsze od GDK. Podstawową i chyba największą zaletą Cairo jest niezależność od rozdzielczości, ale to dopiero początek zalet w porównaniu do GDK.

      GDK to taki framework w 'starym stylu’ – porównywalny z GDI w Windows, i wieloma innymi frameworkami mającymi korzenie w latach 80 (np. VDI). Cairo to zupełne inne, nowoczesne, podejście do tematu.

    3. el.pescado pisze:

      Z GDK jest ten problem, że co prawda chodzi pod OSX i Windows, ale architekturalnie jest bardzo mocna przywiązane do X-ów.

    4. Poldek pisze:

      @jarek: Sugerujesz, w projektach closed source nie ma takiej potrzeby? Czy że jest, ale czasami się nie opłaca i brnie się dalej w błoto? Dlaczego uważasz że jest to typowe dla open source (pominę Twoje osobiste frustracje objawiające się ww tym komentarzu kreatywną pisownią – to mniej więcej na poziomie pisania „Mikro$zit”).

    5. Sławek pisze:

      GTK+ pod Windowsem działało, jak wcale.

      Zauważ też jedno. GDM było biblioteką nie obsługującą wspomagania sprzętowego i rysującą dosyć wolno. GDK wszystko robiło w swojej pamięci, a Cairo część rzeczy stara się przerzucić na system.

  5. Benji pisze:

    jak to nie będzie GDK? Cairo posiada analogiczne odpowiedniki dla „gdk_draw_rgb_image()”, „gdk_draw_indexed_iamge()”, itp.?

  6. trasz pisze:

    Tak odnosnie tej pieknosci: polecam przeczytanie http://blogs.gnome.org/otte/2010/06/26/fun-with-benchmarks/, ze szczegolnym uwzglednieniem wykresow pokazujacych, jak bardzo Cairo z OpenGL moze ssac wydajnosciowo.

    1. Tomasz Woźniak pisze:

      😀 czekałem na pierwsze wynurzenia wydajnościowców Cairo 😀
      Ale po panu, panie Edwardzie się nie spodziewałem.

      1. trasz pisze:

        Nie zrozum mnie zle – Cairo jest bardzo fajne, i koncepcyjnie (bardzo umiejetna kalka z OSX-owego Quartza), i implementacyjnie. Tylko trzeba ta wydajnosc poprawic – i wydaje mi sie, ze problemem jest nie tylko Cairo, ale tez (a nawet glownie) cala reszta stosu.

        1. Tomasz Woźniak pisze:

          panie Edwardzie- ja pana źle nie zrozumiałem, wręcz przeciwnie. Sam jestem pod wrażeniem Cairo, ale zawsze jak ludzie rozpisują się nad jego zaletami, pojawia się ktoś kto pokaże, że w danym teście Cairo jest mało wydajne.

          Ot, taki pewniak jak AdBlock na argument przy info o niszowym rynku desktopów Linuksa na statystykach portali www 😀

          Co do Cairo… pamiętam pierwszy programik konwertujący SVG na PDF. Odpalam i nic się nie dzieje. W pierwszej chwili wkurzony szukam co skopałem, by po chwili dojść, że on po prostu już skończył.

    2. Gandalf pisze:

      Czytanie ze zrozumieniem się kłania. Nie Cairo ssie tylko nvidia ze swoim zamkniętym sterownikiem.

      1. trasz pisze:

        Sterownik otwarty ssie rowniez, aczkolwiek – w tych konkretnie testach – mniej. W sensie, nadal z akceleracja jest wolniej, niz bez niej.

        1. _asd pisze:

          na linuksie to powinno się nazywać deceleracja sprzętowa.

          kupujesz kartę, na niej siedzi kilkadziesiąt układów simd z zegarem 500MHz+ i otrzymujesz przetwarzanie grafiki wolniejsze niż na intel atom 1.5GHz.

      2. _asd pisze:

        „Czytanie ze zrozumieniem się kłania. Nie Cairo ssie tylko nvidia ze swoim zamkniętym sterownikiem.”

        Zwłaszcza, że porównywane są zamknięte stery nvidii i otwarte stery nouveau.

        W ogóle to ciekawe, że implementacja na gpu prawie we wszystkich testach jest wolniejsza niż na cpu. Albo linuksowa akceleracja ssie, albo tak dobrze napisali softwareowy renderer. Obstawiam to pierwsze.

        1. el.pescado pisze:

          Albo linuksowa akceleracja ssie, albo tak dobrze napisali softwareowy renderer. Obstawiam to pierwsze.

          Linuksowa akceleracje tak samo ssie jak akceleracja na innych systemach. Przynamniej nvidia. Więc raczej to drugie.

        2. _asd pisze:

          z chęcią bym zobaczył jakikolwiek benchmark na windzie, gdzie gpu będzie gonić ogon cpu.

        3. el.pescado pisze:

          To weź coś niezoptymalizowanego ale korzystającego z np. D3D i porównaj z dojrzałą biblioteką softwarową. Ot, rewelacja.

        4. _asd pisze:

          wiec konkretów jak nie było tak nie ma.

        5. el.pescado pisze:

          http://jeffhoogland.blogspot.com/2010/09/linux-out-performs-windows-in-opengl.html

        6. el.pescado pisze:

          Dla niekumatych, cytat ze strony Cairo:

          Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL (through glitz), XCB, BeOS, OS/2, and DirectFB.

          (wyróżnienie moje)

        7. _asd pisze:

          http://www.phoronix.com/scan.php?page=article&item=781&num=2

    3. herr pisze:

      Jahaha, Intel FTW xD

      Przez chwilę myślałem że padnę. Benchmark arcyciekawy.

    4. haael pisze:

      > jak bardzo Cairo z OpenGL moze ssac wydajnosciowo

      No dobrze: ktoś na serio może odpowiedzieć dlaczego właściwie tak jest? Kto coś spartolił i gdzie? Zepsute są sterowniki, X-serwer, Mesa czy jakieś biblioteki? Co trzeba przepisać?

  7. el.pescado pisze:

    Po przeczytaniu artykułu źródłowego wychodzi, że GDK wcale nie zostaje porzucone. Porzucona ma być jedynie część GDK odpowiedzialna za rysowanie. Za rysowanie w GTK+ już dzisiaj odpowiada Cairo, więc nie jest to żadna rewolucja.

  8. energizer pisze:

    „Prace nad GTK+ 3.0 są jednak bardzo zaawansowane i stabilne wydanie ma pojawić się na dniach – 29 września.”
    Dziś 30 a żadnej wzmianki o wersji 3.0 na stronie projektu nie widać.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Newsletter OSnews raz w tygodniu. Bez reklam.