image

Small progress update.

  • You now can spawn multiple windows each with their own render thread.
  • Each window is drawn via an OnRender() callback. You can also set up resources on init with OnRenderThreadStart().
  • Windows can be closed in any order.
  • Transparency is supported via GLFW transparency window hint.

The source is now organized roughly into modules:

  • Allocation/
  • Core/
  • Data_Structures/
  • GFX/
  • OS/
  • MG_UI.h
  • main.c

There’s always improvements to make but this feels a lot cleaner to me.

Next goals:

  • Edit Text Field: double & triple click select, multi-line support, undo/redo, wrapping, and a few other necessities.
  • Other widgets: Scroll view, scroll bar, drop down, checkbox, slider (same as scrollbar?), image, video.
  • See about supporting more than ASCII text rendering, and consistent Unicode throughout.
  • Better way to specify UI (layout spec file, or imgui style api).
  • Varying text style within a text block.
  • Resizeable panels.
  • Draggable panels.
  • New window from panel dragged out of window.
  • Rounded corners on widgets.
  • World-space UI.
  • Audio support.

Anyway this is still just a project for learning and experimentation mostly.