Commit Graph

338 Commits

Author SHA1 Message Date
Michael Freno
ec73d8c7c8 cleaned up rendering mode swapping 2025-12-12 00:08:25 -05:00
Michael Freno
9d8f6aa60d fix clear focus loop 2025-12-11 22:19:10 -05:00
Michael Freno
3498ed7f24 consolidation of focused element 2025-12-11 16:50:35 -05:00
Michael Freno
56c8e744d5 hover&unhover events 2025-12-11 13:07:41 -05:00
Michael Freno
0bceade7d5 starting mode escape hatch 2025-12-11 11:37:20 -05:00
Michael Freno
eaf7383b8f meta 2025-12-11 07:03:06 -05:00
Michael Freno
0d35825913 fix grammar 2025-12-07 11:32:43 -05:00
github-actions[bot]
a318f71faa Archive previous documentation and generate v0.6.1 docs [skip ci] 2025-12-07 16:23:59 +00:00
Michael Freno
f1b00710f2 v0.6.1 release 2025-12-07 11:23:36 -05:00
Michael Freno
392edc21f7 update to borders adding varying widths 2025-12-07 11:23:00 -05:00
Michael Freno
609a54b4f1 flesh out Calc, with lsp support 2025-12-07 11:14:12 -05:00
Michael Freno
4f60e00b2e formatting 2025-12-07 08:46:39 -05:00
Michael Freno
5ef00fe65e remove and update 2025-12-07 01:01:59 -05:00
github-actions[bot]
8765e97067 Archive previous documentation and generate v0.6.0 docs [skip ci] 2025-12-07 05:58:03 +00:00
Michael Freno
5dcb2922f4 v0.6.0 release 2025-12-07 00:57:40 -05:00
Michael Freno
502eeb1e11 calc module 2025-12-07 00:56:55 -05:00
Michael Freno
f532837cf3 luarocks stuff 2025-12-06 16:21:03 -05:00
Michael Freno
da69d8bd4f setup for luarocks releases 2025-12-06 14:19:00 -05:00
Michael Freno
5088123ad4 update install instructions 2025-12-06 13:53:43 -05:00
Michael Freno
e833d2b0bf update docs quick start 2025-12-06 13:49:10 -05:00
Michael Freno
c2cf29eab8 readme clarifications 2025-12-06 13:43:35 -05:00
Mike Freno
d8e160f083 Fix videos 2025-12-06 13:37:19 -05:00
Mike Freno
485ac34738 Update README.md 2025-12-06 13:29:06 -05:00
Michael Freno
41a964595f update readme with visuals 2025-12-06 13:11:05 -05:00
github-actions[bot]
4279da0e26 Archive previous documentation and generate v0.5.4 docs [skip ci] 2025-12-06 17:00:21 +00:00
Michael Freno
c222a5a6a7 v0.5.4 release 2025-12-06 11:59:59 -05:00
Michael Freno
b790fb1d32 fix text selection in immediate mode 2025-12-06 11:59:00 -05:00
Michael Freno
63c31aed16 fixed regression 2025-12-06 11:15:08 -05:00
Michael Freno
986887c2cc better controls over themed scrollbars 2025-12-06 11:11:15 -05:00
Michael Freno
b18592f358 move old systemout to use errorhandler 2025-12-06 10:43:43 -05:00
Michael Freno
c7b242a1c8 v0.5.3 release 2025-12-06 10:37:07 -05:00
Michael Freno
9c29bbe363 scrolling fixed for immediate mode 2025-12-06 10:37:07 -05:00
Michael Freno
f4dc92907c scrolling improvements 2025-12-06 10:37:07 -05:00
github-actions[bot]
c59f7c5661 Archive previous documentation and generate v0.5.2 docs [skip ci] 2025-12-05 20:03:26 +00:00
Michael Freno
d126de6078 v0.5.2 release 2025-12-05 15:03:07 -05:00
Michael Freno
f3a65871da include FFI module 2025-12-05 15:01:17 -05:00
Michael Freno
1855e7f0f3 removed unneeded md 2025-12-05 14:54:26 -05:00
Michael Freno
abe34c4749 Implement algorithmic performance optimizations
Implemented high-impact optimizations from PERFORMANCE_ANALYSIS.md:

1. Dirty Flag System (30-50% fewer layouts):
   - Added _dirty and _childrenDirty flags to Element module
   - Elements track when properties change that affect layout
   - LayoutEngine checks dirty flags before expensive layout calculations
   - Element:setProperty() invalidates layout for layout-affecting properties

2. Dimension Caching (10-15% faster):
   - Enhanced _borderBoxWidth/_borderBoxHeight caching
   - Proper cache invalidation in invalidateLayout()
   - Reduces redundant getBorderBox calculations

3. Local Variable Hoisting (15-20% faster):
   - Hoisted frequently accessed properties outside tight loops
   - Reduced table lookups in wrapping logic (child.margin cached)
   - Optimized line height calculation (isHorizontal hoisted)
   - Heavily optimized positioning loop (hottest path):
     * Cached element.x, element.y, element.padding
     * Hoisted alignment enums outside loop
     * Cached child.margin, child.padding per iteration
     * 3-4 table lookups → 2 lookups per child

4. Array Preallocation (5-10% less GC):
   - Preallocated lineHeights with table.create() when available
   - Graceful fallback to {} on standard Lua

Estimated total gain: 40-60% improvement (2-3x faster layouts)
All 1257 tests passing. Zero breaking changes.

See ALGORITHMIC_OPTIMIZATIONS.md for full details.
2025-12-05 14:43:46 -05:00
Michael Freno
f785760e18 Merge luajit-ffi-optimizations into main
Adds FFI module with object pooling and batch operations.
Provides 5-10% performance gains with graceful Lua fallback.
Foundation for future optimizations documented in PERFORMANCE_ANALYSIS.md
2025-12-05 14:35:42 -05:00
Michael Freno
4652f05dac Add LuaJIT FFI optimizations for memory management
- New FFI module with object pooling for Vec2, Rect, Timer structs
- Integrated FFI into LayoutEngine, Performance, and Color modules
- Graceful fallback to standard Lua when LuaJIT unavailable
- Added ffi_comparison_profile.lua for automated benchmarking
- Comprehensive documentation of gains and real bottlenecks

Reality: 5-10% performance improvement (marginal gains)
FFI targets wrong bottleneck - real issue is O(n²) layout algorithm
See PERFORMANCE_ANALYSIS.md for high-impact optimizations (2-3x gains)
2025-12-05 14:35:37 -05:00
Michael Freno
ddb708a920 fixed listed changes in release 2025-12-05 11:58:13 -05:00
Michael Freno
8c7d107895 v0.5.1 release 2025-12-05 11:52:30 -05:00
Michael Freno
ae2d28f6b1 Adjust autosizing to better account for text wrapping. 2025-12-05 11:52:30 -05:00
github-actions[bot]
873299833b Archive previous documentation and generate v0.5.0 docs [skip ci] 2025-12-05 16:44:31 +00:00
Michael Freno
58c750108a v0.5.0 release 2025-12-05 11:44:11 -05:00
Michael Freno
7883f914d9 blur uses radius instead of intensity 2025-12-05 11:31:52 -05:00
Michael Freno
3eb5b12240 update release messages 2025-12-04 23:08:52 -05:00
Michael Freno
a00734f648 v0.4.3 release 2025-12-04 20:34:21 -05:00
Michael Freno
61500f9131 added theme state locks 2025-12-04 20:34:21 -05:00
github-actions[bot]
2554d76a84 Archive previous documentation and generate v0.4.2 docs [skip ci] 2025-12-04 05:19:26 +00:00