Mike-Solar
eb634b53ef
R7: pure C ABI display boundary + engine visibility closure
...
R7-A (Qwen 3.8 Max): oakengine/display.h rewritten to the POD contract
from r7-pure-abi-plan.md - oak_video_params everywhere, opaque
texture/frame handles with retain/free protocol (engine-heap control
blocks), OakSharedBuffer refcounted wrapper for the QVariant playback
path. All TexturePtr/FramePtr gone from app (47 sites).
R7-B (Qwen 3.8 Max): liboakengine.so exports 3486 -> 19 C++ symbols
(version script oakengine.ver: oakengine_* plus the documented
oakgl/oakvulkan dlopen plugin ABI). oakengine-obj OBJECT library feeds
both the shared lib and the test binaries (-rdynamic so dlopen'd
backends resolve engine objects).
Fix (Kimi K3): producer/consumer type mismatch - viewerdisplay
unpacks OakSharedBufferPtr but viewer.cpp pushed raw void* handles,
so no frame ever reached the display widget (all 5 vulkan viewer
tests timed out with 'never received a texture'). Producers now wrap
with oak_make_shared_frame / oak_make_shared_texture(retain).
Verified: build 0 errors, ctest 45/45, nm U _ZN5olive = 0 in
oak-editor/oak-render-worker/oak-cli, 19 exported C++ symbols in
liboakengine.so (all documented plugin ABI).
2026-07-27 00:54:46 +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-27 00:54:46 +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-26 22:43:32 +08:00
2026-07-26 22:43:32 +08:00
2026-07-26 22:43:32 +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-26 22:43:32 +08:00
2026-07-26 22:43:32 +08:00
2026-07-19 16:10:54 +08:00
2026-07-13 15:34:11 +08:00
2026-07-26 22:43:32 +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-26 22:43:32 +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-26 22:43:32 +08:00
2026-07-19 16:10:54 +08:00
2026-07-26 22:43:32 +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-26 22:43:32 +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-26 22:43:32 +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-26 22:43:32 +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-26 22:43:32 +08:00
2026-07-26 22:43:32 +08:00
2026-07-19 16:10:54 +08:00
2026-07-26 22:43:32 +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-26 22:43:32 +08:00
2026-07-26 22:43:32 +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-26 22:43:32 +08:00
2026-07-20 18:55:04 +08:00
2026-07-20 18:55:04 +08:00
2026-07-19 16:10:54 +08:00
2026-07-26 22:43:32 +08:00
2026-07-19 16:10:54 +08:00
2026-07-26 22:43:32 +08:00
2026-07-26 22:43:32 +08:00
2026-07-26 22:43:32 +08:00
2026-07-20 00:52:12 +08:00
2026-07-26 22:43:32 +08:00