summaryrefslogtreecommitdiff
path: root/src/common/loop.c
AgeCommit message (Collapse)Author
13 daysUnify surface input queue, frame clock, and optimize scaling and timersBerke Güzel
13 daysperf: optimize hot-path loops, data structures, and cache localityBerke Güzel
13 daystimers: drop retired surface timer idsBerke Güzel
yasl_surface_del_timer zeroed its entry and kept it. A one-shot surface timer that fired stayed in the surface's id list until the surface was destroyed. A client that re-arms a one-shot timer, such as a cursor blink, grew the list without bound, and each delete scanned all of it. Delete now removes the entry. Before the list grows, add drops the ids that the loop has retired. The list holds only armed timers. Delete now returns false for a timer that already retired, as yasl_loop_del_timer does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
13 daysrefactor: simplify public API and isolate native extensionsBerke Güzel
Separate loop/timer and native interoperability APIs from the portable surface header. Unify dispatch, geometry queries, and timer callbacks; keep framebuffer bookkeeping and frame clocks private, and hide implementation symbols. Update backends, documentation, examples, and API/integration coverage. Verify exports, strict C/C++ installed consumers, and normal plus ASan/UBSan suites.
13 daysfeat: add SDL3-style surface, display, and loop timer API for X11, Wayland, ↵Berke Güzel
and Cocoa
13 daysMerge branch 'backend-selection' into mainBerke Güzel
- Implement runtime backend selection (Wayland, X11, Cocoa) - Add native X11 backend with clipboard, keyboard, mouse, and placement - Integrate multi-backend integration tests running under Weston and Xwayland - Retain zero-hole struct packing, branchless ALU/LUT primitives, and paced event loop
14 dayscore: optimize struct layouts, eliminate branches, and fix event loop dispatchBerke Güzel
- Fix Wayland event loop lockout by properly decoupling read arming and adding poll-backed dispatching - Support standalone display lifecycle without requiring caller to manage a loop - Eliminate alignment holes across yasl_surface, yasl_display, seat, touch_point, and conn_drag using pahole - Replace branching state/button decoders with compile-time locked LUTs and branchless bitwise operations - Accelerate UTF-8 validation with 64-bit word scanning for ASCII runs
14 daysinitial: Yet Another Surface Library (YASL) 0.1.0Berke Güzel
A minimal, modern desktop window surface library in C. Supports Wayland on Linux and Cocoa/Metal on macOS with presentation timing, fractional scaling, IME, and CSD.