Commit Graph
3704 Commits
Author SHA1 Message Date
itsmattkc efd90d5c8f renderer: use shared backend when caching
I think there was an earlier commit with a similar name but turns out
I'd only done foundational work in that commit and never actually
properly set it up. Of course once I did, there were several issues that
needed fixing to make it work correctly, but now it works as expected.

Heavily optimizes larger projects by allowing cache jobs to only copy
what has changed.
2020-07-10 18:39:47 +10:00
itsmattkc 36dd06d2dc viewer: set video and audio caches to children of the viewer
Ensures their thread gets changed along with the viewer. The project
gets loaded/created in a background thread so the GUI can remain
responsive, and is then moved to the main thread for intended event
handling. However if the caches aren't parented, the hierarchy breaks
and the caches remain in a thread whose event loop is quickly destroyed.
Now that they're parented, events can be properly queued on them once
again.
2020-07-10 18:34:16 +10:00
itsmattkc df78e88150 cmake: disable optimizations for debug builds
Makes debugging certain bugs easier.
2020-07-10 18:30:03 +10:00
itsmattkc 90bc678377 nodeinputarray: delete sub-params immediately instead of queuing
Queuing the destructor caused a potential desync in the node graph that
disconnected blocks after they were reconnected elsewhere. Destroying
immediately keeps this logic synchronized.
2020-07-10 18:26:30 +10:00
itsmattkc 0f9d409fb0 code: removed unused function declaration 2020-07-10 03:37:29 +10:00
itsmattkc 343c39d66d nodeparamview: preserve cursor position when text is edited 2020-07-10 02:41:35 +10:00
itsmattkc 911b6c2887 textnode: added parameters for default font and font size
Allows text node to be used without having to write HTML (but allows
the option for HTML still).
2020-07-10 02:40:52 +10:00
itsmattkc 0b4a9f4650 timeline: fixed bug that caused I-beam to render incorrectly 2020-07-10 02:40:23 +10:00
itsmattkc 8e1be4a3ff nodeparamviewwidgetbridge: implemented editing font parameters 2020-07-10 02:40:09 +10:00
itsmattkc a4acf5f99e nodes: hash strings as their value rather than the struct
Erroneously hashed strings incorrectly so the actual string contents
weren't what was being hashed.
2020-07-10 02:39:09 +10:00
itsmattkc 8e75432304 project/timeline: save timeline tracklist state in project file 2020-07-08 19:19:32 +10:00
itsmattkc af69f157a3 timeline: improved beam tool and its derivatives 2020-07-07 18:43:18 +10:00
itsmattkc a239fa0e2f timeline: fixed some ripple tool behavior bugs 2020-07-07 18:06:49 +10:00
itsmattkc 6c3313721b Merge branch 'master' of https://github.com/olive-editor/olive.git 2020-07-07 13:18:27 +10:00
itsmattkc cb93b6bfa1 text: keep text confined within text-safe area 2020-07-07 13:16:41 +10:00
itsmattkc 919314cce8 renderer: improve thread safety
Since we share render backends between the viewer and cache tasks now, we
should ensure the render backend is thread safe.
2020-07-07 13:16:25 +10:00
itsmattkc 30de447cc5 Merge pull request #1168 from ThomasWilshaw/buildFix
Attempt to fix the current Travis Linux build issue
2020-07-07 00:19:32 +10:00
itsmattkc a45f514f68 renderer: share render backend for auto-cache tasks
Since auto-cache events start and stop fairly frequently (and are somewhat
heavy to create/destroy), we can save a lot of cycles over time by sharing
the same backend between them all.
2020-07-06 14:22:17 +10:00
itsmattkc 936d077077 project: use relative filenames if absolute don't exist 2020-07-06 14:03:22 +10:00
Thomas Wilshaw 098b40c98e Use cfloat instead of limits 2020-07-02 15:36:13 +01:00
Thomas Wilshaw b04fa02ab4 Explicitly include limits header to fix build issue on Linux. 2020-07-01 14:18:12 +01:00
itsmattkc 3e9f98e230 Merge branch 'master' of https://github.com/olive-editor/olive.git 2020-06-26 00:22:03 +10:00
itsmattkc c324de804c audiomanager: create and delete future watchers when necessary 2020-06-26 00:21:34 +10:00
itsmattkc 7523db099b cmake: use improved FindOpenEXR module 2020-06-26 00:21:12 +10:00
itsmattkc e064d37988 mainwindow: check for connected items before saving
Fixes segfault when saving an empty project/a project with no sequence
open.
2020-06-24 02:14:51 +10:00
itsmattkc b0a5d4f4c3 parampanel: set input after timestamp
Default TimeBasedWidget behavior is to jump to the playhead, but we want
the CurveView to zoom fit on open instead. So we set the input after the
timestamp to make this behavior possible.
2020-06-24 01:36:04 +10:00
itsmattkc d31c373bd0 curveview: transform times to target for zoom fit 2020-06-24 01:29:57 +10:00
itsmattkc 8bf653925f curve/timeline: improved user interface behavior
* Implements "auto-fit" setting for curve view and sets it on open.
* Improves scroll zooming on all TimelineViewBase derivatives.
* Improves code sharing for better maintenance.
2020-06-23 05:25:34 +10:00
itsmattkc e681b87988 curve/param/panels: leave curve panel open and have option for timebasedwidget to auto-set timebase 2020-06-23 05:22:58 +10:00
itsmattkc 2207a915a6 viewernode: check if timebase/size have actually changed before signalling
Minor optimization.
2020-06-23 05:15:48 +10:00
itsmattkc 1ec0d06e9f timebasedpanel: check if node is the same
Minor optimization.
2020-06-22 00:40:19 +10:00
itsmattkc 6ebcb7162e audiovisualwaveform: clamp audio values so they stay inbounds 2020-06-22 00:39:38 +10:00
itsmattkc 1725f01459 paramview: changed to static viewer-bound and fixed various scrolling issues 2020-06-22 00:38:00 +10:00
itsmattkc e97b5a9a14 nodeparamview: set time on node set
Fixes bug where keyframes would land on 0 unless the time is set a
second time.
2020-06-21 13:12:07 +10:00
itsmattkc 5f6e5916bc curvewidget: allow zooming only one axis and allow hiding keyframe tracks 2020-06-20 01:56:41 +10:00
itsmattkc a94caa5737 export: fixed bug that broke audio on export 2020-06-19 20:25:49 +10:00
itsmattkc 65ccac1dfe renderer: fixed bug that would render frames even after hash matching
Also enables the -Wshadow GCC warning to warn against the code bug that
caused this issue (and has caused other issues like it in the past).
2020-06-19 20:25:05 +10:00
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 ab74c1579e mathnode: temporarily disable identity matrix detection
This code was faulty and needs extra functionality elsewhere to
actually work correctly.
2020-06-19 02:44:26 +10:00
itsmattkc fd8116a9de slider: use ctrl to switch axes 2020-06-19 02:36:09 +10:00
itsmattkc f8a8af9ec3 project: focus sequence if there is only one 2020-06-19 02:26:55 +10:00
itsmattkc 0280ade20d project: improved main window layout loading
There were a lot of issues that arose from trying to make GUI changes
from another thread (even though we ran those functions in the right
thread). Now we store layout information until the end of the load and
make the changes then. This works much better from both a business logic
and user experience perspective.

Also prevents multiple sequences from taking focus during load and
starting a render job.
2020-06-19 02:23:06 +10:00
itsmattkc 115e62f140 slider: further behavior improvements
Ladders appears offset on sliders with multipliers. Ladder also appears
on initial press (but still shows line edit if mouse wasn't moved)
2020-06-18 18:58:49 +10:00
itsmattkc 1f3e0db64b Merge branch 'master' of https://github.com/olive-editor/olive 2020-06-18 18:15:51 +10:00
itsmattkc e8c8fedcdb slider: stop ladder drag timer on release 2020-06-18 17:50:28 +10:00
itsmattkc 57f858dd92 nodetable: correctly update with time 2020-06-18 16:30:57 +10:00
itsmattkc e47c985baa slider: if a ladder appears, signal the label that the drag has finished 2020-06-18 16:30:36 +10:00
itsmattkc a717742cbc nodetable: show values in separate columns
Works for vector coordinates (e.g. XY, XYZ, etc.) as well as displays
checkboxes for RGB/A. Still non-functional.
2020-06-18 15:07:47 +10:00
itsmattkc 897b9ca3dd statusbar: disconnect old task when connecting a new one 2020-06-18 15:06:07 +10:00
itsmattkc c5dd406ff1 slider: improved ladder usability 2020-06-18 14:11:50 +10:00