Desde Linux David Y. Naranjo  

GTK 4.24 llega con alineación de píxeles físicos, soporte Wayland Text Input 3.2 y Vulkan

GTK 4

Despues de poco mas de seis meses de trabajo de desarrollo, el equipo detrás del popular toolkit de interfaces gráficas ha publicado la nueva version de «GTK 4.24».

Esta actualización introduce mecanismos precisos para el manejo de resoluciones modernas, un motor nativo de gráficos vectoriales que elimina dependencias externas y una integración mucho más estrecha con los protocolos de visualización y entrada del servidor Wayland.

Principales novedades de GTK 4.24

Uno de los avances más notables es la nueva capacidad para ajustar el contenido a los límites físicos de los píxeles del dispositivo. Mediante la función gtk_snapshot_set_snap(), los desarrolladores pueden alinear los píxeles lógicos con los físicos, mejorando radicalmente la nitidez del renderizado al aplicar escalado fraccional en pantallas de alta resolución.

Aunque esta característica permanece desactivada por defecto para evitar vibraciones (jitter) durante animaciones lentas o desplazamientos, resulta sumamente útil para ocultar las uniones visibles entre sprites en el desarrollo de videojuegos o para activar técnicas aceleradas por hardware que exigen alineación perfecta.

Otra de las novedades que presenta la nueva version es en el subsistema GTK Scene Kit (GSK) al incorporar soporte nativo para renderizar imágenes con canales de color de 10 bits. El equipo ha rediseñado por completo el mecanismo de asignación de memoria caché y ha comenzado a utilizar máscaras de recorte para evitar el renderizado inútil fuera del área visible de la pantalla. Adicionalmente, respetando las preferencias de accesibilidad del usuario, los widgets como GtkSpinner, GtkStack y GtkRevealer ahora se sincronizan con la configuración del sistema operativo para reducir o desactivar los efectos animados.

Motor SVG integrado y nuevos widgets de interfaz

La representación de gráficos vectoriales recibe en esta versión la introduccion de GtkSvgWidget, permitiendo a los desarrolladores renderizar archivos SVG que contienen elementos interactivos nativos, como enlaces <a> o etiquetas <view>, directamente en el código de la aplicación.

Además, se habilitó la función gtk_svg_set_stylesheet() para aplicar hojas de estilo dinámicas a estos vectores. Actualmente, la clase GtkSvg ya se encarga de renderizar todos los iconos del sistema GTK y el widget GtkSpinner genera sus animaciones a partir de estas imágenes SVG, apoyándose en nuevos filtros como feTurbulence, transformaciones 3D, consultas de medios CSS y ajustes de línea base.

En el apartado de construcción de interfaces, la versión 4.24 añade la clase GtkEnumList específicamente diseñada para mostrar listas desplegables eficientes. Se ha incorporado soporte para la propiedad CSS font-width, permitiendo definir el ancho intermedio de las tipografías mediante porcentajes (requiriendo ahora la versión 1.58 de la biblioteca Pango). A nivel de usabilidad, el widget GtkEntry despliega un menú contextual al mantener una pulsación prolongada en pantallas táctiles, y se han corregido fugas de asignación de memoria críticas en GtkList, GtkGrid y GtkColumnView.

Interacción avanzada en Wayland, Vulkan y Android

La comunicación con el servidor gráfico en entornos Linux avanza mediante la implementación del protocolo Wayland Text Input 3.2. Esta estandarización mejora el intercambio de datos entre el compositor y las aplicaciones al gestionar eventos de pérdida o ganancia de foco, el idioma del teclado, la selección de texto y el tipo de contenido del campo de entrada.

Además, se han sentado las bases para el protocolo xdg-session-management, diseñado para restaurar la posición y el estado exacto de las ventanas tras un fallo del servidor gráfico, aunque esta función permanecerá desactivada hasta la llegada de GTK 4.26.

El control sobre el backend gráfico se ha mejorado con las funciones gdk_display_get_prefer_vulkan() y gdk_display_set_prefer_vulkan(), otorgando a los desarrolladores la decisión explícita de renderizar la interfaz a través de la API Vulkan. Para la gestión de atajos, se proponen nuevas herramientas dentro de GtkShortcutTrigger capaces de distinguir teclas duplicadas, como las del teclado numérico.

El modelo de búsqueda dinámica también se ha reescrito, abandonando la extracción basada en la aplicación a favor de un sistema de envío basado en eventos. Finalmente, el código destinado a dispositivos móviles amplía su soporte hacia Android SDK 36 (Android 16), utilizando directamente la API Choreographer para garantizar la sincronización vertical de fotogramas (vsync).

Si estas interesado en poder conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.

Artículo original

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.