Mado is an open-source library that brings advanced window system features to smaller devices. With embedded systems now featuring high-resolution displays and powerful CPUs, sophisticated graphical user interfaces can be realized even in the smallest devices. Although CPU power has increased dramatically within a given power budget, these small systems still face severe memory constraints. This unique environment presents interesting challenges for graphical system design and implementation.
Drawing from ideas used in modern window systems for larger environments, Mado provides overlapping translucent windows, anti-aliased graphics, drop shadow, animations, and scalable fonts within a memory budget of several kilobytes. Mado also supports TinyVG, enabling efficient rendering of vector graphics with a minimalistic set of drawing functions, without compromising visual quality. Mado embeds window management directly into the toolkit, supporting resizing, moving, and minimizing without external control. The toolkit automatically constructs suitable decorations for each window as regular toolkit objects, and the normal event dispatch mechanism directs window management activities.
This highly integrated architecture empowers developers to build visually appealing and interactive interfaces even within tight memory constraints, all while maintaining a lean system structure.
Attendees can expect to learn:
- Key techniques for achieving functionalities of modern window systems without relying on FPU, 2D accelerators, or GPU hardware.
- Improved methods for Bézier curve computation.
- Practical methods for implementing blur and visual effects on resource-limited platforms.
- How to build maintainable and extensible interactive components using a hierarchical event model.
Mado: https://github.com/sysprog21/mado