Lançamento do Wayland-Protocols 1.49

Foi lançado o pacote wayland-protocols 1.49, que contém um conjunto de protocolos e extensões que complementam o protocolo base Wayland e oferecem as funcionalidades necessárias para a construção de servidores de composição e ambientes de usuário.

Na nova versão:

  • Foi adicionado o protocolo experimental xx-fractional-scale, que permite a escalabilidade do sistema de coordenadas lógicas, cujos valores são especificados como números inteiros, para aumentar a precisão do posicionamento e elevar a resolução das coordenadas lógicas a níveis de pixels individuais. Essa funcionalidade resolve o problema da resolução limitada do sistema de coordenadas lógicas, inadequada para o posicionamento no nível de pixels individuais, necessário para a implementação completa da escalabilidade fracionária.
  • No protocolo "linux-dmabuf" foi adicionada suporte a operações em sistemas com várias GPUs. Em tais sistemas, o cliente pode negociar com os compositores qual GPU deve ser utilizada. servidor qual GPU deve ser utilizada.
  • No protocolo color-management-v1 foi adicionada suporte a metadados de imagens no formato BT.2100 para aplicação em compositores específicas que permiten a correta exibição de conteúdo HDR criado para Windows. servidor específicos que permitem corretamente exibir conteúdo HDR criado para Windows.

Todos os protocolos passam por fases de desenvolvimento, teste e estabilização de maneira sequencial. Após a conclusão da fase de desenvolvimento (categoria 'unstable'), o protocolo é movido para a ramificação 'staging' e é oficialmente incluído no conjunto wayland-protocols, e depois de concluídos os testes, é transferido para a categoria estável. Protocolos da categoria 'staging' já podem ser utilizados em compósitos servidores e clientes onde a funcionalidade associada é necessária. Ao contrário da categoria 'unstable', na 'staging' não são permitidas alterações que quebrem a compatibilidade, mas, caso sejam detectados problemas e imperfeições durante os testes, não se descarta a possibilidade de substituição por uma nova versão significativa do protocolo ou outra extensão do Wayland.

Para acelerar a entrega dos protocolos aos desenvolvedores e estimular a implementação precoce dos protocolos em projetos existentes, a partir da versão anterior foi adicionada uma fase 'experimental', na qual são permitidas alterações que quebrem a compatibilidade e a adição de protocolos 'brutos', que podem ser progressivamente refinados. Se a inclusão de um protocolo na fase 'staging' requer a formação de uma equipe de suporte e a obtenção de um certo número de confirmações (ACK) dos revisores, a inclusão na 'experimental' apenas necessita da ausência de objeções (NACK) durante um período de revisão de duas semanas.

Atualmente, o conjunto de wayland-protocols inclui os seguintes protocolos estáveis, que garantem a compatibilidade retroativa:

  • viewporter — permite que o cliente execute ações de escalonamento e corte das bordas da superfície do lado servidor.
  • "presentation-time" — fornece a exibição de vídeo.
  • «xdg-shell» — interface para criar e interagir com superfícies como janelas, permitindo movê-las na tela, minimizar, maximizar, redimensionar, etc.
  • «linux-dmabuf» — fornece recursos para criar wl_buffers com base em DMA-BUF.
  • "tablet" — organização da entrada de dispositivos gráficos.

Protocolos testados na ramificação «staging»:

  • drm-lease — fornece os recursos necessários para formar uma imagem estereoscópica com buffers diferentes para o olho esquerdo e o direito ao exibir em headsets de realidade virtual.
  • «ext-session-lock» — define os meios para bloquear a sessão, por exemplo, durante a execução do protetor de tela ou a exibição de um diálogo de autenticação.
  • «single-pixel-buffer» — permite criar buffers de um único pixel, incluindo quatro valores de 32 bits RGBA.
  • «xdg-activation» — permite transferir o foco entre diferentes superfícies de nível superior (por exemplo, usando
    xdg-activation, um aplicativo pode mudar o foco para outro).
  • content-type — permite que os clientes transmitam ao compositor servidor informações sobre o conteúdo exibido, que podem ser usadas para otimizar o comportamento levando em conta o conteúdo, como a definição de propriedades DRM específicas, como 'tipo de conteúdo'. O suporte foi declarado para os seguintes tipos de conteúdo: none (sem informações sobre o tipo de dado), photo (exibição de fotos digitais, exigindo mínimo processamento), video (vídeo ou animação, requerendo sincronização mais precisa para evitar engasgos) e game (execução de jogos, requerendo saída com mínima latência).
  • ext-idle-notify — permite que os servidores de composição enviem notificações de inatividade do usuário aos clientes, o que pode ser utilizado para ativar modos adicionais de economia de energia após um determinado tempo de inatividade.
  • tearing-control — permite desativar a sincronização vertical (VSync) com um pulso de inibição de quadros em aplicativos em tela cheia, que é aplicado para prevenir o aparecimento de rasgos na exibição (tearing). Em aplicativos multimídia, o aparecimento de artefatos devido a rasgos é um efeito indesejado, mas em programas de jogos artefatos podem ser tolerados se a luta contra eles resultar em atrasos adicionais.
  • ext-foreign-toplevel-list — obtenção de informações sobre superfícies localizadas no nível superior (toplevel), que permitem a fixação de janelas sobre outro conteúdo, por exemplo, para conectar painéis e alternadores de janelas personalizados.
  • security-context — permite identificar clientes que utilizam isolamento sandbox. O cliente pode registrar uma nova conexão ao servidor compositor baseado em Wayland e anexar a ela um contexto de segurança, após o qual, de acordo com o contexto de segurança especificado, o gerenciador de composição limitará as capacidades disponíveis para a conexão estabelecida.
  • cursor-shape — um método alternativo de configuração da aparência do cursor, baseado na transmissão de uma série de imagens do cursor em vez de vincular a uma superfície (wl_surface).
  • «ext-transient-seat» — destinado a criar sessões temporárias independentes (seats) projetadas para uso com dispositivos de entrada virtuais. Por exemplo, ao implementar a capacidade de conexão a uma área de trabalho remota, o protocolo permite criar uma sessão separada para cada usuário com um teclado e mouse virtuais.
  • «xdg-toplevel-drag» expande o mecanismo de «drag & drop» com a capacidade de anexar janelas de topo à operação de movimentação, o que pode ser usado, por exemplo, para organizar o arraste de barras de ferramentas ou guias de navegador. O novo protocolo permite criar partes destacáveis da janela, que ao serem arrastadas para fora dessa janela tornam-se novas janelas e podem se mover sobre janelas existentes antes de serem reconectadas.
  • «xdg-dialog» permite atribuir a superfícies de topo características específicas para janelas de diálogo, por exemplo, é possível criar diálogos modais que bloqueiam a interação do usuário com o restante da interface.
  • «linux-drm-syncobj» — fornece ferramentas para sincronização explícita de buffers utilizando objetos de sincronização DRM (Direct Rendering Manager). Espera-se que, no contexto de sincronização durante a renderização em buffer, o protocolo proposto melhore o desempenho com drivers baseados em APIs gráficas Vulkan e OpenGL (a implementação é baseada em manipuladores nos drivers). O novo protocolo permite garantir que a operação de renderização em buffer seja concluída antes que o compositor exiba esse buffer.
  • alpha-modifier, permitindo que os clientes alterem o nível de transparência da superfície e realizem operações de transparência para o lado do servidor de composição, que por sua vez pode redirecionar essas operações KMS.
  • xdg-toplevel-icon — associação de um ícone à janela de topo.
  • ext-image-capture-source e ext-image-copy-capture — organização da captura de conteúdo exibido na tela.
  • xdg-system-bell — permite a apresentação de um sinal de sistema, que pode ser utilizado, por exemplo, como um aviso em emuladores de terminal. A forma de apresentação do sinal é determinada pelo gerenciador de composição, podendo ser não apenas um som, mas também um feedback visual.
  • fifo — implementa um mecanismo FIFO (primeiro a entrar, primeiro a sair) para o processamento da fila de atualização do conteúdo da superfície exibida. Do ponto de vista prático, o protocolo permite utilizar a espera pela conclusão da varredura vertical (vblank) ao invés de chamadas de retorno sempre que um novo quadro estiver pronto para ser exibido, resolvendo assim o problema de alta carga na GPU ao usar VSync.
  • commit-timing — permite associar uma restrição de tempo ao conteúdo da superfície (o compositor servidor deve exibir a alteração de conteúdo o mais rápido possível dentro do tempo especificado, mas não antes).
  • ext-data-control — permite que clientes privilegiados controlem o processamento de dados, por exemplo, para implementar gerenciadores de área de transferência.
  • ext-workspace — implementa o conceito para áreas de trabalho virtuais e oferece eventos com informações sobre o estado das áreas de trabalho, bem como recursos para ativação e desativação de áreas de trabalho. O protocolo pode ser utilizado para criar painéis e indicadores que exibem a lista de áreas de trabalho virtuais disponíveis e permitem alternar entre elas.
  • gerenciamento de cores — fornece opções para o gerenciamento de cores e suporte a uma ampla faixa dinâmica de brilho (HDR, High Dynamic Range). Com a extensão adicionada, aplicativos clientes podem obter informações sobre propriedades de saída relacionadas à reprodução de cores e transmitir ao servidor compositor dados sobre as características de reprodução de cores do seu conteúdo. No servidor compositor, essas informações podem ser usadas para gerenciar automaticamente as cores ao exibir o conteúdo em diferentes dispositivos de saída, por exemplo, para converter conteúdo para um formato adequado para visualização em monitores HDR. Perfis ICC são utilizados para descrever os espaços de cores.
  • xdg-toplevel-tag — permite que clientes Wayland vinculem tags a superfícies de nível superior, que o servidor compositor pode usar para identificar janelas após a reinicialização do aplicativo (por exemplo, um aplicativo pode definir tags como "janela principal" e "configurações" para a janela principal e a janela de configurações). Essa identificação é útil para restaurar a posição, o tamanho e as propriedades das janelas após a reinicialização, bem como para estabelecer regras especiais para tipos específicos de janelas.
  • color-representation — definição da representação de cor da superfície Wayland. Os clientes Wayland podem transmitir metadados necessários para determinar a transparência, modelo de cor, subamostragem e faixa de quantização, aplicáveis ao converter o buffer de dados correspondente ao modelo de cor YCbCr em uma representação RGB.
  • ext-background-effect — aplicação de efeitos às partes semitransparentes da superfície Wayland, como desfoque de fundo.
  • pointer-warp — permite que o aplicativo mova instantaneamente o ponteiro para uma posição especificada.
  • xdg-session-management — recursos para restauração do estado e posição de janelas de uma sessão interrompida, por exemplo, após a falha do servidor compositor ou do aplicativo.

Protocolos em desenvolvimento no ramo "experimental":

  • xx-session-management — restauração do estado das janelas para sessões interrompidas (por exemplo, após a falha do gerenciador de composição).
  • xx-input-method — permite que aplicações implementem métodos de entrada de texto para servidores compostos e formem o texto inserido, o que pode ser utilizado, por exemplo, para criar teclados virtuais e camadas IME (Input Method Editor) para processar entradas.
  • xx-text-input — permite que servidores compostos implementem métodos de entrada e enviem texto para aplicações. O protocolo padroniza a interação entre o servidor composto e as aplicações, e permite gerenciar recursos como a transmissão de texto inserido, o processamento de eventos de mudança de foco de entrada e a consideração de especificidades de campos de entrada (idioma, seleção de texto, tipo de conteúdo).
  • xx-cutouts — para obter informações sobre recortes na tela (por exemplo, áreas sob a câmera frontal na tela de um smartphone).
  • xx-zones — para criar e adicionar janelas de nível superior em "zonas" — ambientes com seu próprio espaço de coordenadas. O protocolo permite organizar uma disposição lógica das janelas, onde cada janela é posicionada em relação à outra janela.
  • xx-keyboard-filter — para interceptar eventos de teclado selecionados pelo cliente, modificar eventos de entrada ou bloquear a transmissão de determinados eventos para a superfície Wayland, onde o foco de entrada está ativado.

Protocolos em desenvolvimento na ramificação «unstable»:

  • «fullscreen-shell» — gerenciamento de operação em modo de tela cheia.
  • «input-method» — processamento de métodos de entrada.
  • «idle-inhibit» — bloqueio do início do protetor de tela.
  • «input-timestamps» — carimbos de tempo para eventos de entrada.
  • «keyboard-shortcuts-inhibit» — gerenciamento de combinações de teclas e atalhos.
  • «linux-explicit-synchronization» — mecanismo de sincronização de buffers específico para Linux atrelado à superfície.
  • «pointer-gestures» — controle a partir de telas sensíveis ao toque.
  • «pointer constraints» — restrições de ponteiro (bloqueio).
  • «primary-selection» — semelhante ao X11, fornece o funcionamento do buffer de troca primário (primary selection), cuja inserção de informação geralmente é feita pelo botão do meio do mouse.
  • «relative pointer events» — eventos de ponteiro relativos.
  • «text-input» — organização da entrada de texto.
  • «xdg-foreign» — interface de interação com superfícies de clientes «vizinhos».
  • «xdg-decoration» — renderização de decorações de janelas do lado do servidor.
  • «xdg-output» — informações adicionais sobre a saída de vídeo (usada para escalonamento fracionário).
  • «xwayland-keyboard-grab» — captura de entrada em aplicativos XWayland.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster