itsmattkc
f0cd480540
finished audio effects support in audio renderer
...
Working structure implemented in previous commit into the audio renderer is
complete in this commit.
2019-12-24 14:02:07 +11:00
itsmattkc
38d35d1b88
updated viewer to set render backend format/mode
...
Yes, it's still hardcoded in the viewer for the time being, but moving it out
of the backend makes the backend format flexible for exporting.
2019-12-20 04:38:19 +11:00
itsmattkc
0ef00245ad
added functions to override the resolution and matrix transform of the viewer widget
...
While in most circumstances these shouldn't be used, they're useful for
showing things like export previews
2019-12-19 15:55:08 +11:00
itsmattkc
05e10962f9
added convenience undo command for removing a node and its exclusive deps
2019-12-19 01:44:18 +11:00
itsmattkc
2c79edeb0f
further improved msvc compilability
2019-12-18 23:35:02 +11:00
itsmattkc
cde668b590
implemented percentage and decibel view modes for slider
...
A slider can now hold a float value and display it in the UI converted to
either a percentage or a decibel (still returning a linear float value
programmatically for the rest of the code).
2019-12-18 02:09:53 +11:00
itsmattkc
be0d857e38
snap footage imports to the timeline timebase
...
Earlier, footage that was not the same frame rate as the sequence had the chance
of their length value falling between a frame. This doesn't really help anything
with video since a frame is a discrete point in time, and only led to confusion
while navigating the timeline.
2019-12-18 01:21:25 +11:00
itsmattkc
aae756b44c
fixed regression from moving length to a nodeparam
...
Splitting commands would run CopyInputs after set_length. Since length is now
a parameter (aka a NodeInput) the former would override the latter breaking the
implementation. This commit fixes that.
2019-12-18 01:20:04 +11:00
itsmattkc
29ae366659
improved speed/duration implementation
...
This functionality is almost complete minus the reverse speed and any of the
audio implementation.
2019-12-18 01:19:17 +11:00
itsmattkc
4e6da87585
ported crossdissolve to external shader
2019-12-17 15:58:16 +11:00
itsmattkc
a0b6bb842d
ColorManager is now specific to the Project
...
OCIO config was set on a per-project basis, but we were using a singleton for
the ColorManager that would break if more than one project was ever open.
Now the ColorManager belongs to the Project and is always accessed through the
Project.
2019-12-17 15:18:07 +11:00
itsmattkc
d4ee33405b
implemented speed/duration dialog and most of its functionality
...
An earlier commit implementing media in and out parameters was primarily for
this addition. A simple control dialog for the clip's speed presentation
reimplemented from the old codebase.
2019-12-17 03:58:12 +11:00
itsmattkc
4ba024e3ae
implemented media out value to allow speed changes in clips
2019-12-16 18:29:35 +11:00
itsmattkc
23159025a4
ensure playback controls always shows a time when a timebase is set
...
Previously the playback controls would only appear after the first time they
updated. Now they're shown as soon as the viewer is set to a node.
2019-12-16 18:03:18 +11:00
itsmattkc
baab21a3ab
added option to disable color management menu on viewer
...
While the Viewer is _always_ color managed, In some contexts, the color
management may be controlled from an external UI making the menu unnecessary.
2019-12-16 16:43:27 +11:00
itsmattkc
1fd62948e8
completely implementation of color management in viewer
...
The viewer had the color management backend in place already, but the frontend
was non-functional. This commit implements most if not all color management
functionality.
2019-12-16 13:41:35 +11:00
itsmattkc
b96fd7ae45
allowed access to the viewer node from the viewer widgets
2019-12-16 03:02:28 +11:00
itsmattkc
4ddeadaf46
fixed regression in slider
...
The recent slider focus addition caused the label to re-focus if the user
pressed enter in the line edit, causing the line edit to never disappear.
2019-12-16 03:00:26 +11:00
itsmattkc
d6d8409bb9
allow sliders to be tabbed to
2019-12-15 20:03:02 +11:00
itsmattkc
83cf67fe7b
implemented majority of export dialog widget layout
2019-12-15 19:56:12 +11:00
itsmattkc
a977020833
implemented the ability to make inputs that can't be connected
2019-12-15 04:15:09 +11:00
itsmattkc
f3acc369ff
fixed boolean data types on the NodeParamViewWidgetBridge
2019-12-15 03:52:21 +11:00
itsmattkc
965519e9cf
ported opacity node to external file format
...
The plan is to port all nodes that can be external to the external file format.
This should help keep things maintainable.
2019-12-15 02:51:28 +11:00
itsmattkc
a4f24e22d3
correct transition connections when a clip is split
...
When a clip is split and has an out transition, the transition should be
connected to the second clip rather than the original clip.
2019-12-14 23:19:50 +11:00
itsmattkc
2f04a53054
implemented deleting clips in the timeline
...
Also fixed bugs in the Node::GetExclusiveDependencies function and in the
NodeInputArray::RemoveAt function to make this functionality work.
2019-12-14 17:10:06 +11:00
itsmattkc
764fbb74c1
improved appearance of transitions in timeline
2019-12-14 02:57:31 +11:00
itsmattkc
bc5e7349ef
don't automatically create gaps if one already exists that can be resized
...
Rather than constantly create gaps, we can more intelligently determine whether
a gap can be extended to take the place of a block being removed, etc.
2019-12-14 00:44:41 +11:00
itsmattkc
323718bc11
moved timeline undoable commands to using the new NodeAddCommand
...
Previous iteration used some "magic code" that added clips automatically to the
timeline. This was functional but ultimately outside of the undo commands'
control meaning nodes could be infinitely added and abandoned. This makes the
add process part of the undo command which means it's all undoable as the user
would expect.
2019-12-14 00:04:57 +11:00
itsmattkc
18bf126574
implemented deleting nodes in the nodeview (undoable)
2019-12-13 04:12:00 +11:00
itsmattkc
186973ff20
implemented final connections to allow creating new nodes in the nodeview
2019-12-13 03:06:12 +11:00
itsmattkc
934eea5f40
completed node 'add' menu
2019-12-13 02:55:09 +11:00
itsmattkc
5b0513efed
started node factory class for making nodes at runtime
2019-12-13 02:30:31 +11:00
itsmattkc
f15683b593
allow gaps and transitions to be selected in the timeline
...
This will be useful for various reasons, however the behavior of selecting
gaps and transitions will need to be regulated harder than clips in the near
future.
2019-12-13 01:55:41 +11:00
itsmattkc
526f07ba08
implemented demonstrative dip to black transition
2019-12-12 19:00:49 +11:00
itsmattkc
e1f4821b5a
timeline tool will now create dual transitions
...
The previous commit was mostly cosmetic, this commit updates the node
connections so it's actually functional too.
2019-12-12 16:21:05 +11:00
itsmattkc
1ba254ae87
implemented creating dual and single transitions
...
The user can now create transitions on each side as well as transitions between
blocks.
2019-12-12 15:50:08 +11:00
itsmattkc
76c0399b75
implemented base transition support
...
While very much incomplete, transitions can now be created and will render
correctly.
2019-12-12 15:21:39 +11:00
itsmattkc
7b92b21df2
reimplemented "add" tool
...
Tool for adding empty/non-media clips in the timeline. Also basis of the
transition tool.
2019-12-11 19:54:53 +11:00
itsmattkc
7ae37511a2
fixed segfault when selecting graphics items that aren't actually block items
2019-12-11 19:31:18 +11:00
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
3bfe333878
replaced QString uses with QStringLiteral
...
Minor code optimization according to Qt documentation.
2019-12-10 00:42:31 +11:00
itsmattkc
26b3993b9d
made vast improvements to rendering engine and node structure
...
This was many changes that were largely fundamentally related. They included:
- More const modifiers to enforce read only node graphs
- Support for fragment and vertex shaders from the nodes
- Support for node code loaded externally (embedded into the binary)
- Fixed issue preventing two textures from being used in a shader
- Removed several unused functions and cleaned up code
- Fixed video media node misreading its matrix input
2019-12-09 23:50:52 +11:00
itsmattkc
110c479954
Merge branch 'master' into transitions
2019-12-08 21:48:19 +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
2207aa3fd5
moved slider's focusable line edit to a separate distinct reusable widget
...
Some of the widgets designed for Slider have uses elsewhere so now they have
been moved to allow more generic usage.
2019-12-08 15:13:55 +11:00
itsmattkc
50f4e8767d
wrangled QWidgets to allow for resizable tracks with track headers
2019-12-08 05:13:43 +11:00
itsmattkc
dd8d1e84b0
small visual improvements to the timeline's timecode label
2019-12-08 00:24:50 +11:00
itsmattkc
00c06e3e6b
update timeslider's label automatically when the timebase changes
2019-12-08 00:14:45 +11:00
itsmattkc
d6fe49aad3
started trackview widgets for timeline view
2019-12-08 00:12:46 +11:00