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
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
da98793a6b
fixed segfault if pipeline returned an empty texture
2019-12-11 13:54:19 +11:00
itsmattkc
3d3e40d431
minor code cleanup and fixed opengl thread desync issue
2019-12-11 03:20:23 +11:00
itsmattkc
f5d66436fa
attempt to use fbo clear function
2019-12-10 21:32:21 +11:00