Graças a Hans de Goede da Red Hat, há outra otimização para o Mutter do GNOME que adiciona alternativa para jogos em tela cheia do XWayland. O trabalho do excelente desenvolvedor de desktop Red Hat é para jogos X11. Estes dependem do XRandR para alterar a resolução enquanto também usa a dica do gerenciador de janelas NET_WM_STATE_FULLSCREEN ao entrar no modo de tela cheia.
A combinação xrandr + NET_WM_STATE_FULLSCREEN usada por alguns jogos do Linux espera que a janela de tela cheia tenha o tamanho da resolução RandR “falsa” especificada. Essa alteração está em consonância com o recente suporte ao XWayland na base de código do X.Org Server para suportar alterações de resolução do XRandR falsificadas. Além disso, e em seguida, também serve para dimensionar o conteúdo e corresponder à resolução real de tela inteira do monitor.
Os jogos que utilizam a biblioteca de jogos SFML 2D e o OGRE estão entre os títulos que precisam desse suporte para os jogos em tela cheia.
Onde o Mutter do GNOME adiciona alternativa para jogos em tela cheia do XWayland
A alteração do Mutter pode ser encontrada aqui enquanto a alteração em relação ao xorg-server/XWayland foi mesclada em outubro. Assim, estará presente sempre que a próxima versão do X.Org Server finalmente se concretizar.
A resolução emulada do Xwayland é uma configuração por cliente X11 e o Xwayland definirá uma propriedade _XWAYLAND_RANDR_EMU_MONITOR_RECTS especial no diretório janelas de nível superior de um cliente (e somente as desse cliente), que alterou a resolução (emulada) por meio de uma chamada aleatória, diz o comunicado oficial.
Então, aqui está um passo a passo de um aplicativo em tela cheia:
- O aplicativo altera a resolução do monitor com randr.
- Xwayland define a propriedade _XWAYLAND_RANDR_EMU_MONITOR_RECTS em todos os aplicativos janelas atuais e futuras. Esta propriedade contém a origem do monitor para o qual a resolução emulada está definida e a emulada resolução.
- O aplicativo define _NET_WM_FULLSCREEN.
- Verificamos a propriedade e ajustamos o tamanho da tela inteira do aplicativo para corresponder a resolução emulada.
Via Phoronix