itsmattkc
b4dd976e90
revised UI color system when showing nodes
...
Olive now has a set of colors that categories can be "assigned" to. The timeline also shares the same colors as the NodeView. Colors can be configured per node (aka per clip).
2021-01-15 18:44:34 +11:00
itsmattkc
91740dd823
reworked all timeline commands
...
I'll be honest, this stuff probably caused a lot of crashes. Objects were constantly created and destroyed without the foresight that other commands might be using them. This should fix a lot of that.
2021-01-15 14:36:21 +11:00
itsmattkc
96c0921193
use std::map instead of QMap for the node connections
...
std::map gives us a reverse iterator which we need. QMap doesn't seem to.
2021-01-15 14:34:36 +11:00
itsmattkc
b83677e319
moved input signals to graph to prevent signal desyncs
2021-01-14 10:32:42 +11:00
itsmattkc
ad0cefecaf
remove now commented out ifdef guard
2021-01-14 10:30:33 +11:00
itsmattkc
f7883bd02c
began some rewrites to timeline drawing
2021-01-14 10:30:20 +11:00
itsmattkc
fbdda3d6d4
various code cleanups
2021-01-13 12:05:05 +11:00
itsmattkc
8f729203fc
some timeline refactoring, preparing for rewrites
2021-01-09 11:41:33 +11:00
itsmattkc
3337be07e5
use QVector instead of QList for block cache
2021-01-09 10:41:13 +11:00
itsmattkc
441a459774
viewer: use label instead of media name
2021-01-09 10:38:04 +11:00
itsmattkc
181235f6ce
began new infrastructure
...
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.
Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc
19eabf2830
fixed variable that didn't change since it was behind an ifdef guard
2020-12-30 18:27:44 +11:00
itsmattkc
c0095a40ce
cache platform palette on load
2020-12-30 18:10:38 +11:00
itsmattkc
3024d68d59
fixed unused variable warning
2020-12-30 18:08:43 +11:00
itsmattkc
06b29b3a35
Merge branch 'master' of https://github.com/olive-editor/olive
2020-12-30 14:46:15 +11:00
itsmattkc
78903391a3
timeline: don't snap add tool if snapping is disabled
2020-12-30 10:38:53 +11:00
itsmattkc
b604a7271d
viewer: fix regression where multiple viewers could play at once
2020-12-30 10:38:34 +11:00
itsmattkc
374fa3f75c
moved some files around for better organization
2020-12-16 19:05:22 +11:00
itsmattkc
7849d6f3ff
corrections for non shared ptrs in OTIO code
2020-12-16 14:32:18 +11:00
itsmattkc
6cb6407bd8
don't use shared ptrs on streams
2020-12-16 13:46:19 +11:00
itsmattkc
e12013e2fb
don't use shared ptrs for project items
2020-12-16 10:28:43 +11:00
itsmattkc
1cd07bc1f7
improved footage relink
...
Interface improvements and uses more heuristics to relink files faster.
2020-12-13 14:27:47 +11:00
itsmattkc
0699795c6f
export: implemented audio bit rate setting
...
The UI for this isn't perfect, I just wrote this in because I needed it. But the backend is solid.
2020-12-04 01:01:50 +11:00
itsmattkc
7dd9115e3f
audiowaveformview: clamp start to 0
2020-11-30 12:07:22 +11:00
itsmattkc
d2727f1932
minor tweak to fix compilation on linux
2020-11-30 09:32:08 +11:00
itsmattkc
2363f7057c
resizabletimelinescrollbar: handle RATIONAL_MAX without overflow
2020-11-30 08:59:53 +11:00
itsmattkc
d82f484c4c
audiowaveformview: on validation, only update visible sections
2020-11-30 08:57:51 +11:00
itsmattkc
b39565cff4
audiowaveformview: multithreaded waveform rendering
2020-11-30 08:18:11 +11:00
itsmattkc
f48c8b552b
export: calculate total length from individual frames rather than all frames
2020-11-30 07:22:48 +11:00
itsmattkc
9ee523b145
timeline: split gaps only if there's an insert
...
Fixes regression from 97afae9687
2020-11-29 17:06:56 +11:00
itsmattkc
6a6fa8674a
actually stage the new files
2020-11-29 17:05:52 +11:00
itsmattkc
c15b734011
timebasedwidget: show workarea and markers on scrollbar
2020-11-29 16:56:00 +11:00
itsmattkc
c9323b9731
renderer: added another cancelled check
2020-11-29 12:17:42 +11:00
itsmattkc
97afae9687
timeline: when ripple removing an area, don't split gaps
2020-11-29 12:17:23 +11:00
itsmattkc
720acb8f77
renderer: fixed shadowed property
...
Fixes issue where waveforms would only appear on one track
2020-11-29 10:20:10 +11:00
itsmattkc
90edc4f933
timebasedwidget: added infrastructure of passing scroll wheel signals to the scrollbar
2020-11-29 10:08:37 +11:00
itsmattkc
ee2deb1365
exportdialog: use open rather than exec
2020-11-28 21:27:47 +11:00
itsmattkc
d9e445d39e
rendermanager: always create tickets in own thread
2020-11-28 21:27:35 +11:00
itsmattkc
73aa3760f3
timeline: initialize variable introduced in last commit
2020-11-28 19:36:57 +11:00
itsmattkc
350df42ad1
timeline: improved rubberband behavior
...
Improved rubberband responsiveness and show rubberband if dragging from a gap
(or other such immovable block).
2020-11-28 17:31:44 +11:00
itsmattkc
56b17dd69f
exportdialog: prioritize preview area when resizing
2020-11-28 10:21:35 +11:00
itsmattkc
24c7c136dc
export: set properties before moving thread
2020-11-28 10:21:24 +11:00
itsmattkc
6447aad522
Merge branch 'master' of https://github.com/olive-editor/olive
2020-11-28 08:24:56 +11:00
itsmattkc
466900e579
renderer: mutex around color context creation/retrieval
2020-11-28 08:24:40 +11:00
itsmattkc
a2d855b102
improve UI feedback when cancelling a task
2020-11-27 14:47:31 +11:00
itsmattkc
0fa05e1bc9
removed unused file
2020-11-27 14:28:09 +11:00
itsmattkc
f8ceefff6c
don't use shared ptr on projects
...
Really unnecessary
2020-11-27 14:24:02 +11:00
itsmattkc
992b6eb952
added plural forms to translatable strings
...
Fixes #1421
2020-11-27 13:04:49 +11:00
itsmattkc
240fe81961
extend UI styling to 5.15.2 since they still haven't fixed this bug
2020-11-27 12:49:51 +11:00
itsmattkc
d02a1aa41b
renderer: mutex colorspace and premultiplied fields of video footage
2020-11-27 12:49:40 +11:00
itsmattkc
8a869d0393
use QObject property system now that i know how to signal them
2020-11-27 10:10:24 +11:00
itsmattkc
1deb95b804
renderer: run tickets in the thread they're rendering in
...
Fixes #1380
2020-11-27 09:30:09 +11:00
itsmattkc
f8a5e28c37
code: removed double "protected" marker
2020-11-26 19:53:42 +11:00
itsmattkc
f068343a08
oiio: actually store the last opened sequence index
...
Fixes #1376
2020-11-26 19:53:29 +11:00
itsmattkc
378216acb9
timeline: draw playheads over selections
2020-11-26 19:52:54 +11:00
itsmattkc
210417a5f2
enable undo/redo on node param text editor
2020-11-25 17:17:13 +11:00
itsmattkc
afa31e1df8
timeline: don't flip scroll axes on apple trackpads
2020-11-25 17:16:35 +11:00
itsmattkc
a043a686c6
timeline: started record tool
2020-11-25 11:53:56 +11:00
itsmattkc
b5cc13c10e
timeline: snap pointer and import operations to timebase
...
If frame rates are mixed, ensures that video doesn't end up falling or ending on half frames which potentially make the entire sequence awkward
2020-11-25 11:46:41 +11:00
itsmattkc
c35005d1bf
renderer: only use different footage dividers on smaller footage
2020-11-25 11:45:42 +11:00
itsmattkc
c7f5af9534
moved autoscroll code to TimeBasedWidget rather than TimelineViewBase
...
Better place for it. Fixes #1406
2020-11-25 10:00:57 +11:00
itsmattkc
bd2b3f7a7c
gizmos: detect generated images like titles
...
Fixes #1413
2020-11-25 09:43:15 +11:00
itsmattkc
7cc64927b8
mainwindow: when maximizing panels, fallback to focused panel if hovered panel is null
...
Fixes #1403
2020-11-25 09:04:15 +11:00
itsmattkc
2b1700e088
Merge branch 'master' of https://github.com/olive-editor/olive
2020-11-25 08:59:26 +11:00
itsmattkc
0eda91a0cb
renderer: destroy surface in main thread
2020-11-25 08:59:14 +11:00
itsmattkc
1254726079
transform: set alpha channel required always true for now
2020-11-25 08:57:55 +11:00
itsmattkc
b4b0cd6be9
Merge branch 'master' of https://github.com/olive-editor/olive
2020-11-24 11:04:51 +11:00
itsmattkc
1400c313ca
timeline: correctly use ptr to qvector rather than qlist
...
Fixes copy/paste crash
2020-11-24 11:04:33 +11:00
itsmattkc
827c9f93cc
AudioVisualWaveform: implement same size check as AudioPlaybackCache to prevent index out of bounds crashes
2020-11-24 11:02:42 +11:00
itsmattkc
2c4f781e13
paramview: discard scroll events on widgets
2020-11-23 12:01:21 +11:00
itsmattkc
ade4369199
revise opengl profile
2020-11-23 09:43:48 +11:00
itsmattkc
29f2d3024e
timeline: clear selections when disconnecting viewer
...
Fixes #1400
2020-11-23 09:15:46 +11:00
itsmattkc
7b266c51a4
move clamp to bezier itself to prevent deadlocks
2020-11-23 08:43:02 +11:00
itsmattkc
60f515a2cc
transform: added interpolation parameter
2020-11-22 22:53:31 +11:00
itsmattkc
ed6f4eed3e
core: changed ortho node ID
...
Fixes collision where transform and ortho nodes had the same ID. Renames ortho ID and automatically corrects
old projects with the old ID. Bumps the project version as a result.
2020-11-22 22:32:09 +11:00
itsmattkc
96ad22d3e6
node: correctly skip element if node param isn't found
...
Fixes issue where projects could fail to load entirely if a node param was not found.
2020-11-22 22:30:13 +11:00
itsmattkc
3cf4d58716
viewer: rewrote pixel sampling coordinate system
...
Fixes #1395
2020-11-22 21:25:10 +11:00
itsmattkc
cb5c48bd06
config: added default color for category 10 (distort)
...
I don't actually like this color on this node, but we can change/shift things
around later.
2020-11-22 21:01:21 +11:00
itsmattkc
9928027040
nodeview: clamp bezier value
2020-11-22 20:28:48 +11:00
itsmattkc
dbf4a814e1
renderer: added extra null check for texture
...
Fixes #1392
2020-11-22 19:00:01 +11:00
itsmattkc
af0f6163af
use floats in viewer scale
2020-11-22 18:47:21 +11:00
itsmattkc
8fb374696a
Merge branch 'master' of https://github.com/olive-editor/olive
2020-11-22 18:21:37 +11:00
itsmattkc
a6d382f4d4
further improved gizmos
2020-11-22 18:21:24 +11:00
itsmattkc
bd215b34bc
viewer: simplified sizing algorithm and add padding for fit so gizmos are easier to use
2020-11-22 13:01:52 +11:00
itsmattkc
63bc054b34
correctly mark plural
2020-11-22 13:00:55 +11:00
itsmattkc
54cd244801
nodes: added distort nodes
...
Adds nodes for cropping and transforming
2020-11-22 11:34:37 +11:00
itsmattkc
3e48aef88c
renderer: only divide as much as necessary to get within maximum sequence resolution
...
Prevents lower res images from becoming too low res
2020-11-22 10:32:58 +11:00
itsmattkc
81447c439f
opengl: update for shader changes mentioned earlier
2020-11-22 10:32:22 +11:00
itsmattkc
425e69c789
renderprocessor: add generate resolution override
2020-11-22 10:32:01 +11:00
itsmattkc
065fc9e10e
miscellaneous shader changes
...
Since sequence resolution is provided to the nodes now, it no longer needs to be a global in the shaders
Removed some unused shaders
Added default params to ShaderCode to allow skipping types that aren't used
2020-11-22 10:31:37 +11:00
itsmattkc
b9e0bfb679
nodes: added distort gizmo
2020-11-22 10:27:49 +11:00
itsmattkc
da9a6325aa
node: reworked gizmo system
2020-11-22 10:27:37 +11:00
itsmattkc
3167047ded
nodetraverser: added abstract function for generating sequence resolution
2020-11-22 10:25:47 +11:00
itsmattkc
7899c396dc
nodeinputdragger: acknowledge min/max values if they're set
2020-11-22 10:25:04 +11:00
itsmattkc
5e319a0cdd
nodeparamviewwidgetbridge: implemented offsets for more user friendly numeric values
2020-11-22 10:24:35 +11:00
itsmattkc
66bf5db2e1
gizmotraverser: return sequence resolution and adjust texture resolution by pixel aspect
2020-11-22 10:24:07 +11:00
itsmattkc
1b0e69c05b
viewer: fixed deinterlacing and pan regression, reworked gizmos
2020-11-22 10:23:32 +11:00
itsmattkc
d0bcea3b1d
audio: ignore shift event if from time exceeds length
2020-11-21 09:52:24 +11:00
itsmattkc
857e4b046d
timeline: when inserting gaps, only do one per track
2020-11-20 19:37:00 +11:00
itsmattkc
e4f011831d
timeline: don't try to link if no clips are selected
2020-11-20 19:36:43 +11:00