Commit graph

228 commits

Author SHA1 Message Date
Paul Davis
87fa554ac9 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-08-17 13:37:16 -04:00
Paul Davis
6d3b9fe7e6 overwrite state of libs/canvas with code from corresponding period in ardour-cairocanvas
This makes continued merges with ardour codebase easier, at the
small cost of removing the XML-based constructors. They were not
in use anyway and their use doesn't really fit into the
conception of the canvas as a dynamic UI element. Could reintroduce
them at a later date.
2014-08-17 13:29:01 -04:00
Robin Gareus
bafc5b816c test possible 'flickering' with nvidia 2014-08-16 17:59:45 -04:00
Robin Gareus
31c49330f0 don't allow waveform to bleed into TimeAxisViewItem frame border 2014-08-16 17:59:10 -04:00
John Emmas
8dd1ed2b7a Add newly introduced sources to MSVC project
(xfade_curve stuff)

Conflicts:
	libs/canvas/MSVCcanvas/cairocanvas.vcproj
2014-08-16 17:58:17 -04:00
John Emmas
c7dc741bed Rearrange some #includes to keep MSVC happy 2014-08-16 17:58:01 -04:00
Robin Gareus
81068a7932 smooth visual curve drawing 2014-08-16 17:57:42 -04:00
Robin Gareus
08666b2cfd smoothen rendering of x-fades 2014-08-16 17:56:05 -04:00
Robin Gareus
f91194f60f fix prev commit 2014-08-16 17:55:54 -04:00
Robin Gareus
93fea9021e renice x-fade rendering w/cairo-antialiasing 2014-08-16 17:55:47 -04:00
Robin Gareus
ec99a4f5c2 Canvas: new x-fade drawing, two curve widget
Conflicts:
	libs/canvas/wscript
2014-08-16 17:23:25 -04:00
Robin Gareus
9ec7b79ac9 Revert "cairo sub-surface prototype & example
This reverts commit c57fcde78c.
and also     commit f1f8f89fcb.
2014-08-16 17:21:08 -04:00
Robin Gareus
17e94e02e8 exercise subsurface rendering for x-fade curves 2014-08-16 17:20:57 -04:00
Robin Gareus
da7cdb9b26 cairo sub-surface prototype - intermediate flattened group renderer. 2014-08-16 17:20:51 -04:00
Robin Gareus
87974bf89c Curve: anti-aliasing.
use cairo for anti-aliasing, and ignore explicit Catmull-Rom
points for that fall on the same x-cordinate.
2014-08-16 17:20:27 -04:00
Robin Gareus
3d9b03017c implement Curve in/outside fill 2014-08-16 17:20:09 -04:00
Robin Gareus
264947595a directly apply waveform clip-level changes 2014-08-16 17:19:17 -04:00
Robin Gareus
b53cb263e5 "We brake for nobody." oh wait. - fixes Rectified Waveform view. 2014-08-16 17:16:41 -04:00
Robin Gareus
eaa4b4bdd7 fix prev commit, window-offset for x-fade drawing 2014-08-16 17:16:23 -04:00
Robin Gareus
4242022ee9 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-08-16 17:16:18 -04:00
Paul Davis
7e31e1399f first pass at tightening up waveform drawing algorithm to generally round down when dealing with fractional pixels 2014-08-16 16:35:21 -04:00
Paul Davis
1c84289254 remove redundant os.path.join() calls when specifying install path as bld.env['LIBDIR'] 2014-08-16 16:10:30 -04:00
Paul Davis
937c0764be finish unfinished work at basing all install paths on the program name
Conflicts:
	libs/backends/jack/wscript
	libs/backends/wavesaudio/wscript
	libs/canvas/wscript
	wscript
2014-08-16 16:10:15 -04:00
VKamyshniy
5c39b2e283 [Summary] Fixing the (C) info 2014-07-18 21:57:41 +03:00
GZharun
8c69a972b2 [Summary] Made Tracks buildable on MAC OS X 10.9 Maverricks.
[Details] Important: On Mavericks Tracks could be successfully built with static library linkage so far.
Use --internal-static-libs flag configuring the build.
[Reviewed by] Partially reviewed by Paul Davis. Some Improvements may be promoted in future.
2014-07-15 15:14:08 +03:00
VKamyshniy
3833e3b627 Merge branch 'master' of git.waves.com:waves/tracks 2014-07-04 18:04:39 +03:00
grygoriiz
6d1ab63d85 Added micro version number support for Tracks versioning 2014-06-17 16:16:02 +03:00
Valeriy Kamyshniy
a1709c74c6 Adding XML scripting to ArdourCanvas
[git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 452743]
2014-04-14 12:37:20 -05:00
Valeriy Kamyshniy
accfc900be cleanup
[git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 446439]
2014-03-26 10:20:59 -05:00
Grygorii Zharun
f300eaba93 [Summary] Fixed MAC build
[Details] Added fixes to make the code cross platform compilable
[Reviewed by] N/A

[git-p4: depot-paths = "//Abdaw/dev_main/tracks/": change = 446294]
2014-03-26 06:31:34 -05:00
Valeriy Kamyshniy
101f356e40 [P4/git history rebuild] change line widths. THIS COMMIT IS WRONG. It is included here to ensure maximal fidelity the initial p4 condition 2014-05-27 22:55:02 -04:00
Valeriy Kamyshniy
33f06cc498 [P4/git history rebuild] odd commit probably caused by a missing Ardour commit. Probably needs reverting in a future global merge 2014-05-27 22:54:22 -04: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
Paul Davis
12ef19d90a if a Fill object is given a zero-alpha (transparent) color, note that 2014-03-07 12:28:52 -05:00
Paul Davis
52cfbb45e1 alter ArdourCanvas::Rect::expand() to not clamp to all-positive values because we now definitely have items that have negative coordinates.
This could have drastic consequences but I think the all-positive was a hack to fix a problem that was solved separately by means currently unknown.
2014-03-07 11:26:27 -05:00
Paul Davis
621887cfaa slightly optimize bounding box computation for ArdourCanvas::PolyItem by avoiding inner conditional 2014-03-07 11:24:51 -05:00
Paul Davis
e5802bdbea move an assert to cover only cases where it is needed 2014-03-07 11:23:22 -05:00
Paul Davis
2a6fc5af74 tweak Polygon::render() to work whether or not fill or outline are unset 2014-03-06 23:15:59 -05:00
Paul Davis
a08c0ea1da manually revert change to canvas expose handling in fee026c5ef
Breaking out the rectangles implies a z-axis ordering of drawing,because the rect drawn last will implicitly be "on top".
But redraw areas are not submitted with any z-axis information, and so drawing like this breaks canvas layering. It
would be more efficient to draw the rects separately, but we don't have any ordering information and so we cannot do it
correctly.
2014-03-05 13:12:18 -05:00
Paul Davis
58a30da03d use a centripetal catmull-rom curve to smooth ArdourCanvas::Curve
See http://en.wikipedia.org/wiki/Centripetal_Catmull-Rom to understand the benefits of this.
2014-03-05 11:38:30 -05:00
Paul Davis
e6849e9c7e "correct" curve drawing (no artifacts during redraw)
Interpolation errors still need addressing.
2014-03-04 21:58:17 -05:00
Paul Davis
c29d392b0c tentative intermediate state for ArdourCanvas::Curve 2014-03-04 21:58:17 -05:00
Paul Davis
dde4d3bbc3 only queue an item redraw from Item::show() or Item::Hide() if the call changes the visibility status of the item (i.e. make no-ops really be no-ops) 2014-03-04 21:58:17 -05:00
Paul Davis
fee026c5ef break down GdkEventExpose into distinct rectangles for canvas expose rather than drawing the entire region as a single rect 2014-03-04 21:58:16 -05:00
Robin Gareus
912f07b919 mingw build fixes (tested with i686-w64-mingw32 on linux-x86_64) 2014-03-04 15:25:58 +01:00