Mike-Solar
e9f173916f
engine: complete C ABI facade (liboakengine oakengine_* surface)
...
The full pure-C facade used by the app: node/project/timeline/viewer/
undo/task/events/serializer/playback/preview/renderer/gizmo/color/
audio/footage/proxy/encoding/exporter/config/disk/ipc/plugin/worker
families, plus undo-group semantics, display renderer handles,
NodeFactory accessors, and per-family pure-C engine tests.
2026-07-26 22:43:00 +08:00
Mike-Solar
5db7aac058
engine: add init/project/timeline families to the C ABI facade
...
- oakengine_init/shutdown with HEADLESS/RENDER flags: headless boots
Config, NodeFactory, ColorManager, task/conform/proxy/frame/disk
managers and the serializer (plus an offscreen QGuiApplication that
Qt requires for QAction); RENDER adds RenderManager. Idempotent and
upgradable, no UI anywhere
- oakengine_project_* (17): create/load/save, modified state, name,
footage enumeration with online check, undo/redo, sequence access
- oakengine_sequence_* (13): name, length (seconds and rational),
frame rate, per-type track counts, playhead (timestamp and seconds),
work area, markers; sequences are borrowed handles owned by their
project
- pure-C oakengine_init_test covers init idempotency, save/load
round-trip through a real fixture project, footage online checks,
timeline parameters, and NULL/bounds safety - no GL required
2026-07-20 04:54:45 +08:00