summaryrefslogtreecommitdiff
path: root/apps/web/src/services/renderer/compositor/frame-descriptor.ts
Commit message (Collapse)AuthorAgeFilesLines
* feat: lens effects tab, standalone motion effects, clip/asset rename, ↵cashmere2026-08-091-5/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | preview popout - New Lens category in the assets panel: Blur, Motion Blur, Zoom In/Out, Pan x4, Shake, Pulse, Spin, Custom Zoom. EffectDefinition gains a category field; tabs with an empty category are hidden, and the properties-panel 'Open effects' button opens the first non-empty one. - Motion effects work standalone: dropping them on the timeline creates an effect-track element that animates (scale/translate/rotate) every track below it, computed purely in the TS frame descriptor - no wasm changes, identical in preview and export. supportsStandalone removed. - Motion Blur: directional gaussian smear (amount + angle) reusing the existing WGSL shader with arbitrary u_direction. - Custom Zoom: start/end scale params (keyframable clip-level). - MotionOffset gains optional rotate, accumulated clip-level and applied to standalone layer quads via rotationDegrees. - Rename clips (timeline context menu) and media assets (media panel context menu) via a shared RenameDialog; asset rename persists through storageService with rollback on error. - Preview pops out into a Document Picture-in-Picture window and docks back; button hidden where the API is unsupported. - Export keeps running when the export popover is closed; only the explicit Cancel button aborts. - Captions and Adjustment tabs removed from the assets panel.
* fix: address review findings in masks substrateMaze Winther2026-05-021-0/+4
| | | | | | | | | | | | | | | - Remove dead ternary in getPreferredEdges (always returned undefined; the all-false object was never reached by Object.values().some(Boolean)) - Document why drawWithFeather descriptors zero the feather field in the compositor (analytical renderer handles softness itself; zeroing prevents a second JFA feather pass) - Remove legacyType from V30→V31 migration (not consumed anywhere; a down-migration can map type:"freeform" back to "custom" directly) - Add V30→V31 test coverage: skip-guard branches, freeform passthrough, elements without a masks array - Add snap tests for vertical-edge (bottom) and uniform-scale handle paths Co-authored-by: Cursor <cursoragent@cursor.com>
* refactor: split builtin and freeform masksMaze Winther2026-05-021-2/+2
| | | | Made-with: Cursor
* refactor: make mask renderer dispatch explicitMaze Winther2026-05-021-57/+63
| | | | Made-with: Cursor
* chore: switch from biome to eslint + prettier; fix ton of lint issuesMaze Winther2026-05-021-16/+7
|
* perf: improve rendering performance by ~20xMaze Winther2026-04-221-186/+174
|
* chore: formattingMaze Winther2026-04-221-10/+19
|
* refactor: restructure files to their domains, new preview overlay system, ↵Maze Winther2026-04-201-3/+3
| | | | and dep graph
* feat: text / custom masks, fix preview pan, refactor selectionMaze Winther2026-04-151-6/+30
|
* refactor: rendering pipelineMaze Winther2026-04-131-0/+559
Made-with: Cursor