Izdanje GTK 3.99.0 označilo je završetak funkcionalnosti planirane za GTK 4

objavljeno konačno eksperimentalno izdanje okvira GTK 3.99.0, koji implementira sve funkcije planirane za GTK 4. GTK 4 grana se razvija kao dio novog razvojnog procesa koji pokušava da omogući programerima aplikacija stabilan i podržan API za nekoliko godina koji se može koristiti bez straha da će morati prepisivati ​​aplikacije svakih šest mjeseci jer se za API mijenja u sljedećoj GTK grani. Planirano je da GTK 4 bude objavljen prije kraja godine.

Od većine značajan promjene в GTK 4 možete primetiti:

  • Metoda za postavljanje elemenata na osnovu ograničenja (raspored ograničenja), u kojem se lokacija i veličina podređenih elemenata određuju na osnovu udaljenosti do granica i veličine ostalih elemenata.
  • Renderer zasnovan na Vulkan grafičkom API-ju koji implementira shadere za mnoge CSS elemente koji zahtijevaju velike resurse koji se koriste u GTK widgetima.
  • Integracija GSK (GTK Scene Kit) sa mogućnošću renderovanja grafičkih scena putem OpenGL-a i Vulkana.
  • Organizacija renderiranja je revidirana - umjesto izlaza u bafer, sada se koristi model baziran na čvorovima renderiranja, u kojem je izlaz raspoređen u obliku stabla operacija visokog nivoa, koje GPU efikasno obrađuje koristeći OpenGL i Vulkan.
  • Sredstva za fleksibilno rukovanje promjenama fokusa ulaza.
  • Modernizirani model isporuke događaja koji eliminira potrebu za podprozorima prilikom rutiranja ulaznih događaja. Potreba za implementacijom novog modela povezana je s aktivnijim korištenjem efekata animacije, čije bi se prikazivanje trebalo obaviti bez promjene rasporeda vidljivih elemenata i, shodno tome, bez podprozora.
  • GDK API je redizajniran s ciljem korištenja Wayland protokola i povezanih koncepata. Funkcije zasnovane na X11 i Waylandu su premještene na odvojena pozadina.
  • Izvršeno je veliko čišćenje API-ja, uključujući uklanjanje klasa GtkMenu, GtkMenuBar i GtkToolbar, u korist GMenu-a i opcija zasnovanih na iskačućim menijima.
  • GtkTextView i drugi widgeti za unos imaju ugrađeni stog za poništavanje.
  • Dodata je nova klasa GtkNative za widgete koji imaju sopstvenu površinu prikaza i mogu raditi odvojeno na prvom nivou, bez vezivanja za roditeljske vidžete.
  • Dodati su novi widgeti, uključujući GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView i vidžet za prikaz Emoji sličica.
  • Za razvoj widgeta uveden je novi objekat GtkLayoutManager sa implementacijom sistema za kontrolu rasporeda elemenata u zavisnosti od veličine vidljive površine. GtkLayoutManager zamjenjuje podređena svojstva u GTK kontejnerima kao što su GtkBox i GtkGrid.
  • Rukovanje događajima je pojednostavljeno i sada se koristi samo za unos. Preostali događaji se zamjenjuju zasebnim signalima, na primjer, umjesto izlaznih događaja, predlaže se signal “GdkSurface::render”, a umjesto konfiguracijskih događaja nudi se “GdkSurface::size-changed”.
  • Dodan je novi sloj apstrakcije GdkPaintable, koji predstavlja objekte koji se mogu crtati bilo gdje u bilo kojoj veličini, bez potrebe za sortiranjem slojeva rasporeda.
  • Broadway backend je ponovo napisan kako bi se omogućilo prikazivanje izlaza GTK biblioteke u prozoru web pretraživača.
  • API povezan sa izvođenjem Drag-and-Drop operacija je redizajniran, uključujući predložene odvojene GdkDrag i GdkDrop objekte.

Poboljšanja u poređenju sa prethodnim testnim izdanjem:

  • Stara implementacija API-ja pristupačnosti za osobe s invaliditetom je uklonjena, zamijenjena novom verzijom zasnovanom na specifikaciji ARIA i widget GtkAccessible.
  • Dodata podrška za etikete koje se mogu uređivati ​​(GtkEditableLabel).
  • Predloženi su novi modeli liste za prikaz obeleživača (GtkBookmarkList), stringova (GtkStringList) i blokova selekcije (GtkBitset).
  • GtkTreeView widget ima mogućnost uređivanja ćelija.
  • Implementacija pomicanja je poboljšana u GtkGridView i GtkListView, dodana je podrška za automatsko pomicanje i automatsko proširenje.
  • GtkWidget značajno ubrzava obradu različitih akcija.
  • Dodata podrška za inkrementalno pomicanje i filtriranje u GtkFilterListModel i GtkSortListModel.
  • Inspector je dodao podršku za inspekciju modela lista i mogućnost direktne navigacije između objekata.
  • U GDK-u je sačuvana historija pomicanja, GdkDevice API je očišćen, a razdvajanje uređaja na master i slave je zaustavljeno.
  • Dodan novi GDK backend za macOS.
  • Nova pozadina GDK renderiranja zasnovana na ANGLE, međuslojevi za prevođenje OpenGL ES poziva u OpenGL, Direct3D 9/11, Desktop GL i Vulkan.

izvor: opennet.ru

Dodajte komentar