Rilascio Wayland-Protocols 1.45

È stato rilasciato il pacchetto wayland-protocols 1.45, contenente una serie di protocolli ed estensioni che completano il protocollo Wayland di base e forniscono le funzionalità necessarie per creare server compositi e ambienti utente.

Wayland-Protocols 1.45 include 4 nuovi protocolli (due nella categoria "staging" e due sperimentali):

  • ext-background-effect - applica effetti alle parti semitrasparenti di una superficie Wayland, come la sfocatura dello sfondo.
  • pointer-warp - Consente a un'applicazione di spostare istantaneamente il puntatore in una posizione specificata.
  • session-management — ripristina lo stato della finestra per le sessioni interrotte (ad esempio dopo un crash del compositing manager).
  • input-method — sviluppo di un nuovo protocollo per l'utilizzo di metodi di immissione di testo.

Tutti i protocolli attraversano in sequenza fasi di sviluppo, test e stabilizzazione. Dopo aver completato la fase di sviluppo (la categoria “unstable”), il protocollo viene inserito nel ramo “staging” e ufficialmente incluso nel set di protocolli Wayland e, una volta completato il test, viene spostato nella categoria stable. I protocolli della categoria “staging” possono già essere utilizzati in server e client compositi dove è richiesta la funzionalità correlata. A differenza della categoria “instabile”, nello “staging” è vietato apportare modifiche che violino la compatibilità, ma se durante il test vengono rilevati problemi e carenze, non è esclusa la sostituzione con una nuova versione significativa del protocollo o un'altra estensione Wayland.

Per accelerare la distribuzione dei protocolli agli sviluppatori e incoraggiare l'implementazione tempestiva dei protocolli nei progetti esistenti, a partire dalla versione precedente è stata aggiunta una fase "sperimentale", che consente modifiche che interrompono la compatibilità e l'aggiunta di protocolli "grezzi" che possono essere gradualmente portati al livello appropriato. Mentre un protocollo deve formare un team di supporto e ricevere un certo numero di conferme (ACK) dai revisori per entrare nella fase di staging, per entrare nella fase sperimentale è sufficiente che non riceva obiezioni (NACK) durante il periodo di revisione di due settimane.

La suite wayland-protocols include attualmente i seguenti protocolli stabili, retrocompatibili:

  • "viewporter": consente al client di eseguire azioni di ridimensionamento e ritaglio dei bordi della superficie sul lato server.
  • "presentation-time": fornisce la visualizzazione del video.
  • "xdg-shell" è un'interfaccia per creare e interagire con superfici come finestre, consentendo di spostarle sullo schermo, comprimerle, espanderle, ridimensionarle, ecc.
  • "linux-dmabuf" - fornisce funzionalità per la creazione di wl_buffer basati su DMA-BUF.
  • "tablet" - organizzazione dell'input dalle tavolette grafiche.

Protocolli testati nel ramo “staging”:

  • drm-lease: fornisce le risorse necessarie per generare un'immagine stereo con buffer diversi per gli occhi sinistro e destro durante l'output su visori per realtà virtuale.
  • "ext-session-lock" - definisce un mezzo per bloccare una sessione, ad esempio, mentre è in esecuzione lo screen saver o è visualizzata la finestra di dialogo di autenticazione.
  • "buffer a pixel singolo": consente di creare buffer a pixel singolo che includono quattro valori RGBA a 32 bit.
  • "xdg-activation": consente di trasferire il focus tra diverse superfici di primo livello (ad esempio, utilizzando xdg-activation, un'applicazione può spostare il focus su un'altra).
  • content-type: consente ai client di passare informazioni sul contenuto visualizzato al server composito, che può essere utilizzato per ottimizzare il comportamento in base al contenuto, ad esempio l'impostazione di proprietà DRM specifiche come "tipo di contenuto". Viene dichiarato il supporto per i seguenti tipi di contenuto: nessuno (nessuna informazione sul tipo di dati), foto (output di foto digitali, che richiede un'elaborazione minima), video (video o animazione, è necessaria una sincronizzazione più precisa per evitare balbettii) e gioco (avvio giochi, uscita dal ritardo minimo).
  • ext-idle-notify: consente ai server compositi di inviare notifiche ai client sull'inattività dell'utente, che possono essere utilizzate per attivare ulteriori modalità di risparmio energetico dopo un certo periodo di inattività.
  • controllo dello strappo: consente di disabilitare la sincronizzazione verticale (VSync) con un impulso di smorzamento verticale nelle applicazioni a schermo intero, utilizzato per proteggere dallo strappo nell'output. Nelle applicazioni multimediali, gli artefatti dovuti allo strappo sono un effetto indesiderato, ma nei programmi di gioco gli artefatti possono essere tollerati se la loro gestione causa ulteriori ritardi.
  • ext-foreign-toplevel-list - Recupera informazioni sulle superfici posizionate al livello superiore, che consentono di organizzare le finestre per ancorarle sopra altri contenuti, ad esempio per collegare i propri pannelli e interruttori di finestra.
  • contesto-sicurezza: consente di identificare i client utilizzando l'isolamento sandbox. Un client può registrare una nuova connessione a un server composito basato su Wayland e allegarvi un contesto di sicurezza, dopodiché il gestore composito limiterà le funzionalità disponibili per la connessione stabilita in base al contesto di sicurezza specificato.
  • cursor-shape è un modo alternativo per personalizzare l'aspetto del cursore, basato sul passaggio di una serie di immagini del cursore invece di agganciarsi a una superficie (wl_surface).
  • "ext-transient-seat" è progettato per creare sessioni temporanee indipendenti (seat) progettate per l'uso con dispositivi di input virtuali. Ad esempio, quando si implementa la possibilità di connettersi a desktop remoto Il protocollo consente di creare una sessione separata con una tastiera e un mouse virtuali per ciascun utente.
  • "xdg-toplevel-drag" - estende il meccanismo di "drag & drop" con la possibilità di associare finestre di primo livello a un'operazione di trascinamento, che può essere utilizzata, ad esempio, per organizzare il trascinamento delle barre degli strumenti o delle schede del browser con il mouse. Il nuovo protocollo consente di creare parti staccabili di una finestra che, quando trascinate da quella finestra, diventano nuove finestre e possono essere spostate sopra la finestra esistente prima di essere riattaccate.
  • "xdg-dialog": consente di assegnare attributi specifici della finestra di dialogo alle superfici di livello superiore, ad esempio è possibile creare finestre di dialogo modali che bloccano l'interazione dell'utente con il resto dell'interfaccia.
  • "linux-drm-syncobj" - fornisce strumenti per la sincronizzazione esplicita del buffer utilizzando oggetti di sincronizzazione DRM (Direct Rendering Manager). Si presume che nel contesto della sincronizzazione durante il rendering su un buffer, il protocollo proposto migliorerà il lavoro con i driver basati sulle API grafiche Vulkan e OpenGL (l'implementazione si basa sui gestori nei driver). Il nuovo protocollo consente di garantire che un'operazione di disegno in un buffer sia completata prima che il gestore di compositing visualizzi tale buffer.
  • alpha-modifier, che consente ai client di modificare il livello di trasparenza della superficie e trasferire le operazioni per garantire la trasparenza sul lato del server composito, che a sua volta può reindirizzare queste operazioni a KMS.
  • xdg-toplevel-icon: associa l'icona alla finestra di livello superiore.
  • ext-image-capture-source e ext-image-copy-capture - organizzazione dell'acquisizione del contenuto visualizzato 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 dell'uscita del segnale è determinata a discrezione del gestore del composito; può essere non solo una risposta sonora, ma anche visiva.
  • fifo - implementa un meccanismo FIFO (first in, first out) per l'elaborazione della coda di aggiornamento del contenuto della superficie visualizzata. Dal punto di vista pratico, il protocollo consente all'output di utilizzare l'attesa del completamento della scansione verticale (vblank) invece di utilizzare chiamate di callback ogni volta che è pronto per visualizzare un nuovo frame, il che risolve il problema dell'elevato carico della GPU quando si utilizza VSync.
  • commit-timing: consente di vincolare un limite di tempo al contenuto di superficie (il server composito dovrebbe riflettere la modifica del contenuto, se possibile, dopo il tempo specificato, ma non prima).
  • ext-data-control - Consente ai client privilegiati di controllare l'elaborazione dei dati, ad esempio per implementare i gestori degli appunti.
  • ext-workspace — implementa il concetto desktop virtuali e offre eventi con informazioni sullo stato dei desktop, nonché la possibilità di attivarli e disattivarli. Il protocollo può essere utilizzato per creare dashboard e indicatori che visualizzano un elenco dei desktop virtuali disponibili e consentono di passare da uno all'altro.
  • gestione del colore: fornisce funzionalità per la gestione del colore e supporto per una gamma dinamica estesa di luminosità (HDR, High Dynamic Range). Con l'estensione aggiunta, le applicazioni client possono ottenere informazioni sulle proprietà relative al colore dei dispositivi di output e trasmettere dati sulle proprietà relative al colore dei propri contenuti al server composito. In un server composito, queste informazioni possono essere utilizzate per gestire automaticamente il colore durante la visualizzazione di contenuti su diversi dispositivi di output, ad esempio per convertire i contenuti in una presentazione adatta alla visualizzazione su monitor HDR. I profili ICC vengono utilizzati per descrivere gli spazi colore.
  • xdg-toplevel-tag — Consente ai client Wayland di associare tag alle superfici di primo livello che il server di compositing può utilizzare per identificare le finestre dopo il riavvio dell'applicazione (ad esempio, un'applicazione potrebbe impostare i tag "finestra principale" e "impostazioni" per la finestra principale e la finestra delle impostazioni). Tale identificazione è utile per ripristinare la posizione, le dimensioni e le proprietà delle finestre dopo un riavvio e per definire regole speciali per singoli tipi di finestre.
  • rappresentazione-colore — definisce la rappresentazione cromatica della superficie Wayland. I client Wayland possono passare i metadati necessari per definire la trasparenza, il modello di colore, il sottocampionamento e l'intervallo di quantizzazione, utilizzati durante la conversione di un buffer con dati corrispondenti al modello di colore YCbCr in una rappresentazione RGB.

Protocolli in fase di sviluppo nel ramo “unstable”:

  • "fullscreen-shell": controllo del lavoro in modalità a schermo intero.
  • "metodo-input" - elaborazione dei metodi di input.
  • “idle-inhibit”: blocca l'avvio dello screensaver (salvaschermo).
  • "input-timestamps" - timestamp per eventi di input.
  • "keyboard-shortcuts-inhibit" - controlla l'aggiunta di scorciatoie da tastiera e tasti di scelta rapida.
  • "linux-explicit-sychronization" è un meccanismo specifico di Linux per la sincronizzazione dei buffer legati alla superficie.
  • “gesti del puntatore”: controllo da touch screen.
  • “vincoli del puntatore” - vincoli del puntatore (blocco).
  • “selezione primaria” - per analogia con X11, garantisce il funzionamento degli appunti primari (selezione primaria), le informazioni dalle quali vengono solitamente inserite con il pulsante centrale del mouse.
  • “eventi relativi del puntatore” - eventi relativi del puntatore.
  • “text-input” - organizzazione dell'immissione di testo.
  • “xdg-foreign” è un'interfaccia per interagire con le superfici del client “vicino”.
  • "xdg-decoration" - rendering delle decorazioni delle finestre sul lato server.
  • "xdg-output" - informazioni aggiuntive sull'output video (utilizzato per il ridimensionamento frazionario).
  • "xwayland-keyboard-grab": cattura l'input nelle applicazioni XWayland.

Fonte: opennet.ru

Aggiungi un commento