Commit Graph
100 Commits
Author SHA1 Message Date
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 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 a40eaa1ed5 mainmenu: added cache actions 2020-05-15 15:09:08 +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
itsmattkc 992321a9a5 viewer: don't update if gizmos haven't actually changed
Minor optimization that prevents unnecessary repaints of the viewer viewport.
2020-05-13 18:26:21 +10:00
itsmattkc ce78c168e6 renderer: fix bug where disconnecting a shared node wouldn't update in the renderer 2020-05-13 16:07:08 +10:00
itsmattkc 1ed0814e83 nodeview: associate disconnected nodes with selected blocks until re-connected 2020-05-13 16:06:13 +10:00
itsmattkc ce58671fd6 nodeview: started core node filtering work 2020-05-11 22:48:27 +10:00
itsmattkc 9c30f13a2e nodeview: added setting for curved/straight edges 2020-05-10 04:33:37 +10:00
itsmattkc ed82061b51 config: new default colors accidentally contained a duplicate 2020-05-10 04:10:33 +10:00
itsmattkc 6ad5076160 viewer: added debug message if playback queue falls behind 2020-05-10 04:05:08 +10:00
itsmattkc eb1b76896e nodeview: reimplemented crude autopositioning system 2020-05-10 03:23:03 +10:00
itsmattkc 948a95f336 Merge branch 'master' into nodeviewredux 2020-05-10 01:01:58 +10:00
itsmattkc c5292f1290 import: disable default matrix/math node generation
While I think the matrix node is a fairly benign node to generate automatically,
I think we have an easier time communicating what's actually happening in the
node graph if we start with the bare essentials (video input -> clip).
2020-05-10 00:55:06 +10:00
itsmattkc a15e3496db config: improved default colors
Use more distinct colors for each category.
2020-05-10 00:54:38 +10:00
itsmattkc 5bdca974bf Merge branch 'master' into nodeviewredux 2020-05-09 23:32:14 +10:00
itsmattkc 25b35725f6 nodes: added more default values to nodes 2020-05-09 18:55:42 +10:00
itsmattkc d653070a9d slider: reviewed and conformed code 2020-05-09 18:53:00 +10:00
itsmattkc cd5a6a6b78 Merge branch 'slider' of https://github.com/ThomasWilshaw/olive into ThomasWilshaw-slider 2020-05-09 18:36:03 +10:00
itsmattkc a574771552 travis: attempt to acquire latest cmake from site 2020-05-09 17:55:39 +10:00
itsmattkc 476e45cfdc appveyor: don't upload artifacts
AppVeyor has reached its artifact limit causing builds to fail. We already
upload separately to GitHub Releases anyway, so it's kind of unnecessary.
2020-05-09 17:38:47 +10:00
itsmattkc 42b749e697 travis: attempt to prioritize our cmake build 2020-05-09 17:20:35 +10:00
itsmattkc 8decdd2224 travis: use updated cmake version 2020-05-09 16:47:35 +10:00
itsmattkc ec6eb4c053 cmake: bumped minimum version
We use `target_link_libraries` now which is 3.13+ only.
2020-05-09 16:40:13 +10:00
itsmattkc e0b08040ce cmake: explicitly state minimum OIIO version 2020-05-09 16:24:13 +10:00
itsmattkc 20ef7b1c21 viewer: fixed issue that would cause playback queue to stall 2020-05-09 16:21:03 +10:00
itsmattkc 0340373faa viewerpanel: only listen to closeEvent to pause
Using showEvent as well would pause if Maximize Panel was used which is
undesirable.
2020-05-09 16:20:31 +10:00
itsmattkc 869f41fc50 ffmpegdecoder: fixed audio bug that failed to conform if the codec didn't supply a channel layout 2020-05-09 16:06:05 +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 fc694296f1 nodeviewscene: added basic standard filtering modes 2020-05-09 03:33:41 +10:00
itsmattkc 16d4cccdb5 nodeview: optimized selecting
Rather than responding to every single selection change, the selection operation
can function as-is and then respond to all of them at the end.
2020-05-09 03:33:36 +10:00
itsmattkc 218c63f933 nodecombobox: implemented node combobox widget 2020-05-09 03:22:09 +10:00
itsmattkc 3d0f11c6ef nodeview: first attempt at filter dialog 2020-05-08 23:12:00 +10:00
itsmattkc 1efd4e9f99 nodeview: further improved auto-positioning system 2020-05-08 19:20:24 +10:00
itsmattkc 12672aae7c Merge branch 'master' into nodeviewredux 2020-05-08 13:00:21 +10:00
itsmattkc 6988436753 preferences: added minimums to cache ahead/behind
Fixes sobotka/Olive#114
2020-05-08 12:53:05 +10:00
itsmattkc 8362a68aa9 viewer: factor visibility into audio playback 2020-05-08 02:57:59 +10:00
itsmattkc 95e1273a63 Merge branch 'gizmos' 2020-05-08 00:41:19 +10:00
itsmattkc 69941dc2da nodes: added access to default value 2020-05-08 00:37:43 +10:00
itsmattkc 65705d580d renderer: keep frames in vram while paused
Saves some GPU cycles when adjusting parameters.
2020-05-08 00:32:02 +10:00
itsmattkc 5b956729b3 gizmos: work towards gizmos in the matrix transform node 2020-05-07 18:12:18 +10:00
itsmattkc 32eb28d05e Merge branch 'master' into gizmos 2020-05-07 14:42:11 +10:00
itsmattkc 3436740d23 gizmos: consolidated input param dragging code into reusable class 2020-05-07 14:41:50 +10:00
itsmattkc b9622ff916 Merge branch 'master' of https://github.com/olive-editor/olive 2020-05-07 04:57:37 +10:00
itsmattkc e45256f6ab cmake: rdynamic needs to be a *link* flag (not a compile flag) 2020-05-07 04:56:34 +10:00
itsmattkc d02e9090b9 implemented core gizmo interaction functionality 2020-05-07 04:45:27 +10:00
itsmattkc 3600d1254d config: shorten default cache length 2020-05-07 04:06:03 +10:00
itsmattkc d154143523 Merge branch 'master' into nodeviewredux 2020-05-07 03:57:12 +10:00
itsmattkc 3da9643da2 Squashed commit of the following:
commit 8e06ded5769a41294d1f6645b1442634d2f503ff
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 7 03:18:39 2020 +1000

    updated widget layout consistency

commit ba0ef33d56af23ccb611bc10293bd6cd0a52f250
Merge: 0f306550 9a4f7b54
Author: itsmattkc <itsmattkc@gmail.com>
Date:   Thu May 7 03:12:12 2020 +1000

    Merge branch 'pp_tabs' of https://github.com/ThomasWilshaw/olive into ThomasWilshaw-pp_tabs

commit 9a4f7b546eb096c64de16ab6ea9d942963ac9ae2
Author: Thomas Wilshaw <thomaswilshaw@gmail.com>
Date:   Mon May 4 23:56:26 2020 +0100

    Tabify Project Properties

    Move the project properites from boxes to tabs.
2020-05-07 03:19:25 +10:00
itsmattkc 43ee598e01 Merge branch 'master' of https://github.com/olive-editor/olive 2020-05-07 03:14:18 +10:00
itsmattkc 0f306550bf slider: use custom dragging code on mac
The slider dragging implementation used for other platforms caused issues on
macOS. We now have a custom Mac implementation that doesn't cause problems, and
is arguably better than the other implementation anyway.
2020-05-07 03:04:40 +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 2eb753e99d matrix: comment out broken test code 2020-05-06 23:23:07 +10:00
itsmattkc 3ef119c0ab removed shaders.qrc
Accidentally got merged in on this branch.
2020-05-06 23:22:49 +10:00
itsmattkc f262f1dadd Merge branch 'master' into gizmos 2020-05-06 23:18:15 +10:00
itsmattkc ee61ed3b2b Merge branch 'master' of https://github.com/olive-editor/olive 2020-05-06 23:15:24 +10:00
itsmattkc e5e0d0323e nodeview: implemented weighted auto-positioning
Similar to the previous approach, but cleaner and hopefully easier to extend.
2020-05-06 22:53:01 +10:00
itsmattkc 4d85987b71 nodeparamviewwidgetbridge: fixed array index out of bounds 2020-05-06 17:47:42 +10:00
itsmattkc 530aae00b8 nodeparamviewitem: fixed bug that didn't pass time target to array elements 2020-05-06 17:47:13 +10:00
itsmattkc 67854a2c97 gizmos: use scale instead of matrix transform
Improves appearance of gizmos lines and ensures other controls are drawn in
UI dimensions rather than texture dimensions.
2020-05-06 17:45:44 +10:00
itsmattkc 1ceefb6dba Merge branch 'master' into gizmos 2020-05-06 16:35:40 +10:00
itsmattkc 2e0082b04c nodes: started array widget 2020-05-06 16:32:54 +10:00
itsmattkc 78e305a593 mergenode: optimize so null textures (gaps, etc.) don't affect the hash 2020-05-06 16:14:27 +10:00
itsmattkc d49c6a059c nodes: optimize blocks so they don't unnecessarily change the hash 2020-05-06 16:14:23 +10:00
itsmattkc fb625cb76e nodes: removed XML infrastructure 2020-05-06 15:06:37 +10:00
itsmattkc 057cfe4296 config: make sure floats are used for color instantiation 2020-05-06 02:53:36 +10:00
itsmattkc fd30643204 Merge branch 'master' of https://github.com/olive-editor/olive 2020-05-06 00:23:11 +10:00
itsmattkc 721f6a79b4 mild conform to the rest of the code 2020-05-06 00:22:43 +10:00
itsmattkc 0d0d35f025 Merge branch 'ire_lines' of https://github.com/ThomasWilshaw/olive into ThomasWilshaw-ire_lines 2020-05-06 00:12:37 +10:00
itsmattkc d5f293c02a Merge branch 'master' of https://github.com/olive-editor/olive 2020-05-06 00:11:09 +10:00
itsmattkc 17876410b5 rewrote OCIO C locale patch
Previous build was getting optimized out. This one shouldn't.
2020-05-06 00:10:10 +10:00
itsmattkc c6213b32ad Merge branch 'nodeviewredux' 2020-05-05 23:47:33 +10:00
itsmattkc af994cd1b6 preferences: added preference for node color scheme 2020-05-05 23:47:03 +10:00
itsmattkc 0628ddb901 nodes: use different colors from config based on category 2020-05-05 23:24:00 +10:00
itsmattkc 74d252c5c0 nodes: use defined categories rather than arbitrary string based 2020-05-05 22:12:15 +10:00
itsmattkc 911ef782f9 colormanager: always temporarily set C locale when loading an OCIO config from file
Fixes known bug in OCIO when loading files from non-English locales.
2020-05-05 14:48:09 +10:00
itsmattkc 51c896ed7e scopes: moved all shared code to a base class to easily add more scopes 2020-05-05 02:41:16 +10:00
itsmattkc 54baba63f9 Merge branch 'master' into gizmos 2020-05-05 01:05:52 +10:00
itsmattkc 30efe054c7 colordialog: if display changes, ensure views change before anything else
Prevents exception if new display doesn't contain current view.
2020-05-05 00:42:55 +10:00
itsmattkc b80eb6fd45 track: fixed segfault if user tried to use "add" tool on nonexistant track 2020-05-05 00:36:28 +10:00
itsmattkc c387ce1cd7 polygon node: early crude implementation 2020-05-05 00:22:49 +10:00
itsmattkc b6696f3161 Merge branch 'master' into gizmos 2020-05-04 13:12:11 +10:00
itsmattkc 63f3e542ee style: fixed windows compile issue 2020-05-04 12:58:28 +10:00
itsmattkc 1fa3f4edb4 footageproperties: auto-select first usable stream (fixes #105) 2020-05-04 02:09:52 +10:00
itsmattkc 22bfff2c62 proxy: improved progress signalling
Signals once cache to disk is fully complete (rather than signalling on decode
and then sitting at 100% for ages until the disk saving is done).
2020-05-04 01:53:47 +10:00