Commit Graph
540 Commits
Author SHA1 Message Date
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 91740dd823 reworked all timeline commands
I'll be honest, this stuff probably caused a lot of crashes. Objects were constantly created and destroyed without the foresight that other commands might be using them. This should fix a lot of that.
2021-01-15 14:36:21 +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 b83677e319 moved input signals to graph to prevent signal desyncs 2021-01-14 10:32:42 +11:00
itsmattkc f7883bd02c began some rewrites to timeline drawing 2021-01-14 10:30:20 +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 3337be07e5 use QVector instead of QList for block cache 2021-01-09 10:41:13 +11:00
itsmattkc 441a459774 viewer: use label instead of media name 2021-01-09 10:38:04 +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 374fa3f75c moved some files around for better organization 2020-12-16 19:05:22 +11:00
itsmattkc 6cb6407bd8 don't use shared ptrs on streams 2020-12-16 13:46:19 +11:00
itsmattkc e12013e2fb don't use shared ptrs for project items 2020-12-16 10:28:43 +11:00
itsmattkc 8a869d0393 use QObject property system now that i know how to signal them 2020-11-27 10:10:24 +11:00
itsmattkc 1254726079 transform: set alpha channel required always true for now 2020-11-25 08:57:55 +11:00
Thomas Wilshaw b1b7d58e9d transition: Add transparency support to transitions
Added ShaderJobEvent to CrossDissolveTransition which sets alpha as
required.

app/node/block/transition/crossdissolve/crossdissolvetransition.cpp
app/node/block/transition/crossdissolve/crossdissolvetransition.h
2020-11-23 21:53:09 +00:00
itsmattkc 60f515a2cc transform: added interpolation parameter 2020-11-22 22:53:31 +11:00
itsmattkc ed6f4eed3e core: changed ortho node ID
Fixes collision where transform and ortho nodes had the same ID. Renames ortho ID and automatically corrects
old projects with the old ID. Bumps the project version as a result.
2020-11-22 22:32:09 +11:00
itsmattkc 96ad22d3e6 node: correctly skip element if node param isn't found
Fixes issue where projects could fail to load entirely if a node param was not found.
2020-11-22 22:30:13 +11:00
itsmattkc a6d382f4d4 further improved gizmos 2020-11-22 18:21:24 +11:00
itsmattkc 54cd244801 nodes: added distort nodes
Adds nodes for cropping and transforming
2020-11-22 11:34:37 +11:00
itsmattkc 065fc9e10e miscellaneous shader changes
Since sequence resolution is provided to the nodes now, it no longer needs to be a global in the shaders
Removed some unused shaders
Added default params to ShaderCode to allow skipping types that aren't used
2020-11-22 10:31:37 +11:00
itsmattkc b9e0bfb679 nodes: added distort gizmo 2020-11-22 10:27:49 +11:00
itsmattkc da9a6325aa node: reworked gizmo system 2020-11-22 10:27:37 +11:00
itsmattkc 3167047ded nodetraverser: added abstract function for generating sequence resolution 2020-11-22 10:25:47 +11:00
itsmattkc 7899c396dc nodeinputdragger: acknowledge min/max values if they're set 2020-11-22 10:25:04 +11:00
itsmattkc dcf56781b4 removed version macros from shaders and add automatically in compile step 2020-11-19 14:36:05 +11:00
itsmattkc 3c3fd5bd44 ensure colors are loaded from string as doubles 2020-11-18 14:23:18 +11:00
itsmattkc ad2e3d160f added mosaic filter node 2020-11-18 14:21:47 +11:00
itsmattkc b3c3fe0fc8 merged video and audio nodes into a single media node
They performed exactly the same function so I don't think we need the clutter.

Also bumped the project version, but old projects are automatically converted.
2020-11-18 13:48:14 +11:00
itsmattkc 04dd502a40 nodes: bypass invalidate length limit for certain track operations
Fixes #1290
Fixes #1228
2020-11-18 12:56:00 +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 15a29288aa added Q_OBJECT macro to classes that were missing it 2020-11-17 19:13:16 +11:00
itsmattkc 81450044e0 added preference for duplicating dependencies
Fixes #1320
2020-11-16 16:32:15 +11:00
itsmattkc 1b9bf6d92c switched many QLists for QVectors
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc 1dd7e24920 merge: removed debug line 2020-11-16 02:01:51 +11:00
itsmattkc bb1f16c8e1 merge: don't merge if the blend texture is RGB 2020-11-15 22:47:10 +11:00
itsmattkc 0d0766e4fb improved render channel count system 2020-11-15 22:16:40 +11:00
itsmattkc 8776bb9c4a finished upgrade to ocio v2 2020-11-12 15:36:29 +11:00
itsmattkc 0429e70fe0 merged all drawing functions into a single shader processing function 2020-11-10 15:50:13 +11:00
itsmattkc 83cefbd7c7 uhh yeah this might be fubar 2020-11-07 22:44:27 +11:00
itsmattkc 13dd31d5be began rewrite of renderer inner workings 2020-11-06 20:18:10 +11:00
itsmattkc b582843d27 moved things around and started rewriting render backend 2020-10-29 01:36:26 +11:00
itsmattkc 4082f6d938 Merge branch 'master' of https://github.com/olive-editor/olive 2020-10-23 01:26:49 +11:00
itsmattkc 917738d1de Merge branch 'master' into otio 2020-10-22 20:26:16 +11:00
itsmattkc 33a0c2d728 Merge pull request #1275 from ThomasWilshaw/stream
MediaInput: Rename streams access methods.
2020-10-20 23:32:00 +11:00
Thomas Wilshaw 4ddc659335 MediaInput: Rename streams access methods.
Change MediaInput::footage() to MediaInput::stream() and
MediaInput::SetFootage() to MediaInput::SetStream() as they access
streams not footage.

Also update all instances of access methods to reflect this change.
2020-10-19 15:50:36 +01:00
itsmattkc db8d321fa7 project: improved loading and footage importing 2020-10-19 14:41:01 +11:00
Thomas Wilshaw 7281806c38 Fix #1271 Duplicate Keyframed Node
When nodes with keyframes were copied their parent NodeInput was not
set properly leading to a segfult when key->GetParent was called in
KeyframeViewItem::UpdatePos().

This fix properly sets parent_ when keys are copied.
2020-10-16 22:30:54 +01:00