Mike-Solar
37845302f9
engine: begin the liboakengine C ABI facade with the IPC subsystem
...
- oakengine/export.h establishes the OAKENGINE_API visibility macros;
include/oakengine/ipc.h is the first pure-C surface (41 functions:
shm, frame slot pool, and the worker IPC messages as POD<->JSON
build/parse), implemented in engine/src/capi/
- the IPC implementations move to engine/src/oliveimpl (namespace
olive::engine::internal::ipc); engine/render/ipc/*.h are rebuilt as
same-name/same-API wrapper classes forwarding across the C boundary
- FrameSlotMeta is shared with the C header verbatim so the app/worker
wire format (v1) is bit-identical; static_asserts pin sizeof and
field offsets
- spscringbuffer.h moves to include/oakengine/ as an inline-only
header (no symbols, not ABI)
- new pure-C test oakengine_ipc_test (make_oakengine_test, no GL)
covers shm, frame pool, message round-trips and the layout asserts;
full gtest suite stays green (1986 tests)
2026-07-20 04:12:58 +08:00
..
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-04-12 01:26:41 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 03:23:28 +08:00
2026-07-19 21:45:51 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 21:45:51 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-17 13:07:56 +08:00
2026-07-19 21:45:51 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 01:04:57 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 21:44:34 +08:00
2026-07-13 15:34:11 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 21:43:58 +08:00
2026-07-19 21:45:51 +08:00
2026-07-19 21:43:58 +08:00
2026-07-19 16:10:54 +08:00
2026-07-13 15:34:11 +08:00
2026-07-20 00:52:12 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 00:52:12 +08:00
2026-07-19 21:45:51 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 00:52:12 +08:00
2026-07-20 00:52:12 +08:00
2026-07-20 00:52:12 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-04-12 01:08:22 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-01-10 18:56:58 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 02:05:01 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 21:43:58 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 22:12:29 +08:00
2026-07-19 22:12:29 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 04:12:58 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 21:45:51 +08:00
2026-07-19 22:12:29 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-13 15:34:11 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 00:52:12 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 22:12:29 +08:00
2026-07-19 21:44:34 +08:00
2026-04-12 01:26:41 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-19 16:10:54 +08:00
2026-07-20 00:52:12 +08:00
2026-07-19 16:10:54 +08:00