Objavljeno GTK 3.96, eksperimentalno izdanje GTK 4

10 mjeseci nakon prošlosti testno izdanje predstavio GTK 3.96, novo eksperimentalno izdanje nadolazećeg stabilnog izdanja GTK 4. Ogranak GTK 4 razvija se kao dio novog razvojnog procesa koji razvijačima aplikacija pokušava pružiti stabilan i podržan API nekoliko godina koji se može koristiti bez straha potrebe za prepisivanjem aplikacije svakih šest mjeseci zbog promjene API-ja u sljedećoj GTK grani. Dok se GTK 4 u potpunosti ne stabilizira, preporučuje se da se aplikacije koje se nude korisnicima i dalje izgrađuju pomoću ogranka GTK 3.24.

Glavni promjena u GTK 3.96:

  • U API-ju GSK (GTK Scene Kit), koji omogućuje renderiranje grafičkih scena putem OpenGL-a i Vulkana, rađeno je na pogreškama koje je postalo lakše identificirati zahvaljujući novom alatu za uklanjanje pogrešaka gtk4-node-editor, koji vam omogućuje učitavanje i prikaz čvor renderiranja u serijaliziranom formatu (može se spremiti u načinu inspekcije GTK inspector), a također usporedite rezultate renderiranja pri korištenju različitih pozadina;

    Objavljeno GTK 3.96, eksperimentalno izdanje GTK 4

  • Mogućnosti 3D transformacije dovedene su na razinu koja vam omogućuje stvaranje animacijskih efekata kao što je rotirajuća kocka;

    Objavljeno GTK 3.96, eksperimentalno izdanje GTK 4

  • potpuno prepisan Broadway GDK backend dizajniran za prikaz izlaza GTK biblioteke u prozoru web-preglednika. Stara Broadway implementacija nije se uklapala u metode renderiranja predložene u GTK 4 (umjesto izlaza u međuspremnik, sada koristi model temeljen na čvorovima renderiranja, gdje je izlaz sastavljen u obliku stabla operacija visoke razine, učinkovito obrađuje GPU koristeći OpenGL i Vulkan).
    Nova Broadway opcija pretvara čvorove renderiranja u DOM čvorove sa CSS stilovima za renderiranje sučelja u pregledniku. Svako novo stanje zaslona obrađuje se kao promjena u DOM stablu u odnosu na prethodno stanje, što smanjuje veličinu podataka koji se prenose udaljenom klijentu. 3D transformacije i grafički efekti implementirani su kroz svojstvo CSS transform;

  • GDK nastavlja implementirati API-je dizajnirane imajući na umu protokol Wayland i čisti API-je temeljene na X11 ili ih premješta u zasebnu pozadinu X11. Postoji napredak u radu na odmaku od upotrebe dječjih površina i globalnih koordinata. Podrška za GDK_SURFACE_SUBSURFACE je uklonjena iz GDK-a;
  • Nastavljeno je refaktoriranje koda povezanog s izvođenjem operacija Drag-and-Drop, uključujući predložene odvojene GdkDrag i GdkDrop objekte;
  • Rukovanje događajima je pojednostavljeno i sada se koristi samo za unos. Preostali događaji zamjenjuju se zasebnim signalima, na primjer, umjesto izlaznih događaja, predlaže se signal "GdkSurface::render", umjesto konfiguracijskih događaja - "GdkSurface::size-changed", umjesto događaja mapiranja - "GdkSurface: :mapped”, umjesto gdk_event_handler_set() - "GdkSurface::event";
  • GDK pozadina za Wayland dodala je podršku za sučelje portala za pristup postavkama GtkSettings. Za rad s metodama unosa predložena je podrška za proširenje protokola text-input-unstable-v3;
  • Za razvoj widgeta uvodi se novi objekt GtkLayoutManager s implementacijom sustava za kontrolu rasporeda elemenata ovisno o rasporedu vidljivog područja. GtkLayoutManager zamjenjuje podređena svojstva u GTK spremnicima kao što su GtkBox i GtkGrid. Predlaže se nekoliko gotovih upravitelja izgleda: GtkBinLayout za jednostavne spremnike s jednim podređenim elementom, GtkBoxLayout za linearno poravnate podređene elemente, GtkGridLayout za poravnavanje podređenih elemenata u rešetku, GtkFixedLayout za proizvoljno pozicioniranje podređenih elemenata, GtkCustomLayout za prevođenje tradicionalnih elemenata na temelju size_allocate rukovatelji;
  • Javno dostupni objekti za prikaz stranice podređenih elemenata dodani su u widgete GtkAssistant, GtkStack i GtkNotebook, na koje se prenose podređena svojstva tih widgeta koja nisu povezana s rasporedom. Budući da su sva postojeća podređena svojstva pretvorena u redovita svojstva, svojstva izgleda ili premještena u objekte stranice, podrška za podređena svojstva u potpunosti je uklonjena iz GtkContainera;
  • Osnovna GtkEntry funkcionalnost premještena je u novi GtkText widget, koji također uključuje poboljšano GtkEditable sučelje za uređivanje. Sve postojeće podklase za unos podataka preinačene su u GtkEditable implementacije temeljene na novom GtkText widgetu;
  • Dodan novi GtkPasswordEntry widget za obrasce za unos lozinke;
  • GtkWidgets je GskTransformu dodao mogućnost transformacije podređenih elemenata koristeći metode linearne transformacije navedene putem CSS-a ili argumenta gtk_widget_allocate. Navedena značajka već je primijenjena u GtkFixed widgetu;
  • Dodani su novi modeli generiranja popisa: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel i GtkSingleSelection. U budućnosti planiramo dodati podršku za modele popisa u GtkListView;
  • GtkBuilder je dodao mogućnost lokalnog postavljanja svojstava objekta (inline), umjesto korištenja veza prema identifikatoru;
  • Dodana naredba u gtk4-builder-tool za pretvaranje UI datoteka iz GTK 3 u GTK 4;
  • Podrška za ključne teme, tablične izbornike i kombinirane okvire je ukinuta. GtkInvisible widget je uklonjen.

    Izvor: opennet.ru

Dodajte komentar