Graphite
Graphite copied to clipboard
Add animation channels
This PR is part of my work on a proposed animation system for Graphite.
In specific, this should add features to the node system that will be used for animation:
- [x] Add animation-related structs and linear interpolation of values
- [x] Add linear & Bezier easing
- [x] Add animation channel nodes that use
EditorApito dynamically update their value - [x] Add
AnimationMessageHandlerand allow it to set animation-related values that are propagated toEditorApi - [x] Implement animation playback by continuously sending
AnimationMessage::NextFramemessages ineditor_api.rs- [x] Pass
AnimationConfigtoeditor_api.rsfor variable frame rate and optimisations
- [x] Pass
- [x] Add keyboard shortcuts to control playback
- [x] Fix bugs
Pasting this here for the record from my Discord message last week, as it still needs to be completed:
Please bind Pause/Play toggle to Shift+Space, setting the playback time to 0 with Ctrl+Shift+LeftArrow, and stepping left and right one frame with Ctrl+Left/Right arrow keys. And remove all the F* key bindings.
I'll also mark this as a draft because it requires changes from @TrueDoctor to fix the inlined compilation issue that makes this not work.