Commit Graph
31 Commits
Author SHA1 Message Date
itsmattkc d0bd5e2142 nodeparamview: fix crash when inserting color keyframe 2021-05-26 17:03:49 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 9328539373 slider: reworked sliderbase and derivatives
Mostly cleaning up code, SliderBase was fairly messy.
2021-04-17 12:49:21 +10:00
Thomas Wilshaw 139adbdb31 Cleanup for merge. 2021-04-14 12:48:44 +01:00
ThomasWilshaw ecce4d1ae2 Merge branch 'master' into rational_slider 2021-04-12 10:42:26 +01:00
Thomas Wilshaw b9ebc6be18 Fix the easy comments. 2021-04-12 10:14:18 +01:00
itsmattkc 893adc3d72 implemented value node
Also implements changes necessary to support an input data type
that changes. Much of that foundation was built in
`nodearchchanges`, but hadn't been finalized. This commit
finalizes and provides a reference implementation/test with the
"Value" node.

Fixes #1443
2021-04-12 16:37:26 +10:00
Thomas Wilshaw 76f8c12a96 Initilise timbase when creating nodeparamviewitem 2021-04-08 11:26:37 +01:00
Thomas Wilshaw f9b423f731 Link RationalSlider timebase with nodeparamview 2021-04-08 11:26:36 +01:00
itsmattkc 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc ad4b83a098 new undo system
Also enables undoing when working with node input arrays
2021-01-29 16:10:34 +11:00
itsmattkc 181235f6ce began new infrastructure
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.

Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc 2c4f781e13 paramview: discard scroll events on widgets 2020-11-23 12:01:21 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc 3436740d23 gizmos: consolidated input param dragging code into reusable class 2020-05-07 14:41:50 +10:00
itsmattkc c387ce1cd7 polygon node: early crude implementation 2020-05-05 00:22:49 +10:00
itsmattkc 53ae25a7cb nodes: optimize node graph changes by only updating from inputs that changed
A huge optimization that ensures only the parts of a node graph that have
changed get pushed to the renderer. For thread-safety, the node graph is
copied elsewhere so that users can make changes asynchronously and the graph
can update when its threads are ready. Up until now, if an input value changed,
every node's values would be re-copied, or worse, if a connection was changed,
the entire graph would be recopied. This has been negligible in testing since
we've been largely testing with small graphs, but for massive projects, it's
important that this be as optimized as possible.
2020-04-26 04:16:15 +10:00
itsmattkc 1aa87cbda6 various: encapsulate all code in the olive namespace to avoid name collisions
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc 0801488c89 nodeparamviewwidgetbridge: implemented setting and receiving color 2020-04-04 04:16:49 +11:00
itsmattkc 3399227b3a keyframeview: implemented transforming keyframe times to and from sequence time
Since the node graph can have transform cross nodes, input keyframes may occur
at a different times requiring transforming between sequence time and media
time. This commit implements such a mechanism in all UI classes that need it.
2020-03-26 19:17:46 +11:00
itsmattkc 3f043496f3 nodeparam: allowed for dynamic nodeparam property change to affect UI widgets
immediately
2020-03-07 02:16:48 +11:00
itsmattkc c168bf1a80 nodeparam: implemented parameters that allow arbitrary properties to be set
for UI representations

Allows properties to be set without adding explicit extra members to NodeInputs.
Crucially this means parameters like slider value representations (percent,
decibel, etc.) can be set from NodeInputs now.
2020-03-07 01:21:36 +11:00
itsmattkc 245aa44efc implemented support for multilayered keyframes
This adds the ability to keyframe more than one value per input (e.g. a vec2,
vec3, etc.) so that you can animate, for example, an X axis separately from a
Y axis.
2019-12-30 04:47:23 +11:00
itsmattkc 855fe5e93f fully implemented setting keyframes and standard values in the NodeParamView
Widget now supports creating keyframe and standard values, supports dragging
from sliders (not creating an undo command for each drag), and everything is
undoable.
2019-12-27 14:51:21 +11:00
itsmattkc 520b8b46fa place timecode conversion functions into a Timecode class rather than an olive namespace
Code cleanup and improvement.
2019-12-26 17:20:58 +11:00
itsmattkc 23001386d0 implemented base UI keyframe functionality
This commit implements much of the base functionality for creating and
destroying keyframes in the UI. Not complete yet, but getting there.
2019-12-26 16:32:08 +11:00
itsmattkc b9ce02a0ec separated setting time and processing node functions 2019-08-27 23:38:24 +10:00
itsmattkc 0a56dbe429 allow nodeui to modify several node values at once 2019-08-09 13:21:20 +10:00
itsmattkc 298ae2f36c mocked up a prototype of decoding data into the node graph 2019-08-04 14:45:17 +10:00
itsmattkc fb8d5df24b created widget bridge 2019-08-04 10:00:29 +10:00