Pubblicazione di Wayland-Protocols 1.49

È stata presentata la versione 1.49 del pacchetto wayland-protocols, che contiene un insieme di protocolli ed estensioni che arricchiscono il protocollo base di Wayland e forniscono le funzionalità necessarie per costruire server compositi e ambienti utente.

Nella nuova versione:

  • È stato aggiunto un protocollo sperimentale xx-fractional-scale, che consente la scalabilità del sistema di coordinate logiche, i cui valori sono espressi in numeri interi, per migliorare la precisione del posizionamento e aumentare la risoluzione delle coordinate logiche a singoli pixel. Questa funzionalità affronta il problema della risoluzione limitata del sistema di coordinate logiche, insufficiente per il posizionamento a livello di singoli pixel, necessario per l'implementazione completa del frazionamento della scala.
  • Nel protocollo «linux-dmabuf» è stata aggiunta la supporto per il funzionamento su sistemi con più GPU. Su tali sistemi, il cliente può concordare con il compositore server quale GPU utilizzare.
  • Nel protocollo color-management-v1 è stata aggiunta la supporto per i metadati delle immagini nel formato BT.2100 da applicare ai compositori server specifici che consentono di visualizzare correttamente il contenuto HDR realizzato per Windows.

Tutti i protocolli passano attraverso fasi di sviluppo, testing e stabilizzazione. Una volta conclusa la fase di sviluppo (categoria «unstable»), il protocollo viene spostato nel ramo «staging» e inclusa ufficialmente nel set di wayland-protocols. Al termine della fase di testing, viene trasferito nella categoria stabile. I protocolli nella categoria «staging» possono già essere utilizzati nei compositori server e nei client dove è richiesta la relativa funzionalità. A differenza della categoria «unstable», nella sezione «staging» è vietato apportare modifiche che compromettano la compatibilità, ma nel caso vengano individuati problemi e mancanze durante il testing, non si esclude la sostituzione con una nuova versione significativa del protocollo o con un altro estensione Wayland.

Per accelerare l'implementazione dei protocolli agli sviluppatori e favorire la loro realizzazione anticipata nei progetti esistenti, a partire dall'ultima versione è stata aggiunta una fase «experimental», in cui sono consentiti cambiamenti che violano la compatibilità e l'aggiunta di protocolli «grezzi», che possono essere gradualmente portati al giusto livello. Se per far passare un protocollo nella fase «staging» è necessario formare un team di supporto e ottenere un certo numero di conferme (ACK) dai partecipanti alla revisione, per entrare nella fase «experimental» è sufficiente non avere obiezioni (NACK) entro 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 scalatura e ritaglio dei bordi della superficie lato client server.
  • «presentation-time» — permette la visualizzazione dei video.
  • «xdg-shell» — interfaccia per la creazione e l'interazione con le superfici come se fossero finestre, consentendo di spostarle sullo schermo, minimizzarle, massimizzarle, ridimensionarle, ecc.
  • «linux-dmabuf» — fornisce funzionalità per la creazione di wl_buffer basati su DMA-BUF.
  • «tablet» — gestione dell'input dai tablet grafici.

Protocolli in fase di testing nel ramo «staging»:

  • drm-lease — fornisce le risorse necessarie per formare immagini stereoscopiche con buffer diversi per l'occhio sinistro e destro durante la visualizzazione su caschi di realtà virtuale.
  • «ext-session-lock» — definisce i mezzi per il blocco della sessione, ad esempio, durante il funzionamento del salvaschermo o la visualizzazione di una finestra di 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 un'applicazione può spostare il focus su un'altra).
  • content-type — consente ai client di trasmettere al compositore server informazioni sui contenuti visualizzati, che possono essere utilizzate per ottimizzare il comportamento in base al contenuto, ad esempio, l'impostazione di proprietà DRM specifiche come «content type». È dichiarato il supporto per i seguenti tipi di contenuto: none (nessuna informazione sul tipo di dati), photo (output di foto digitali che richiede una minima elaborazione), video (video o animazione, richiede una sincronizzazione più precisa per evitare lag) e game (esecuzione di giochi, richiede un output con minima latenza).
  • ext-idle-notify — consente ai server compositi di inviare ai client notifiche di inattività dell'utente, il che può essere utilizzato per attivare modalità di risparmio energetico aggiuntive dopo un certo periodo di inattività.
  • tearing-control — consente di disattivare la sincronizzazione verticale (VSync) con impulso di spegnimento nei programmi a schermo intero, utilizzata per prevenire la comparsa di tearing durante l'output. Negli applicativi multimediali, la comparsa di artefatti dovuta al tearing è un effetto indesiderato, ma nei giochi si può tollerare, anche se la lotta contro di essi causa ulteriori ritardi.
  • ext-foreign-toplevel-list — recupera informazioni sulle superfici collocate al livello più elevato (toplevel), che consentono di organizzare il fissaggio delle finestre sopra ad altri contenuti, ad esempio per connettere pannelli e interruttori personalizzati.
  • security-context — consente di identificare i clienti che utilizzano l'isolamento sandbox. Il cliente può registrare una nuova connessione a un server composito basato su Wayland e allegare a essa un contesto di sicurezza, dopo di che il gestore di composizione limiterà le capacità disponibili per la connessione stabilita in base al contesto di sicurezza specificato.
  • cursor-shape — un metodo alternativo per personalizzare l'aspetto del cursore, basato sulla trasmissione di una serie di immagini del cursore anziché sull'associazione a una superficie (wl_surface).
  • «ext-transient-seat» — progettato per creare sessioni temporanee indipendenti (seat) destinate all'uso con dispositivi di input virtuali. Ad esempio, nell'implementazione della possibilità di connessione a desktop remoto, il protocollo consente di creare sessioni separate per ogni utente con tastiera e mouse virtuali.
  • «xdg-toplevel-drag» — estende il meccanismo di «drag & drop» con la possibilità di ancorare le finestre di livello superiore all'operazione di spostamento, che può essere utilizzata, ad esempio, per organizzare il trascinamento di barre degli strumenti o schede del browser. Il nuovo protocollo consente di creare sezioni rimovibili della finestra che, se spostate fuori da questa finestra, diventano nuove finestre e possono essere spostate sopra la finestra esistente prima di essere ricollegate.
  • «xdg-dialog» — consente di assegnare alle superfici di alto livello attributi specifici per finestre di dialogo, ad esempio è possibile creare dialoghi modali che bloccano l'interazione dell'utente con il resto dell'interfaccia.
  • «linux-drm-syncobj» — offre 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 nei buffer, il protocollo proposto migliorerà l'interazione 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 l'operazione di rendering nel buffer sia completata prima che il gestore di composizione visualizzi tale buffer.
  • modificatore alpha, che consente ai client di cambiare il livello di trasparenza della superficie e di delegare le operazioni relative alla trasparenza al server composito, il quale può a sua volta inoltrare queste operazioni al KMS.
  • xdg-toplevel-icon — associa un'icona a una finestra di alto livello.
  • ext-image-capture-source ed ext-image-copy-capture — organizzazione della cattura 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 di emissione del segnale è a discrezione del compositore, e può includere non solo suoni, ma anche risposte visive.
  • 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) per l'output, piuttosto che invocare callback ogni volta che è pronto a visualizzare un nuovo fotogramma, risolvendo così i problemi di elevato carico sulla GPU nell'uso del VSync.
  • commit-timing — consente di associare un limite temporale al contenuto della superficie (il compositore un server deve visualizzare la modifica del contenuto il prima possibile dopo il tempo specificato, ma non prima).
  • ext-data-control — consente ai clienti privilegiati di gestire l'elaborazione dei dati, ad esempio per implementare gestori degli appunti.
  • ext-workspace — implementa il concetto scrivanie virtuali fornisce eventi con informazioni sullo stato dei desktop e consente di attivare e disattivare i desktop. Il protocollo può essere utilizzato per creare pannelli e indicatori che visualizzano un elenco di desktop virtuali disponibili e consentono di passare da uno all'altro.
  • color-management — fornisce funzionalità per la gestione del colore e il supporto di un ampio intervallo dinamico di luminosità (HDR, High Dynamic Range). Grazie all'estensione aggiunta, le applicazioni client possono ottenere informazioni sulle proprietà degli schermi in relazione alla rappresentazione dei colori e trasmettere al server composito i dati riguardanti le caratteristiche della loro resa cromatica. Nel server composito, queste informazioni possono essere utilizzate per gestire automaticamente il colore durante la visualizzazione dei contenuti su diversi dispositivi di output, ad esempio per convertire il contenuto in un formato adatto alla visualizzazione su monitor HDR. Gli spazi colore sono descritti mediante profili ICC.
  • xdg-toplevel-tag — consente ai client di Wayland di associare tag alle superfici di alto livello, che il server compositore può utilizzare per identificare le finestre dopo il riavvio dell'applicazione (ad esempio, l'app può assegnare i tag "finestra principale" e "impostazioni" alla finestra principale e alla finestra delle impostazioni). Questa identificazione è utile per ripristinare la posizione, le dimensioni e le proprietà delle finestre dopo il riavvio, nonché per definire regole speciali per determinati tipi di finestre.
  • color-representation — definizione della rappresentazione del colore per la superficie Wayland. I client di Wayland possono inviare metadati necessari per definire la trasparenza, il modello di colore, la sottocampionatura e l'intervallo di quantizzazione, utilizzati nella conversione del buffer di dati corrispondenti al modello di colore YCbCr in rappresentazione RGB.
  • ext-background-effect — applicazione di effetti alle parti semi-trasparenti della superficie Wayland, come il sfondo sfocato.
  • pointer-warp — consente all'applicazione di spostare istantaneamente il puntatore nella posizione specificata.
  • xdg-session-management — funzionalità per il ripristino dello stato e della posizione delle finestre di una sessione interrotta, ad esempio, dopo un arresto anomalo del server compositing o di un'applicazione.

Protocolli in fase di sviluppo nel ramo «experimental»:

  • xx-session-management — ripristino dello stato delle finestre per sessioni interrotte (ad esempio, dopo l'arresto anomalo del gestore di composizione).
  • xx-input-method — consente alle applicazioni di implementare metodi di inserimento testo per server di composizione e di generare il testo inserito, che può essere utilizzato, ad esempio, per creare tastiere virtuali e strati IME (Input Method Editor) per la gestione dell'input.
  • xx-text-input — consente ai server di composizione di implementare metodi di input e inviare testo alle applicazioni. Il protocollo standardizza l'interazione tra il server di composizione e le applicazioni, permettendo di gestire funzionalità come l'invio di testo inserito, la gestione degli eventi di cambiamento del focus di input e la considerazione delle specificità dei campi di input (lingua, selezione del testo, tipo di contenuto).
  • xx-cutouts — per ottenere informazioni sui ritagli sullo schermo (ad esempio, aree per la fotocamera frontale sullo schermo di uno smartphone).
  • xx-zones — per la creazione e l'aggiunta di finestre di livello superiore nelle «zone» — ambienti con il proprio spazio di coordinate. Il protocollo consente di organizzare un layout logico delle finestre, dove ogni finestra è posizionata rispetto a un'altra finestra.
  • xx-keyboard-filter — per intercettare gli eventi della tastiera selezionati dal cliente, modificare gli eventi di input o bloccare la trasmissione di determinati eventi nella superficie Wayland su cui è impostato il focus di input.

Protocolli sviluppati nella branch «unstable»:

  • «fullscreen-shell» — gestione del funzionamento in modalità schermo intero.
  • «input-method» — gestione dei metodi di input.
  • «idle-inhibit» — blocco dell'attivazione del salvaschermo.
  • «input-timestamps» — marcature temporali per eventi di input.
  • «keyboard-shortcuts-inhibit» — gestione della fissazione delle combinazioni di tasti e delle scorciatoie.
  • «linux-explicit-synchronization» — meccanismo di sincronizzazione dei buffer specifico per Linux legato alla superficie.
  • «pointer-gestures» — gestione dai touchscreen.
  • «pointer constraints» — restrizioni sui puntatori (blocco).
  • «primary-selection» — analogamente a X11 gestisce il funzionamento del buffer di appunti primari, il cui inserimento di solito avviene tramite il pulsante centrale del mouse.
  • «relative pointer events» — eventi di puntatori relativi.
  • «text-input» — organizzazione dell'input di testo.
  • «xdg-foreign» — interfaccia per interagire con le superfici del cliente «vicino».
  • «xdg-decoration» — rendering delle decorazioni delle finestre lato server.
  • «xdg-output» — informazioni aggiuntive sull'uscita video (utilizzato per il ridimensionamento frazionale).
  • Tutti i protocolli passano attraverso fasi di sviluppo, test e stabilizzazione. Al termine della fase di sviluppo (categoria «unstable»), il protocollo viene inserito nel ramo «staging» e ufficialmente incluso nel set di wayland-protocols; dopo il completamento dei test, viene spostato nella categoria stabile. I protocolli della categoria «staging» possono già essere utilizzati nei server compositi e nei client, dove è richiesta la funzionalità correlata. A differenza della categoria «unstable», nella «staging» non è consentita l'introduzione di modifiche che violano la compatibilità, ma in caso di problemi e difetti riscontrati durante i test, non è esclusa la sostituzione con una nuova versione significativa del protocollo o un'altra estensione Wayland.

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