Release di Wayland-Protocols 1.49

È stato presentato il rilascio del pacchetto wayland-protocols 1.49, contenente un insieme di protocolli e estensioni che completano il protocollo di base Wayland e forniscono le funzionalità necessarie per la costruzione di server compositi e ambienti utente.

Nella nuova versione:

  • È stato aggiunto il protocollo sperimentale xx-fractional-scale, che fornisce la possibilità di scalare il sistema delle coordinate logiche, i cui valori sono espressi in numeri interi, per migliorare la precisione nel posizionamento e aumentare la risoluzione delle coordinate logiche a singoli pixel. Questa possibilità risolve il problema della risoluzione limitata del sistema delle coordinate logiche, insufficiente per il posizionamento a livello di singoli pixel, necessario per la piena implementazione del frazionamento della scala.
  • Nel protocollo «linux-dmabuf» è stato aggiunto il supporto per il funzionamento su sistemi con più GPU. Su tali sistemi, il client può negoziare con i compositi server quale GPU dovrebbe essere utilizzata.
  • Nel protocollo color-management-v1 è stato aggiunto il supporto per i metadati delle immagini nel formato BT.2100, da utilizzare nei compositi server nel gestore specifico, per consentire una corretta visualizzazione dei contenuti HDR, creati per Windows.

Tutti i protocolli seguono sequenzialmente le fasi di sviluppo, test e stabilizzazione. Al termine della fase di sviluppo (categoria «unstable»), il protocollo viene collocato nel ramo «staging» e ufficialmente incluso nel pacchetto wayland-protocols, e dopo il completamento dei test viene spostato nella categoria stabile. I protocolli della categoria «staging» possono già essere utilizzati in compositi server e client dove è necessaria la funzionalità correlata. A differenza della categoria «unstable», in «staging» è vietata l'introduzione di modifiche che violano la compatibilità, ma in caso di problemi o difetti rilevati durante i test, non si esclude la sostituzione con una nuova versione significativa del protocollo o un'altra estensione di Wayland.

Per accelerare la distribuzione dei protocolli agli sviluppatori e incentivare l'implementazione precoce nei progetti esistenti, a partire dalla versione precedente è stata aggiunta una fase "experimental", in cui sono consentiti cambiamenti che compromettono la compatibilità e l'aggiunta di protocolli "grezzi", che possono essere progressivamente sviluppati a un livello adeguato. Perché un protocollo entri nella fase "staging" è necessario formare un team di supporto e ottenere un certo numero di conferme (ACK) dai partecipanti alla revisione, mentre per entrare nella fase "experimental" è sufficiente che non ci siano obiezioni (NACK) nel corso di un periodo di revisione di due settimane.

Attualmente, il set di protocolli wayland-protocols include i seguenti protocolli stabili, che garantiscono la retrocompatibilità:

  • viewporter" – consente al cliente di eseguire operazioni di scaling e ritaglio dei bordi della superficie sul lato server.
  • «presentation-time» — gestisce la visualizzazione dei video.
  • «xdg-shell» — interfaccia per la creazione e l'interazione con superfici come finestre, consentendo di spostarle sullo schermo, minimizzarle, massimizzarle, ridimensionarle, ecc.
  • «linux-dmabuf» — offre funzionalità per la creazione di wl_buffer basati su DMA-BUF.
  • «tablet» — organizzazione dell'input da tablet grafici.

Protocolli testati nella branch «staging»:

  • drm-lease — fornisce le risorse necessarie per creare un'immagine stereoscopica con buffer diversi per l'occhio sinistro e destro quando visualizzata su visori VR.
  • «ext-session-lock» — definisce i mezzi per il blocco della sessione, ad esempio durante l'attivazione dello screensaver o la visualizzazione di una finestra di dialogo per l'autenticazione.
  • «single-pixel-buffer» — consente la creazione di buffer a singolo pixel che includono quattro valori RGBA a 32 bit.
  • «xdg-activation» - consente di trasferire il focus tra diverse superfici di primo livello (ad esempio, tramite
    xdg-activation una applicazione può trasferire il focus a un'altra).
  • content-type consente ai client di inviare informazioni al compositore server sul contenuto visualizzato, che possono essere utilizzate per ottimizzare il comportamento in base al contenuto, ad esempio impostando proprietà DRM specifiche, come il "content type". È dichiarato il supporto per i seguenti tipi di contenuto: none (nessuna informazione sul tipo di dati), photo (visualizzazione di foto digitali con minima elaborazione), video (video o animazione, è richiesta una sincronizzazione più precisa per evitare lag) e game (esecuzione di giochi, è richiesta un'uscita con minima latenza).
  • ext-idle-notify — consente ai server compositi di inviare ai client notifiche sull'inattività dell'utente, che possono essere utilizzate per attivare modalità di risparmio energetico aggiuntive dopo un certo periodo di inattività.
  • tearing-control — consente di disabilitare la sincronizzazione verticale (VSync) con impulsi di spegnimento nei programmi a schermo intero, utilizzata per prevenire la comparsa di tearing durante l'uscita. Negli applicativi multimediali, la comparsa di artefatti dovuti al tearing è un effetto indesiderato, ma nei programmi di gioco è possibile tollerare gli artefatti se la loro eliminazione porta a ritardi aggiuntivi.
  • ext-foreign-toplevel-list — ricezione di informazioni sulle superfici posizionate al livello più alto (toplevel), che consentono di organizzare la fissazione delle finestre sopra altro contenuto, ad esempio per collegare pannelli e interruttori personalizzati.
  • security-context — consente di identificare i client che utilizzano l'isolamento sandbox. Un client può registrare una nuova connessione a un server composito basato su Wayland e associarvi un contesto di sicurezza, dopo di che, in conformità con il contesto di sicurezza specificato, il gestore composito limiterà le funzionalità disponibili per la connessione stabilita.
  • cursor-shape — un modo alternativo per configurare l'aspetto del cursore, basato sulla trasmissione di una serie di immagini di cursore anziché sull'associazione a una superficie (wl_surface).
  • «ext-transient-seat» — progettato per creare sedute temporanee indipendenti (seat), destinate all'uso con dispositivi di input virtuali. Ad esempio, durante l'implementazione della possibilità di connettersi a desktop remoto, il protocollo consente di creare una sessione separata con tastiera e mouse virtuali per ogni utente.
  • «xdg-toplevel-drag» — estende il meccanismo di «drag & drop» con la possibilità di associare finestre di livello superiore all'operazione di spostamento, che può essere utilizzata, ad esempio, per organizzare il trascinamento con il mouse di barre degli strumenti o schede del browser. Il nuovo protocollo consente di creare parti distaccabili della finestra, che diventano nuove finestre durante il trascinamento e possono essere spostate sopra una finestra esistente prima di essere riattaccate.
  • «xdg-dialog» — consente di assegnare alle superfici di livello superiore attributi specifici per le finestre di dialogo, ad esempio, è possibile creare dialoghi modali che bloccano l'interazione dell'utente con il resto dell'interfaccia.
  • «linux-drm-syncobj» — fornisce strumenti per la sincronizzazione esplicita dei buffer utilizzando oggetti di sincronizzazione DRM (Direct Rendering Manager). Si prevede che nel contesto della sincronizzazione durante il rendering nel buffer, il protocollo proposto migliorerà l'interazione con i driver basati sulle API grafiche Vulkan e OpenGL (l'implementazione si basa su gestori nei driver). Il nuovo protocollo consente di garantire che l'operazione di rendering nel buffer sia completata prima che il gestore composito visualizzi il buffer stesso.
  • alpha-modifier, che consente ai clienti di modificare il livello di trasparenza della superficie e di delegare le operazioni di gestione della trasparenza al server di composizione, che a sua volta può inoltrare queste operazioni a KMS.
  • xdg-toplevel-icon — associa un'icona a una finestra di livello superiore.
  • ext-image-capture-source e ext-image-copy-capture — organizzano la cattura dei contenuti visualizzati sullo schermo.
  • xdg-system-bell — consente di emettere un segnale di sistema, che può essere utilizzato, ad esempio, come avviso in un emulatore di terminale. La forma di emissione del segnale è determinata a discrezione del gestore composito, e può essere non solo un suono, ma anche una risposta visiva.
  • fifo — implementa un meccanismo FIFO (primo arrivato, primo servito) per l'elaborazione della coda di aggiornamento del contenuto della superficie visualizzata. Dal punto di vista pratico, il protocollo consente di utilizzare l'attesa del completamento della scansione verticale (vblank) al posto delle chiamate di callback ogni volta che è pronto a visualizzare un nuovo fotogramma, risolvendo il problema del carico elevato sulla GPU durante l'uso di VSync.
  • commit-timing - consente di collegare un vincolo di tempo al contenuto della superficie (il composito server deve visualizzare la modifica del contenuto il prima possibile entro il tempo specificato, ma non prima).
  • ext-data-control — consente ai client privilegiati di gestire l'elaborazione dei dati, ad esempio, per realizzare gestori di appunti.
  • ext-workspace — implementa il concetto desktop virtuali e offre eventi con informazioni sullo stato dei desktop, oltre a funzionalità per attivare e disattivare i desktop. Il protocollo può essere utilizzato per creare pannelli e indicatori che mostrano un elenco dei desktop virtuali disponibili e consentono di passare da uno all'altro.
  • la gestione del colore offre opportunità per la gestione del colore e il supporto per l'ampio intervallo dinamico di luminosità (HDR, High Dynamic Range). Grazie all'estensione aggiunta, le applicazioni client possono ottenere informazioni sulle proprietà degli dispositivi di output relative alla gestione del colore e trasmettere al server composito i dati sulle proprietà della gestione del colore del proprio contenuto. In questo modo, nel server composito, queste informazioni possono essere utilizzate per la gestione automatica del colore durante la visualizzazione dei contenuti su diversi dispositivi di output, ad esempio, per convertire i contenuti in formati adatti alla visualizzazione su monitor HDR. I profili ICC vengono utilizzati per descrivere gli spazi di colore.
  • xdg-toplevel-tag consente ai client Wayland di attaccare etichette alle superfici di livello superiore, che il server composito può utilizzare per identificare le finestre dopo il riavvio dell'applicazione (ad esempio, un'app può impostare le etichette "main window" e "settings" per la finestra principale e la finestra delle impostazioni). Tale identificazione è utile per ripristinare la posizione, le dimensioni e le proprietà delle finestre dopo il riavvio, nonché per determinare regole speciali per diversi tipi di finestre.
  • la rappresentazione del colore definisce la rappresentazione del colore della superficie Wayland. I client Wayland possono trasmettere i metadati necessari per definire la trasparenza, il modello di colore, la sottodisciplina e l'intervallo di quantizzazione, utilizzati nella conversione del buffer di dati in accordo con il modello di colore YCbCr, nella rappresentazione RGB.
  • ext-background-effect — applicazione di effetti alle parti semitrasparenti della superficie Wayland, come il offuscamento dello sfondo.
  • pointer-warp — consente all'applicazione di spostare istantaneamente il cursore nella posizione specificata.
  • gestione della sessione xdg offre possibilità di ripristino dello stato e della posizione delle finestre di una sessione interrotta, ad esempio, dopo un crash del server composito o dell'applicazione.

Protocollo in fase di sviluppo nella branch 'experimental':

  • xx-session-management — ripristino dello stato delle finestre per sessioni interrotte (ad esempio, dopo la chiusura anomala del gestore composito).
  • metodo di input xx consente alle applicazioni di implementare metodi di input di testo per i server compositi e di generare testo inserito, che può essere utilizzato, ad esempio, per creare tastiere virtuali e strati IME (Input Method Editor) per la gestione dell'input.
  • input di testo xx consente ai server compositi di implementare metodi di input e di inviare testo alle applicazioni. Il protocollo standardizza l'interazione tra il server composito e le applicazioni e consente di gestire funzionalità come la trasmissione del testo inserito, la gestione degli eventi di cambio del focus di input e il rispetto delle specificità dei campi di input (lingua, selezione del testo, tipo di contenuto).
  • xx-cutouts — per ottenere informazioni sui ritagli dello schermo (ad esempio, le aree sotto la fotocamera frontale dello schermo dello smartphone).
  • xx-zones — per la creazione e l'aggiunta di finestre di alto livello nelle «zone» — ambienti con il proprio spazio di coordinate. Il protocollo consente di organizzare una disposizione logica delle finestre, in cui ogni finestra è posizionata rispetto a un'altra finestra.
  • xx-keyboard-filter — per l'intercettazione degli eventi di tastiera selezionati dal client, la modifica degli eventi di input o la bloccatura della trasmissione di determinati eventi nella superficie Wayland su cui è impostato il focus di input.

I protocolli in fase di sviluppo nel ramo «unstable»:

  • «fullscreen-shell» — gestione delle operazioni in modalità schermo intero.
  • «input-method» — elaborazione dei metodi di input.
  • «idle-inhibit» — blocco dell'attivazione dello screensaver (salvaschermo).
  • «input-timestamps» — registrazioni temporali per eventi di input.
  • «keyboard-shortcuts-inhibit» — gestione delle combinazioni di tasti e delle scorciatoie da tastiera.
  • «linux-explicit-synchronization» — meccanismo di sincronizzazione dei buffer specifico per Linux legato alla superficie.
  • «pointer-gestures» — gestione dei gesti su schermi tattili.
  • «pointer constraints» — vincoli sui puntatori (blocco).
  • «primary-selection» — analogamente a X11, gestisce il funzionamento del buffer di copia primario (primary selection), il cui inserimento avviene normalmente con il pulsante centrale del mouse.
  • «relative pointer events» — eventi relativi ai puntatori.
  • «text-input» — organizzazione dell'input di testo.
  • «xdg-foreign» — interfaccia di interazione con le superfici di un client «vicino».
  • «xdg-decoration» — rendering delle decorazioni delle finestre lato server.
  • «xdg-output» — informazioni supplementari sull'output video (utilizzato per il ridimensionamento frazionale).
  • «xwayland-keyboard-grab» — acquisizione dell'input nelle applicazioni XWayland.

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