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
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
62120f4943
cross dissolve: improved algorithm
...
Multiplying by alpha twice turned out to be unnecessary.
2019-12-12 19:04:28 +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