Vydání GTK 3.99.0 znamenalo dokončení funkcí plánovaných pro GTK 4

zveřejněno konečné experimentální vydání rámce GTK 3.99.0, která implementuje všechny funkce plánované pro GTK 4. Větev GTK 4 je vyvíjena jako součást nového vývojového procesu, který se pokouší poskytnout vývojářům aplikací stabilní a podporované API na několik let, které lze používat bez obav z nutnosti přepisovat aplikace každých šest měsíců, protože kvůli změnám API v další větvi GTK. Vydání GTK 4 je plánováno do konce roku.

Z většiny významný změny в GTK 4 můžete si všimnout:

  • Metoda rozvržení prvků na základě omezení (rozvržení omezení), ve kterém se umístění a velikost podřízených prvků určuje na základě vzdálenosti k okrajům a velikosti ostatních prvků.
  • Vykreslovací modul založený na grafickém rozhraní API Vulkan, který implementuje shadery pro mnoho prvků CSS náročných na zdroje používaných ve widgetech GTK.
  • Integrace GSK (GTK Scene Kit) s možností renderování grafických scén přes OpenGL a Vulkan.
  • Organizace vykreslování byla přepracována - místo výstupu do vyrovnávací paměti je nyní použit model založený na vykreslovacích uzlech, ve kterém je výstup uspořádán ve formě stromu operací na vysoké úrovni, efektivně zpracovaný GPU pomocí OpenGL a Vulkan.
  • Fondy pro flexibilní manipulaci se změnami vstupního zaměření.
  • Modernizovaný model doručování událostí, který eliminuje potřebu podoken při směrování vstupních událostí. Potřeba implementace nového modelu je spojena s aktivnějším využíváním animačních efektů, jejichž vykreslování by mělo probíhat beze změny rozložení viditelných prvků, a tedy bez podokna.
  • GDK API bylo přepracováno s ohledem na použití protokolu Wayland a souvisejících konceptů. Funkce založené na X11 a Wayland byly přesunuty samostatné backendy.
  • Bylo provedeno velké vyčištění API, včetně odstranění tříd GtkMenu, GtkMenuBar a GtkToolbar ve prospěch GMenu a možností založených na vyskakovacích nabídkách.
  • GtkTextView a další vstupní widgety mají vestavěný zásobník zpět.
  • Přidána nová třída GtkNative pro widgety, které mají svůj vlastní zobrazovací povrch a mohou pracovat samostatně na první úrovni, aniž by byly vázány na nadřazené widgety.
  • Byly přidány nové widgety, včetně GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView a widgetu zobrazení Emoji.
  • Pro vývoj widgetů je představen nový objekt GtkLayoutManager s implementací systému pro řízení rozložení prvků v závislosti na velikosti viditelné oblasti. GtkLayoutManager nahrazuje podřízené vlastnosti v kontejnerech GTK, jako jsou GtkBox a GtkGrid.
  • Zpracování událostí bylo zjednodušeno a nyní se používá pouze pro vstup. Zbývající události jsou nahrazeny samostatnými signály, například místo výstupních událostí je navržen signál „GdkSurface::render“ a místo konfiguračních událostí je nabízen „GdkSurface::size-changed“.
  • Přidána nová vrstva abstrakce GdkPaintable, představující objekty, které lze kreslit kdekoli v jakékoli velikosti, bez nutnosti třídit vrstvy rozvržení.
  • Backend Broadway byl přepsán tak, aby umožňoval vykreslení výstupu knihovny GTK v okně webového prohlížeče.
  • Rozhraní API spojené s prováděním operací Drag-and-Drop bylo přepracováno, včetně navrhovaných samostatných objektů GdkDrag a GdkDrop.

Vylepšení oproti předchozí testovací verzi:

  • Stará implementace rozhraní Accessibility API pro osoby se zdravotním postižením byla odstraněna a nahrazena novou verzí založenou na specifikaci ÁRIE a widget GtkAccessible.
  • Přidána podpora pro upravitelné štítky (GtkEditableLabel).
  • Byly navrženy nové modely seznamů pro zobrazování záložek (GtkBookmarkList), řetězců (GtkStringList) a výběrových bloků (GtkBitset).
  • Widget GtkTreeView má schopnost upravovat buňky.
  • V GtkGridView a GtkListView byla vylepšena implementace rolování, byla přidána podpora automatického rolování a automatického rozbalování.
  • GtkWidget výrazně zrychluje zpracování různých akcí.
  • Přidána podpora přírůstkového posouvání a filtrování do GtkFilterListModel a GtkSortListModel.
  • Inspector přidal podporu pro kontrolu modelů seznamů a možnost přímé navigace mezi objekty.
  • V GDK byla uložena historie rolování, bylo vyčištěno GdkDevice API a bylo zastaveno rozdělování zařízení na master a slave.
  • Přidán nový backend GDK pro macOS.
  • Nový backend vykreslování GDK založený na ANGLE, vrstvy k překladu volání OpenGL ES do OpenGL, Direct3D 9/11, Desktop GL a Vulkan.

Zdroj: opennet.ru

Přidat komentář