Publicada GTK 3.96, versión experimental de GTK 4

Han pasado 10 meses desde el lanzamiento anterior de la versión de prueba presentado GTK 3.96, nueva versión experimental del futuro lanzamiento estable de GTK 4. La rama GTK 4 se desarrolla bajo un nuevo proceso de desarrollo que intenta proporcionar a los desarrolladores de aplicaciones una API estable y soportada durante varios años, que se puede utilizar sin temor a tener que rehacer la aplicación cada seis meses debido a un cambio en la API en la próxima rama de GTK. Hasta la plena estabilización de GTK 4, se recomienda que las aplicaciones ofrecidas a los usuarios continúen compilándose utilizando la rama GTK 3.24.

Principales cambios en GTK 3.96:

  • En la API GSK (GTK Scene Kit), que permite el renderizado de escenas gráficas a través de OpenGL y Vulkan, se han corregido errores, cuya identificación se volvió más fácil gracias a la nueva herramienta de depuración gtk4-node-editor, que permite cargar y mostrar un nodo de renderizado en formato serializado (que puede ser guardado en el modo de inspección del inspector GTK), así como comparar el resultado del renderizado aplicando diferentes backends;

    Publicada GTK 3.96, versión experimental de GTK 4
  • Las capacidades de transformación 3D se han mejorado hasta el punto de permitir crear efectos de animación como el cubo giratorio;

    Publicada GTK 3.96, versión experimental de GTK 4
  • Completamente ha sido reescrito Backend GDK Broadway, destinado a renderizar la salida de la biblioteca GTK en una ventana del navegador web. La antigua implementación de Broadway no se alineaba con los métodos de renderizado propuestos en GTK 4 (en lugar de salida a un búfer, ahora se usa un modelo basado en nodos de renderizado, donde la salida se compone en forma de un árbol de operaciones de alto nivel, eficientemente procesadas por la GPU mediante OpenGL y Vulkan).
    La nueva variante de Broadway transforma nodos de renderizado en nodos DOM con estilos CSS para la salida de la interfaz en el navegador. Cada nuevo estado de la pantalla se maneja como un cambio en el árbol DOM en relación con el estado anterior, lo que permite reducir el tamaño de los datos transmitidos al cliente remoto. Las transformaciones 3D y los efectos gráficos se implementan a través de la propiedad CSS transform;
  • En GDK, se continúa implementando la API desarrollada teniendo en cuenta el uso del protocolo Wayland y se lleva a cabo la limpieza de la API vinculada a X11, o su traslado a un backend X11 separado. Se observa un progreso en la eliminación del uso de superficies secundarias y coordenadas globales. Se ha eliminado el soporte para GDK_SURFACE_SUBSURFACE en GDK.
  • Se ha continuado con la refactorización del código relacionado con la realización de operaciones de Drag-and-Drop, incluyendo la propuesta de objetos separados GdkDrag y GdkDrop;
  • Se ha simplificado el manejo de eventos, que ahora se utilizan solo para la entrada. Los demás eventos se han reemplazado por señales separadas, por ejemplo, en lugar de eventos de salida se ha propuesto la señal «GdkSurface::render», en lugar de eventos de ajuste — «GdkSurface::size-changed», en lugar de eventos de mapeo — «GdkSurface::mapped», en lugar de gdk_event_handler_set() — «GdkSurface::event»;
  • Se ha añadido soporte para la interfaz portal en el backend de GDK para Wayland para acceder a la configuración de GtkSettings. Se ha propuesto soporte para la extensión del protocolo text-input-unstable-v3 para trabajar con métodos de entrada;
  • Se ha presentado un nuevo objeto GtkLayoutManager para el desarrollo de widgets, que implementa un sistema de gestión de la disposición de los elementos según el cambio de la zona visible. GtkLayoutManager reemplaza las propiedades hijas en contenedores GTK, como GtkBox y GtkGrid. Se han propuesto varios administradores de disposición listos para usar: GtkBinLayout para contenedores simples con un solo elemento hijo, GtkBoxLayout para elementos hijos alineados linealmente, GtkGridLayout para alineación de elementos hijos en una cuadrícula, GtkFixedLayout para posicionamiento arbitrario de elementos hijos, GtkCustomLayout para la traducción de elementos tradicionales basada en controladores size_allocate;
  • En los widgets GtkAssistant, GtkStack y GtkNotebook se han añadido objetos de acceso público para la salida por páginas de elementos hijos, a los que se les han trasladado propiedades de datos no relacionadas con la disposición (Layout) de estos widgets. Como todas las propiedades hijas existentes se han transformado en propiedades regulares, las propiedades de disposición se han trasladado a objetos por páginas, y se ha eliminado completamente el soporte para propiedades hijas en GtkContainer;
  • La funcionalidad básica de GtkEntry se ha trasladado a un nuevo widget GtkText, que también incluye una interfaz de edición ampliada GtkEditable. Todas las subclases existentes de entrada se han reciclado en forma de implementaciones de GtkEditable basadas en el nuevo widget GtkText;
  • Se ha añadido un nuevo widget GtkPasswordEntry para formularios de entrada de contraseñas;
  • En GtkWidgets se ha añadido la capacidad de transformar elementos hijos mediante métodos de transformación lineal, definidos a través de CSS o el argumento gtk_widget_allocate en GskTransform. Esta función ya se ha aplicado en el widget GtkFixed;
  • Se han añadido nuevos modelos de listas: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel y GtkSingleSelection. En el futuro, se planea agregar soporte para modelos de listas en GtkListView;
  • En GtkBuilder se ha añadido la posibilidad de establecer propiedades de objetos en línea, en lugar de usar referencias por identificador;
  • En gtk4-builder-tool se ha añadido un comando para convertir archivos UI de GTK 3 a GTK 4;
  • Se ha descontinuado el soporte para temas de diseño clave (key theme), menús tabulares (tabular menu) y bloques combinados (combo box). El widget GtkInvisible ha sido eliminado.

    Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster