Pubblicazione di Wayland-Protocols 1.39 con supporto per protocolli sperimentali

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

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.

Nella nuova versione è stata aggiunta una fase di promozione dei protocolli — «experimental», mirata a ridurre la barriera all'inclusione dei protocolli nel set Wayland-Protocols, accelerando la loro implementazione da parte degli sviluppatori e stimolando l'adozione precoce in progetti esistenti. Questa nuova fase permetterà di liberare gli sviluppatori di protocolli da lunghe discussioni e burocrazia prima dell'inclusione nel Wayland-Protocols.

Se per far entrare 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 in «experimental» basta l'assenza di obiezioni (NACK) durante un periodo di revisione di due settimane. Nella fase «experimental» sono consentiti cambiamenti che violano la compatibilità e l'aggiunta di protocolli «grezzi», che possono essere gradualmente portati a un livello adeguato.

Nella categoria «staging» sono stati aggiunti i protocolli:

  • 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.

Attualmente, il pacchetto wayland-protocols include i seguenti protocolli stabili, in cui è garantita 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" è un'interfaccia per la creazione e l'interazione con le superfici come finestre, consentendo di spostarle sullo schermo, minimizzarle, massimizzarle, cambiarne le dimensioni, ecc.
  • "linux-dmabuf" consente la condivisione di più schede grafiche utilizzando la tecnologia DMA-BUF (consente di creare wl_buffer basato 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 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» offre strumenti per la sincronizzazione esplicita dei buffer tramite oggetti di sincronizzazione DRM (Direct Rendering Manager). Si prevede che, nel contesto della sincronizzazione durante il rendering nel buffer, il protocollo proposto migliori 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 dei compositi visualizzi tale buffer.
  • 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).

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