summaryrefslogtreecommitdiff
path: root/rust/crates
Commit message (Collapse)AuthorAgeFilesLines
* feat: port domain crates to Rust (session 1 complete)cashmere2026-07-2891-231/+13036
| | | | | | | | | | | | | | | | | | | | | All green: cargo test --workspace (~300 tests, 0 failures). - timeline (45): placement, resize/ripple, split, snap, retime, audio separation, scene helpers - animation (73): bezier solver, channel sampling, keyframe ops, split/clamp/clone, param definitions - commands (9): Command trait, BatchCommand, history, 19 concrete commands, freeze-frame port 1:1 - audio (22): audible collection, range mixing, mastering limiter, rms/peak buckets - text (19): cosmic-text layout/measure/raster, backgrounds, decorations - graphics (52): full CSS gradient parser, tiny-skia raster, 4 shape definitions - effect-defs (16): blur definition, registry, pass resolution - mask-defs (19): all 9 mask renderers via tiny-skia - renderer (6): node model + scene builder port - desktop: GPUI projects screen wired to ProjectStore - scene: factory (web defaults: v32, Main Track, 1920x1080, 30fps)
* feat: GPUI desktop port foundationcashmere2026-07-28109-0/+10000
| | | | | | | | | | | | | | | | | - scene crate: full project/scene/element model, serde round-trip proven against the web SerializedProject shape - transfer crate: .ocp zip container, cross-compat with web fflate archives proven in both directions - storage crate: filesystem project store replacing IndexedDB, .ocp import/export - media crate: ffmpeg-next 8 decoder (frames, audio, thumbnails, waveform summaries) - playback crate: wall-clock anchored, frame-rounded playback clock - gpu crate: native texture readback; compositor renders headless offscreen on Vulkan (spike test) - flake devshell: rust toolchain, GPUI native deps, ffmpeg dev, bindgen clang args; GPUI hello-world builds - port plan in notes/gpui-port.md
* refactor: centralize editor interaction stateMaze Winther2026-04-252-64/+76
| | | | | | | | Move timeline and preview gestures into dedicated controllers so hooks stay thin around editor state and DOM events. This also routes drag and playback synchronization through manager APIs and reuses persistent wasm surfaces so scrubbing, seeking, and preview rendering stay in sync. Made-with: Cursor
* perf: improve rendering performance by ~20xMaze Winther2026-04-221-1/+9
|
* fix: wasm WebGL only until WebGPU is fixedMaze Winther2026-04-221-9/+10
|
* fix: WebGL frame rendering and opencut-wasm 0.2.8Maze Winther2026-04-194-55/+208
|
* fix: align LayerUniformBuffer to 16 bytes for WebGL compatMaze Winther2026-04-181-0/+2
|
* feat: wasm compositorMaze Winther2026-04-1310-0/+1258
| | | | Made-with: Cursor
* refactor: gpu webgl fallback and batched command encodingMaze Winther2026-04-138-125/+439
| | | | Made-with: Cursor
* refactor: split effects and masks into dedicated rust crates, introduce ↵Maze Winther2026-04-0723-900/+1436
| | | | MediaTime and FrameRate
* feat: migrate GPU renderer from WebGL to wgpu/WASMMaze Winther2026-04-0113-0/+1460
|
* feat: migrate time utilities from typescript to rust WASMMaze Winther2026-03-312-76/+226
|
* feat: add shared Rust crates for cross-platform time utilitiesMaze Winther2026-03-294-0/+350
Introduce `bridge` proc-macro crate with `#[export]` attribute that conditionally applies `wasm_bindgen` for WASM builds, and `time` crate porting all timecode/frame utilities from TypeScript to Rust.