GTK 3.96, llançament experimental de GTK 4, publicat

10 mesos després del passat llançament de prova presentat GTK 3.96, una nova versió experimental de la propera versió estable de GTK 4. La branca GTK 4 s'està desenvolupant com a part d'un nou procés de desenvolupament que intenta proporcionar als desenvolupadors d'aplicacions una API estable i compatible durant diversos anys que es pugui utilitzar sense por. d'haver de reescriure l'aplicació cada sis mesos per canviar l'API a la propera branca de GTK. Fins que GTK 4 s'estabilitzi completament, es recomana que les aplicacions que s'ofereixen als usuaris es continuïn creant mitjançant la branca. GTK 3.24.

El principal canvis a GTK 3.96:

  • A l'API GSK (GTK Scene Kit), que proporciona renderització d'escenes gràfiques a través d'OpenGL i Vulkan, s'ha treballat en els errors, que s'han fet més fàcils d'identificar gràcies a la nova eina de depuració gtk4-node-editor, que permet carregar i mostrar el node de renderització en un format serialitzat (es pot desar en el mode d'inspecció GTK inspector), i també comparar els resultats de renderització quan s'utilitzen diferents backends;

    GTK 3.96, llançament experimental de GTK 4, publicat

  • Les capacitats de transformació 3D s'han portat a un nivell que permet crear efectes d'animació com ara un cub giratori;

    GTK 3.96, llançament experimental de GTK 4, publicat

  • Completament reescrit Backend de Broadway GDK dissenyat per representar la sortida de la biblioteca GTK en una finestra del navegador web. L'antiga implementació de Broadway no encaixava amb els mètodes de representació proposats a GTK 4 (en lloc de sortir a un buffer, ara utilitza un model basat en nodes de renderització, on la sortida es compon en forma d'arbre d'operacions d'alt nivell, processats de manera eficient per la GPU mitjançant OpenGL i Vulkan).
    La nova opció de Broadway converteix els nodes de renderització en nodes DOM amb estils CSS per representar la interfície al navegador. Cada nou estat de pantalla es processa com un canvi en l'arbre DOM en relació a l'estat anterior, la qual cosa redueix la mida de les dades transmeses al client remot. Les transformacions 3D i els efectes gràfics s'implementen mitjançant la propietat de transformació CSS;

  • GDK continua implementant API dissenyades tenint en compte el protocol Wayland i netejant les API basades en X11 o traslladant-les a un backend X11 independent. S'està avançant en el treball per allunyar-se de l'ús de superfícies infantils i coordenades globals. El suport per a GDK_SURFACE_SUBSURFACE s'ha eliminat de GDK;
  • La refactorització del codi associat amb la realització d'operacions d'arrossegar i deixar anar va continuar, inclosos els objectes GdkDrag i GdkDrop separats proposats;
  • La gestió d'esdeveniments s'ha simplificat i ara només s'utilitza per a l'entrada. La resta d'esdeveniments es substitueixen per senyals separats, per exemple, en lloc d'esdeveniments de sortida, es proposa el senyal "GdkSurface::render", en lloc d'esdeveniments de configuració - "GdkSurface::size-changed", en lloc d'esdeveniments de mapeig - "GdkSurface: :mapped", en lloc de gdk_event_handler_set() - "GdkSurface::event";
  • El backend de GDK per a Wayland ha afegit suport per a una interfície de portal per accedir a la configuració de GtkSettings. Per treballar amb mètodes d'entrada, s'ha proposat suport per a l'extensió de protocol text-input-unstable-v3;
  • Per al desenvolupament de widgets, s'introdueix un nou objecte GtkLayoutManager amb la implementació d'un sistema de control de la disposició dels elements en funció de la disposició de l'àrea visible. GtkLayoutManager substitueix les propietats fills en contenidors GTK com ara GtkBox i GtkGrid. Es proposen diversos gestors de maquetació ja preparats: GtkBinLayout per a contenidors senzills amb un element fill, GtkBoxLayout per a elements secundaris alineats linealment, GtkGridLayout per alinear elements secundaris a una quadrícula, GtkFixedLayout per a la posició arbitraria d'elements fills, GtkCustomLayout per a elements tradicionals basats en la translació de size_allocate manipuladors;
  • S'han afegit objectes d'accés públic per a la visualització de pàgines d'elements secundaris als ginys GtkAssistant, GtkStack i GtkNotebook, als quals es transfereixen les propietats secundàries no relacionades amb el disseny d'aquests ginys. Com que totes les propietats fill existents s'han convertit a propietats normals, propietats de disseny o s'han mogut a objectes de pàgina, el suport per a propietats fill s'ha eliminat completament del GtkContainer;
  • La funcionalitat bàsica de GtkEntry s'ha mogut a un nou widget GtkText, que també inclou una interfície d'edició GtkEditable millorada. Totes les subclasses d'entrada de dades existents s'han refet com a implementacions GtkEditable basades en el nou giny GtkText;
  • S'ha afegit un nou widget GtkPasswordEntry per als formularis d'entrada de contrasenyes;
  • GtkWidgets ha afegit la capacitat de transformar elements secundaris mitjançant mètodes de transformació lineal especificats mitjançant CSS o l'argument gtk_widget_allocate a GskTransform. La característica especificada ja s'aplica al giny GtkFixed;
  • S'han afegit nous models de generació de llistes: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel i GtkSingleSelection. En el futur tenim previst afegir suport per als models de llista a GtkListView;
  • GtkBuilder ha afegit la possibilitat d'establir les propietats de l'objecte localment (en línia), en lloc d'utilitzar enllaços per identificador;
  • S'ha afegit l'ordre a gtk4-builder-tool per convertir fitxers d'IU de GTK 3 a GTK 4;
  • El suport per a temes clau, menús tabulars i quadres combinats s'ha interromput. El giny GtkInvisible s'ha eliminat.

    Font: opennet.ru

Afegeix comentari