The Qt Company ha anunciado la liberación de la version de pruebas «Alpha» de Qt 6 y en ella se destacan diversos cambios y características relacionadas con las APIs 3D, así como también mejoras en el código.
Además de que también se destaca que Qt 6 incluye cambios arquitectónicos significativos y las compilaciones requieren un compilador que admita el estándar C ++ 17.
Características de QT 6 Alpha
En esta version de pruebas, se destaca que una nueva API gráfica abstraída que no depende de la API 3D del sistema operativo. Un componente clave de la nueva pila de gráficos Qt es un motor de renderizado de escenas que utiliza una capa RHI (Rendering Hardware Interface) para proporcionar aplicaciones Qt Quick no solo con OpenGL, sino también sobre las API Vulkan, Metal y Direct 3D.
Además del resideño al módulo Qt Quick 3D con API para crear interfaces de usuario basadas en Qt Quick que combinan gráficos 2D y 3D. Qt Quick 3D le permite usar QML para definir elementos de interfaz 3D sin usar el formato UIP.
En Qt Quick 3D para 2D y 3D, puede usar un tiempo de ejecución (Qt Quick), un diseño de escena y un marco de animación, y usar Qt Design Studio para el desarrollo de la interfaz visual.
El módulo resuelve problemas como grandes gastos generales al integrar QML con contenido de Qt 3D o 3D Studio, y proporciona la capacidad de sincronizar animaciones y transformaciones a nivel de fotogramas individuales entre 2D y 3D.
También se ha reestructurado el código base dividiéndolo en partes más pequeñas y reduciendo el tamaño del producto base. Las herramientas de desarrollo y los componentes personalizados se entregarán como complementos distribuidos a través de Qt Marketplace.
Por otra parte, también se menciona un rediseño significativo de QML:
- Fuerte soporte de mecanografía.
- Capacidad para compilar representación QML a C ++ y código de máquina.
- Convertir el soporte completo de JavaScript en una opción (el uso de un motor de JavaScript completamente funcional consume muchos recursos, lo que dificulta el uso de QML en hardware como microcontroladores).
- Rechazo de versionar en QML.
- Unificación de estructuras de datos, duplicadas en QObject y QML (reducirá el consumo de memoria y acelerará el inicio).
- Evitar la generación de estructuras de datos en tiempo de ejecución en favor de la generación en tiempo de compilación.
- Ocultar componentes internos mediante el uso de métodos y propiedades privados.
- Integración mejorada con herramientas de desarrollo para la refactorización y el diagnóstico de errores en tiempo de compilación.
También se agregaron herramientas para manejar recursos relacionados con gráficos en tiempo de compilación, como convertir imágenes PNG a texturas comprimidas o convertir sombreadores y mallas a formatos binarios optimizados para hardware específico.
Se destaca también la incorporación de un tema unificado y un motor de estilo para lograr la apariencia de los widgets Qt y las aplicaciones Qt Quick nativas de diferentes plataformas móviles y de escritorio.
Se decidió utilizar CMake en lugar de QMake como sistema de compilación. Se mantendrá la compatibilidad con la creación de aplicaciones utilizando QMake, pero Qt se creará utilizando CMake.
Se eligió CMake porque este kit de herramientas se usa ampliamente en el entorno de desarrollo de proyectos C ++ y es compatible con muchos IDE. Desarrollo del sistema de construcción Qb, que pretende ser un sustituto de QMake, se continuó por la comunidad.
La transición durante el desarrollo al estándar C++ 17 (anteriormente se usaba C ++ 98, y desde Qt 5.7 – C ++ 11). Qt 6 planea admitir muchas características modernas de C ++, pero sin perder la compatibilidad con el código basado en estándares anteriores.
Así como también la capacidad para utilizar algunas de las funciones ofrecidas para QML y Qt Quick en código C ++. Esto incluye un nuevo sistema de propiedades para QObject y clases similares. Se integrará un motor para trabajar con enlaces desde QML en el núcleo de Qt, lo que reducirá la carga y el consumo de memoria para los enlaces y los pondrá a disposición de todas las partes de Qt, no solo de Qt Quick.
Finalmente se menciona que la fecha del lanzamiento de la version estable será el 1 de diciembre del año en curso.