banner

Notizia

Jun 09, 2023

Wine e Wayland fanno un ulteriore passo avanti con la fusione di più codici

Il lavoro in corso per far sì che Wine e Wayland funzionino pienamente insieme su Linux ha fatto un altro passo avanti, con una terza grande richiesta di fusione accettata. Wine 8.4 di metà marzo è stata la prima versione di sviluppo a contenere effettivamente parte del lavoro iniziale di Wayland.

Dalla richiesta di unione ora accettata:

Questo MR introduce i meccanismi del driver per gestire gli eventi dinamici dal compositore Wayland, utilizzando gli eventi wl_output come caso d'uso guida (ovvero, vogliamo aggiornare le impostazioni di visualizzazione di win32u quando cambiano le impostazioni dell'host).

In questo progetto creiamo un thread dedicato per leggere e inviare eventi Wayland ricevuti dal compositore. Se un gestore eventi Wayland desidera che del codice venga eseguito nel contesto di un particolare thread HWND, può aggiungere un evento interno a una coda personalizzata che abbiamo per ciascun thread (abilitato con la GUI). Il callback del driver ProcessEvents elabora gli eventi interni da quella coda. Per riattivare i thread in attesa utilizziamo una pipe per notificare nuovi eventi interni, con la fine di lettura che funge da coda host del thread fd. Questo è simile a come funziona winemac.drv.

Utilizziamo i meccanismi sopra menzionati per accodare gli aggiornamenti del dispositivo di visualizzazione Win32u al thread della finestra del desktop. Poiché ci sono molti pezzi da sistemare, questa MR raggiunge gradualmente il progetto finale:

Perché è effettivamente necessario? Bene, attualmente Wine utilizza X11, quindi per chiunque utilizzi Wayland verrà eseguito tramite XWayland, che è fondamentalmente X in esecuzione sotto Wayland come un livello di compatibilità. Come ha affermato Collabora nel loro annuncio originale nel 2020, parlandone hanno affermato che è "una fonte di complessità e possibili inefficienze" e quindi "sarebbe l'ideale se Wine potesse parlare direttamente con Wayland per abilitare uno stack più snello ed efficiente sui sistemi moderni". "

Quindi il risultato finale dovrebbe essere per gli utenti di Wayland, che alla fine saranno tutti, far funzionare Wine senza il livello XWayland e far funzionare tutto bene in un futuro lontano.

Liam Dawe Informazioni sull'autore - Liam Dawe
CONDIVIDERE