Commit Graph
180 Commits
Author SHA1 Message Date
itsmattkc df4138e5be node: provide convenience function for signing hashes with ID 2021-07-29 13:22:40 -07:00
itsmattkc 52c5617159 undo: wrapped redo/undo functions to ensure prepare is called 2021-07-17 00:14:24 -07:00
itsmattkc 8f413d37f0 nodes: copy map when copying node with context 2021-07-16 02:20:59 -07:00
itsmattkc ad8d63d37a nodes: copy position map when copying dep graph 2021-07-16 02:06:37 -07:00
itsmattkc 4bbc75392a nodes: rewrote and simplified length signaling system 2021-07-15 21:00:18 -07:00
itsmattkc 310fd3541a various: greatly simplified job times
Hopefully this doesn't break everything
2021-07-11 23:33:21 -07:00
itsmattkc f14a301ffa nodeview: updates to complete new context paradigm 2021-07-09 18:00:01 -07:00
itsmattkc f0068e8c37 node: added command to remove position from context 2021-05-28 17:53:40 +10:00
itsmattkc 24ce8f8446 remove null context commands 2021-05-27 15:14:28 +10:00
itsmattkc 0ce602c132 Merge branch 'master' into nodeview-redux 2021-05-21 11:13:42 +10:00
itsmattkc 45db6f4596 node: fixed issue with keyframes
Fixes #1634

This is technically the same bug fixed in #1326, just didn't include all the cases I needed to.
2021-05-21 11:10:41 +10:00
itsmattkc 8e9859b2b3 initial commit 2021-05-16 09:58:57 +10:00
itsmattkc 74ad4110be transform: hash the generated matrix
Making an exception for the transform node, we use a slightly
heavier hash to save more rendering time later.

Fixes #1560
Addresses some of #1360
2021-04-22 18:01:26 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
itsmattkc 47c0282865 node: use input limiting array when hashing 2021-04-17 15:04:24 +10:00
itsmattkc 88ebfb9d8e nodefactory: added time remap node 2021-04-17 15:02:56 +10:00
itsmattkc 0d315d668a Revert "node: set ignore node when positioning and shifting recursively"
This reverts commit 6481304206.
2021-04-14 23:10:08 +10:00
itsmattkc 6481304206 node: set ignore node when positioning and shifting recursively 2021-04-14 10:13:45 +10:00
itsmattkc 2ff04f2045 nodes: allow inserting inputs at arbitrary indexes 2021-04-13 13:06:52 +10: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
itsmattkc afedea7342 restore old node positioning code
New code didn't work.
2021-04-11 18:57:42 +10:00
itsmattkc 6c30f8cf46 nodes: implemented infrastructure for caching any node
Not accessible through UI yet, but ported Footage node to it
(previously we used a hack to ensure Footage textures were
cached, now it's a formal infrastructure).
2021-04-11 18:56:39 +10:00
itsmattkc 700b56d43f node: limit bounding rect when detecting node collisions
Hopefully prevents the possibility of an infinite loop.
2021-04-11 12:20:50 +10:00
itsmattkc f03052ee74 remove superfluous semicolon 2021-04-08 19:05:52 +10:00
itsmattkc 5b0332260f revise operation cache blocking system
Fixes #1553
2021-04-08 19:05:12 +10:00
itsmattkc ba0eb2335b copy color when duplicating node 2021-04-08 18:03:59 +10:00
itsmattkc cb75e37e77 moved several files around
Mostly moved classes that became node derivatives into the node/ folder.
2021-04-08 12:15:59 +10:00
itsmattkc 898ea25e89 finished merge of viewer and footage 2021-04-06 13:08:56 +10:00
itsmattkc 4066fcba90 began merging footage and viewer 2021-04-05 16:41:37 +10:00
itsmattkc cd6544ba64 fixed erroneous hold keyframe logic
Fixes #1326
2021-03-22 23:28:43 +11:00
itsmattkc 82d6daa3da fixed bug in node dependency positioning 2021-03-14 21:52:05 +11:00
itsmattkc 2a9513e56a added new node auto-positioning for items 2021-03-14 21:09:00 +11:00
itsmattkc 500fb58d49 arranged items so they are inputs of folder rather than outputs 2021-03-12 12:22:19 +11:00
itsmattkc a57bf35e93 don't copy items when splitting or duplicating blocks 2021-03-01 13:27:13 +11:00
itsmattkc cfbf563b2e ensure cache modified time is accurate 2021-02-22 00:23:34 +11:00
itsmattkc 17474b2f71 fix some compilation issues on various platforms 2021-02-21 09:35:14 +11:00
itsmattkc 108a1399c2 fixed input array sync issue 2021-02-20 23:09:49 +11:00
itsmattkc 4827782331 moved sequence params into node graph too
Reduces code by reusing more of the existing node infrastructure
to synchronize sequence parameters the render backend.
2021-02-18 13:20:23 +11:00
itsmattkc d7c5ac4b44 implement entire project in nodes
Project items are now represented directly in nodes opening up more versatility and possibilities. This is the first iteration of this and will be buggy. Need to test thoroughly.
2021-02-15 21:31:57 +11:00
itsmattkc b8de563a6d restored invalidation code when value is changed 2021-02-11 14:35:05 +11: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 7795d42347 moved block links to node links
Seems like it might be useful to have this as part of the node architecture as a whole
2021-01-25 09:17:25 +11:00
itsmattkc d9019f9cb1 fixed node removals 2021-01-22 19:23:20 +11:00
itsmattkc 2af776b110 fixed various caching update issues 2021-01-22 14:33:30 +11:00
itsmattkc b4dd976e90 revised UI color system when showing nodes
Olive now has a set of colors that categories can be "assigned" to. The timeline also shares the same colors as the NodeView. Colors can be configured per node (aka per clip).
2021-01-15 18:44:34 +11:00
itsmattkc 96c0921193 use std::map instead of QMap for the node connections
std::map gives us a reverse iterator which we need. QMap doesn't seem to.
2021-01-15 14:34:36 +11:00
itsmattkc fbdda3d6d4 various code cleanups 2021-01-13 12:05:05 +11:00
itsmattkc 8f729203fc some timeline refactoring, preparing for rewrites 2021-01-09 11:41:33 +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