Volver a ChangelogsBack to Changelogs

X4UI HistorialHistory

Registro completo de actualizaciones de este proyecto.Complete update log for this project.

X4UI Framework r1.0b3

8/26/2026

X4UI 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 layer para 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 FontWidthCache con política de limpieza LRU para mitigar fugas de memoria durante el análisis de textos complejos (ej. Markdown).
  • Recorte OpenGL Anidado: Implementado ScissorHelper para gestionar de manera robusta el uso de GL_SCISSOR_TEST en componentes anidados.
  • Construcción Fluida: Añadida la clase de utilidad GuiBuilder que 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 GuiComponent con límites configurables (DragConstraint.NONE, DragConstraint.PARENT_BOUNDS).
  • Tooltips Integrados: Añadido soporte nativo de renderizado de Tooltips en GuiBaseScreen y GuiBaseContainer mediante setTooltip().
  • Diseños FlexWrap: Añadida la funcionalidad flexWrap a GuiPanel para el ajuste automático y multilínea de elementos en diseños horizontales y verticales.
  • Nuevos Componentes:
    • GuiDropdown para menús desplegables.
    • GuiImage y GuiSprite para la renderización flexible de texturas.
    • GuiTextInput para campos de entrada de texto avanzados.
    • GuiSlot para gestionar inventarios y stacks de ítems dentro del DOM.
    • GuiSlider y sus variantes (GuiSliderDouble, GuiSliderFloat, GuiSliderInt).
    • GuiModelRender para soporte de renderizado de entidades 3D e ítems.
    • GuiVideo para reproducción de vídeo in-game.

Mejoras y Correcciones

  • Refactorización de GuiScrollPanel:
    • Migración a ScissorHelper para 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.
  • Solucionada la fuga de memoria en GuiBaseContainer causada por la adición duplicada de áreas en jeiRecipeAreas al redimensionar la ventana.
  • Refactorizado GuiMarkdown para utilizar FontWidthCache, mejorando notablemente el rendimiento.
  • Estandarizadas las animaciones en GuiButton, GuiToggle y GuiScrollPanel para escalar con DeltaTime en lugar de ticks en crudo.
  • Expuestos los métodos getGuiLeft() y getGuiTop() en GuiBaseContainer.
  • 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 layer property 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 FontWidthCache incorporating an LRU eviction policy to mitigate memory leaks during intensive text parsing tasks (e.g. Markdown rendering).
  • Nested OpenGL Clipping: Implemented ScissorHelper to robustly manage nested GL_SCISSOR_TEST applications.
  • Fluent Construction: Added GuiBuilder utility class providing a fluent API to streamline interface construction.
  • Reactivity: Integrated a reactive State management system.

Components & Features

  • Drag & Drop: Added native drag-and-drop capability to GuiComponent with flexible boundaries (DragConstraint.NONE, DragConstraint.PARENT_BOUNDS).
  • Native Tooltips: Added internal Tooltip rendering support to GuiBaseScreen and GuiBaseContainer via setTooltip().
  • FlexWrap Layouts: Added flexWrap functionality to GuiPanel for automatic multi-line wrapping of elements in horizontal and vertical configurations.
  • New Components:
    • GuiDropdown for standard dropdown menu structures.
    • GuiImage and GuiSprite components for flexible texture and sprite rendering.
    • GuiTextInput for advanced text input fields.
    • GuiSlot component to integrate and manage item stacks and inventories within the DOM.
    • GuiSlider architecture with specific implementations (GuiSliderDouble, GuiSliderFloat, GuiSliderInt).
    • GuiModelRender to support 3D entity and item rendering directly inside the user interface.
    • GuiVideo for in-game video playback support.

Fixes & Improvements

  • GuiScrollPanel Refactor:
    • Migrated from raw GL calls to ScissorHelper for 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.
  • Resolved memory leak in GuiBaseContainer caused by duplicate instances appending to jeiRecipeAreas upon window resize.
  • Refactored GuiMarkdown to utilize FontWidthCache for significantly improved parsing and rendering performance.
  • Standardized animations in GuiButton, GuiToggle, and GuiScrollPanel to scale consistently with DeltaTime instead of raw ticks.
  • Exposed getGuiLeft() and getGuiTop() within GuiBaseContainer for external utility consumption.
  • Restructured and populated the Docs/ directory with comprehensive technical documentation in English (en-us) and Spanish (es-latam).

X4UI Framework r1.0b2

8/22/2026

X4UI r1.0b2

Cambios

  • Añadidos métodos getHeight() y getWidth() en GuiComponent para permitir acceso externo a sus atributos de dimensión que estaban protegidos, facilitando la interpolación y creación de animaciones personalizadas desde implementaciones externas.

X4UI Framework r1.0b1

8/16/2026

X4UI r1.0b1

Resumen de Cambios

El primer lanzamiento público del framework X4UI, extraído de Hammers Unbound para proveer una base robusta y moderna para el diseño de interfaces en Minecraft 1.12.2.

Características

  • Arquitectura DOM de Componentes: Introducido un árbol de componentes totalmente orientado a objetos (GuiComponent) con relaciones padre-hijo, imitando la estructura DOM web.
  • Layouts FlexBox: Añadido GuiPanel con FlexDirection (Absolute, Vertical, Horizontal) para posicionamiento y espaciado automático de componentes.
  • Paneles de Scroll y Recorte: Implementado GuiScrollPanel con soporte nativo de OpenGL GL_SCISSOR_TEST para enmascarar de forma segura la renderización fuera de los límites.
  • Analizador Nativo de Markdown: Añadido GuiMarkdown, un componente especializado que lee cadenas de markdown puro y las renderiza en nodos de UI interactivos (Soporta encabezados, negrita, cursiva, enlaces, citas, viñetas e imágenes web/locales).
  • Elementos Interactivos: Incluidas implementaciones listas para usar de GuiButton, GuiToggle, GuiSlider y GuiLabel.
  • Propagación de Eventos: Sistema avanzado para clics, pulsaciones de teclas y desplazamientos de ratón. Los eventos respetan el índice Z, asegurando que los componentes superpuestos se comporten de forma natural.

Rendimiento y Optimizaciones

  • Renderizado por Bandera (Dirty Flag): Implementado un gestor robusto de estado needsLayout. El motor UI ahora solo recalcula posiciones y tamaños cuando es matemáticamente necesario, reduciendo drásticamente la sobrecarga de CPU en pantallas complejas.
  • Análisis Regex Estático: GuiMarkdown compila sus expresiones de análisis de texto estáticamente al cargar, reduciendo fuertemente los picos de RAM y CPU al abrir manuales o guías.
  • Correcciones de Memoria en Scroll: Eliminados los tirones del recolector de basura al calcular el factor de escala ScaledResolution una sola vez por redimensionamiento de ventana, en lugar de cientos de veces por segundo.

Corrección de Errores

  • Solucionado un problema donde el desplazamiento de la rueda del ratón no respetaba las coordenadas reales en pantalla del puntero, permitiendo ahora un desplazamiento preciso a través de múltiples paneles activos.

Changelog Summary

The first public release of the X4UI Framework, extracted from Hammers Unbound to provide a robust foundation for modern Minecraft 1.12.2 interfaces.

Features

  • Component DOM Architecture: Introduced a fully object-oriented component tree (GuiComponent) with parent-child relationships, mimicking web DOM structures.
  • FlexBox Layouts: Added GuiPanel with FlexDirection (Absolute, Vertical, Horizontal) for automatic component positioning and spacing.
  • Scroll Panels & Clipping: Implemented GuiScrollPanel with native OpenGL GL_SCISSOR_TEST support to safely mask out-of-bounds rendering.
  • Native Markdown Parser: Added GuiMarkdown, a specialized component that reads raw markdown strings and renders them into interactive UI nodes (Supports headings, bold, italics, links, blockquotes, bullets, and web/local images).
  • Interactive Elements: Included ready-to-use implementations of GuiButton, GuiToggle, GuiSlider, and GuiLabel.
  • Event Bubbling: Advanced event propagation for clicks, keystrokes, and mouse scrolls. Events bubble down the Z-index correctly, ensuring overlapping components behave naturally.

Performance & Optimizations

  • Dirty Flag Rendering: Implemented a robust needsLayout state manager. The UI engine will now only recalculate positions and sizes when mathematically necessary, drastically reducing CPU overhead on complex screens (like manuals or heavily populated lists).
  • Static Regex Parsing: GuiMarkdown compiles its text-parsing expressions statically on load, heavily reducing RAM and CPU spikes when opening books or guides.
  • Scroll Memory Fixes: Eliminated garbage collector stuttering by calculating the ScaledResolution scaling factor once per window resize, rather than hundreds of times per second during frame renders.

Bug Fixes

  • Fixed an issue where the mouse wheel scroll event did not respect the pointer’s actual screen coordinates, allowing targeted scrolling across multiple active panels.
Buscar en XHubSearch XHub