Ă stato pubblicato il pacchetto dei wayland-protocols 1.46, contenente un insieme di protocolli ed estensioni che completano il protocollo base di Wayland e forniscono le funzionalitĂ necessarie per costruire server compositi e ambienti utente.
Nella nuova versione:
- Aggiunto il protocollo sperimentale xx-input-method, che consente alle applicazioni di implementare metodi di input di testo per server compositi e di formare il testo inserito, utilizzabile, ad esempio, per creare tastiere virtuali e sovrapposizioni IME (Input Method Editor) per la gestione dell'input.
- Aggiunto il protocollo sperimentale xx-text-input, che consente ai server compositi di implementare metodi di input e inviare testo alle applicazioni. Il protocollo standardizza l'interazione tra il server composito e le applicazioni, e consente di gestire funzioni come la trasmissione del testo inserito, la gestione degli eventi di modifica del focus di input e la considerazione delle specificitĂ dei campi di input (lingua, selezione del testo, tipo di contenuto).
- Rivisti i protocolli color-management-v1 e color-representation-v1, che forniscono funzionalitĂ per la gestione del colore, il supporto HDR e la definizione della rappresentazione del colore delle superfici Wayland.
Tutti i protocolli passano attraverso fasi di sviluppo, test e stabilizzazione. Una volta conclusa la fase di sviluppo (categoria "unstable"), il protocollo viene inserito nel ramo "staging" e ufficialmente incluso nel pacchetto wayland-protocols; dopo la conclusione dei test, viene spostato nella categoria stabile. I protocolli della categoria "staging" possono giĂ essere utilizzati in server compositori e client dove Ăš richiesta la funzionalitĂ associata. A differenza della categoria "unstable", nella "staging" sono vietati cambiamenti che compromettano la compatibilitĂ , ma se durante i test emergono problemi o mancanze, non Ăš esclusa la possibilitĂ di sostituire il protocollo con una nuova versione significativa 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 client di eseguire operazioni di ridimensionamento 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 passare il focus tra diverse superfici di primo livello (ad esempio, mediante xdg-activation, un'applicazione puĂČ trasferire il focus a un'altra).
- content-type â permette ai client di trasmettere al server composito informazioni sul contenuto visualizzato, che possono essere utilizzate per ottimizzare il comportamento in base al contenuto, ad esempio per impostare proprietĂ DRM specifiche come «content type». Sono dichiarati supportati i seguenti tipi di contenuti: none (nessuna informazione sul tipo di dati), photo (output di foto digitali, richiede un'elaborazione minima), video (video o animazione, richiede una sincronizzazione piĂč precisa per escludere ritardi) e game (esecuzione di giochi, richiede output con latenza minima).
- 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 sessioni indipendenti temporanee (seat), destinate ad essere utilizzate insieme a dispositivi di input virtuali. Ad esempio, nell'implementazione della possibilità di collegarsi a desktop remoto il protocollo consente di creare per ogni utente una sessione separata con tastiera e mouse virtuali.
- «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 associare un vincolo temporale al contenuto della superficie (il server composito deve visualizzare la modifica del contenuto, se 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.
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).
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
