Files
oak-editor/crates/oak-core
Mike-Solar c9ba8695fc windows: no console window for the release app and its children
- the oak-editor release build lacked the
  `windows_subsystem = "windows"` crate attribute, so launching the
  installed app opened a console window next to the editor (debug builds
  keep the console so `cargo run` shows logs);
- oak-worker, the OFX host and the ffmpeg/ffprobe helpers are
  console-subsystem binaries spawned by the GUI app, so each spawn now
  carries CREATE_NO_WINDOW through the shared
  oak_core::miscutils::hide_console_window helper (a no-op off Windows).
2026-09-24 19:39:16 +08:00
..

oakcore-rs — Rust value-type foundation for the oak Rust modules

Status: declaration draft for review (no implementation, not wired into any build). Companion to crates/oaknode and crates/oakrender.

Rust reimplementation of the oakcore C++ value types that cross every module boundary: Rational, TimeRange, TimeRangeList, pixel/sample format enums. These are pure data types with value semantics — the one place where duplicating the C++ layout discipline in plain Rust is both safe and required (a Rust crate cannot hold C++ objects by value).

Rules:

  • Bit-exact arithmetic compatibility with olive::core::Rational (reduction, overflow behavior, comparison) — the golden rule is the C++ test-suite semantics, not "ideal" rational math.
  • #[repr(C)] only where a type crosses the C ABI; everything else is plain Rust with Copy + Clone + Eq + Hash.
  • No I/O, no allocation in arithmetic paths, no panics on degenerate input (denominator zero follows the C++ sentinel semantics).