Lanzouse o paquete wayland-protocols 1.35, que contén un conxunto de protocolos e extensións que complementan as capacidades do protocolo Wayland base e proporcionan as capacidades necesarias para crear servidores compostos e ambientes de usuario.
Todos os protocolos pasan secuencialmente por tres fases: desenvolvemento, proba e estabilización. Despois de completar a fase de desenvolvemento (a categoría "inestable"), o protocolo colócase na rama de "escenificación" e inclúese oficialmente no conxunto de protocolos wayland e, despois de completar a proba, móvese á categoría estable. Os protocolos da categoría de "escenificación" xa se poden usar en servidores e clientes compostos nos que se require unha funcionalidade relacionada. A diferenza da categoría "inestable", na "escenificación" está prohibido facer cambios que violen a compatibilidade, pero se se detectan problemas e deficiencias durante a proba, non se exclúe a substitución por unha nova versión significativa do protocolo ou outra extensión de Wayland.
Na nova versión:
- O protocolo tablet-v2, que proporciona ferramentas para organizar a entrada das tabletas gráficas, foi transferido á categoría estable.
- Engadiuse un novo protocolo de modificador alfa á categoría de "escenificación", que permite aos clientes cambiar o nivel de transparencia superficial e subcontratar as operacións de transparencia ao servidor composto, que á súa vez pode reenviar estas operacións a KMS.
- Engadiuse unha recomendación ao protocolo xdg-shell para non mostrar a decoración fóra dos límites xeométricos da xanela cando se utiliza un deseño de xanela en mosaico.
Actualmente, wayland-protocols inclúe os seguintes protocolos estables, que proporcionan compatibilidade con versións anteriores:
- "viewporter": permite ao cliente realizar accións de escalado do lado do servidor e de recorte de bordos da superficie.
- "presentation-time" - ofrece visualización de vídeo.
- "xdg-shell" é unha interface para crear e interactuar con superficies como fiestras, que permite movelas pola pantalla, minimizar, expandir, redimensionar, etc.
- “linux-dmabuf”: permite compartir varias tarxetas de vídeo usando a tecnoloxía DMA-BUF (permítelle crear un wl_buffer baseado en DMA-BUF).
- "tablet" - organización da entrada de tabletas gráficas.
Protocolos probados na rama "staging":
- drm-lease: proporciona os recursos necesarios para xerar unha imaxe estéreo con diferentes búfers para os ollos esquerdo e dereito ao emitir a auriculares de realidade virtual.
- "ext-session-lock" - define un medio para bloquear unha sesión, por exemplo, mentres se está a executar o protector de pantalla ou se amosa o diálogo de autenticación.
- "single-pixel-buffer": permítelle crear búfers dun só píxel que inclúen catro valores RGBA de 32 bits.
- "xdg-activation": permítelle transferir o foco entre diferentes superficies de primeiro nivel (por exemplo, usando xdg-activation, unha aplicación pode cambiar o foco a outra).
- tipo de contido: permite que os clientes pasen contido composto servidor Información sobre o contido que se mostra e que se pode empregar para optimizar o comportamento en función do contido, como a configuración de propiedades DRM específicas como o "tipo de contido". Declárase compatibilidade cos seguintes tipos de contido: ningún (sen información sobre o tipo de datos), foto (saída de fotos dixitais que require un procesamento mínimo), vídeo (vídeo ou animación, que require unha sincronización máis precisa para evitar as trabadas) e xogo (inicio do xogo, que require unha saída cunha latencia mínima).
- ext-idle-notify - Permite aos servidores compostos enviar notificacións aos clientes sobre a inactividade do usuario, que se poden usar para activar modos adicionais de aforro de enerxía despois dun determinado tempo de inactividade.
- tearing-control: permítelle desactivar a sincronización vertical (VSync) cun pulso de amortiguamento vertical en aplicacións de pantalla completa, que se usa para protexer contra o rasgado na saída. Nas aplicacións multimedia, os artefactos debidos ao rasgado son un efecto indesexable, pero nos programas de xogos pódense tolerar artefactos se tratar con eles provoca atrasos adicionais.
- ext-foreign-toplevel-list - Recupera información sobre superficies situadas no nivel superior, o que lle permite organizar as fiestras para acoplarse a outro contido, por exemplo, para conectar os seus propios paneis e interruptores de ventá.
- security-context: permítelle identificar clientes mediante o illamento de sandbox. Un cliente pode rexistrar unha nova conexión a un servidor composto baseado en Wayland e engadirlle un contexto de seguranza, despois de que o xestor composto limitará as capacidades dispoñibles para a conexión establecida en función do contexto de seguranza especificado.
- a forma do cursor é unha forma alternativa de personalizar a aparencia do cursor, baseada en pasar unha serie de imaxes do cursor en lugar de axustarse a unha superficie (wl_surface).
- "ext-transient-seat" está deseñado para crear sesións (asentos) independentes temporais deseñadas para o seu uso con dispositivos de entrada virtuais. Por exemplo, ao implementar a capacidade de conectarse a escritorio remoto O protocolo permite crear unha sesión separada cun teclado e un rato virtuais para cada usuario.
- "xdg-toplevel-drag": amplía o mecanismo de "arrastrar e soltar" coa posibilidade de engadir fiestras de nivel superior a unha operación de arrastre, que se pode usar, por exemplo, para organizar o arrastre de barras de ferramentas ou pestanas do navegador co rato. O novo protocolo permítelle crear partes desmontables dunha xanela que, ao arrastralas desde esa xanela, convértense en novas fiestras e pódense mover enriba da xanela existente antes de volver a unirlas.
- "xdg-dialog" - permítelle asignar atributos específicos de diálogo a superficies de nivel superior, por exemplo, pode crear diálogos modais que bloquean a interacción do usuario co resto da interface.
- "linux-drm-syncobj" - Ofrece ferramentas para sincronizar explícitamente búfers mediante obxectos de sincronización DRM (Direct Rendering Manager). Suponse que no contexto da sincronización ao debuxar nun búfer, o protocolo proposto mellorará o traballo con controladores baseados nas API de gráficos Vulkan e OpenGL (a implementación baséase nos controladores dos controladores). O novo protocolo permite garantir que se complete unha operación de renderización nun búfer antes de que o xestor de compostos realice o búfer.
Protocolos que se están a desenvolver na rama "inestable":
- "fullscreen-shell" - control do traballo en modo de pantalla completa.
- "input-method" - métodos de procesamento de entrada.
- "idle-inhibit": bloquea o lanzamento do salvapantallas (salvapantallas).
- "input-timestamps" - marcas de tempo para eventos de entrada.
- "keyboard-shortcuts-inhibit": controla o anexo de atallos de teclado e teclas de acceso rápido.
- "linux-explicit-synchronization" é un mecanismo específico de Linux para sincronizar búfers de superficie.
- "xestos do punteiro": control desde pantallas táctiles.
- "restricións de punteiro" - restricións de punteiro (bloqueo).
- "selección primaria" - por analoxía con X11, garante o funcionamento do portapapeis principal (selección primaria), a información a partir da cal se adoita inserir co botón central do rato.
- "eventos de punteiro relativo" - eventos de punteiro relativo.
- "text-input" - organización da entrada de texto.
- "xdg-foreign" é unha interface para interactuar coas superficies do cliente "veciño".
- "xdg-decoration" - renderizando decoracións da fiestra no lado do servidor.
- "xdg-output" - información adicional sobre a saída de vídeo (utilizada para a escala fraccionaria).
- "xwayland-keyboard-grab" - captura entrada nas aplicacións XWayland.
Fonte: opennet.ru
