Il rilascio di GTK 3.99.0 ha segnato il completamento delle funzionalità previste per GTK 4

pubblicato versione sperimentale finale del framework GTK 3.99.0, che implementa tutte le funzionalità previste per GTK 4. Il ramo GTK 4 è in fase di sviluppo come parte di un nuovo processo di sviluppo che tenta di fornire agli sviluppatori di applicazioni un'API stabile e supportata per diversi anni che possa essere utilizzata senza il timore di doverla riscrivere le applicazioni ogni sei mesi a causa delle modifiche API nel prossimo ramo GTK. Il rilascio di GTK 4 è previsto entro la fine dell'anno.

Di più significativo cambiamento в GTK 4 puoi notare:

  • Metodo per disporre gli elementi in base a vincoli (disposizione dei vincoli), in cui la posizione e la dimensione degli elementi figlio vengono determinate in base alla distanza dai bordi e alla dimensione degli altri elementi.
  • Un renderer basato sull'API grafica Vulkan che implementa shader per molti degli elementi CSS ad uso intensivo di risorse utilizzati nei widget GTK.
  • integrazione GSK (GTK Scene Kit) con la possibilità di eseguire il rendering di scene grafiche tramite OpenGL e Vulkan.
  • L'organizzazione del rendering è stata rivista: invece dell'output in un buffer, viene ora utilizzato un modello basato su nodi di rendering, in cui l'output è organizzato sotto forma di un albero di operazioni di alto livello, elaborato in modo efficiente dalla GPU utilizzando OpenGL e Vulcano.
  • Fondi per una gestione flessibile delle modifiche al focus dell'input.
  • Un modello di distribuzione degli eventi modernizzato che elimina la necessità di finestre secondarie durante l'instradamento degli eventi di input. La necessità di implementare un nuovo modello è associata a un uso più attivo degli effetti di animazione, il cui rendering dovrebbe essere effettuato senza modificare la disposizione degli elementi visibili e, di conseguenza, senza una sottofinestra.
  • L'API GDK è stata riprogettata con l'obiettivo di utilizzare il protocollo Wayland e i concetti correlati. Le funzionalità basate su X11 e Wayland sono state spostate in backend separati.
  • È stata effettuata una profonda pulizia dell'API, inclusa la rimozione delle classi GtkMenu, GtkMenuBar e GtkToolbar, a favore di GMenu e delle opzioni basate sui menu popover.
  • GtkTextView e altri widget di input hanno uno stack di annullamento integrato.
  • Aggiunta una nuova classe GtkNative per i widget che hanno una propria superficie di visualizzazione e possono funzionare separatamente al primo livello, senza essere legati ai widget principali.
  • Sono stati aggiunti nuovi widget, inclusi GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView e un widget di visualizzazione Emoji.
  • Per lo sviluppo dei widget viene introdotto un nuovo oggetto GtkLayoutManager con l'implementazione di un sistema di controllo della disposizione degli elementi in funzione della dimensione dell'area visibile. GtkLayoutManager sostituisce le proprietà figlie nei contenitori GTK come GtkBox e GtkGrid.
  • La gestione degli eventi è stata semplificata e ora viene utilizzata solo per l'input. Gli eventi rimanenti vengono sostituiti con segnali separati, ad esempio, invece degli eventi di output, viene proposto il segnale "GdkSurface::render" e invece degli eventi di configurazione viene offerto "GdkSurface::size-changed".
  • Aggiunto un nuovo livello di astrazione GdkPaintable, che rappresenta oggetti che possono essere disegnati ovunque e di qualsiasi dimensione, senza la necessità di ordinare i livelli di layout.
  • Il backend Broadway è stato riscritto per consentire il rendering dell'output della libreria GTK in una finestra del browser web.
  • L'API associata all'esecuzione delle operazioni di trascinamento della selezione è stata riprogettata, includendo gli oggetti GdkDrag e GdkDrop separati proposti.

Miglioramenti rispetto alla versione di prova precedente:

  • La vecchia implementazione dell'API di Accessibilità per le persone con disabilità è stata rimossa, sostituita da una nuova versione basata sulle specifiche ARIA e il widget GtkAccessible.
  • Aggiunto il supporto per le etichette modificabili (GtkEditableLabel).
  • Sono stati proposti nuovi modelli di lista per la visualizzazione di segnalibri (GtkBookmarkList), stringhe (GtkStringList) e blocchi di selezione (GtkBitset).
  • Il widget GtkTreeView ha la capacità di modificare le celle.
  • L'implementazione dello scorrimento è stata migliorata in GtkGridView e GtkListView, è stato aggiunto il supporto per lo scorrimento automatico e l'espansione automatica.
  • GtkWidget accelera notevolmente l'elaborazione di varie azioni.
  • Aggiunto supporto per scorrimento e filtro incrementali a GtkFilterListModel e GtkSortListModel.
  • Inspector ha aggiunto il supporto per l'ispezione dei modelli di elenco e la possibilità di navigare direttamente tra gli oggetti.
  • In GDK, la cronologia di scorrimento è stata salvata, l'API GdkDevice è stata ripulita e la separazione dei dispositivi in ​​master e slave è stata interrotta.
  • Aggiunto un nuovo backend GDK per macOS.
  • Un nuovo backend di rendering GDK basato su ANGLE, intercalari per tradurre le chiamate OpenGL ES in OpenGL, Direct3D 9/11, Desktop GL e Vulkan.

Fonte: opennet.ru

Aggiungi un commento