Disponibile il toolkit grafico GTK 4.16

Dopo sei mesi di sviluppo, è stata pubblicata la release del toolkit multipiattaforma per la creazione di interfacce grafiche — GTK 4.16.0. GTK 4 si sviluppa nell'ambito di un processo di sviluppo volto a fornire agli sviluppatori di applicazioni un'API stabile e supportata per diversi anni, che può essere utilizzata senza temere che ogni sei mesi sia necessario rifare le applicazioni a causa delle modifiche all'API in una nuova versione di GTK.

Tra i miglioramenti più evidenti in GTK 4.16:

  • È stata aggiunta l'impostazione gtk-font-rendering, che fornisce flessibili opzioni di alto livello per gestire il rendering dei caratteri. Per utilizzare impostazioni di caratteri a basso livello, è necessario impostare il parametro gtk-font-rendering su 'manual'.
  • Nella libreria GSK (GTK Scene Kit), che fornisce funzionalità di rendering di scene grafiche tramite OpenGL e Vulkan, per impostazione predefinita viene utilizzato il motore di rendering ‘vulkan’ per il rendering in ambienti basati sul protocollo Wayland, che utilizza direttamente l'API grafica Vulkan. In altri casi, continua a essere utilizzato il motore di rendering ‘ngl’, che offre un'implementazione di OpenGL funzionante sopra l'API Vulkan. Per modificare il motore, è possibile usare la variabile ambiente ‘GSK_RENDERER’. Poiché i motori ‘vulkan’ e ‘ngl’ interagiscono in modo diverso con i driver grafici, si consiglia di utilizzare l'ultima versione di Mesa 24.2 per un funzionamento stabile con essi.
  • Tra le altre modifiche nella libreria GSK:
    • È stata implementata la tecnica di ottimizzazione ‘occlusion culling’, che esclude il rendering di oggetti nascosti dietro altri oggetti opachi o che si trovano al di fuori del campo visivo.
    • Nel processo di compositing è stata garantita la considerazione delle informazioni sullo spazio colore.
    • È stato migliorato il caching di glifi e trame.
    • È stato implementato il supporto per il 'tiling' di grandi texture per creare superfici senza soluzione di continuità mediante la ripetizione della texture.
    • È stato migliorato il rendering delle ombre.
    • È stata aggiunta la possibilità di sfruttare le risorse hardware per il trattamento delle texture trasformate, ad esempio per la visualizzazione di contenuti ruotati sullo schermo.
    • È stato migliorato l'uso dei meccanismi di accelerazione hardware sui sistemi con gestore di composizione kwin.
    • È stata aggiunta un'opzione di debug ‘GDK_DEBUG=linear’ per attivare la modalità di compositing lineare. È stato migliorato il logging con l'utilizzo delle opzioni ‘GDK_DEBUG=offload’ e ‘GSK_DEBUG=renderer’.
  • Nei contesti basati sul protocollo Wayland e sul gestore di composizione kwin è stata implementata la possibilità di utilizzare un'estensione del protocollo (color-management) per la gestione del colore. Durante l'output delle finestre di dialogo fissate è stata utilizzata l'estensione Wayland xdg-dialog. Nella composizione è stata coinvolta la sesta versione dell'oggetto wl_compositor. È stato consentito l'uso di dmabuf nel processo di accelerazione hardware del trattamento delle texture per OpenGL.
  • Miglioramenti nella libreria GDK, che fornisce uno strato tra GTK e il sottosistema grafico:
    • Ampliate significativamente le capacità di gestione degli spazi colore. È stato aggiunto il supporto per gli spazi colore srgb, srgb-linear, rec2100-pq e rec2100-linear, e sono state effettuate preparazioni per implementare il supporto per gli spazi colore HDR. È stato proposto l'oggetto GdkColorState, che fornisce informazioni sull'interpretazione dei colori, da utilizzare per la conversione tra spazi colore. Per creare oggetti con informazioni sugli spazi colore è stato aggiunto l'oggetto Gdk.CicpParams. Nell'oggetto GdkTexture, così come negli oggetti per la creazione, il caricamento e la trasformazione delle texture, è stata aggiunta la possibilità di usare spazi colore.
    • Implementato un nuovo API per la gestione del cursore, basato su callback.
    • È stata implementata la possibilità di eseguire operazioni di MIP-texturizzazione (MipMap, creazione di versioni ridotte delle texture utilizzate quando un oggetto si allontana dalla camera) tramite CPU.
    • Per la conversione dei colori e la MIP-texturizzazione è stato utilizzato un pool di thread.
    • Aggiunto il supporto per la variabile ambiente XDG_ACTIVATION_TOKEN con un token di attivazione per il protocollo xdg-activation-v1, che consente a un'app di spostare il focus su un'altra.
    • Aggiunta la classe GdkMemoryTextureBuilder, che consente di formare oggetti con texture (GdkTexture) a partire da dati memorizzati in memoria volatile.
  • Sono state ampliate le possibilità di creazione di temi basati su CSS. Aggiunta la supporto per variabili e proprietà personalizzate. Implementate le funzioni CSS color(), oklab(), color-mix(), oltre a funzioni matematiche. Offerta la possibilità di utilizzare definizioni relative dei colori (modifiche ai colori assoluti tramite funzioni), nonché di impostare il livello di trasparenza in percentuale. Nella gestione dei colori, bordi, ombre e testo, è stata garantita la considerazione delle informazioni sugli spazi di colore.
  • All'utilità rendernode-tool sono state aggiunte le comandi ‘extract’ per il caricamento di dati tramite URL e ‘image’ per la manipolazione delle texture. È stata implementata la possibilità di generare file in formato PDF.
  • Nell'interfaccia gtk4-node-editor è stata aggiunta l'operazione ‘Paste as node’.
  • Nel widget di selezione file GtkFileChooserWidget è stata aggiunta la supporto per la combinazione Ctrl-Shift-N per la creazione di directory.
  • Nel widget di creazione di finestre pop-up GtkPopover è stata migliorata la gestione delle modifiche alle dimensioni e alla posizione.
  • Nel widget GtkGraphicsOffload, utilizzato per inviare contenuti direttamente, come video, attraverso il gestore di composizione evitando il rendering GSK, è stata aggiunta la proprietà ‘black-background’ per visualizzare uno sfondo nero.
    Disponibile il toolkit grafico GTK 4.16
  • Nel widget GtkGLArea, progettato per la visualizzazione utilizzando OpenGL, è stata aggiunta la possibilità di formare texture in dmabuf, consentendo l'utilizzo del widget GtkGraphicsOffload per l'output diretto tramite composito. server. È stata aumentata l'efficienza nell'interazione con il composito. server.
    Disponibile il toolkit grafico GTK 4.16
  • Nel widget GtkTextView è stata aggiunta la supporto per la visualizzazione del testo con ombre e implementata la possibilità di utilizzare le notifiche GtkTextBufferCommitNotify.
  • Nel widget GtkCheckButton è stata aggiunta la supporto per la definizione stilistica di gruppo dei pulsanti.
  • Sono state ampliate le possibilità di debug. Nell'interfaccia di ispezione sono state aggiunte informazioni sugli spazi di colore e dettagli sulla risoluzione del monitor. La variabile d'ambiente GDK_DEBUG è stata suddivisa in GDK_DEBUG e GDK_DISABLE. Sono stati aggiunti i modi GDK_DISABLE=color-mgmt e GDK_DISABLE=offload. È stato aggiunto il modo GTK_DEBUG=css per la visualizzazione di avvisi sull'uso di funzionalità CSS obsollete. Sono state aggiunte le combinazioni di tasti Super-r per la registrazione del log eventi e Super-c per la creazione di screenshot.
  • Sono stati aumentati i requisiti per le dipendenze e l'ambiente di build. Ora è necessario un compilatore con supporto C11 e almeno la versione 1.24 di gstreamer, 1.52 di pango e 1.18 di cairo per la compilazione. È stata interrotta la supporto per le modalità di build obsolete gtk_doc (utilizzare documentation), update_screenshots (-> screenshots), demo-profile (-> profile) e demos (-> build-demos).
  • Per macOS 10.15+ è stata implementata un'interfaccia per la selezione dei colori dei pixel sullo schermo (color picker).
  • Per Windows è stata attivata la modalità di rendering incrementale utilizzando l'API WGL.

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