Troy James Sobotka
b9a62eb1aa
Add lines
...
Adding waveform lines. Still requires scaling to
fit in arbitrary range.
2020-04-28 15:06:22 -07:00
itsmattkc
8ab91a70cc
nodeview: implemented moving with either the hand tool or middle mouse button
...
Includes splitting off this functionality from TimelineViewBase so it can be
re-used in any QGraphicsView.
2020-04-29 04:56:58 +10:00
itsmattkc
877e8d3afc
curveview: ensured curveview is updated with the correct length and playhead
2020-04-29 01:26:09 +10:00
itsmattkc
69d399105a
manageddisplaywidgets: fixed issue that caused buffers to be drawn on the main window
2020-04-29 01:24:21 +10:00
itsmattkc
3070aa7e40
waveformscope: convert buffers to DVL before drawing the waveform
2020-04-29 00:36:55 +10:00
itsmattkc
61dd75a2ed
scopes: only update if visible
...
Updating scopes can require heavy processing so we limit updates to only
when the scope is visible
2020-04-28 23:55:40 +10:00
itsmattkc
ad419754a9
waveformscope: fixed double free on close
2020-04-28 17:40:22 +10:00
itsmattkc
4906bb7d53
scopes: don't use shared context
...
OpenGL shared contexts (through Qt at least) seem to be buggy. Scopes have been
shifted to a non-shared approach as a result.
2020-04-28 17:08:52 +10:00
itsmattkc
ac3f49a845
nodes: moved matrix input on "video input" elsewhere
...
Rather than plugging a matrix into the video input node, the matrix is now
multiplied by the video input using a math node. This is probably more
sensible from a user perspective.
This also means the renderer is tolerant of texture sizes that are not equal
to the sequence size, however most nodes will downsample the texture to the
sequence size (and if not, it will be downsampled once it is cached). Textures
will still *always* be in reference space and the sequence's format. This seems
like the best compromise between backend and frontend congruity.
2020-04-27 04:11:24 +10:00
itsmattkc
f61321d68b
nodes/timeline: correctly detect when tracks are removed from the graph
...
Fixes several segfaults that could result from this occurring.
2020-04-27 01:01:12 +10:00
itsmattkc
9c4999cfae
curvepanel: reconfigured to be a spawnable child of NodeParamView
2020-04-27 00:04:07 +10:00
itsmattkc
53ae25a7cb
nodes: optimize node graph changes by only updating from inputs that changed
...
A huge optimization that ensures only the parts of a node graph that have
changed get pushed to the renderer. For thread-safety, the node graph is
copied elsewhere so that users can make changes asynchronously and the graph
can update when its threads are ready. Up until now, if an input value changed,
every node's values would be re-copied, or worse, if a connection was changed,
the entire graph would be recopied. This has been negligible in testing since
we've been largely testing with small graphs, but for massive projects, it's
important that this be as optimized as possible.
2020-04-26 04:16:15 +10:00
itsmattkc
17999eab7a
timelineview: removed "end item"
...
This was written as a hack to force our QGraphicsScenes to larger sizes. Turns
out it was completely unnecessary and can be done better.
2020-04-25 15:19:46 +10:00
itsmattkc
acef99eb17
renamed viewerglwidget to viewerdisplaywidget
...
Initially this class was named to provide the possibility of supporting other
APIs, however this abstraction has been done with a base class instead.
2020-04-25 14:46:30 +10:00
itsmattkc
c7de93cc5d
viewer/opengl: minor code improvements
2020-04-24 15:14:20 +10:00
itsmattkc
8c44f8d03d
viewer/various: split off color management into separate base class
...
Also moves scopes to said base class.
2020-04-24 03:45:07 +10:00
itsmattkc
7768925826
manageddisplay: started base class for widgets that are managed
2020-04-24 00:17:32 +10:00
itsmattkc
1bad7e9b11
waveformscope: pass viewport in as uniform
2020-04-23 23:28:57 +10:00
itsmattkc
1f34b89950
viewer: removed unnecessary debug line
2020-04-23 18:06:49 +10:00
itsmattkc
c41b43ea06
nodeview: don't try to delete nodes marked as undeletable
2020-04-23 03:09:38 +10:00
itsmattkc
8f9c056419
colorspacechooser: fixed incorrect title function call
2020-04-23 02:23:41 +10:00
itsmattkc
2b1363d434
colorspacechooser: fixed segfault that occurred sometimes if DVL was disabled
2020-04-23 01:23:08 +10:00
itsmattkc
6c1e90665f
colormanagement: moved from passing DVL strings everywhere to a consolidated ColorTransform struct
2020-04-23 01:17:58 +10:00
itsmattkc
a422f6e369
timelineviewbase: decrease ctrl+scroll speed
2020-04-23 01:00:26 +10:00
itsmattkc
03ce9ee8f7
moved color widgets from ColorDialog folder to a widget folder
2020-04-22 23:38:51 +10:00
itsmattkc
197e60b6c3
export: show main color spaces rather than DVL chain
2020-04-22 23:34:23 +10:00
itsmattkc
26b928597c
nodeview: only select if a graph is currently active
...
Fixes segfault where timeline attempted to signal NodeView to select nodes
after it had already cleared itself.
2020-04-22 18:18:22 +10:00
itsmattkc
de783d214a
colorwheel/colorgradient: clamped at 1.0
...
Since these are UI/display components, they are clamped at 0.0 - 1.0
2020-04-22 18:15:29 +10:00
itsmattkc
db117e0780
mathnode: increased decimal places
...
Also includes general improvements to the slider widget such as an optional
"autotrim" function to cut off trailing zeroes, a "format" string that's easier
to internationalize, and general tidiness.
2020-04-22 17:49:32 +10:00
itsmattkc
c9e797abdf
various: conformed frame usages to respect stride
2020-04-22 15:54:47 +10:00
itsmattkc
ccb02d30aa
colormanager: implement default config
2020-04-22 05:08:33 +10:00
itsmattkc
141ac8b12f
audiomonitor: implemented hardware acceleration
...
Drawing is much smoother this way.
2020-04-22 01:26:39 +10:00
itsmattkc
afa3d3babe
audiomonitor: rewrote to handle audio independently of output
...
This gives the AudioMonitor more control over its own timing and appearance
and also reduces the load on the audio processing threads.
2020-04-22 01:09:49 +10:00
itsmattkc
ab262092a6
viewer: removed unused debug line
2020-04-21 19:36:37 +10:00
itsmattkc
05eae1e28a
audio: don't use a shared QIODevice
...
This system was kind of janky anyway. It makes more sense ultimately for the
audio management classes to contain the file handle rather than the renderer.
2020-04-21 17:55:55 +10:00
itsmattkc
1d3b9bbf13
audiomanager: remove audio signalling
...
This is in preparation for upcoming modifications that we'll be making to the
AudioManager.
2020-04-21 17:45:39 +10:00
itsmattkc
0ced48d4df
histogram: implemented color management
2020-04-21 01:59:06 +10:00
itsmattkc
bdb13e88f5
histogram: implemented histogram widget
2020-04-21 01:29:08 +10:00
itsmattkc
6f4bf70d3e
scope: implemented waveform scope
2020-04-20 22:58:29 +10:00
itsmattkc
84e73395ff
panels: implement a small margin on all panels to ensure the focus border is always visible
2020-04-20 18:06:50 +10:00
itsmattkc
2849ae210c
timeline/viewer: reimplemented "play in to out" and "loop"
2020-04-19 17:22:32 +10:00
itsmattkc
9d9825d8e1
trackviewitem: receive signal when mute is changed from another source
2020-04-19 16:26:48 +10:00
itsmattkc
410f3d25dc
fixed menu bugs introduced in f2bff5f150
...
Turns out setting a QMenu parent *not* in the constructor leads to very strange
behavior. All parents are now set in the constructor.
2020-04-19 16:19:08 +10:00
itsmattkc
f063d4741d
nodeparamviewitembody: use all columns in subbodies
...
Minor UI improvement.
2020-04-19 15:35:26 +10:00
itsmattkc
9aed452f1d
nodeparamviewitem: null check for keyframe control in SetTime()
2020-04-19 15:33:06 +10:00
itsmattkc
63c194896d
core: implemented yes/no to all when closing multiple modified projects
2020-04-19 03:29:39 +10:00
itsmattkc
d232e035f5
mainwindow/project: implemented saving/restoring panel state to project file
2020-04-19 02:25:02 +10:00
itsmattkc
2716cfa7f5
panels: enforced setting an object name by using a mandatory constructor parameter
2020-04-19 01:35:48 +10:00
itsmattkc
f2bff5f150
menu: ensure all addMenu() calls are followed with setParent() calls
...
Ensures memory taken by creating a new menu is freed.
2020-04-19 01:26:54 +10:00
itsmattkc
0c88a146c1
projectexplorer: added new menu to context menu
2020-04-19 01:16:55 +10:00