GTK 3.96, experimentální vydání GTK 4, zveřejněno

10 měsíců poté minulosti zkušební vydání prezentovány GTK 3.96, nové experimentální vydání připravovaného stabilního vydání 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 bez obav používat nutnosti každých šest měsíců přepisovat aplikaci kvůli změně API v další větvi GTK. Dokud nebude GTK 4 plně stabilizován, je doporučeno, aby aplikace nabízené uživatelům byly nadále sestavovány pomocí větve GTK 3.24.

hlavní změny v GTK 3.96:

  • V API GSK (GTK Scene Kit), který poskytuje vykreslování grafických scén přes OpenGL a Vulkan, se zapracovalo na chybách, které se daly snadněji identifikovat díky novému ladicímu nástroji gtk4-node-editor, který umožňuje načíst a zobrazit vykreslovací uzel v serializovaném formátu (lze uložit v inspekčním režimu GTK inspektor) a také porovnat výsledky vykreslování při použití různých backendů;

    GTK 3.96, experimentální vydání GTK 4, zveřejněno

  • Možnosti 3D transformace byly povýšeny na úroveň, která umožňuje vytvářet animační efekty, jako je rotující krychle;

    GTK 3.96, experimentální vydání GTK 4, zveřejněno

  • Úplně přepsáno Broadway GDK backend navržený pro vykreslování výstupu knihovny GTK v okně webového prohlížeče. Stará Broadway implementace nezapadala do metod vykreslování navrhovaných v GTK 4 (místo výstupu do vyrovnávací paměti nyní používá model založený na vykreslovacích uzlech, kde je výstup složen ve formě stromu operací na vysoké úrovni, efektivně zpracovává GPU pomocí OpenGL a Vulkan).
    Nová možnost Broadway převádí vykreslovací uzly na uzly DOM se styly CSS pro vykreslování rozhraní v prohlížeči. Každý nový stav obrazovky je zpracován jako změna ve stromu DOM vzhledem k předchozímu stavu, což snižuje velikost dat přenášených do vzdáleného klienta. 3D transformace a grafické efekty jsou implementovány prostřednictvím vlastnosti transformace CSS;

  • GDK nadále implementuje API navržená s ohledem na protokol Wayland a čistí API založená na X11 nebo je přesouvá do samostatného backendu X11. Došlo k pokroku v práci na opuštění používání podřízených ploch a globálních souřadnic. Podpora pro GDK_SURFACE_SUBSURFACE byla z GDK odstraněna;
  • Pokračovalo refaktorování kódu spojeného s prováděním operací Drag-and-Drop, včetně navrhovaných samostatných objektů GdkDrag a GdkDrop;
  • 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“ namísto událostí konfigurace - „GdkSurface::size-changed“, namísto událostí mapování - „GdkSurface: :mapped”, místo gdk_event_handler_set() - "GdkSurface::event";
  • Backend GDK pro Wayland přidal podporu pro portálové rozhraní pro přístup k nastavení GtkSettings. Pro práci se vstupními metodami byla navržena podpora pro rozšíření protokolu text-input-unstable-v3;
  • Pro vývoj widgetů je představen nový objekt GtkLayoutManager s implementací systému pro řízení rozložení prvků v závislosti na rozložení viditelné oblasti. GtkLayoutManager nahrazuje podřízené vlastnosti v kontejnerech GTK, jako jsou GtkBox a GtkGrid. Je navrženo několik hotových správců rozložení: GtkBinLayout pro jednoduché kontejnery s jedním podřízeným prvkem, GtkBoxLayout pro lineárně zarovnané podřízené prvky, GtkGridLayout pro zarovnání podřízených prvků do mřížky, GtkFixedLayout pro libovolné umístění podřízených prvků, GtkCustomLayout pro překlad tradičních prvků na základě size_allocate manipulátory;
  • Do widgetů GtkAssistant, GtkStack a GtkNotebook byly přidány veřejně přístupné objekty pro zobrazení stránek podřízených prvků, do kterých se přenášejí podřízené vlastnosti těchto widgetů nesouvisející s rozložením. Protože všechny existující podřízené vlastnosti byly převedeny na běžné vlastnosti, vlastnosti rozvržení nebo přesunuty do objektů stránky, podpora podřízených vlastností byla z GtkContainer zcela odstraněna;
  • Základní funkce GtkEntry byla přesunuta do nového widgetu GtkText, který také obsahuje vylepšené rozhraní pro úpravy GtkEditable. Všechny existující podtřídy vstupu dat byly přepracovány jako implementace GtkEditable založené na novém widgetu GtkText;
  • Přidán nový widget GtkPasswordEntry pro formuláře pro zadání hesla;
  • GtkWidgets přidal možnost transformovat podřízené prvky pomocí metod lineární transformace specifikovaných pomocí CSS nebo argumentu gtk_widget_allocate do GskTransform. Zadaná funkce je již použita ve widgetu GtkFixed;
  • Byly přidány nové modely generování seznamů: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel a GtkSingleSelection. V budoucnu plánujeme přidat podporu pro modely seznamů do GtkListView;
  • GtkBuilder přidal možnost nastavit vlastnosti objektu lokálně (inline), namísto použití odkazů podle identifikátoru;
  • Přidán příkaz do nástroje gtk4-builder-tool pro převod souborů uživatelského rozhraní z GTK 3 na GTK 4;
  • Podpora klíčových témat, tabulkových nabídek a polí se seznamem byla ukončena. Widget GtkInvisible byl odstraněn.

    Zdroj: opennet.ru

Přidat komentář