WolfyScript / viewportl

A Minecraft Inventory GUI framework, designed to easily create reactive GUIs. Based on the well known Signal Reactivity System.
GNU General Public License v3.0
65 stars 12 forks source link

Cross-Platform Reactive GUI API Rework #120

Closed WolfyScript closed 7 months ago

WolfyScript commented 7 months ago

This PR further reduces the non-platform dependent code required for rendering components into the GUI.

The rendering and interaction parts are separated into two different handlers now that allow for future extension and platform specific implementation.

The rendering graph contains all the components that are currently active in the view. It notifies the renderer and interaction handler whenever it detects a change.

The effects and components manipulate the graph and cause it to update.

The renderer uses the rendering graph and renders the GUI. The way it renders is implementation specific.

The interaction handler uses the rendering graph to align the interaction bounds to detect and handle interactions. The way it does this is implementation specific.