Uvoľnenie GTK 3.99.0 označuje pripravenosť funkčnosti, plánovanej pre GTK 4

Zverejnené finálny experimentálny release rámca GTK 3.99.0, v ktorom sú implementované všetky funkcie plánované pre GTK 4. Vetva GTK 4 sa vyvíja v rámci nového vývojového procesu, ktorý sa snaží poskytnúť vývojárom aplikácií stabilné a podporované API na niekoľko rokov, ktoré možno používať bez obáv, že každých šesť mesiacov bude potrebné prepracovať aplikácie kvôli zmene API v ďalšej vetve GTK. Uvoľnenie GTK 4 plánujú vydať do konca roka.

Z naj významnejších zmien v GTK 4 možno poznamenať:

  • Metóda rozloženia elementov na základe obmedzení (constraint layout), pri ktorej sa umiestnenie a veľkosť podriadených elementov určuje na základe vzdialenosti od okrajov a veľkosti iných elementov.
  • Modul vykresľovania založený na grafickom API Vulkan, v ktorom sú implementované shadery pre mnohé náročné elementy CSS používané vo widgetoch GTK.
  • Integrácia GSK (GTK Scene Kit) s možnosťami vykresľovania grafických scén cez OpenGL a Vulkan.
  • Preverila sa organizácia vykresľovania — namiesto výstupu do buffera sa teraz využíva model založený na uzloch vykresľovania (render nodes), pri ktorom je výstup kombinovaný v podobe stromu vysokých operácií, efektívne spracovávaných GPU pomocou OpenGL a Vulkan.
  • Prostriedky pre flexibilné spracovanie zmeny vstupného zamerania.
  • Modernizovaný model doručovania udalostí, ktorý umožňuje obísť subwindow pri smerovaní vstupných udalostí. Potreba implementácie nového modelu súvisí s aktívnejším používaním animačných efektov, ktorých vykreslenie by malo prebiehať bez zmeny rozloženia viditeľných elementov a, samozrejme, bez subwindow.
  • Prepracované API GDK s ohľadom na použitie protokolu Wayland a s tým súvisiacich konceptov. Možnosti viazané na X11 a Wayland boli presunuté do samostatných backendov.
  • Prebehla rozsiahla očista API, vrátane odstránenia tried GtkMenu, GtkMenuBar a GtkToolbar, namiesto ktorých bol navrhnutý GMenu a varianty založené na kontextových menách (popover).
  • V GtkTextView a iných vstupných widgetoch je integrovaný zásobník na vracanie zmien (undo).
  • Bol pridaný nový prvok GtkNative pre widgety, ktoré majú vlastný zobrazovací povrch a sú schopné fungovať nezávisle na prvom úrovni, bez pripojenia k nadriadeným widgetom.
  • Pridané nové widgety vrátane GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, ako aj widgetu na zobrazenie Emoji.
  • Pre vývoj widgetov bol predstavený nový objekt GtkLayoutManager s implementáciou systému správy rozloženia prvkov v závislosti od veľkosti viditeľnej oblasti. GtkLayoutManager nahradil podriadené vlastnosti v kontajneroch GTK, ako sú GtkBox a GtkGrid.
  • Spracovanie udalostí bolo zjednodušené, teraz sú používané iba na vstup. Ostatné udalosti boli nahradené samostatnými signálmi, napríklad namiesto výstupných udalostí bol navrhnutý signál „GdkSurface::render“, namiesto udalostí nastavenia – „GdkSurface::size-changed“.
  • Bol pridaný nový úroveň abstrakcie GdkPaintable, ktorý predstavuje objekty, ktoré je možné nakresliť kdekoľvek s akoukoľvek veľkosťou, bez potreby vykonávať triedenie layout vrstiev.
  • Backend Broadway bol prepísaný a umožňuje vykresľovať výstup knižnice GTK vo webovom prehliadači.
  • API súvisiace s vykonávaním operácií Drag-and-Drop bolo prepracované, vrátane nových oddelených objektov GdkDrag a GdkDrop.

Vylepšenia v porovnaní s minulou testovacou verziou:

  • Starý prístup k implementácii Accessibility API pre osoby so zdravotným postihnutím bol odstránený, miesto neho bol ponúknutý nový variant založený na špecifikácii ARIA a widgete GtkAccessible.
  • Pridaná podpora editovateľných štítkov (GtkEditableLabel).
  • Predložené nové modely zoznamov na zobrazenie záložiek (GtkBookmarkList), reťazcov (GtkStringList) a blokov výberu (GtkBitset).
  • Vo widgete GtkTreeView sa implementovala možnosť editácie buniek.
  • V GtkGridView a GtkListView bola vylepšená implementácia posúvania, pridaná podpora automatického posúvania a automatického rozbalenia.
  • V GtkWidget bola značne zrýchlená обработка rôznych akcií.
  • V GtkFilterListModel a GtkSortListModel bola pridaná podpora inkrementálneho posúvania a filtrovania.
  • V Inspector bola pridaná podpora na inšpektovanie modelov zoznamov a možnosť priamej navigácie medzi objektmi.
  • V GDK bola zabezpečená história posúvania, bola vykonaná čistenie API GdkDevice a ukončené rozdelenie zariadení na master a slave.
  • Bol pridaný nový GDK backend pre macOS.
  • Pre Windows bol navrhnutý nový GDK backend vykresľovania založený na ANGLE, vrstvy na prekládanie volaní OpenGL ES do OpenGL, Direct3D 9/11, Desktop GL a Vulkan.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster