itsmattkc
2f80be437a
node: fixed issue with "taking" values from input tables
...
As opposed to simply leaving all values in the table, nodes can now "take"
values that they use to free up memory (e.g. "taking" input buffers if they're
used to produce an output buffer).
This is a fairly large change, expect regressions.
2020-04-16 23:12:05 +10:00
itsmattkc
b4795c0222
blur: merged box and gaussian blurs into one node
...
While these are two separate blur effects, merging them into one node will
allow quick swapping of blur methods.
2020-04-16 13:17:30 +10:00
itsmattkc
290c8724c4
Merge pull request #1131 from luzpaz/typos-followup
...
Fix typos cont.
2020-04-16 12:21:45 +10:00
itsmattkc
ca071beb33
Merge branch 'master' of https://github.com/olive-editor/olive
2020-04-16 12:21:09 +10:00
itsmattkc
cb6c054b8d
trigonometrynode: implemented trigonometry node
2020-04-15 02:41:20 +10:00
itsmattkc
c761403ba4
mathnode: override texture x matrix op
2020-04-15 02:07:48 +10:00
itsmattkc
a0a7d106dc
mathnode: implemented add/subtract/multiply/divide/power functions
...
Includes implementing combobox UI for the NodeParamViewWidgetBridge.
2020-04-15 01:52:24 +10:00
itsmattkc
e5ac9d48a6
mathnode: added path for math between a texture and a matrix
2020-04-14 23:07:00 +10:00
itsmattkc
9f89f57090
track: when length changes, force the new area to invalidate
...
The track limits cache invalidation signals to the length of the track. On some
platforms, if a block length was changed to the point that it changed the
track length, the track length would change AFTER the cache invalidation and
therefore never end up getting rendered.
This commit ensures that when a track's length changes, the new section is
invalidated regardless of ordering.
2020-04-07 02:34:59 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
c4b11c7bd1
nodevalue: return a null qvariant instead of 0 if there is no matching value in the table
2020-04-04 19:04:44 +11:00
itsmattkc
a21e7b1e77
nodeinput: implemented color
...
Implements converting color to and from string, keyframing color, and
conversion between the class and its keyframe tracks.
2020-04-04 04:19:24 +11:00
itsmattkc
f1423c169c
nodeparam: move ValueToBytes color from QColor to our new Color class
2020-04-04 04:18:43 +11:00
itsmattkc
0752b75682
mathnode: disable method keyframing and connecting
...
There's probably no situation where these would need keyframing/connecting.
2020-04-04 04:12:16 +11:00
itsmattkc
c9c9bd5174
metareader: use NodeInput's StringToValue/ValueToString when reading default values from XML
2020-04-04 04:11:20 +11:00
itsmattkc
11f962d6b3
media nodes: moved video/audioinput category to media base
...
They both have the same category, so they can share the same code in their base.
2020-04-03 23:28:03 +11:00
itsmattkc
3dd91a1429
timenode: implemented timenode to allow values to be connected to time
2020-04-03 23:27:38 +11:00
itsmattkc
f3290003be
colordialog/wheel/gradient: implemented basic UI components for color picking
2020-04-02 13:02:30 +11:00
itsmattkc
1363d2b94c
mathnode: expanded math node
...
Implemented handling of various different types.
2020-04-01 05:21:50 +11:00
itsmattkc
6f0d72c05d
renderer: switched audio rendering over to planar buffers
...
While planar audio cannot be used for playback, it's much easier for processing.
This should lead to cleaner and easier to write code in the future.
2020-03-31 18:01:20 +11:00
itsmattkc
18c36155d7
Merge branch 'master' into mathnode
2020-03-31 02:39:46 +11:00
itsmattkc
a855dea8de
timeline/project: block serializations to and from xml now include links
...
Fixes issue where blocks would become unlinked after copy/paste or save/load.
2020-03-31 02:38:14 +11:00
itsmattkc
2bda306866
timeline/various: implemented block copy/paste
...
Implemented the ability to copy/paste blocks/clips in the timeline. This did
require some large scale changes and reworking of the copy/paste system
introduced a few commits ago, but should be largely functional now.
2020-03-31 02:19:05 +11:00
itsmattkc
a143b64ac7
block: don't send cache invalidation signals from length changes
...
Minor optimization.
2020-03-30 15:11:32 +11:00
itsmattkc
2544c5e832
mathnode: added support for adding samples together
2020-03-29 03:29:18 +11:00
itsmattkc
7100d00060
nodes: made changes to the node system to allow for context sensitive shader code
...
Primarily implemented for the math node so a new shader can be generated and
compiled based on what inputs the node is receiving.
2020-03-29 03:11:30 +11:00
itsmattkc
52acb272bf
mathnode: added parameters
2020-03-29 00:22:44 +11:00
itsmattkc
48d8c8f242
Merge branch 'master' into mathnode
2020-03-28 18:10:38 +11:00
itsmattkc
7bca61608a
node: added qstringliterals to node IDs
...
Minor code optimization.
2020-03-28 18:02:34 +11:00
itsmattkc
938527b9fe
mathnode: began math node
2020-03-28 17:51:35 +11:00
itsmattkc
3399227b3a
keyframeview: implemented transforming keyframe times to and from sequence time
...
Since the node graph can have transform cross nodes, input keyframes may occur
at a different times requiring transforming between sequence time and media
time. This commit implements such a mechanism in all UI classes that need it.
2020-03-26 19:17:46 +11:00
itsmattkc
c5d3c4ff36
node: implemented convenience functions for transforming time
...
Implements a function that calculates the time transformation(s) only between
one node and another.
2020-03-26 00:26:13 +11:00
luz.paz
4e1cd870a9
Fix typos cont.
2020-03-21 13:46:38 -04:00
itsmattkc
e5ac72fa9d
Merge branch 'master' into typos
2020-03-19 12:16:09 +11:00
itsmattkc
a1f5c85f49
various: use simpler/smarter XML reading functions
...
Should address any XML parsing issues and allows for simpler, more maintainable
code. Should also address a crash that could occur when pasting nodes that had
inputs that weren't copied.
2020-03-17 02:38:17 +11:00
itsmattkc
34f60e639a
nodeview: implemented copying/pasting nodes
...
Re-uses XML-based project saving/loading functions to store nodes, their
parameters, and their connections in a text-based format in the clipboard.
2020-03-15 20:01:58 +11:00
itsmattkc
02e7c68104
timeline: reimplemented linking/unlinking functionality
2020-03-15 13:41:46 +11:00
itsmattkc
b57b091ca4
timeline: auto-unlink blocks when they're deleted
2020-03-15 13:15:36 +11:00
itsmattkc
9e4c79699e
node: split off traversing functions from renderer for usage elsewhere
...
Fixes issue where Viewer node wouldn't pick up correct length if a tracks
weren't in use.
2020-03-13 15:31:15 +11:00
luz.paz
321e7d1606
Fix doxygen and misc. typos
...
Found via `codespell -q 3 -L ba,keypair,numer,uint`
2020-03-10 15:00:56 -04:00
itsmattkc
16b072fa98
various: allow users to override the start and end index of image sequences
...
Also includes various fixes to footage property setting/signalling.
2020-03-09 19:58:42 +11:00
itsmattkc
38a30b584a
timeline: implemented some base ripple delete functionality
2020-03-07 18:07:55 +11:00
itsmattkc
f2d6d3b32c
timeline/renderer: automatically update timeline view when a visual waveform
...
has updated
2020-03-07 02:44:15 +11:00
itsmattkc
b2792b7c58
volumenode: removed maximum limit
...
I'm not sure when this was added, but it was not intentional.
2020-03-07 02:43:35 +11:00
itsmattkc
3f043496f3
nodeparam: allowed for dynamic nodeparam property change to affect UI widgets
...
immediately
2020-03-07 02:16:48 +11:00
itsmattkc
c168bf1a80
nodeparam: implemented parameters that allow arbitrary properties to be set
...
for UI representations
Allows properties to be set without adding explicit extra members to NodeInputs.
Crucially this means parameters like slider value representations (percent,
decibel, etc.) can be set from NodeInputs now.
2020-03-07 01:21:36 +11:00
itsmattkc
c5ca0ae3ee
viewernode: fixed bug where tracks would be counted more than once
2020-03-03 15:49:44 +11:00
itsmattkc
02ce48d0c6
various: pixel optimizations
...
Several things are accomplished in this commit, including:
- Use OIIO instead of our own functions for pixel format conversions
(cleaner code/less for us to maintain)
- Fold all PixelService functions into the PixelFormat class
(cleaner code)
- Moved OpenGL pixel definitions to OpenGL classes and out of the
global classes.
- Add support for RGB buffers as well as RGBA (optimization)
2020-02-27 13:54:38 +11:00
itsmattkc
03bdf01357
decoder/renderer: no longer index automatically as part of the retrieve
...
functions
Indexing is a lengthy process and had a high chance of getting RenderWorkers
stuck doing it rather than being responsive to cache requests. This commit
introduces a system where workers never index media, but instead signal that
media is not ready to their RenderBackends which ensure that the media gets
indexed and re-queues the affected frames when those indexes are ready.
2020-02-19 11:44:29 +11:00
itsmattkc
8265fef5c5
viewer: update renderer parameters if the viewer node's parameters have changed
2020-02-17 15:34:26 +11:00