O pacote wayland-protocols 1.31 foi lançado. Ele contém um conjunto de protocolos e extensões que ampliam as capacidades do protocolo Wayland principal e fornecem os recursos necessários para construir servidores compostos e ambientes de usuário.
Todos os protocolos passam sequencialmente por três fases – desenvolvimento, teste e estabilização. Após completar a fase de desenvolvimento (categoria “instável”), o protocolo é colocado no ramo “staging” e oficialmente incluído no conjunto de protocolos wayland e, após a conclusão dos testes, é movido para a categoria estável. Os protocolos da categoria “staging” já podem ser usados em servidores compostos e clientes onde a funcionalidade relacionada é necessária. Ao contrário da categoria “instável”, “staging” proíbe fazer alterações que violem a compatibilidade, mas se forem identificados problemas e deficiências durante os testes, a substituição por uma nova versão significativa do protocolo ou outra extensão Wayland não está excluída.
A nova versão foi publicada uma semana após o lançamento do Wayland-Protocols 1.30, que adicionou suporte ao protocolo de controle de tearing para desativar a sincronização vertical. A versão 1.31 adicionou o protocolo de escala fracionária à categoria "staging". Este protocolo permite que o gerenciador de composição transmita valores de escala de superfície não inteiros, permitindo que o cliente determine tamanhos de buffer mais precisos para objetos wp_viewport do que transmitindo informações de escala arredondadas. Implementações do protocolo de escala fracionária foram preparadas para wlroots, KWin e glfw.
Atualmente, os protocolos wayland incluem os seguintes protocolos estáveis, que fornecem compatibilidade com versões anteriores:
- "Viewporter" - permite ao cliente realizar ações de dimensionamento e recorte das bordas da superfície lateralmente. servidor.
- "tempo de apresentação" - fornece exibição de vídeo.
- “xdg-shell” é uma interface para criar e interagir com superfícies como janelas, que permite movê-las pela tela, minimizar, expandir, redimensionar, etc.
Protocolos testados no ramo “staging”:
- drm-lease - fornece os recursos necessários para gerar uma imagem estéreo com buffers diferentes para os olhos esquerdo e direito ao enviar para fones de ouvido de realidade virtual.
- "ext-session-lock" - define um meio de bloquear a sessão, por exemplo, enquanto a proteção de tela está em execução ou a caixa de diálogo de autenticação é exibida.
- "buffer de pixel único" - permite criar buffers de pixel único que incluem quatro valores RGBA de 32 bits.
- “ativação xdg” - permite transferir o foco entre diferentes superfícies de primeiro nível (por exemplo, usando a ativação xdg, um aplicativo pode mudar o foco para outro).
- content-type - permite que os clientes passem dados compostos servidor Informações sobre o conteúdo exibido que podem ser usadas para otimizar o comportamento sensível ao conteúdo, como definir propriedades DRM específicas, como "tipo de conteúdo". O suporte para os seguintes tipos de conteúdo foi declarado: nenhum (sem informações de tipo de dados), foto (saída de foto digital que requer processamento mínimo), vídeo (vídeo ou animação, que requer sincronização mais precisa para evitar travamentos) e jogo (inicialização de jogo, que requer saída com latência mínima).
- ext-idle-notify - Permite que servidores compostos enviem notificações aos clientes sobre a inatividade do usuário, que podem ser usadas para ativar modos adicionais de economia de energia após um certo tempo de inatividade.
- tearing-control - permite desabilitar a sincronização vertical (VSync) com um pulso de amortecimento vertical em aplicativos de tela cheia, usado para proteger contra tearing na saída. Em aplicações multimídia, os artefatos devido ao tearing são um efeito indesejável, mas em programas de jogos, os artefatos podem ser tolerados se lidar com eles causar atrasos adicionais.
Protocolos sendo desenvolvidos no ramo “instável”:
- “fullscreen-shell” - controle de trabalho em modo de tela cheia.
- "input-method" - processando métodos de entrada.
- “idle-inhibit” - bloqueando o lançamento do protetor de tela (protetor de tela).
- "input-timestamps" - carimbos de data e hora para eventos de entrada.
- "keyboard-shortcuts-inhibit" - controla a anexação de atalhos de teclado e teclas de atalho.
- "linux-dmabuf" - compartilhamento de múltiplas placas de vídeo usando a tecnologia dma-buf.
- "linux-explicit-synchronization" é específico para Linux Mecanismo para sincronizar os tampões em relação à superfície.
- “gestos de ponteiro” - controle a partir de telas sensíveis ao toque.
- “restrições de ponteiro” - restrições de ponteiro (bloqueio).
- “seleção primária” - por analogia com o X11, garante o funcionamento da área de transferência primária (seleção primária), cujas informações geralmente são inseridas com o botão do meio do mouse.
- “eventos de ponteiro relativo” - eventos de ponteiro relativo.
- "tablet" - suporte para entrada de tablets.
- “entrada de texto” - organização da entrada de texto.
- “xdg-foreign” é uma interface para interagir com as superfícies do cliente “vizinho”.
- "xdg-decoration" - renderizando decorações de janelas no lado do servidor.
- "xdg-output" - informações adicionais sobre a saída de vídeo (usadas para escala fracionária).
- "xwayland-keyboard-grab" - captura entrada em aplicativos XWayland.
Fonte: opennet.ru
