itsmattkc
b2a3cede2c
renderer: re-use the same opengl instance for all background rendering
...
Previously the OpenGL instance was tied to each render/cache task,
creating and destroying it each time one started and stopped. This was
completely unnecessary since the instance holds no state and can be
shared by all of the render tasks without having to expensively start
a new one.
2020-06-19 17:06:14 +10:00
itsmattkc
2261f1147d
renderer: catch failure to load pre-cached frame
2020-06-17 17:48:41 +10:00
itsmattkc
66b63535a3
renderer: null check before hashing
...
Fixes segfault.
2020-06-16 15:16:52 +10:00
itsmattkc
f70f266ca0
render: queue audio alongside video
...
Previously, audio was all queued first and would therefore all have to
finish before any video frames could start caching. No longer! Now they're
queued side by side so users won't have to wait for audio to finish before
their cached frames come in.
2020-06-16 03:49:12 +10:00
itsmattkc
2e3072623a
renderer: use qvectors instead of qlists
...
Should be much more efficient for large-scale projects.
2020-06-16 02:45:16 +10:00
itsmattkc
5c5f09a20c
renderer: added generate job
...
For nodes that produce an image on the CPU before sending it to the GPU.
2020-06-13 03:01:23 +10:00
itsmattkc
af5097bf5f
nodes: revert shader ID to string
...
Much easier to manage this way and fixes a compile issue on several
platforms.
2020-06-12 16:02:29 +10:00
itsmattkc
23365074f0
samplebuffer: fixed segfault when changing speed
2020-06-12 14:53:27 +10:00
itsmattkc
955d4ce910
opengl: clear ping-pong texture before blitting to it
2020-06-12 03:44:43 +10:00
itsmattkc
e2e8a6859c
renderer: updated audio to work with minor node overhaul
2020-06-12 03:28:43 +10:00
itsmattkc
dd7af0e6bd
nodes: minor overhaul to functionality
...
The nodes now have more control over how their accelerated shaders/sample
functions are run, as well as how items are popped off the value tables.
This allows for various optimizations that we didn't have access to before.
2020-06-12 00:54:15 +10:00
itsmattkc
ccf5d4cece
audiovisualwaveform: detect if the start index exceeds the buffer sample count
...
Fixes segfault.
2020-06-11 21:24:50 +10:00
itsmattkc
a9a13c4b0c
framehashcache: remove code for saving integer-based frames to cache
...
Since we don't allow non-float cached frames now, there's no need to have
this code complicating the codebase.
2020-06-10 14:12:26 +10:00
itsmattkc
71ec148e76
renderer: moved all shader code into one solidified function
...
Makes texture-based optimizations easier when they're all in one place.
2020-06-10 01:54:02 +10:00
itsmattkc
e10b1462ff
renderbackend: moved bulk of hashing code to static function so more code has access to it
2020-06-09 02:36:11 +10:00
itsmattkc
2fc1ccebf7
openglproxy: implemented extra function for loading pre-cached frames into textures
2020-06-09 02:35:41 +10:00
itsmattkc
9095dfa463
project: replaced proxy with pre-cache
...
Removed proxy task and replaced with a true honest-to-god pre-cache for
footage. This footage is pre-cached to a sequence and therefore 100% ready
for use in it once the task is done.
2020-06-08 23:17:51 +10:00
itsmattkc
430561e2ac
sequence: made divider a sequence parameter rather than a viewer parameter
...
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc
5055c136b6
renderer: clear graph update queue when disconnecting a viewer
2020-06-06 01:02:03 +10:00
itsmattkc
4a8d557c59
various: removed unused debug lines
2020-06-05 16:11:49 +10:00
itsmattkc
de3288893d
renderer: move waveform generation into worker and mutex the waveform
...
Addresses scheduling issues where a backend might be closed (or even
destroyed) before it processes a waveform signal from a worker. Requires
extra multithreading code.
2020-06-05 15:18:14 +10:00
itsmattkc
5eeef76b62
waveform: shift track waveform alongside cache
2020-06-04 23:32:50 +10:00
itsmattkc
0e87762afa
waveforms: moved waveform to track rather than block
...
This is a much more robust and thread-safe system of storing the waveforms.
2020-06-04 18:03:21 +10:00
itsmattkc
9ff9817b95
cache: use render job times to synchronize cache
...
Ensure old inaccurate jobs are never prioritized over current jobs.
2020-06-04 16:48:23 +10:00
itsmattkc
0424768f02
renderer: use deleteLater on nodes instead of delete
...
Fixes warning about node signals unable to fire in another thread.
2020-06-01 04:43:35 +10:00
itsmattkc
c2e47a296c
timeline: heavily optimized and improved nearly all timeline optimizations
...
Features a lot of timeline-related cache optimizations as well as general
optimizations and improvements in timeline behavior. Should improve
usability significantly.
2020-06-01 04:42:59 +10:00
itsmattkc
a0dec75f2b
renderer: ensure offscreen surface is created in main thread
...
Fixes render crash on some platforms.
2020-05-27 04:05:01 +10:00
itsmattkc
3e3cacbc85
various: update Qt code deprecated in 5.15
...
- Replaces QLinkedList with std::list as recommended by Qt docs.
- Replaces QWheelEvent::delta() with QWheelEvent::angleDelta(). This
should also benefit trackpad behavior.
2020-05-27 02:54:05 +10:00
itsmattkc
0c7b3e1761
cache: streamlined audio into cache task
...
Since we always cache audio, it makes sense to lump it into the same auto-cache
task we use for everything else.
2020-05-27 00:09:09 +10:00
itsmattkc
c907114b17
renderer: optimizing and fixing code paths
...
Re-introducing some old concepts for the new structure.
2020-05-26 22:40:54 +10:00
itsmattkc
89ae6e026f
cache: reimplemented auto-caching
...
Implemented a smarter auto-cache that's context sensitive. Caching will
automatically pause when playback begins or values are being changed and resume
when inactive.
2020-05-24 15:20:35 +10:00
itsmattkc
a26a3cbf21
renderworker: improved update queue handling and reduced memory usage
2020-05-23 02:34:28 +10:00
itsmattkc
5212a6032a
renderbackend: initialize queuer value
...
Leaving uninitialized could potentially cause issues.
2020-05-21 21:45:12 +10:00
itsmattkc
d5766489e4
export: fixed audio exporting with new renderer system
2020-05-21 02:18:52 +10:00
itsmattkc
470bb44d0a
renderbackend: removed unusued dialog
...
This dialog caused a bunch of warnings and was unused in the new renderer
system. It may be used again later, so it's just been commented out, but there's
currently no plan to.
2020-05-20 12:50:59 +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
b9cd83eff1
task: massively simplified task system
...
Made various changes and fixes to the task system:
- Tasks are built around QtConcurrent rather than QThread. Reduces
code complexity significantly.
- Task error reporting is now streamlined in both TaskManager and
TaskDialog.
- Moved ProjectImport/Save/LoadManager to the app/task folder
2020-05-19 02:44:32 +10:00
itsmattkc
c4b0a53174
cache: render audio in chunks so they can be multithreaded
2020-05-18 22:52:31 +10:00
itsmattkc
558773538d
cache: fixed audio with new system
2020-05-18 17:16:28 +10:00
itsmattkc
127ebbe359
Merge branch 'master' into cacheondemandtake1
2020-05-18 13:46:35 +10:00
itsmattkc
3518a10230
opengl: added another bilt override for custom coordinates and mode
2020-05-18 13:41:11 +10:00
itsmattkc
b74ea1a8ba
renderer: reimported audio rendering functions
2020-05-18 12:52:25 +10:00
itsmattkc
814bbe8c22
fixed various segfaults in decoder and renderer
2020-05-18 02:40:58 +10:00
itsmattkc
a0f2035240
cache: fixed segfault if a block was ever disconnected
2020-05-16 00:31: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
ef6aa18fe1
further progress on first attempt
2020-05-14 16:47:01 +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
194fddef7e
renderer: set to render only by default
2020-05-13 22:40:02 +10:00