X4UI Framework r1.0b3
8/26/2026X4UI r1.0b3
Resumen de Cambios
Actualización de la arquitectura interna de renderizado y eventos, introduciendo soporte nativo de Z-Index, interpolaciones basadas en DeltaTime, y gestión segura de recortes OpenGL anidados, además de una gran cantidad de nuevos componentes interactivos.
Arquitectura y Núcleo
- Soporte Z-Index: Implementada la propiedad
layerpara componentes, proporcionando un ordenamiento determinista para el renderizado y la propagación de eventos (bubbling). - Animaciones DeltaTime: Integrada lógica de DeltaTime en todo el framework para lograr animaciones e interpolaciones independientes de los FPS.
- Seguridad de Memoria: Implementado
FontWidthCachecon política de limpieza LRU para mitigar fugas de memoria durante el análisis de textos complejos (ej. Markdown). - Recorte OpenGL Anidado: Implementado
ScissorHelperpara gestionar de manera robusta el uso deGL_SCISSOR_TESTen componentes anidados. - Construcción Fluida: Añadida la clase de utilidad
GuiBuilderque proporciona una API fluida (Fluent API) para facilitar la construcción de interfaces. - Reactividad: Integrado un sistema de gestión de estado reactivo (
State).
Componentes y Funcionalidades
- Arrastrar y Soltar (Drag & Drop): Añadida capacidad de arrastre nativa a
GuiComponentcon límites configurables (DragConstraint.NONE,DragConstraint.PARENT_BOUNDS). - Tooltips Integrados: Añadido soporte nativo de renderizado de Tooltips en
GuiBaseScreenyGuiBaseContainermediantesetTooltip(). - Diseños FlexWrap: Añadida la funcionalidad
flexWrapaGuiPanelpara el ajuste automático y multilínea de elementos en diseños horizontales y verticales. - Nuevos Componentes:
GuiDropdownpara menús desplegables.GuiImageyGuiSpritepara la renderización flexible de texturas.GuiTextInputpara campos de entrada de texto avanzados.GuiSlotpara gestionar inventarios y stacks de ítems dentro del DOM.GuiSlidery sus variantes (GuiSliderDouble,GuiSliderFloat,GuiSliderInt).GuiModelRenderpara soporte de renderizado de entidades 3D e ítems.GuiVideopara reproducción de vídeo in-game.
Mejoras y Correcciones
- Refactorización de GuiScrollPanel:
- Migración a
ScissorHelperpara la resolución adecuada de recortes anidados. - Implementado descarte de componentes (culling) para omitir la renderización y procesamiento de eventos de elementos fuera del área visible.
- Resueltos los problemas de jerarquía de propagación de eventos, permitiendo que los paneles de scroll anidados funcionen correctamente y de manera independiente.
- Migración a
- Solucionada la fuga de memoria en
GuiBaseContainercausada por la adición duplicada de áreas enjeiRecipeAreasal redimensionar la ventana. - Refactorizado
GuiMarkdownpara utilizarFontWidthCache, mejorando notablemente el rendimiento. - Estandarizadas las animaciones en
GuiButton,GuiToggleyGuiScrollPanelpara escalar con DeltaTime en lugar de ticks en crudo. - Expuestos los métodos
getGuiLeft()ygetGuiTop()enGuiBaseContainer. - Reestructurada y completada la documentación técnica en el directorio
Docs/(Disponible en inglés y español).
Changelog Summary
Core rendering and event architecture update, introducing native Z-Index support, DeltaTime-based interpolations, and safe management of nested OpenGL clipping, along with a massive batch of new interactive components.
Architecture & Core
- Z-Index Support: Implemented the
layerproperty for components, providing deterministic sorting for rendering and event bubbling priorities. - DeltaTime Animations: Integrated DeltaTime logic throughout the framework for FPS-independent animations and transitions.
- Memory Safety: Implemented
FontWidthCacheincorporating an LRU eviction policy to mitigate memory leaks during intensive text parsing tasks (e.g. Markdown rendering). - Nested OpenGL Clipping: Implemented
ScissorHelperto robustly manage nestedGL_SCISSOR_TESTapplications. - Fluent Construction: Added
GuiBuilderutility class providing a fluent API to streamline interface construction. - Reactivity: Integrated a reactive
Statemanagement system.
Components & Features
- Drag & Drop: Added native drag-and-drop capability to
GuiComponentwith flexible boundaries (DragConstraint.NONE,DragConstraint.PARENT_BOUNDS). - Native Tooltips: Added internal Tooltip rendering support to
GuiBaseScreenandGuiBaseContainerviasetTooltip(). - FlexWrap Layouts: Added
flexWrapfunctionality toGuiPanelfor automatic multi-line wrapping of elements in horizontal and vertical configurations. - New Components:
GuiDropdownfor standard dropdown menu structures.GuiImageandGuiSpritecomponents for flexible texture and sprite rendering.GuiTextInputfor advanced text input fields.GuiSlotcomponent to integrate and manage item stacks and inventories within the DOM.GuiSliderarchitecture with specific implementations (GuiSliderDouble,GuiSliderFloat,GuiSliderInt).GuiModelRenderto support 3D entity and item rendering directly inside the user interface.GuiVideofor in-game video playback support.
Fixes & Improvements
- GuiScrollPanel Refactor:
- Migrated from raw GL calls to
ScissorHelperfor proper nested clipping resolution. - Implemented strict component culling to skip rendering and event processing for elements outside the visible viewport.
- Resolved event bubbling hierarchy issues, enabling nested scroll panels to function correctly independently of parent containers.
- Migrated from raw GL calls to
- Resolved memory leak in
GuiBaseContainercaused by duplicate instances appending tojeiRecipeAreasupon window resize. - Refactored
GuiMarkdownto utilizeFontWidthCachefor significantly improved parsing and rendering performance. - Standardized animations in
GuiButton,GuiToggle, andGuiScrollPanelto scale consistently with DeltaTime instead of raw ticks. - Exposed
getGuiLeft()andgetGuiTop()withinGuiBaseContainerfor external utility consumption. - Restructured and populated the
Docs/directory with comprehensive technical documentation in English (en-us) and Spanish (es-latam).