zcatgui/docs/research
reugenio 8adc93a345 feat: zcatgui v0.6.0 - Phase 1 Optimization Complete
Performance Infrastructure:
- FrameArena: O(1) per-frame allocator with automatic reset
- ObjectPool: Generic object pool for frequently allocated types
- CommandPool: Specialized pool for draw commands
- RingBuffer: Circular buffer for streaming data
- ScopedArena: RAII pattern for temporary allocations

Dirty Rectangle System:
- Context now tracks dirty regions for partial redraws
- Automatic rect merging to reduce overdraw
- invalidateRect(), needsRedraw(), getDirtyRects() API
- Falls back to full redraw when > 32 dirty rects

Benchmark Suite:
- Timer: High-resolution timing
- Benchmark: Stats collection (avg, min, max, stddev, median)
- FrameTimer: FPS and frame time tracking
- AllocationTracker: Memory usage monitoring
- Pre-built benchmarks for arena, pool, and commands

Context Improvements:
- Integrated FrameArena for zero-allocation hot paths
- frameAllocator() for per-frame widget allocations
- FrameStats for performance monitoring
- Context.init() now returns error union (breaking change)

New Widgets (from previous session):
- Slider: Horizontal/vertical with customization
- ScrollArea: Scrollable content region
- Tabs: Tab container with keyboard navigation
- RadioButton: Radio button groups
- Menu: Dropdown menus (foundation)

Theme System Expansion:
- 5 built-in themes: dark, light, high_contrast, nord, dracula
- ThemeManager with runtime switching
- TTF font support via stb_truetype

Documentation:
- DEVELOPMENT_PLAN.md: 9-phase roadmap to DVUI/Gio parity
- Updated WIDGET_COMPARISON.md with detailed analysis
- Lego Panels architecture documented

Stats: 17 widgets, 123 tests, 5 themes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 12:45:00 +01:00
..
GIO_UI_ANALYSIS.md style: Use consistent lowercase naming (zcatgui, not zCatGui) 2025-12-09 01:38:36 +01:00
IMMEDIATE_MODE_LIBS.md style: Use consistent lowercase naming (zcatgui, not zCatGui) 2025-12-09 01:38:36 +01:00
LEGO_PANELS_SYSTEM.md feat: zcatgui v0.5.0 - Complete widget library + research docs 2025-12-09 11:00:49 +01:00
SIMIFACTU_ADVANCEDTABLE.md feat: zcatgui v0.5.0 - Complete widget library + research docs 2025-12-09 11:00:49 +01:00
SIMIFACTU_FYNE_ANALYSIS.md style: Use consistent lowercase naming (zcatgui, not zCatGui) 2025-12-09 01:38:36 +01:00
WIDGET_COMPARISON.md feat: zcatgui v0.6.0 - Phase 1 Optimization Complete 2025-12-09 12:45:00 +01:00