itsmattkc
f616a0d123
ported dip to black transition to external type and reimplemented drop shadow shader
2019-12-18 01:18:31 +11:00
itsmattkc
4e6da87585
ported crossdissolve to external shader
2019-12-17 15:58:16 +11:00
itsmattkc
6a4dcc673a
implemented external xml/shader loading for transitions as well as regular nodes
...
Transitions are nodes but have a few parameters that are programmatic and always
required. This lets people write external code for transitions as well.
2019-12-17 15:44:13 +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
e1b8fd6352
fixed issue (qt bug?) where video streams wouldn't receive ColorManager::ConfigChanged signal
2019-12-17 14:11:13 +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
8945fbe5fe
began base encoder type for abstracting around exporting
...
Essentially the same principle as Decoders but somewhat different functionality.
2019-12-16 18:04:30 +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
cb5a468b4a
implemented color management UI functionality in the ExportDialog
...
Frontend UI work in setting up color management when exporting.
2019-12-16 16:47:36 +11:00
itsmattkc
377e2316be
completed color management implementation
...
This commit adds the background functionality of the render cache invalidating
whenever a footage's color space is changed. This includes when the project's
configuration is changed as well.
2019-12-16 16:46:15 +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
4bd8c0c850
filled out various further UI functions for the export dialog
2019-12-16 03:03:40 +11:00
itsmattkc
abf579cb84
moved supported channel layout functions to the core for wider use
2019-12-16 03:03:06 +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
3f79845464
implemented export dialog functionality and some base formats/codecs to support
2019-12-16 01:21:30 +11:00
itsmattkc
d6d8409bb9
allow sliders to be tabbed to
2019-12-15 20:03:02 +11:00
itsmattkc
4630975e43
implemented browse dialog in export dialog
2019-12-15 20:00:00 +11:00
itsmattkc
83cf67fe7b
implemented majority of export dialog widget layout
2019-12-15 19:56:12 +11:00
itsmattkc
eb7c63bace
started export dialog
2019-12-15 13:44:16 +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
46b3f9db48
moved alphaover to external file format
2019-12-15 03:41:37 +11:00
itsmattkc
ae7c9597e2
ported solid color generator to external shader
2019-12-15 03:07:10 +11:00
itsmattkc
61bb9fec6f
added language support for externally loaded shaders
...
This includes adding a language entry to the config file.
2019-12-15 03:01:05 +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
845a197c99
enable tooltips in the node menu to allow node descriptions to appear
2019-12-15 02:39:55 +11:00
itsmattkc
fdd7474a99
fixed bugs in the blur shaders
2019-12-15 02:38:55 +11:00
itsmattkc
4297cd92d6
fixed issue with accelerated node iterations
...
Uniform values cannot be set if the shader is not bound, and calling Blit would
release the shader making subsequent iteration count updates not work. This
commit makes sure the shader is bound before trying to do so.
2019-12-15 02:37:38 +11:00
itsmattkc
2067408273
use GL_CLAMP_TO_EDGE instead of GL_CLAMP_TO_BORDER
...
Ultimately it would be nice if nodes could configure this themselves, but
CLAMP_TO_BORDER behavior can be written manually into the shader if that
behavior is desired, whereas CLAMP_TO_EDGE cannot.
2019-12-15 02:36:31 +11:00
itsmattkc
7d910e8a4f
added function to convert a string to a data type
...
Used for external node XML parsing.
2019-12-15 02:36:15 +11:00
itsmattkc
ce8c77754d
add embedded external shaders to the node factory
2019-12-15 02:34:47 +11:00
itsmattkc
5b85303b2b
named the clip/block parameters added a few commits ago
2019-12-15 02:34:13 +11:00
itsmattkc
be3ff4bcea
added ExternalNode class to CMakeLists
2019-12-15 02:33:08 +11:00
itsmattkc
b276df2940
implemented node derivative that loads all metadata/code from an external file
...
Implemented the ability to load a node externally. This XML data could also
eventually be copy/pasted between instances of Olive alongside XML data for
other nodes and their connections to allow copying entire node trees.
2019-12-15 02:31:48 +11:00
itsmattkc
0b7782e129
added support for multiple node iterations
...
Optimizes various effects, particularly blurs.
2019-12-15 00:39:28 +11:00
itsmattkc
23905f1eee
added external blur files to the shader resource file
2019-12-15 00:38:36 +11:00
itsmattkc
b5b6ffa0a1
reimplemented blur shaders with new format xml metadata
...
These could be reimplemented almost wholesale, however the code has been
cleaned up and documented and the XML metadata has been updated to support
international translations.
2019-12-15 00:37:44 +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
ecfaa7b79d
fixed bug where Node::InputTimeAdjustment isn't honored in footage retrieval
...
This bug broke frame retrieval from the decoder when the clip in point was
trimmed. This commit fixes it.
2019-12-14 23:17:21 +11:00
itsmattkc
a9f59b54de
ensures copied graph is updated when values are copied
...
While the copied graph doesn't pick up InvalidateCache signals, some node
processing relies on NodeInput update signals to update their internals
correctly.
2019-12-14 23:16:30 +11:00
itsmattkc
c0802c05ad
make block values input parameters rather than class members
...
This allows these values (length and media in) to be modified in the node
graph and for all the automated node input functions to work with them.
2019-12-14 23:15:23 +11:00
itsmattkc
72f2d06ab3
fixed timecodes showing negative numbers between tokens
2019-12-14 23:13:37 +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