UltraCanvas is the most important module of ULTRA OS as it covers all interactions between the OS and the user.
UltraCanvas is designed to be a cross-plattform GUI to minimize programmers workload.
UltraCanvas Goal
To empower developers and reduce friction in cross-platform development, UltraCanvas integrates and extends reliable open source libraries, forming a cohesive and modular framework that satisfies the diverse needs of modern software development.
Create a cross-platform graphical system module that can manage windows, render 2D/3D graphics, and support bitmap/vector rendering across all major operating systems, starting with Linux.
UltraCanvas serves as the comprehensive display and interaction engine for both the operating system and applications. It autonomously manages all redraw requests and is responsible for rendering UTF-8 text, PDFs, OS-native UI elements, bitmaps, vector graphics, 3D scenes, and video content. Mouse input, gesture events, and window updates are processed seamlessly, ensuring a consistent and responsive user interface across platforms.
UltraCanvas handles every visual component within a window, including toolbars, dropdown fields, menus, input fields, layout containers, and other UI "furniture." It also supports direct user interaction, such as text selection, object picking, dragging, rotating, and scaling—both in 2D and 3D environments.
File format detection drives the rendering logic, allowing UltraCanvas to support non-image formats like PDF, EML, HTML, or LaTeX by transforming their contents into visual elements. The plugin system enables extendable rendering capabilities based on file type identifiers.
In addition to raw element rendering, UltraCanvas offers high-level display templates that allow complex visual arrangements—such as list views with icons, labels, and status indicators—without requiring manual layout coding.
From the application developer’s perspective, the main task becomes handling user events such as mouse clicks, drags, keyboard input, and scheduled background tasks (zero events), while UltraCanvas takes care of all graphical rendering and event propagation.
To empower developers and reduce friction in cross-platform development, UltraCanvas integrates and extends reliable open source libraries, forming a cohesive and modular framework that satisfies the diverse needs of modern software development.
UltraCanvas is the vehicle to transport the message of a cross-platform GUI. Applications that are written for UltraCanvas should run without further changes on all supported OS.
Scope Overview
01.
Cross-Platform Core
Write Once, Run Everywhere Single codebase targets Windows, Linux, macOS, and future platforms. OS-specific implementations contained in separate folders with unified API abstraction.
02.
Universal Rendering Engine
2D, 3D, Vector & Media Support Unified rendering system supporting bitmaps, vector graphics, 3D models, video playback, and styled text with automatic context management.
03.
Comprehensive UI Toolkit
Professional Interface Components Complete set of modern UI elements: buttons, dropdowns, tree views, split panes, menus, tooltips, styled text, and advanced layout containers.
04.
Advanced Layout System
Intelligent Component Arrangement Flexible layout engine with grid, vertical, horizontal, dock, flow, and absolute positioning. Includes flex properties, constraints, and responsive design.
05.
Smart Event System
Unified Input Handling Cross-platform event dispatcher supporting mouse, keyboard, touch, and IME input with proper focus management and delegation patterns.
Multimedia Integration Specialized elements for video playback with controls, 3D model display with camera manipulation, and audio players with visualization.
08.
Modular Architecture
Organized & Maintainable Clean separation of concerns with core framework, platform implementations, UI components, and plugins in structured directories.
09.
Performance Optimized
GPU Accelerated Rendering Hardware acceleration via OpenGL/Vulkan backends, double buffering, resource caching, and efficient draw call batching.
10.
Developer Friendly
Rapid Development Tools Intuitive API design, comprehensive documentation, factory functions for easy component creation, and consistent naming conventions.
11.
Styling & Theming
Visual Customization Flexible styling system with colors, fonts, gradients, borders, and visual effects. Runtime theme switching and custom appearance options.
12.
Multi-Window Support
Complex Applications Advanced window management with automatic context switching, per-window rendering, and seamless multi-window UI element sharing.
13.
Object Manipulation
Interactive Graphics Comprehensive selection system with rotation markers, scaling handles, cropping tools, and customizable manipulation behaviors
14.
Graphics Primitives
Drawing Foundation Complete set of drawing primitives: rectangles, circles, lines, paths, gradients, with stroke and fill options plus transformation support.
15.
Data Visualization
Charts & Diagrams Built-in support for data visualization with extensible chart types, diagram rendering, and integration with data processing libraries.
16.
Memory Safe
Modern C++ Practices RAII resource management, smart pointers, exception safety, and automatic cleanup with robust error handling throughout.
17.
Future-Ready Architecture
Expandable Platform Designed for easy extension to new platforms (Android, iOS, Web), rendering backends, and emerging UI paradigms.