Age | Commit message (Collapse) | Author |
|
|
|
|
|
Paul Davis was responsible for introducing almost all of this.
|
|
may be used in render-thread while invalidate_image_cache() is called.
possible fix for #6478
|
|
|
|
|
|
trying to maintain it in parallel with the cache map
|
|
provide a visible method to set the cache flush threshold
|
|
To avoid pixel jitter, the top and bottom of each line in the waveview must be computed together in a single computation,
rather than independently.
Also, remove various height corrections and cairo translations that are not necessary or relevant anymore. A subsequent
commit for the GUI will pick up on this work to get the appearance completely correct
|
|
ArdourCanvas::WaveView
|
|
|
|
|
|
one is already queued.
Also, hold relevant lock when waking image rendering thread.
|
|
for the full ones
|
|
Rebasing the feature branch against master was too messy, and only these two files were
changed. The development history of this branch could easily have been --squash'ed anyway,
so not much of a loss
|
|
Invalidate all source entries from the image cache when we get our
region's DropReferences signal, while ignoring any subsequent regions with
no source.
|
|
|
|
waveview when necessary
|
|
Reduce user panic by removing ! from missing file dialog title.
Use justify left in missing file dialog.
|
|
There are 3 possible components to draw at each x-axis position: the waveform "line", the zero line and an outline/clip indicator.
We have to decide which of the 3 to draw at each position, pixel by pixel. This makes the rendering less efficient but it is
the only way I can see to do this correctly.
|
|
class; rename Group as "Layout" and retain only drawing semantics
|
|
|
|
Items no longer need a parent group (they require a Canvas pointer instead), so all constructors have been rationalized
and have two variants, one with a parent and one with a canvas.
All Items now inherit from Fill and Outline, to banish diagonal inheritance and virtual base classes and all that.
There were zero changes to the Ardour GUI arising from these changes.
|
|
previous one, but usually ends up using three of them at the current
CACHE_HIGH_WATER setting.
Should result in a smaller memory footprint for sessions with
multiple copies of nearby audio segments (electronic style).
The downside is the larger memory footprint for linear recording
sessions if CACHE_HIGH_WATER > 1 (1 giving a max of two
half - sized cache entries per audio stream).
|
|
The idea now is that a scroll group item can be added to the canvas which will causes its children to scroll in either or both
directions (horizontal or vertical). There are few complications: the position() of the ScrollGroup is ambiguous depending
on whether you want it with scroll taken into account or not, so Item::canvas_position() was added, which defaults to
the same value as Item::position() but is overridden by ScrollGroup to return the position independent of scrolling. This
method is used when translating between item/canvas/window coordinate systems.
Note that the basic idea is that we MOVE the scroll group when a scroll happens. This mirrors what happens in the GnomeCanvas,
where Nick Mainsbridge came up with a great idea that allowed unification of the time bar and track canvases.
|
|
|
|
color for edge dots of waveforms instead of hardcoding black
|
|
|
|
|
|
Item::covers(Duple const&)
Default implementation for Item still uses bounding box, but specializations for Arc (Circle), Polygon, Line and PolyLine have been added
|
|
* clip level is now -0.9dbFS
* display of clipping is optional (see Theme Manager window)
* clipping is based on disk data, unscaled by region gain
|
|
Mostly this just involved removing the private CacheEntry class that really served no further purpose once
the design reverted to a single cached image
|
|
Rather than maintain a set of images in a cache, when we no longer have the required waveform data, create a new image that is appropriately centered and extends to roughly twice the screen width (or the limits of the region's source file(s), as necessary)
|
|
|
|
content-dragging, colors, and more
|
|
click
|
|
adjusting as do color stops to get a pleasing effect at most settings
|
|
renderings of themselves can invalidate those caches when colors etc. change; add Item::{begin,end}_visual_change() so that we can notify the canvas more efficiently when *only* visual properties have changed and not the bounding box (probably needs to be used more widely)
|
|
properties interact
|
|
back amplitude scaling, add rgb/hsv conversion utilities to canvas
|
|
|
|
development, but it is just a distraction - we will NEVER be saving or restoring canvas state via XML or any kind of serialized state
|
|
that uses this
|
|
shared_array<> to manage peak data
|
|
|
|
correctly
|