itsmattkc
df837efbc6
merged timeline and viewer nodes together
2020-01-03 03:26:00 +11:00
itsmattkc
f13f5b5fdb
fixes memory leak in AudioManager
...
Ensures a thread that gets created gets deleted when it's done.
2020-01-03 02:44:33 +11:00
itsmattkc
02a790b041
simple file renames to better represent their new purposes
2020-01-03 02:36:30 +11:00
itsmattkc
0ac202078c
rewrite of audio output manager for vastly improved operation
...
Previously the audio output manager was a "hybrid device" that acted as a pull
device for audio devices and as a push device and device proxy for the rest of
the application. This approach turned out to be flawed, particularly in the
frequent opening and closing of the audio device (extremely slow). Since we
use both pulling (for constant playback) and pushing (audio scrubbing, short
bursts of sound), it needed a similar but different approach. This approach
will switch the output device from push mode (default) to pull mode (during
playback) only when necessary resulting in far less UI lag (basically
unnoticeable now) than the previous approach.
2020-01-03 02:33:11 +11:00
itsmattkc
8ec63abc74
moved audio output manager and device to separate thread
2020-01-03 00:32:23 +11:00
itsmattkc
7d0d73bcfe
use signal/slot threading for the audio refresh thread instead of subclassing QThread
2020-01-02 22:02:48 +11:00
itsmattkc
31af04fc6c
minor render pipeline improvements
...
Simple flow improvements of the rendering pipeline for efficiency and
reliability.
2020-01-02 06:01:23 +11:00
itsmattkc
f8839e74de
ensure texture is not copied in one thread while it's read in another
...
This seems to cause issues in the rendering pipeline, so this commit never lets
a texture copy and read occur at the same time.
2020-01-02 06:00:21 +11:00
itsmattkc
7eae6a85f8
fixed bug that wouldn't clear TrackViewItems when a new sequence was opened
2020-01-02 05:59:37 +11:00
itsmattkc
8b2514c1de
implemented automatically switching to the hand tool when middle clicking on
...
all TimelineViewBase derivatives
2020-01-02 05:44:40 +11:00
itsmattkc
dd77ea46a5
nodeinput: remove unused bool member
2020-01-02 05:04:46 +11:00
itsmattkc
fd2d0f941c
block: add access functions to primary block inputs (length/media in+out)
2020-01-02 05:04:10 +11:00
itsmattkc
bfb111a2b0
timelinewidget: don't include gaps in the rubberband selection and clean tracks
...
after deleting clips from them
2020-01-02 05:03:36 +11:00
itsmattkc
3492b72e05
pointer tool: only clean up tracks once per operation
2020-01-02 05:02:09 +11:00
itsmattkc
104415a4de
razor tool: only push an undocommand if blocks were actually detected to split
2020-01-02 05:01:39 +11:00
itsmattkc
ae71b206cd
updated timeline tools to allow rounding as well as flooring to find the frame
...
at the mouse cursor point
2020-01-02 04:11:50 +11:00
itsmattkc
e8fddc2d5b
improved renderer reliability
...
The renderer backend can now distinguish between jobs. Previously if two jobs
of the same frame were started (which is legal if the user made a change while
frames were still being rendered), an earlier job in some situations could
finish AFTER a later job, and the backend would have no way of distinguishing
between them. This meant a frame could be erroneously set to an old value
rather than the newest. This commit introduces job identification so that old
jobs are automatically discarded.
2020-01-02 03:21:38 +11:00
itsmattkc
62e94ca2cb
improved a number of pointer tool functions and fixed a number of bugs
2020-01-02 01:30:43 +11:00
itsmattkc
f65e1e52b5
implemented scroll wheel zooming in all TimelineViewBase derivatives
2019-12-31 19:49:09 +11:00
itsmattkc
e41fdbd6e3
implemented autoscrolling derivatives of TimelineViewBase around the playhead
2019-12-31 19:17:40 +11:00
itsmattkc
9c3e5b76b2
when zooming any TimelineViewBase derivative, zoom towards the playhead
2019-12-31 19:01:52 +11:00
itsmattkc
c2558b3d06
implemented inverted timeline scroll axes
...
Timeline scrolls horizontally by default with a preference to disable that
functionality.
2019-12-31 18:46:42 +11:00
itsmattkc
9060636499
correctly connect timeline and trackview so they vertically scroll in tandem
...
with each other
2019-12-31 18:29:23 +11:00
itsmattkc
41b53d7a7f
correctly upconvert the DefaultSequenceFrameRate from a legacy config file
2019-12-31 15:39:17 +11:00
itsmattkc
e1f7319151
for languages in the PreferencesDialog use a function that provides a more
...
appropriate name
2019-12-31 15:38:42 +11:00
itsmattkc
f669446692
fixed keyframeviewbase bug that led to unpredicatable mouse behavior
2019-12-31 15:38:14 +11:00
itsmattkc
acfbe421e2
implemented much of the general tab and behavior tab in the PreferencesDialog
2019-12-31 14:40:52 +11:00
itsmattkc
970f4b4793
MainWindow: auto size panels vertically as well by default
2019-12-31 03:11:39 +11:00
itsmattkc
2b24fae26f
implemented vertical "zooming" in the TimelineWidget and CurveView
...
This comes in the form of changing the vertical scale in the CurveView and
adjusting all track heights in the Timeline.
2019-12-31 00:23:28 +11:00
itsmattkc
441555e9f2
fixed bug that wouldn't set a footage stream's enabled property correctly
2019-12-30 22:22:48 +11:00
itsmattkc
570fa4e5b0
implemented correct value changing in the CurveView widget
2019-12-30 22:22:30 +11:00
itsmattkc
0db13a96ab
implemented a footage viewer
...
Essentially a minor derivation of a viewer type that can automatically view
footage from the project (i.e. not in a sequence).
2019-12-30 20:17:48 +11:00
itsmattkc
55ea4a8177
implemented minor audio keyframing optimization
...
Since updating all input values per sample could be performance costly,
we now only update inputs that are either keyframing or connected to
another node
2019-12-30 20:17:02 +11:00
itsmattkc
e6c47b14f4
implemented audio keyframing
...
This mostly builds on the keyframing we already set up for video, but the
audio renderer will now appropriately updated keyframe inputs per sample in
accordance with keyframe values.
2019-12-30 20:14:45 +11:00
itsmattkc
7cc31e01e4
fixed issue that didn't disable the time slider correctly in the KeyframePropertiesDialog
2019-12-30 16:11:03 +11:00
itsmattkc
cb194b02bc
slider is now appropriately a different color when the widget is disabled
2019-12-30 16:09:21 +11:00
itsmattkc
f7dd751b54
new KeyframePropertiesDialog is now accessible from any KeyframeViewBase derivative
2019-12-30 16:06:13 +11:00
itsmattkc
41927512e9
fixed dodgy implementation of NodeInput::get_keyframe_at_time
...
This function didn't return the intended result. This bug has been fixed in this
commit.
2019-12-30 16:05:24 +11:00
itsmattkc
6ddabbaf3a
implemented keyframe properties dialog
...
Allows finer control over the keyframes and their bezier control handles.
2019-12-30 16:02:51 +11:00
itsmattkc
245aa44efc
implemented support for multilayered keyframes
...
This adds the ability to keyframe more than one value per input (e.g. a vec2,
vec3, etc.) so that you can animate, for example, an X axis separately from a
Y axis.
2019-12-30 04:47:23 +11:00
itsmattkc
ae84067084
reworked NodeInput to accept more than one keyframe "track"
...
To allow keyframing of each axis of a vector 2/3/4, without simply separating
the inputs for each axis, the NodeInputs need to support more than one keyframe
track with the ability to merge them into a single value when necessary.
2019-12-30 02:12:48 +11:00
itsmattkc
994d8be961
implemented bezier interpolation into parameters inputs
2019-12-28 23:21:07 +11:00
itsmattkc
1d3d52db9b
implemented the ability to modify bezier points in the curve editor
2019-12-28 22:40:30 +11:00
itsmattkc
4cd5e103b8
merged KeyframeView and CurveView to use the same base class
...
These classes had a ton of similarities, so they've now been modified to use
a common base class.
2019-12-28 18:47:54 +11:00
itsmattkc
26cafa7936
implemented bulk of curve editor's functionality
...
While certainly not entirely complete yet, this implements most of the UI
functionality of the graph editor.
2019-12-28 18:26:37 +11:00
itsmattkc
b65abe4881
use floor instead of round when calculating frame from cursor
...
Fixes a bug where clicking on the right of a frame would register as clicking
the next frame.
2019-12-28 04:47:27 +11:00
itsmattkc
f96abc2d82
set up sizing defaults
2019-12-28 02:09:23 +11:00
itsmattkc
d82acf9b7e
implemented basic animation curve editor widgets
...
Frontend is largely done, it just needs backend and connecting to other
widgets to function correctly.
2019-12-28 00:27:13 +11:00
itsmattkc
3c9b16555f
created curve editor panel
2019-12-28 00:26:42 +11:00
itsmattkc
bbef9badc7
implemented moving keyframes around in the NodeParamView
...
Can now change the time in the parameter panel.
2019-12-27 22:13:00 +11:00