GTK 4.16 llega con mejoras para Wayland, gráficos y mas
GTK 4.16 ha aterrizado una gran cantidad de cambios y mejoras bastante interesantes, siendo Wayland uno de los principales puntos de atención, asi como también los motores de renderizado y la biblioteca GDK.
La nueva versión de GTK 4.16 llega poco después de seis meses de desarrollo y en esta nueva versión se han implementado varias mejoras importantes, especialmente en cuanto a la representación de fuentes y gráficos, ya que se ha añadido la opción gtk-font-rendering, que proporciona más flexibilidad para controlar cómo se renderizan las fuentes. Los usuarios pueden elegir configuraciones de alto nivel para ajustar la representación de las fuentes o utilizar configuraciones más detalladas estableciendo el valor en ‘manual’.
Ademas de ello, también se destacan las mejoras en GSK (la biblioteca encargada de renderizar utilizando OpenGL y Vulkan). A partir de esta versión, en entornos basados en Wayland, el motor de renderizado predeterminado será Vulkan. Para otros entornos o cuando se prefiera no utilizar Vulkan, GTK continuará utilizando el motor ngl, que proporciona una implementación de OpenGL sobre la API de Vulkan.
Dado que el rendimiento gráfico y la estabilidad de los motores Vulkan y ngl dependen de los controladores gráficos, se recomienda utilizar la última versión de Mesa 24.2 para garantizar un funcionamiento más estable.
Se ha optimizado el uso de mecanismos de aceleración de hardware en sistemas con el gestor de ventanas kwin, mejorando el rendimiento gráfico en entornos de escritorio basados en KDE. En entornos basados en Wayland y con kwin como compositor, ahora es posible utilizar la extensión de protocolo color-management para una mejor gestión del color.
Por otra parte, se han introducido mejoras en la creación de temas CSS, ya que ahora es posible definir y utilizar variables en temas basados en CSS. Se han implementado funciones como color(), oklab(), color-mix(), así como varias funciones matemáticas y además Es posible definir colores de forma relativa (por ejemplo, ajustando el brillo o saturación de un color base) y establecer la transparencia mediante porcentajes.
Tambien, se destacan las mejoras en Widgets, ya que se ha añadido una nueva propiedad «black-background» al widget GtkGraphicsOffload, que se utiliza para enviar contenido, como vídeos, directamente a través del compositor sin pasar por el renderizador GSK. El widget GtkPopover ha recibido mejoras en el manejo del cambio de tamaño y el posicionamiento, lo que permite una experiencia de usuario más fluida al utilizar popovers en aplicaciones gráficas.
Se ha implementado el uso de la extensión xdg-dialog en Wayland para manejar la visualización de cuadros de diálogo anclados y la sexta versión del objeto wl_compositor para la composición.
De los demás cambios que se destacan:
- Se ha optimizado el almacenamiento en caché de glifos y texturas
- Ahora es posible crear superficies de textura perfecta al repetir grandes mosaicos de texturas
- Las sombras se han mejorado en su renderizado, proporcionando un aspecto más realista y sutil.
- Se ha agregado la capacidad de utilizar la aceleración de hardware para procesar texturas convertidas, como en el caso de la visualización de contenido rotado en la pantalla.
- Se ha implementado una nueva API basada en llamadas de devolución de llamada para gestionar de manera más eficiente el comportamiento y la personalización del cursor dentro de las aplicaciones gráficas.
- Ahora es posible realizar operaciones de texturizado MIP utilizando la CPU. Esto es especialmente útil cuando se aleja un objeto de la cámara.
- Se ha añadido el uso de un grupo de subprocesos para la conversión de color y la generación de texturas MIP.
- Se agregó soporte para la variable de entorno XDG_ACTIVATION_TOKEN, que se utiliza con el protocolo xdg-activation-v1. Este protocolo permite que una aplicación transfiera el foco a otra de manera eficiente y segura.
- Se ha agregado la clase GdkMemoryTextureBuilder, que permite la creación de objetos de textura (GdkTexture) a partir de datos almacenados en la RAM,
- Se han agregado nuevos comandos a la herramienta rendernode-tool para cargar datos a través de URL y para manipular texturas.
- La operación «Pegar como nodo» se ha añadido a la interfaz del editor de nodos gtk4, lo que facilita la manipulación de nodos en el diseño de gráficos y escenas.
- Se ha agregado soporte para la combinación de teclas Ctrl-Shift-N para crear directorios en el selector de archivos, mejorando la accesibilidad y usabilidad del widget.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.