Skip to content

GUI System Refactor #34

Description

@eddoww

Robust widget-based GUI system. Each element in its own window that can be minimized, moved, and resized. Hotkey toggles for each widget.

Separate game viewport from GUI viewport, render GUI on dedicated thread.

This enables full-screen map game-play (requires increasing "view distance" slightly on serverside, from 25 to maybe 35/40).

Core Requirements:

  • Positioning, size, visibility and enabled states
  • parent/child hierarchy
  • input focus handling
  • dirty/redraw flagging
  • title bar with drag to move
  • Resizable (optional per instance)
  • Minimizable (optional per instance)
  • Close button (optional per instance)
  • Z-order management (click to bring to front)
  • Skin/theming
  • Animations (stretch goal)
  • drag and drop, eg; inventory to equipment widget. Inventory to game map, game map to inventory, etc.

Common Widgets Needed

  • Button, Label, TextInput
  • ItemSlot (for inventory/equipment/trading)
  • ScrollableContainer, Grid/List
  • ProgressBar, Tooltip

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestrenderingGraphics pipeline, shaders, sprites, draw calls, visual outputuiUser interface, menus, HUD, input handling, windows

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions