Logo de GTK
Recientemente, los desarrolladores de GTK anunciaron la incorporación de dos nuevos renderizadores: «ngl» y «vulkan», diseñados respectivamente para GL y Vulkan. Ambos renderizadores se construyen a partir de la misma base de código y siguen las API de Vulkan, lo que facilita el mantenimiento y las actualizaciones.
Aunque aĆŗn no superan en velocidad al antiguo renderizador GL, estos motores āunificadosā ofrecen nuevas caracterĆsticas interesantes como antialiasing, escalado fraccional y soporte para dmabuf. Es importante destacar que ngl se ha convertido en el nuevo motor de renderizado predeterminado en la reciente instantĆ”nea 4.13.6.
Para quienes desconocen de GTK (anteriormente GIMP ToolKit y GTK+) deben saber que este es un popular conjunto de bibliotecas de software multiplataforma de código abierto para crear interfaces grÔficas de usuario (GUI). Desarrollado originalmente para las necesidades del software de procesamiento de imÔgenes GIMP, GTK en particular, es uno de los conjuntos de herramientas mÔs populares para los sistemas de ventanas Wayland y X11.
Sobre «ngl» y «vulkan»
La incorporación de estos nuevos renderizadores, «ngl» y «vulkan», marca un hito significativo en el desarrollo de GTK, pues con la introducción de dos nuevos renderizadores se destaca su capacidad para ofrecer funcionalidades avanzadas mientras mantiene la compatibilidad con versiones anteriores es un testimonio del compromiso de la comunidad con la mejora continua y la innovación en el desarrollo de interfaces de usuario.
Estos nuevos motores de renderizado estĆ”n diseƱados para aprovechar al mĆ”ximo las capacidades de las API de GL y Vulkan, respectivamente, y ofrecen una serie de mejoras y caracterĆsticas interesantes para los usuarios y desarrolladores por igual.
Una de las caracterĆsticas mĆ”s destacadas de estos nuevos renderizadores es que comparten una fuente comĆŗn, lo que los convierte en lo que se conoce como Ā«renderizadores unificadosĀ». Esto significa que estĆ”n construidos a partir de la misma base de código, modelados para seguir las API de Vulkan y GL, y ofrecen abstracciones para cubrir las diferencias entre ambas. Este enfoque unificado no solo facilita la actualización y el mantenimiento, sino que tambiĆ©n proporciona una base sólida para futuras expansiones.
El nuevo enfoque de renderizado introduce una serie de mejoras y capacidades, incluyendo:
- Antialiasing Mejorado: Los nuevos renderizadores abordan el problema de la pƩrdida de detalles finos y los bordes irregulares, especialmente en casos como los subrayados y mnemotƩcnicos.
- Escala Fraccionaria: Los renderizadores unificados manejan de manera mĆ”s eficiente las escalas fraccionarias, lo que resulta en imĆ”genes mĆ”s nĆtidas y menos pĆxeles.
- Gradientes Arbitrarios: Se ha ampliado el soporte para degradados con un número ilimitado de paradas de color, mejorando la calidad visual de los diseños.
- Soporte para Dmabufs: Los nuevos renderizadores admiten la creación de dmabufs para texturas a travĆ©s de la API render_texture, lo que amplĆa las capacidades de renderizado.
Si bien los nuevos renderizadores ofrecen numerosas ventajas, tambiĆ©n plantean algunos desafĆos para los desarrolladores de aplicaciones:
- Nodos glshader: Los nuevos renderizadores no admiten todos los nodos glshader del antiguo renderizador GL, lo que puede requerir ajustes en algunas aplicaciones.
- Posiciones Fraccionarias: Las posiciones fraccionarias ahora se manejan con mayor precisión, lo que puede requerir ajustes en ciertos diseños y grÔficos.
- Problemas con el Controlador: El cambio a los nuevos renderizadores puede plantear problemas de compatibilidad con algunos controladores de grƔficos.
AdemÔs de ello, también se menciona que aunque los nuevos renderizadores aún no son mÔs rÔpidos que el antiguo renderizador GL, ofrecen un gran potencial para futuras mejoras y expansiones. Se espera que las próximas versiones aborden aún mÔs aspectos del renderizado, como la gestión del color, la representación de glifos y el rendimiento en dispositivos menos potentes.
Finalmente por parte de los planes futuros para los nuevos renderizadores, se menciona que estĆ” sobre la mesa lo siguiente:
- Manejo adecuado del color (incluido HDR)
- Representación de rutas en la GPU
- Posiblemente incluyendo representación de glifos
- Representación fuera del hilo principal
- Rendimiento (en dispositivos antiguos y menos potentes)
Finalmente si estƔs interesado en poder conocer mƔs al respecto, puedes consultar los detalles en el siguiente enlace.