Most GUI systems use change events, dirty rectangles, and explicit
data models [1] to synchronize state. These increase runtime
efficiency at the cost of duplicate state and boilerplate code, which
made sense 30 years ago. Today, real-time interactive programs like
games and CAD run on fast machines. Conserving GUI computation at the
expense of code complexity is now a poor tradeoff.
We created a new GPU-efficient, themed extension to Barrett's
Immediate Mode GUIs. Ours has a stateless data model where universal
pointers directly connect application variables to controls. For
example, there is no "checkbox.getValue()"; instead, a checkbox is
bound to a boolean variable at creation. This eliminates most
events. To further eliminate boilerplate, we automatically manage GUI
memory and layout. In terms of Model-View-Controller, we have a
transparent model, a smart controller , and a very fast view. These
simple changes make an API remarkably easier than MFC, Swing, and
WxWidgets while naturally integrating with 3D rendering.