Commit Graph
50 Commits
Author SHA1 Message Date
itsmattkc 79c2953662 implemented track locking in the timeline widget 2019-12-11 16:34:38 +11:00
itsmattkc 7117616635 allow track muting 2019-12-11 13:54:40 +11:00
itsmattkc 58bcbca4c5 wrote mechanisms that allow the tracks to be resized from the trackview 2019-12-08 15:14:43 +11:00
itsmattkc 351d4a246e use NodeInputArray for tracks as well
These were introduced for the new Block system and make just as much sense for
the Track system. They've now been implemented for both.
2019-12-06 20:34:19 +11:00
itsmattkc a8f435bc5c started removing track_input from track 2019-12-06 04:34:03 +11:00
itsmattkc c32a1c8be2 removed last of the NodeOutput dependencies
Since all Nodes have an output that provides all output values now, we now
never need to add an output from a Node derivative. These changes remove the
last of them and disable the ability to add more outputs from a derivative.
2019-12-06 04:21:55 +11:00
itsmattkc d25dda5275 removed all dependence on NodeOutputs
If Nodes only have the one output, we don't need to do so much differentiation
between them. Previous iteration used outputs as like a distinct function
within a Node (e.g. length output would return one result, buffer output would
produce a different result - each run different code to produce their results).
Now in this iteration, it's more accurate to say a Node is just one function
(which seems more appropriate for a node system anyway).
2019-12-06 00:23:26 +11:00
itsmattkc bc0f01d9a3 make nodes more const friendly and prepare their functions for stateless work
Since the nodes won't be holding any rendering data themselves in this system,
we may as well enforce some level of non-write access by setting all the
functions to const. They were already const-friendly, they just weren't
labelled as such.
2019-12-04 20:10:42 +11:00
itsmattkc 9aa50175ac use existing IsTrack() function for checking type instead of dynamic_cast 2019-12-02 01:39:45 +11:00
itsmattkc 7503542286 use existing IsBlock() function for checking type rather than dynamic_cast 2019-12-02 01:37:54 +11:00
itsmattkc 79ee3bc3df implemented new block system
Fixes recurring design issue that the Blocks were a frequent exception to the
DAG concept. The Blocks connecting to each others inputs/outputs while not
necessarily being "dependent" on each other to produce an image continually
causes issues while trying to create a rendering code path. This redesign
should provide a more "directed" approach to the directed acyclic graph.
2019-12-02 00:37:03 +11:00
itsmattkc 8b1dab8296 moved track to take an array of blocks rather than a non-directed graph 2019-12-01 00:03:59 +11:00
itsmattkc a478b11fd0 removed "previous_input" param from block
It was becoming inevitable to get rid of this, it was continuously an exception
that had to be made to the DAG concept seeing as blocks are never really
"dependents" on each other, i.e. the images they produce have nothing to do
with other blocks. The only exception is a transition which will also be
easier to accomplish with this slightly different design.
2019-11-30 23:24:01 +11:00
itsmattkc 073176a45d added function for returning a block at a time
Assists with certain timeline-related functions.
2019-11-19 22:25:04 +09:00
itsmattkc 788502cd11 removed another unnecessary node function 2019-11-02 18:12:54 +11:00
itsmattkc 16ac2fc0e1 sweeping node graph changes for new rendering pipeline
The new rendering pipeline strives to simplify the nodes themselves as much
as possible and move much of the logic to an external rendering engine. This
change removes all of the responsibilities that no longer belong to the
nodes themselves and will soon be folded into the renderer.
2019-11-02 01:39:37 +11:00
itsmattkc 77bcb70dac started porting renderer to new portable form 2019-10-31 19:14:58 +11:00
itsmattkc d96395ea27 don't use track as the time chooser
This design, while not completely illogical, seems to betray the DAG design
and borders on impossible to actually recompile. The plan is to build this
functionality into the renderer instead.
2019-10-29 01:41:08 +11:00
itsmattkc 401aff52a8 attempts at folding opencl support in 2019-10-28 18:21:20 +11:00
itsmattkc 4d96ac9e39 don't police data type connections between nodes
Nodes were previously written to be "strongly typed" in that a parameter's
"type" enforced whether it could be connected to another. All code related
to that has now been removed since not only is it hard to maintain and
likely unnecessary, it's possible the nodes will work differently later on
anyway.
2019-10-25 00:44:14 +11:00
itsmattkc 7dec79ceaa various changes to rendering flow and structure 2019-10-23 00:42:52 +11:00
itsmattkc 5f86b9b9c7 nodes are given a time range 2019-10-22 14:58:06 +11:00
itsmattkc 1ded30c1d9 base support for multiple timeline sections 2019-10-11 18:26:56 +11:00
itsmattkc 3411e45774 preliminary support for multiple timeline sections 2019-10-05 07:33:27 +10:00
itsmattkc cf3e8d80d1 implemented 'ripple to' timeline actions 2019-09-24 22:45:30 +10:00
itsmattkc 9fa22938b9 work towards making timeline actions all undoable 2019-09-23 23:00:15 +10:00
itsmattkc d0d4756129 some ripple behavior fixes 2019-09-21 01:01:15 +10:00
itsmattkc 814ee14c0b minor improvements 2019-09-20 04:45:17 +10:00
itsmattkc 03d81c7003 flipped timeline node/panel affinity 2019-09-20 04:40:38 +10:00
itsmattkc 30be1b626d further ripple progress 2019-09-19 17:05:41 +10:00
itsmattkc 5ab622ba81 track enhancements 2019-09-13 02:47:09 +10:00
itsmattkc 7b15a63e06 changed refresh system slightly and added include dirs for deps 2019-09-11 19:51:31 +10:00
itsmattkc 1879dac247 minor fixes and debug output 2019-09-11 17:35:45 +10:00
itsmattkc 12bc5839a6 fixed various caching issues 2019-09-02 22:58:44 +10:00
itsmattkc 3a9af58344 adjusted invalidatecache function 2019-09-02 20:11:42 +10:00
itsmattkc e87ed9dd3d finished hashing algorithm for cache 2019-09-02 19:51:31 +10:00
itsmattkc f2972651af several adjustments to node caching system 2019-09-02 11:29:50 +10:00
itsmattkc 7dc2290496 shift renderer prototype to new node structure 2019-08-28 02:40:44 +10:00
itsmattkc 5afe7d523c shifted to new dependency structure 2019-08-28 01:24:50 +10:00
itsmattkc b9ce02a0ec separated setting time and processing node functions 2019-08-27 23:38:24 +10:00
itsmattkc 09a6a5a12a completed prototype of background service that traverse the graph 2019-08-25 13:51:47 +10:00
itsmattkc 438e7081f9 foundations for background caching 2019-08-24 22:16:01 +10:00
itsmattkc 9439494c10 added basic razor tool 2019-08-23 12:12:13 +10:00
itsmattkc f03cc8fe07 base pointer movement in timeline 2019-08-21 15:10:55 +10:00
itsmattkc 78d96ecd28 implemented splicing into the timeline 2019-08-20 18:13:34 +10:00
itsmattkc ca51dac7f8 timeline import mostly functional 2019-08-20 13:02:29 +10:00
itsmattkc c8dfd09acc timeline import interaction progress 2019-08-20 11:40:18 +10:00
itsmattkc 9ccf2610c8 timeline gets updated when tracks are added and removed 2019-08-18 18:29:35 +10:00
itsmattkc c68e879d47 preliminary track/channel support 2019-08-16 16:28:32 +10:00
itsmattkc 7d9d12ee0b began support of timeline tracks/channels 2019-08-15 23:40:22 +10:00