itsmattkc
34fade9d81
cache: attempt to automatically re-match hashes on invalidate
...
This code is slow and unoptimized. Will require some more work.
2020-05-21 16:49:02 +10:00
itsmattkc
cb72736f52
viewer: keep track of request order and ignore old requests
...
Prevents visual confusion with frames that were requested before the most recent
but arrived after.
2020-05-21 03:09:39 +10:00
itsmattkc
d5766489e4
export: fixed audio exporting with new renderer system
2020-05-21 02:18:52 +10:00
itsmattkc
0dc548a97e
viewer: fixed bugs in playback queue
...
Fixed issue that caused playback queue to desync and fallback to much slower
live playback.
2020-05-20 12:52:47 +10:00
itsmattkc
87e7564222
cache: heavily reworked exporting for new system
...
Also cleans up cache in general and moves it to the Task infrastructure.
2020-05-19 23:35:17 +10:00
itsmattkc
558773538d
cache: fixed audio with new system
2020-05-18 17:16:28 +10:00
itsmattkc
814bbe8c22
fixed various segfaults in decoder and renderer
2020-05-18 02:40:58 +10:00
itsmattkc
53a2956350
cache: added cache task that can be manually invoked
2020-05-15 18:36:02 +10:00
itsmattkc
7c2280944b
timeruler: reworked and improved cache status
2020-05-15 16:15:24 +10:00
itsmattkc
2039067fdc
renderer/viewer: fixed playback and live updates from value changes
2020-05-15 15:02:30 +10:00
itsmattkc
8795e51452
renderer: massive overhaul to move to a vastly simplified threading system
2020-05-15 00:52:45 +10:00
itsmattkc
863ae1b913
a first attempt at a new render system
2020-05-14 14:43:03 +10:00
itsmattkc
c5dfddff0d
renderer: weaved out various unnecessary InvalidateVisible functions
2020-05-13 23:04:15 +10:00
itsmattkc
6ad5076160
viewer: added debug message if playback queue falls behind
2020-05-10 04:05:08 +10:00
itsmattkc
20ef7b1c21
viewer: fixed issue that would cause playback queue to stall
2020-05-09 16:21:03 +10:00
itsmattkc
00248de49c
viewer: improved frame queue and linked window
...
Improves minor issues with frame queue implemented in earlier commit. Also links
ViewerWindow with the queue and a separate timer to make it much smoother.
2020-05-09 16:02:18 +10:00
itsmattkc
8c4c6ba2a5
viewer: queue frames during playback
...
Rather than have to decode EXRs and display them in the span of one frame,
decode into memory ahead of time so that they're ready for upload. Has the
potential to speed up playback by about 5-6x.
2020-05-09 04:47:10 +10:00
itsmattkc
8362a68aa9
viewer: factor visibility into audio playback
2020-05-08 02:57:59 +10:00
itsmattkc
373eeaeacd
renderer: when invalidating visible, kick the workers into emit mode
2020-05-07 01:29:05 +10:00
itsmattkc
c61adbf2a2
videorenderer: if an InvalidateVisible() signal comes through, cancel the queue
...
Optimization that frees up the GPU as quickly as possible when the user starts
making changes that may require quick feedback.
2020-05-07 00:56:16 +10:00
itsmattkc
c387ce1cd7
polygon node: early crude implementation
2020-05-05 00:22:49 +10:00
itsmattkc
cfc5ce24a3
Merge branch 'master' into gizmos
2020-05-02 17:06:49 +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
1cca9de7c5
gizmos: implemented pathway for node to draw on the viewer
2020-04-27 04:34:36 +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
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
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
1f34b89950
viewer: removed unnecessary debug line
2020-04-23 18:06:49 +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
ccb02d30aa
colormanager: implement default config
2020-04-22 05:08:33 +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
0ced48d4df
histogram: implemented color management
2020-04-21 01:59:06 +10:00
itsmattkc
6f4bf70d3e
scope: implemented waveform scope
2020-04-20 22:58:29 +10:00
itsmattkc
2849ae210c
timeline/viewer: reimplemented "play in to out" and "loop"
2020-04-19 17:22:32 +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
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
77c0db55a5
viewer: implemented display of title/action safe margins
2020-04-17 18:59:17 +10:00
itsmattkc
aac47ba776
viewer: re-queue video renderer even when beyond the length
...
Ensures video renderer always renders where the playhead is.
2020-04-13 13:19:08 +10:00
itsmattkc
7bc7b6098b
ui: moved remaining QMenus to our Menu class
...
Mainly to take advantage of Menu's specific styling on certain platforms to
keep a consistency.
2020-04-08 00:46:30 +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
59fa80ae57
ui: on windows, use native menus
...
Minor UI improvement for Windows users.
2020-04-06 00:14:36 +10:00
itsmattkc
1319d7141f
viewer: re-implemented auto viewer full screen from menubar/keyboard shortcut
2020-04-01 19:22:53 +11:00
itsmattkc
ed48d24cbc
viewerwindow: implemented displaying a viewer image fullscreen on another monitor
...
Implements an extra widget to display images on a separate monitor. Both
viewers have separate display color controls since different monitors may
conform to different standards/transforms.
2020-04-01 19:21:25 +11:00
itsmattkc
6ea6dd810e
pixelsampler: added pixel sampler panel
...
When visible, this panel will show the current reference and display transformed
color under the cursor of any viewer.
2020-04-01 16:57:10 +11:00
itsmattkc
3c3543a2a9
viewer: avoid divide by zero on sequences with zero length
2020-03-21 13:15:11 +11:00
itsmattkc
fed17e35fa
audiowaveformview: optimizes waveform to only redraw when necessary
...
Draws to a pixmap only when the waveform changes so it doesn't have to be
regenerated on every draw. Also renames WaveformView to AudioWaveformView
2020-03-18 14:44:05 +11:00
itsmattkc
1c192100c2
viewer: fixed bug where seeking would be stuck to one frame
2020-03-17 00:01:18 +11:00
itsmattkc
50061e4e55
waveformview: show in/out points in waveformview
...
Moved drawing routines to the base class that is used by both TimeRuler
and WaveformView
2020-03-15 18:21:14 +11:00
itsmattkc
a56484d3e6
timelinescaledobject: implemented minimum scale
...
Used by Viewer to keep TimeRuler and WaveformView within restrictions.
2020-03-14 22:34:23 +11:00