What problem does it solve?
Implementing a new render backend for Gum (e.g. Silk.NET) requires replicating a hand-written initialization sequence with no shared interface or base class to guide you, and mistakes silently degrade rendering instead of throwing errors.
Core Features & Use Cases
- Registration Contract: Defines the five required steps every backend's Initialize() must perform, including ContentLoader wiring, CustomSetPropertyOnRenderable, CustomCreateGraphicalComponentFunc, StandardElementsManager initialization, and RegisterGueInstantiation for the 8 standard shape types.
- Reference Implementations: Points to concrete file and line references in the MonoGame, Raylib, Skia, and Sokol backends to copy from.
- Landmine Documentation: Explains silent fallback to FallbackRenderableFactory when a shape registration is missing, process-wide static assignment hazards, extended shape wiring via CustomGetDefaultState, and idempotency guard differences.
- Use Case: When porting Gum to a new graphics backend, follow this contract to ensure all standard elements render with the backend's preferred renderables rather than degraded fallbacks.
Quick Start
Explain the SystemManagers.Initialize() registration steps I must implement to add a new render backend to Gum.