Pubblicato GTK 3.96, rilascio sperimentale di GTK 4

Dopo 10 mesi dal precedente rilascio di prova presentato GTK 3.96, nuovo rilascio sperimentale per la futura versione stabile di GTK 4. Il ramo GTK 4 si sta sviluppando nell'ambito di un nuovo processo di sviluppo, che cerca di fornire agli sviluppatori un'API stabile e supportata per diversi anni, utilizzabile senza il timore di dover riadattare l'applicazione ogni sei mesi a causa delle modifiche all'API in un nuovo ramo di GTK. Fino alla completa stabilizzazione di GTK 4, si consiglia di continuare a compilare le applicazioni per gli utenti utilizzando il ramo GTK 3.24.

Principali modifiche in GTK 3.96:

  • Nell'API GSK (GTK Scene Kit), che fornisce il rendering di scene grafiche tramite OpenGL e Vulkan, sono stati corretti errori che ora possono essere identificati più facilmente grazie al nuovo strumento di debug gtk4-node-editor, che consente di caricare e visualizzare un nodo di rendering in formato serializzato (può essere salvato in modalità di ispezione con GTK inspector), e confrontare il risultato del rendering applicando diversi backend;

    Pubblicato GTK 3.96, rilascio sperimentale di GTK 4
  • Le funzionalità di trasformazione 3D sono state elevate a un livello tale da consentire la creazione di effetti animati come un cubo rotante;

    Pubblicato GTK 3.96, rilascio sperimentale di GTK 4
  • Completamente riscritto Il backend GDK Broadway è progettato per eseguire il rendering dell'output della libreria GTK in una finestra del web browser. La vecchia implementazione di Broadway non si adattava ai metodi di rendering proposti in GTK 4 (invece di generare output in un buffer, ora viene utilizzato un modello basato su nodi di rendering, in cui l'output viene composto sotto forma di un albero di operazioni di alto livello, elaborato in modo efficiente dalla GPU tramite OpenGL e Vulkan).
    La nuova versione di Broadway trasforma i nodi di rendering in nodi DOM con stili CSS per il rendering dell'interfaccia nel browser. Ogni nuovo stato dello schermo viene elaborato come una modifica dell'albero DOM rispetto al precedente stato, il che consente di ridurre la dimensione dei dati trasmessi al client remoto. Le trasformazioni 3D e gli effetti grafici sono realizzati attraverso la proprietà CSS transform;
  • In GDK, the implementation of APIs designed with an eye toward using the Wayland protocol continues, along with the cleanup of APIs tied to X11 or their migration to a separate X11 backend. Progress is noted in the work to move away from the use of child surfaces and global coordinates. The support for GDK_SURFACE_SUBSURFACE has been removed from GDK.
  • The refactoring of code related to performing Drag-and-Drop operations continues, including the introduction of separate GdkDrag and GdkDrop objects.
  • Event handling has been simplified, now only used for input purposes. Other events have been replaced with separate signals, for example, instead of output events, the signal 'GdkSurface::render' is proposed; instead of configure events — 'GdkSurface::size-changed'; instead of mapping events — 'GdkSurface::mapped'; instead of gdk_event_handler_set() — 'GdkSurface::event'.
  • Support for the portal interface for accessing GtkSettings has been added to the GDK backend for Wayland. Support for extending the protocol text-input-unstable-v3 is proposed for working with input methods.
  • Per lo sviluppo di widget è stato introdotto un nuovo oggetto GtkLayoutManager che implementa un sistema di gestione del layout degli elementi in base alla dimensione della zona visibile. GtkLayoutManager sostituisce le proprietà figlio nei contenitori GTK, come GtkBox e GtkGrid. Sono stati proposti diversi manager di layout: GtkBinLayout per contenitori semplici con un solo elemento figlio, GtkBoxLayout per elementi figli allineati in modo lineare, GtkGridLayout per l'allineamento degli elementi figli in una griglia, GtkFixedLayout per il posizionamento arbitrario degli elementi figli, GtkCustomLayout per la traduzione di elementi tradizionali basati su gestori size_allocate;
  • Nei widget GtkAssistant, GtkStack e GtkNotebook sono stati aggiunti oggetti pubblicamente accessibili per la visualizzazione a schede degli elementi figli, ai quali sono state trasferite le proprietà non correlate al layout dei dati di questi widget. Poiché tutte le proprietà figlio esistenti sono state trasformate in proprietà normali, le proprietà di layout sono state spostate nei rispettivi oggetti a schede e il supporto per le proprietà figlio è stato completamente rimosso da GtkContainer;
  • La funzionalità di base di GtkEntry è stata spostata in un nuovo widget GtkText, che include anche un'interfaccia di modifica avanzata GtkEditable. Tutti i sottoclassi di input esistenti sono stati trasformati in implementazioni di GtkEditable basate sul nuovo widget GtkText;
  • È stato aggiunto un nuovo widget GtkPasswordEntry per i moduli di inserimento delle password;
  • In GtkWidgets è stata aggiunta la possibilità di trasformare gli elementi figli utilizzando metodi di trasformazione lineare, definiti tramite CSS o tramite l'argomento gtk_widget_allocate in GskTransform. Questa funzionalità è già stata applicata nel widget GtkFixed;
  • Sono stati aggiunti nuovi modelli di creazione liste: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel e GtkSingleSelection. In futuro si prevede di aggiungere il supporto per i modelli di lista in GtkListView;
  • In GtkBuilder è stata aggiunta la possibilità di impostare le proprietà degli oggetti in loco (inline), invece di utilizzare riferimenti per identificatore;
  • Nel gtk4-builder-tool è stato aggiunto un comando per convertire file UI da GTK 3 a GTK 4;
  • È stata interrotta la supporto per i temi chiave (key theme), i menu tabulari (tabular menu) e le combo box (combo box). È stato rimosso il widget GtkInvisible.

    Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster