-
Notifications
You must be signed in to change notification settings - Fork 133
Description
A proper UI toolkit is integral to the success of any game engine. This goes beyond basic buttons and labels, but also has to deal with things like containers, layouts, input pass through and blocking, etc...
There are a few GUI libs out there for Go, but these all suffer from a couple problems:
- Most of them don't provide a way to use an existing OpenGL conext (assuming they use OpenGL for rendering at all, which is a different issue all together).
- None of them support multiple render targets (i.e. opengl, metal, vulkan, etc..)
- None of them would tie in with our existing Input subsystem.
As such, I suggest that we build our own UI toolkit that is tailor made to fit the rest of the engine's design.
Although tedious (and as such, this is a rather large undertaking, no doubt), layouts and UI controls are all well understood and solved problems, so it won't really be difficult work.
The design here should utilize Engo's ECS framework.
I'll start by stubbing out a basic framework and present it for feedback before working on actual implementations of the various controls and layouts.