Gio is an Immediate mode GUI library in Go. Unlike many other IMGUI libraries, it is full-featured and is intended for user-facing applications (as opposed to debugging tools and game editors).
Gio reifies drawing and some other operations as a list of
Ops. These Ops can be captured, replayed, transformed, etc. The Ops is central to the Gio architecture.
Reification of drawing operations allows implementing Flutter layout model in a single pass—Gio implements proper layout.
- This reification also allows widgets to memoize their representation (e.g., to avoid expensive layouting or text-shaping)
- Gio event handling. Ops is also used to register for events.