Paul Davis
c22e96522d
Merge branch 'waveview_caching_for_upstream' of https://github.com/nmains/ardour into cairocanvas
2014-06-08 13:01:47 -04:00
nick_m
e495577f98
Use global clip level from prefs. Restore clip colour, \
2014-06-09 02:50:14 +10:00
Paul Davis
5e281d3b44
when delivering enter/leave events to canvas items, ensure that the event coordinates are in canvas space, not window space
...
This fixes a variety of borkage in the canvas at present
2014-06-08 11:26:32 -04:00
Paul Davis
153befa92c
add Item::canvas_origin() for convenience
2014-06-08 11:26:32 -04:00
nick_m
7a05dde39d
Use a dumb cache for waveview ImageSurfaces. This halves the size of the
...
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).
2014-06-08 01:47:38 +10:00
Paul Davis
b54a2713a1
When rendering a Canvas::Rectangle take its _position into account, even though in general this is always (0,0) within its parent
2014-06-06 08:33:13 -04:00
Paul Davis
792fe016e7
clip rendering of ScrollGroup to just the part of the canvas covered by the scroll group.
...
This stops tracks from appearing to scroll up under the rulers, among other things.
2014-06-05 18:18:28 -04:00
Paul Davis
ef9bf58359
fix problems with expose/redraws from canvas where requested area goes way outside the integer range allowed by GTK/GDK
2014-06-05 14:42:46 -04:00
Paul Davis
8c79f70eef
remove debugging output
2014-06-05 12:04:42 -04:00
Paul Davis
1d354f746a
basic, initial structure for canvas widget item
2014-06-05 12:04:42 -04:00
John Emmas
236926e7ca
Add newly introduced sources to MSVC project
...
(scroll_group stuff)
2014-06-04 13:50:06 +01:00
Paul Davis
8fa81c1436
merge onecanvas and cairocanvas branches, and manually resolve conflicts, including rounding in item_to_window() methods
2014-06-03 16:37:53 -04:00
Paul Davis
e0533e9dd7
more profound changes to canvas scrolling, in particular find appropriate ScrollGroup for Canvas::{window,canvas}_to_{canvas,window}()
2014-06-03 16:13:12 -04:00
Paul Davis
d4989ed9ce
fix missing leftover Canvas::pick_current_item() which was confusing button release event coordinates
2014-06-03 16:12:00 -04:00
Paul Davis
073df89c4d
use window-based coordinates when picking current item so that we get per-item (per-scroll-group,really) computation of position and coverage.
2014-06-03 16:12:00 -04:00
Paul Davis
54a56cd3c6
various changes to get independent scrolling to work better in canvas. mostly tweaks relating to how scroll offsets are used during rendering.
...
Event handling offsets still require work.
2014-06-03 16:12:00 -04:00
Paul Davis
f17b84ad10
clean up ArdourCanvas::Arrow implementation to remove unshown polygon/head
2014-06-03 16:11:24 -04:00
Paul Davis
bf7b35388b
rationalize and centralize computation of positional offset and scroll offset for canvas items
2014-06-03 16:11:24 -04:00
Paul Davis
22e7252729
inline ScrollGroup::canvas_position() for no particular reason
2014-06-03 16:10:27 -04:00
Paul Davis
c9f890bd7c
avoid recursing through the entire canvas when scrolling - only scroll explicitly identified ScrollGroups
2014-06-03 16:10:27 -04:00
Paul Davis
6019f06bdf
different approach to independent scrolling, involving ArdourCanvas::ScrollGroup
...
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.
2014-06-03 16:10:27 -04:00
Paul Davis
97109672c7
initial redesign of canvas scrolling to facilitate independent x- and y-axis scrolling of specific groups within the canvas.
...
This commit should cause no change in behaviour, but contains all the code and changes necessary
for the next step
2014-06-03 16:09:06 -04:00
Robin Gareus
ab60429efc
test possible 'flickering' with nvidia
2014-05-31 18:22:34 +02:00
Robin Gareus
2342b7d611
don't allow waveform to bleed into TimeAxisViewItem frame border
2014-05-31 14:06:10 +02:00
John Emmas
161a3258ee
Add newly introduced sources to MSVC project
...
(xfade_curve stuff)
2014-05-30 12:52:03 +01:00
John Emmas
33412421f6
Rearrange some #includes to keep MSVC happy
2014-05-30 12:50:49 +01:00
Robin Gareus
fed5599baa
smooth visual curve drawing
2014-05-30 03:04:02 +02:00
Robin Gareus
202d926916
smoothen rendering of x-fades
2014-05-29 07:48:43 +02:00
Robin Gareus
604abffeb5
fix prev commit
2014-05-29 05:30:13 +02:00
Robin Gareus
86e7d86089
renice x-fade rendering w/cairo-antialiasing
2014-05-29 05:06:02 +02:00
Robin Gareus
30f204b90e
Canvas: new x-fade drawing, two curve widget
2014-05-29 03:09:57 +02:00
Robin Gareus
034f3dafd7
Revert "cairo sub-surface prototype & example
...
This reverts commit c57fcde78c .
and also commit f1f8f89fcb .
2014-05-28 19:13:25 +02:00
Robin Gareus
f1f8f89fcb
exercise subsurface rendering for x-fade curves
2014-05-28 17:38:42 +02:00
Robin Gareus
c57fcde78c
cairo sub-surface prototype - intermediate flattened group renderer.
2014-05-28 17:38:42 +02:00
Robin Gareus
c03b658531
Curve: anti-aliasing.
...
use cairo for anti-aliasing, and ignore explicit Catmull-Rom
points for that fall on the same x-cordinate.
2014-05-27 19:36:10 +02:00
Robin Gareus
99c953514b
implement Curve in/outside fill
2014-05-27 16:37:01 +02:00
Robin Gareus
432611113d
directly apply waveform clip-level changes
2014-05-27 16:37:01 +02:00
Robin Gareus
bf4819ab0e
"We brake for nobody." oh wait. - fixes Rectified Waveform view.
2014-05-26 22:45:42 +02:00
Robin Gareus
bdb342123f
fix prev commit, window-offset for x-fade drawing
2014-05-26 18:22:21 +02:00
Robin Gareus
791c668756
fix x-fade drawing
...
Catmull-Rom curve samples are not equally spaced on the x-axis.
Furthermore, Curve::map_value() is not needed, cairo line_to
already interpolates.
2014-05-26 17:02:21 +02:00
Paul Davis
e99c8960c0
first pass at tightening up waveform drawing algorithm to generally round down when dealing with fractional pixels
2014-05-07 10:35:50 -04:00
Paul Davis
1b989a93c2
remove redundant os.path.join() calls when specifying install path as bld.env['LIBDIR']
2014-04-28 21:18:02 -04:00
Paul Davis
058986f77b
finish unfinished work at basing all install paths on the program name
2014-04-28 21:11:08 -04:00
John Emmas
077a194430
Add the main VC project files for building Ardour3 with Microsoft Visual Studio
...
Note that there's no 'VS Solution' file at present and some targets haven't been built yet (e.g. 'fst')
2014-04-08 09:49:35 +01:00
Paul Davis
9df3157dfc
big rework of scrolling, horizontal part considered almost 100% done.
...
Many more changes than I would typically like in a single commit, but this was all very intertwined.
Vertical scrolling using track-stepping still to follow.
2014-03-20 13:29:45 -04:00
Paul Davis
c2946ee00f
don't queue redraws when various canvas item properties are "reset" to the same value, plus supporting functions
2014-03-11 07:36:09 -04:00
Paul Davis
032f394b2a
tiny red dots, be gone (expand poly_item bounding box by correct (?) amount)
2014-03-10 11:10:38 -04:00
Paul Davis
ec0be1310f
missing iterator advance
2014-03-10 11:10:38 -04:00
Paul Davis
52c8b6d66a
stupid hack to fix rectangle damage noise
2014-03-09 11:39:57 -04:00
Paul Davis
6d3bd4e53c
use fill transparency detection to avoid rendering transparent (invisible) rectangle fill area
2014-03-07 12:29:26 -05:00