Megjelent a GTK 3.96, a GTK 4 kísérleti kiadása

10 hónap múlva a múlté teszt kiadás bemutatott GTK 3.96, a GTK 4 közelgő stabil kiadásának új kísérleti kiadása. A GTK 4 ágat egy új fejlesztési folyamat részeként fejlesztik, amely megpróbálja az alkalmazásfejlesztők számára stabil és támogatott API-t biztosítani több évre, amelyet félelem nélkül használhatnak. hogy félévente át kell írni az alkalmazást az API változása miatt a következő GTK ágban. A GTK 4 teljes stabilizálásáig azt javasoljuk, hogy a felhasználóknak kínált alkalmazásokat továbbra is az ág használatával építsék GTK 3.24.

A főbb változások a GTK 3.96-ban:

  • Az API-ban GSK (GTK Scene Kit), amely grafikus jelenetek megjelenítését teszi lehetővé OpenGL-en és Vulkanon keresztül, dolgoztunk a hibákon, amelyek könnyebben azonosíthatók az új gtk4-node-editor hibakereső eszköznek köszönhetően, amely lehetővé teszi a renderelési csomópont szerializált formátumban (elmenthető ellenőrzési módban GTK ellenőr), valamint összehasonlíthatja a renderelési eredményeket különböző háttérprogramok használatakor;

    Megjelent a GTK 3.96, a GTK 4 kísérleti kiadása

  • A 3D átalakítási képességek olyan szintre kerültek, amely lehetővé teszi animációs effektusok, például forgó kocka létrehozását;

    Megjelent a GTK 3.96, a GTK 4 kísérleti kiadása

  • teljesen átírva A Broadway GDK-háttérrendszer a GTK-könyvtár kimenetének webböngészőablakban történő megjelenítésére készült. A régi Broadway implementáció nem illett bele a GTK 4-ben javasolt renderelési metódusokba (a pufferbe történő kimenet helyett ma már render csomópontokon alapuló modellt használ, ahol a kimenet magas szintű műveletek fája formájában áll össze, hatékonyan dolgozza fel a GPU az OpenGL és a Vulkan segítségével).
    Az új Broadway-beállítás átalakítja a renderelési csomópontokat DOM-csomópontokká CSS-stílusokkal a felület böngészőben történő megjelenítéséhez. Minden új képernyőállapot a DOM-fa előző állapothoz viszonyított változásaként kerül feldolgozásra, ami csökkenti a távoli kliensnek továbbított adatok méretét. A 3D transzformációk és grafikai effektusok a CSS transzformációs tulajdonságon keresztül valósulnak meg;

  • A GDK továbbra is a Wayland protokollt szem előtt tartva tervezett API-kat implementál, és megtisztítja az X11-alapú API-kat, vagy áthelyezi őket egy külön X11 háttérrendszerbe. Előrelépés történt a gyermekfelületek és a globális koordináták használatától való elszakadás terén. A GDK_SURFACE_SUBSURFACE támogatása megszűnt a GDK-ból;
  • Folytatódott a Drag-and-Drop műveletekhez kapcsolódó kód újrafaktorálása, beleértve a javasolt különálló GdkDrag és GdkDrop objektumokat is;
  • Az eseménykezelés egyszerűsödött, és már csak bevitelre használható. A fennmaradó eseményeket külön jelek helyettesítik, például a kimeneti események helyett a „GdkSurface::render” jelet javasoljuk, a konfigurációs események helyett - „GdkSurface::size-changed”, a leképezési események helyett - „GdkSurface: :mapped”, a gdk_event_handler_set() helyett - "GdkSurface::event";
  • A Wayland GDK-háttérprogramja támogatja a GtkSettings beállításainak eléréséhez szükséges portálfelületet. A beviteli módszerekkel való munkavégzés érdekében javasolták a text-input-unstable-v3 protokoll-kiterjesztés támogatását;
  • A widgetek fejlesztéséhez egy új GtkLayoutManager objektumot vezetnek be egy olyan rendszer megvalósításával, amely az elemek elrendezését vezérli a látható terület elrendezésétől függően. A GtkLayoutManager lecseréli a gyermektulajdonságokat a GTK-tárolókban, például a GtkBoxban és a GtkGridben. Számos kész elrendezéskezelő javasolt: GtkBinLayout egyszerű konténerekhez egy gyermekelemmel, GtkBoxLayout lineárisan igazított gyermekelemekhez, GtkGridLayout gyermekelemek rácshoz igazításához, GtkFixedLayout gyermekelemek tetszőleges pozicionálásához, GtkCustomLayout a méret alapján hagyományos_locate fordításához kezelők;
  • Nyilvánosan elérhető objektumok az utódelemek oldalmegjelenítéséhez hozzáadásra kerültek a GtkAssistant, GtkStack és GtkNotebook widgetekhez, amelyekhez ezeknek a widgeteknek az elrendezéshez nem kapcsolódó gyermektulajdonságai is átkerülnek. Mivel az összes létező utódtulajdonságot normál tulajdonságokká, elrendezési tulajdonságokká alakították át, vagy oldalobjektumokba helyezték át, az utódtulajdonságok támogatása teljesen megszűnt a GtkContainerből;
  • A GtkEntry alapvető funkciói átkerültek egy új GtkText widgetbe, amely egy továbbfejlesztett GtkEditable szerkesztőfelületet is tartalmaz. Minden létező adatbeviteli alosztály GtkEditable implementációvá lett átalakítva az új GtkText widget alapján;
  • Új GtkPasswordEntry widget hozzáadva a jelszóbeviteli űrlapokhoz;
  • A GtkWidgets hozzáadta a gyermekelemek átalakításának lehetőségét a CSS-en keresztül megadott lineáris átalakítási módszerekkel vagy a gtk_widget_allocate argumentummal a GskTransformhoz. A megadott szolgáltatás már alkalmazva van a GtkFixed widgetben;
  • Új listagenerációs modellek kerültek hozzáadásra: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel és GtkSingleSelection. A jövőben a listamodellek támogatását tervezzük hozzáadni a GtkListView-hoz;
  • A GtkBuilder lehetőséget adott az objektumtulajdonságok helyi (inline) beállítására, ahelyett, hogy azonosítók alapján használná a hivatkozásokat;
  • A gtk4-builder-tool parancs hozzáadva a felhasználói felület fájlok GTK 3-ról GTK 4-re konvertálására;
  • A kulcstémák, táblázatos menük és kombinált dobozok támogatása megszűnt. A GtkInvisible widgetet eltávolítottuk.

    Forrás: opennet.ru

Hozzászólás