How yappologistic/cui works
CUI is an immediate-mode C99 UI library: an application describes its interface each frame, CUI handles layout and input, then produces draw data for a renderer and window or browser surface. Its broad component catalog includes data, charts, planning, code, developer tools, and conversation features. The graph separates the public component API, specialized component domains, shared internals, native runtime, and browser showcase. Relationships for unsampled subsystems are included only where the README documents capabilities; their internal calls are not inferred.
Main entry points: cui.h Components API · web_host.c WebAssembly host · app.js Web gallery app · cui_render.h Renderer API
Components 26
UI API
- Components API
include/cui/cui.h - App API
include/cui/cui_app.h - Renderer API
include/cui/cui_render.h
Component domains
- Actions and controls
src/cui_actions.c - Text and editing
src/cui_textedit.c - Data views
src/cui_treetable.c - Charts and viz
src/cui_viz.c - Planning tools
src/cui_planning.c - Developer tools
src/cui_devtools.c - Conversation and AI
src/cui_ai.c - Flame graph
src/cui_flame.c
UI engine
- Shared UI internals
src/cui_internal.h - Embedded fonts
src/cui_font_data.c - Context and frames
src/cui_core.c - Software renderer
src/render/cui_render_sw.c - OpenGL renderer
src/render/cui_render_gl.c
Native runtime
- App frame loop
src/platform/cui_app.c - Window backends
src/platform/cui_platform.h
Browser runtime
- WebAssembly host
web/host/web_host.c - Web host interface
web/host/web_host.h - Web gallery app
web/site/js/app.js - Live previews
web/site/js/preview.js - Wasm loader
web/site/js/runtime.js - WebGL renderer
web/site/js/gl.js - Dither artwork
web/site/js/dither.js
Other components
- C app developer
Connections 27
- C app developer → App API: creates app
- C app developer → Components API: describes UI
- App API → App frame loop: runs frames
- App frame loop → Window backends: uses backend
src/platform/cui_app.c - App frame loop → Context and frames: frames UI
- Components API → Actions and controls: offers controls
- Components API → Text and editing: offers editing
- Components API → Data views: offers data views
- Components API → Charts and viz: offers charts
- Components API → Planning tools: offers planning
- Components API → Developer tools: offers dev tools
- Components API → Conversation and AI: offers chat
- Developer tools → Flame graph: includes flame graph
- Components API → Shared UI internals: uses shared engine
src/cui_internal.h - Embedded fonts → Shared UI internals: provides font data
src/cui_font_data.c - Context and frames → Shared UI internals: uses internals
- Context and frames → Renderer API: produces draw data
- Renderer API → Software renderer: supports software rendering
include/cui/cui_render.h - Renderer API → OpenGL renderer: supports OpenGL rendering
include/cui/cui_render.h - WebAssembly host → Web host interface: uses interface
web/host/web_host.c - WebAssembly host → Software renderer: renders pixels
web/host/web_host.c - Web gallery app → Live previews: mounts previews
web/site/js/app.js - Web gallery app → Wasm loader: loads modules
web/site/js/app.js - Web gallery app → Dither artwork: uses artwork
web/site/js/app.js - Live previews → Wasm loader: loads modules
web/site/js/preview.js - Live previews → WebGL renderer: renders with
web/site/js/preview.js - WebAssembly host → Wasm loader: exports pixels to
web/host/web_host.c