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
032f394b2a
tiny red dots, be gone (expand poly_item bounding box by correct (?) amount)
2014-03-10 11:10:38 -04:00
ec0be1310f
missing iterator advance
2014-03-10 11:10:38 -04:00
52c8b6d66a
stupid hack to fix rectangle damage noise
2014-03-09 11:39:57 -04:00
6d3bd4e53c
use fill transparency detection to avoid rendering transparent (invisible) rectangle fill area
2014-03-07 12:29:26 -05:00
12ef19d90a
if a Fill object is given a zero-alpha (transparent) color, note that
2014-03-07 12:28:52 -05:00
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
621887cfaa
slightly optimize bounding box computation for ArdourCanvas::PolyItem by avoiding inner conditional
2014-03-07 11:24:51 -05:00
e5802bdbea
move an assert to cover only cases where it is needed
2014-03-07 11:23:22 -05:00
2a6fc5af74
tweak Polygon::render() to work whether or not fill or outline are unset
2014-03-06 23:15:59 -05:00
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
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
e6849e9c7e
"correct" curve drawing (no artifacts during redraw)
...
Interpolation errors still need addressing.
2014-03-04 21:58:17 -05:00
c29d392b0c
tentative intermediate state for ArdourCanvas::Curve
2014-03-04 21:58:17 -05:00
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
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
912f07b919
mingw build fixes (tested with i686-w64-mingw32 on linux-x86_64)
2014-03-04 15:25:58 +01:00
e6c3cece64
remove recently added conflation of mingw64 and msvc with respect to symbol export
2014-03-02 14:59:08 -05:00
560c667ea9
fix compilation of libcanvas so that when built as a shared lib (the default), -DLIBCANVAS_DLL_EXPORTS=1 is not lost
2014-03-01 16:52:08 -05:00
19395ac258
when mingw is mingw64, it appears that we need to use __declspec() and not __attribute__((visibility)) for export control
2014-03-01 15:16:39 -05:00
e60933650e
remove debug messages, for now
2014-02-28 17:17:00 -05:00
435c3ad47f
change implementation of ArdourCanvas::Curve to use GIMP-inspired ideas.
...
Presmooth with quadratic bezier, then interpolate when rendering. Not finished yet
2014-02-28 17:00:25 -05:00
007e6bb15b
remove unneeded extra methods in ArdourCanvas::Curve
2014-02-27 09:22:36 -05:00
0cbf8f7dea
fix canvas enter/leave bug when point is over a group/ignore-event item and we fail to send a leave event to the previous item
2014-02-25 16:08:36 -05:00
f9a3e7f8bb
add DEBUG::CanvasEnterLeave to allow runtime toggling of canvas enter/leave events
2014-02-25 16:07:51 -05:00
737aae908a
tweak canvas rect drawing to correctly place bottom edge of rectangle inside the bounds (cairo works in mysterious ways)
2014-02-25 12:02:50 -05:00
e2f18ea658
allow per-line configurability of the threshold used to determine if a PolyLine covers a given coordination
2014-02-20 12:53:08 -05:00
14b2d0b549
fix error in canvas PolyLine::covers(), so that the mouse can actually enter/leave such items
2014-02-19 23:42:01 -05:00
05d7947795
make stateful image canvas item actually compile
2014-02-17 16:05:52 -05:00
eb3c14db25
new canvas item to allow image-based GUI construction
2014-02-17 15:28:18 -05:00
172a4a853d
fix up problems with patch change flgs not changing height correctly
2014-02-14 12:06:44 -05:00
1df483d3db
since we now expand rectangles to the right always, adjust the bounding box computation
2014-02-14 09:49:16 -05:00
1a9076c0ba
remove debug message
2014-02-13 18:18:53 -05:00
08b86fda5c
fix up some issues with precise placement of ArdourCanvas::Rectangle frame/outline
2014-02-13 18:18:19 -05:00
79d2a686ff
make Item::set_position() do nothing if the position doesn't change
2014-02-13 18:18:19 -05:00
f889f391a1
Guard some Debug output so that it only appears when applicable ('Item::name' is only available when CANVAS_DEBUG is defined)
2014-02-13 14:12:36 +00:00
f5499d206a
slight code tidy for Line::render() ... don't use 0.5 pixel adjustment if the line width > 1.0
2014-02-12 15:26:53 -05:00
e247103a7e
fix up major thinko's in ArdourCanvas::Group's handling of deletion (both its own, and child items)
2014-02-12 15:15:27 -05:00
6876906d9d
fix major thinko in ArdourCanvas::Group::clear()
2014-02-11 22:49:39 -05:00
a329a44cc1
when delivering canvas events, if an item is grabbed, use it in preference to Canvas::_current_item, but still propagate to its ancestors if left unhandled
2014-02-11 22:49:10 -05:00
cc2aca44fb
fix text placement in ArdourCanvas::Flag
2014-02-11 12:40:44 -05:00
bb05ae05a8
remove unused _wave_color member from waveview canvas item; use outline color for edge dots of waveforms instead of hardcoding black
2014-01-26 16:02:38 -05:00
3c5a870289
a better, more general fix for the previous Canvas::item_going_away() issue. There is no need to repick the current item if the item going away is NOT the current item
2014-01-20 10:59:44 -05:00
2691209050
When removing an item which is event-insensitive, there is no need to repick the current item, since it can never have been used as the current item.
...
This fixes crashes associated with ghost notes in midi regions.
2014-01-20 10:53:58 -05:00
620e1e6677
add event type string function to canvas (since it does not use gtkmm2ext)
2014-01-16 10:52:34 -05:00
fbe94f4470
pixel-align canvas PolyItems with single-pixel outlines, for crispness
2014-01-13 09:39:50 -05:00
5062a00c7d
move -fvisibility=hidden to the top of the source tree, and remove its internal use; use libtimecode as a shared lib again
2014-01-12 15:40:47 -05:00
22c303d8f6
final (?) tweaks to rectangle rendering
2014-01-10 14:36:05 -05:00
9df593d823
clamp expose (queue_redraw()) requests to visible window area, some extra debugging details
2014-01-10 14:35:36 -05:00
02e6d14e23
make no-zero-line be the default for wave views (still shown for normal audio region views
2014-01-10 12:08:58 -05:00
6d4c0baad3
fix up thinko in recent raise_to_top/lower_to_bottom optimization
2014-01-10 11:54:05 -05:00
70c4a5e2d6
slightly expand CanvasRender debug output
2014-01-10 11:02:34 -05:00
ffdf3ed017
don't go through ::deliver_enter_leave() unnecessarily
2014-01-10 11:02:05 -05:00
5cd35de56b
prevent Rect::expand() from generating negative coordinates where there were none before
2014-01-08 18:20:19 -05:00
cf293d0593
tweak rectangle bounding box computation
2014-01-08 10:42:14 -05:00
35d3a4a351
remove unused code
2014-01-08 10:31:39 -05:00
a70edc5765
change rounding used for convert Rect from canvas to window coordinates
2014-01-08 10:31:14 -05:00
98dec658ee
Revert "remove unused code"
...
This reverts commit 2d283c17e1
.
2014-01-08 10:29:03 -05:00
2d283c17e1
remove unused code
2014-01-08 10:28:46 -05:00
8fa54cd1d9
shrink waveview zero line to single pixel
2014-01-07 22:51:18 -05:00
c235d3da99
mostly fix conceptual error in how canvas rectangle frames are drawn
2014-01-07 20:56:36 -05:00
5fec68e6c5
for now, hide ugly circle thing in drag handles
2014-01-07 20:56:03 -05:00
d1652f8cc6
outline width of 0.5 is stupid and meaningless, and was just hiding other issues with outlines
2014-01-07 11:31:47 -05:00
7914d45f27
add missing iterator increment to poly item renders.
2014-01-06 20:45:40 -05:00
4b71d7fde5
small optimization to curve rendering
2014-01-06 20:45:40 -05:00
7b24be86a2
make raise_to_top() and lower_to_bottom() no-ops if item is already in the right place
2014-01-02 16:49:42 -05:00
7f83975e7d
add drag handle source to wscript
2014-01-02 16:49:11 -05:00
edb932b819
basic, prototypical drag handle implementation
2014-01-02 16:48:44 -05:00
8f876bb5ab
remove legacy CANVAS_COMPATIBILITY property_foo() stuff (related to gnomecanvas API) from libcanvas
2013-12-31 11:54:05 -05:00
110c790d91
define signal associated with configurable clipping level to Canvas::WaveView
2013-12-30 15:54:09 -05:00
7158eb7565
add configurable clipping level to Canvas::WaveView
2013-12-30 15:46:44 -05:00
2d50adaf3a
ignore invisible items when picking the current item
...
Also left behind some commented debug out that probably deserves a new PBD::Debug bit.
2013-12-30 14:02:43 -05:00
4886eb7098
try to rationalize logic for displaying/hiding regionview (time axis view item) name highlights and text
2013-12-29 23:10:54 -05:00
a585816f3e
slight optimization of PolyItem::render_path()
2013-12-28 13:52:08 -05:00
218a4664be
add visibility/export control to libcanvas
2013-12-27 16:24:58 -05:00
84f55440a3
fix redrawing of canvas with an optimized build
...
Best guess right now is that optimization does something bad when ceil() is called twice on a very large dbl-precision number,
which results in a zero (empty) redraw area. Without the removal of the redundant ceil & floor functions, no expose events
would be delivered to the canvas in an optimized build during drags (and maybe more).
2013-12-23 15:35:49 -05:00
9b6135b2e1
change enter/exit event delivery to follow X Window model (inferior, ancestor, virtual, nonlinear)
2013-12-12 20:44:04 -05:00
88732abd01
change event propagation to be based on parent/child lineage, not z-axis stacking, plus some more alterations to try to get enter/leave working
2013-12-12 10:03:33 -05:00
a631350f93
implement Curve::covers() in a very primitive way (also note: fails for actual spline curves)
2013-12-09 21:03:16 -05:00
c4f0063a68
make PolyLine use distance_to_segment_squared(), and add separate (null, for now) method Curve::covers(Duple) because the math there needs to be different, maybe
2013-12-09 17:24:34 -05:00
77a63c2bf7
ArdourCanvas::Line::covers() uses distance_to_segment_squared()
2013-12-09 13:39:10 -05:00
4780c84252
debug trace tweaks
2013-12-09 13:38:22 -05:00
75b25cd913
add a utility function to Canvas to compute distance from a point to a line segment
2013-12-09 13:35:07 -05:00
6473cc7cb4
drop use of bounding box to determine whether an item covers a point; add Item::covers(Duple const&)
...
Default implementation for Item still uses bounding box, but specializations for Arc (Circle), Polygon, Line and PolyLine have been added
2013-11-04 11:56:10 -05:00
08b485db75
send enter events to EVERY newly entered item (ignore the bool return from the event handler); other canvas debugging aids;switch items_at_point() to use canvas coordinates
2013-11-03 10:07:00 -05:00
85daa31ab5
all events propagate out of the canvas in canvas coordinates now, so revert changes in editor_drags.cc that worked around this not being the case
2013-10-31 16:43:35 -04:00
b46244d527
finally (?) fix up logic for rectangle drawing (fill+stroke) to tackle what is hopefully the last of the expose problems
2013-10-31 11:49:36 -04:00
7ce86cec7d
handle enter/leave items when zooming and scrolling occur
2013-10-31 03:10:18 -04:00
7bbd28aa08
notable changes to try to improve most of enter/leave handling for canvas items
2013-10-30 23:36:30 -04:00
006ba7cd36
reduce verbiage and remove visible current_item red rect
2013-10-28 16:36:11 -04:00
f6d33d2a87
fix comment
2013-10-28 16:35:48 -04:00
30263a91d7
fix coordinate system for Canvas items_at_point() methods
2013-10-28 16:35:31 -04:00
f28fb76bd9
fix computation of Text bounding box to respect _clamped_width
2013-10-28 12:27:33 -04:00
1eb680f937
add coordinate space comment
2013-10-28 12:27:03 -04:00
f25ff95390
tweak whitespace and add coordinate space comment
2013-10-28 12:26:40 -04:00
0db7bdface
streamline button press event handling code a little, and tweak enter/leave debugging text
2013-10-28 12:25:41 -04:00
5ebc4a99be
don't request redraw of a Canvas item if it marked invisible
2013-10-25 13:29:23 -04:00
ecd29c6d70
add Item::redraw() convenience method
2013-10-24 17:54:54 -04:00
c3f1369cfd
expand bounding box of all objects by 0.5 before computing intersection for render cycle; alter debug output
2013-10-24 17:14:12 -04:00
c21ed2b877
fix drawing of a canvas LineSet object
2013-10-24 17:13:22 -04:00
9d2e4fbec6
fix computation of rectangle bounding box
2013-10-24 17:13:03 -04:00
097b781209
fix computation of canvas text item bounding box
2013-10-24 17:12:28 -04:00
5ea6b4420b
slightly more information in group render DEBUG_TRACE output
2013-10-23 10:39:26 -04:00
192f22d89e
fix confusion in Canvas::LineSet over window vs. item coordinates that affected redraw (or not) of MIDI track note lines when the canvas origin != 0
2013-10-22 21:12:47 -04:00
18850253e9
only generate some current canvas debug output when CANVAS_DEBUG is defined, to quieten things down
2013-09-25 10:38:04 -04:00
67bb9a732a
add casting for MSVC sqrt
2013-09-25 10:36:42 -04:00
3ba0ef7192
fix a typo in canvas-debug.h
2013-09-25 10:36:21 -04:00
741154e691
debugging various canvas event issues
2013-08-08 15:26:42 -04:00
c37040ef01
expand tabs to spaces in wscript
2013-07-14 19:39:24 +02:00
37743ea9b1
minor fixes for recent cairocanvas work so that it builds on OS X (64bit)
2013-07-01 12:04:02 -04:00
af3056769c
changes to waveform clipping display
...
* 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
2013-06-28 20:21:30 -04:00
aa480b8338
make clip indicators more visible (the smaller of 7 pixels or 5% of track height)
2013-06-28 17:09:39 -04:00
5b3ebe824e
restore display of clipping in waveform displays
2013-06-28 13:40:51 -04:00
144fdfbbd0
fix drawing of rectangles larger than 2000 pixels, caused by silly hard-coding of width limit
2013-06-27 17:27:58 -04:00
c6fe6b0996
cleanup ArdourCanvas::WaveView
...
Mostly this just involved removing the private CacheEntry class that really served no further purpose once
the design reverted to a single cached image
2013-06-27 17:23:34 -04:00
0e656f0a13
workaround/hack/fix for cairo pattern gradient space exceeding 2^16 size limit
2013-06-27 10:41:00 -04:00
f9936d7d3c
move text origin back down, since it was a mistake to move it; alter computation of text bounding box to more accurate and efficient (not done yet)
2013-06-26 17:55:42 -04:00
2c3d570582
tweak position of pango-rendered text image on canvas by 2 pixels upward
...
this is an arbitrary tweak but seems to work well thus far
2013-06-26 12:29:44 -04:00
57ff5e3198
fix gradient pattern origin translation for time axis view items
...
note: the solution is non-obvious, but the obvious one of applying a translational Cairo::Matrix to the gradient
caused an exception to be thrown because of a non-invertible matrix.
2013-06-25 20:41:24 -04:00
2108525187
fix up size and drawing of measure lines, even when vertically scrolled
2013-06-24 23:03:11 -04:00
a1f858d3b2
an awful lot of tweaks to drawing details
2013-06-24 16:28:53 -04:00
0ce393f051
likely fix for Canvas::Image positioning under new coordinate/render rules
2013-06-22 14:59:43 -04:00
11becd4a6b
properly restore newer (cairo-canvas related) UI config parameters
2013-06-21 17:15:56 -04:00
a079118981
fix incorrect coordinate space when drawing first poly-curve line
2013-06-21 13:56:01 -04:00
1c74a3ab2d
waveform drawing improvements
...
* handle logscaled and rectified
* put dark tips in right places
* improve color selection algorithm
2013-06-21 13:17:37 -04:00
68779e0c0a
(working) start of an experiment with pyramix-style waveform drawing
2013-06-20 23:12:19 -04:00
27c943f1dd
new image cache design for waveviews, with various fixes.
...
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)
2013-06-20 14:37:31 -04:00
3604bf12a2
get wave drawing improved, but commit before i tear it all up and go back to a single cached image per waveview
2013-06-19 20:23:22 -04:00
f9d30cf41a
inching pretty close to fully working waves now
2013-06-19 14:44:08 -04:00
79384aeb66
initial semi-working attempt at getting waveview cache to work correctly
2013-06-18 23:03:20 -04:00
691be68ac2
fix rect redraw problems caused by intersection requiring the usual 0.5 expansion (though consider a more general fix for this at teh group level)
2013-06-18 13:46:24 -04:00
77f5f4c4bf
basically operational switch to canvas drawing coordinates, although text and waves don't work, and redraw areas are too small
2013-06-18 08:23:06 -04:00
c358e77e1e
move setup_outline_context() to a more sensible shared location
2013-05-02 18:21:35 -04:00
41d68e780f
do not trigger visual changes when Fill::set_* methods don't change anything
2013-04-26 14:19:16 -04:00
f9a46e78d6
fix incorrect 3rd arg to AudioRegion::read_peaks() - was passing end, not cnt. Fixes waveforms at high zoom
2013-04-26 11:10:19 -04:00
f8a37b197f
tweak enter/leave code, remove debug output
2013-04-25 09:49:02 -04:00
fd7ac62ca5
don't invalidate image cache for every regionr esize, only region start changes
2013-04-25 09:48:38 -04:00
d0867e67e3
more tweaks for enter/leave events for canvas items
2013-04-24 22:57:23 -04:00
737433c446
tweaks to improve enter/leave event handling - fixes at least some crashes caused by this stuff
2013-04-24 18:31:00 -04:00
6f664c1f67
many pervasive changes primarily related to waveform drawing, particular content-dragging, colors, and more
2013-04-24 15:42:14 -04:00
b36e085001
add back change lost during branch merging
2013-04-21 18:57:55 -04:00
eb23bd8102
add Group::clear(), do not clear _canvas member of Item when unparented (only the parent is changed)
2013-04-21 15:35:20 -04:00
b02a7445bf
Revert "add Group::clear(), do not clear _canvas member of Item when unparented (only the parent is changed)"
...
This reverts commit a4df65a56f83823aba27432685977f420458a213.
2013-04-21 15:35:20 -04:00
fca81c9a6a
add Group::clear(), do not clear _canvas member of Item when unparented (only the parent is changed)
2013-04-21 15:35:20 -04:00
fee8de9787
Revert "cairo image crash debugging" and "initialize image data"
...
This reverts commit dfdb91b429
and commit 188d766757
.
despite earlier assumptions the code is correct and there is
likely a memory corruption elsewhere.
2013-04-20 23:36:13 +02:00
dfdb91b429
cairo image crash debugging
2013-04-20 22:51:37 +02:00
9a3bc39970
tweak event/leave event delivery so that it applies to items being deleted as well as motion events (hmm, needed for item addition too ...)
2013-04-20 16:11:40 -04:00
188d766757
initialize image data.
2013-04-20 22:07:43 +02:00
0c170b0897
no create cached waveview images that span from render-start to cache-start, but always clamp the end to render-end, to avoid creating over-sized images
2013-04-19 10:53:52 -04:00
907e7cd4af
part two of ... add Canvas::Arc and derive Canvas::Circle from it
2013-04-18 21:29:13 -04:00
8482ce14ce
add Canvas::Arc and derive Canvas::Circle from it
2013-04-18 21:28:11 -04:00
5bb213f53b
add Canvas::Circle
2013-04-18 15:47:30 -04:00
74126c48c0
expand bbox for Canvas::Line to get rid of artifacts caused when moving them around, as is done for Rectangle and others
2013-04-18 15:47:10 -04:00
b7aeb147f2
display waveform polarity correctly
...
* cairo's Y axis points downward -> invert phase display
* fix logarithmic view for value.max < 0
2013-04-18 10:25:35 +02:00
3737f346ee
Merge branch 'cairocanvas' of git.ardour.org:ardour/ardour into cairocanvas
2013-04-17 15:23:01 -04:00
ec102f94e1
various work waveview amplitude mgmt; fix playhead cursor drag from timebar click
2013-04-17 15:22:09 -04:00
8f2a2877b5
ArdourCanvas::Image allow to set custom data instead of class pre-allocated memory.
2013-04-17 20:26:09 +02:00
d1a05240ef
fix clamping of line and rect coordinates to avoid issues with cairo when drawing way outside a surface's dimensions; move various coordinate methods down to Canvas, because they don't require GTK information; make visible_area() a Canvas virtual method so that we don't have to cast to call it
2013-04-17 10:53:17 -04:00
96eee9e7a1
change UIConfig to use accessor/setter methods like RCConfig so that ParameterChanged methods can actually be emitted; add variable (over a small range) background shading for all TimeAxisViewItems
2013-04-16 23:46:22 -04:00
381d4debf4
make waveform gradient depth continuously variable. color probably needs adjusting as do color stops to get a pleasing effect at most settings
2013-04-16 21:23:50 -04:00
c1df3295c1
virtual Fill:: and Outline:: methods so that Canvas::Items that cache image 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)
2013-04-16 20:38:10 -04:00
81eed21dde
some rationalization of how global WaveView properties and per-WaveView properties interact
2013-04-16 18:02:12 -04:00
a74743f551
somewhat restore ability to see rectified waveforms
2013-04-16 16:14:57 -04:00
33e09447e9
restore log-scaled waveform functionality
2013-04-16 15:38:18 -04:00
ef60401d92
(hopefully) fix double-buffering design of ArdourCanvas::Image
2013-04-16 14:20:04 -04:00
ccc9b6adee
change rendering technique for waveforms, add back optional gradient, add back amplitude scaling, add rgb/hsv conversion utilities to canvas
2013-04-16 14:04:59 -04:00
a0044e5f71
add back various functionality to waveviews such as zero line, amplitude scaling
2013-04-16 10:07:52 -04:00
be23e48e7f
add some comments to Canvas::Image and ensure that the canvas redraws after a put_image() call is handled in the GUI thread
2013-04-15 22:34:36 -04:00
37dd7e952b
add headers to all canvas .cc and .h files
2013-04-15 22:10:18 -04:00
64d3763652
remove all xml++.h inclusion by canvas implementations
2013-04-15 22:00:13 -04:00
84fb0a8dce
remove all XML related API from canvas. it may have been useful during development, but it is just a distraction - we will NEVER be saving or restoring canvas state via XML or any kind of serialized state
2013-04-15 21:57:08 -04:00
fe34485907
add new canvas Image item, with somewhat optimized API for asynchronous, threaded rendering directly into an image buffer suitable for use by cairo as a source surface (currently untested)
2013-04-15 21:40:15 -04:00
393ba98422
tweak time axis view item text positioning; allow ArdourCanvas::Text to have its width clamped, and use this as TAVI's get narrow so that text doesn't overflow
2013-04-15 14:45:22 -04:00
7e19053b88
Fix dragging objects on the canvas and remove redundant canvas groups
...
Delivery of fake motion events to the editor needed the event coordinates to be
in canvas space, as they are with "real" events. Editor and other objects had
many redundant groups from timbyr's work on gnomecanvas to scroll by moving
groups. We don't need this anymore with cairo-canvas (though possibly a
stationay background group for the canvas might be useful again one day as in
the SAE logo. Its implementation would be fairly different though, since we
would have to explicitly move the group on every scroll, since nothing else
ever moves on scroll).
Also tweaks to text item placement, and switch TimeAxisViewItem from
name_pixbuf to name_text, since ArdourCanvas::Text is already "pixbuf optimized".
2013-04-15 13:50:05 -04:00
af4539f857
a few changes to fix region dragging, all related to coordinate system handling, which is now much simpler with the new canvas; more debugging output when asked for
2013-04-15 10:38:12 -04:00
4e84bc3a39
changes to get cairocanvas branch to build on OS X, with its stupid nil and Rect macros, plus some const_cast<> and unused variable fixes that should really be in master but will have to wait till we rebase master
2013-04-12 21:46:44 -04:00
e5a3747686
switch from frames_per_pixel to samples_per_pixel in the one canvas object that uses this
2013-04-12 11:31:17 -04:00
4258a34912
change all frame_to_pixel and pixel_to_frame to sample_to_pixel and pixel_to_sample
2013-04-12 11:15:45 -04:00
fcb423f3f6
slightly optimize drawing of rectangles with all 4 sides outlined to avoid multiple paths etc
2013-04-12 11:08:24 -04:00
7caf517b27
add (bezier) curves to canvas, use for automation lines; fix issue with rectangles missing their upper line segment; more cairo canvas fixes
2013-04-11 22:54:12 -04:00
ee1f0520a8
many changes to get the cairo-canvas version much, much more functional. still problems with a lot of subtle and not-so-subtle issues
2013-04-11 20:19:22 -04:00
ae2b39b2e3
remove intermediate GdkPixbuf from waveview rendering, and use shared_array<> to manage peak data
2013-04-10 15:27:55 -04:00
204da61f98
remove incorrect merge of cairocanvas patch that stopped most tracks from displaying; add more debugging info
2013-04-10 14:42:36 -04:00
75118796e1
add -D canvasevents tracing for grabbed items and remove render count output
2013-04-10 11:09:16 -04:00
a1745f2cf1
remove debugging output
2013-04-10 10:53:21 -04:00
54e101eb3f
alter arrow drawing to fully close path and thus avoid cairo mitering variability
2013-04-10 10:27:37 -04:00
053eaf77fd
a variety of fixes for the cairocanvas, but it still buggy as hell handling events and lots of other stuff
2013-04-09 14:22:58 -04:00
1267b1d61c
mo' better debugging of canvas "structure" via Item::dump and derivatives
2013-04-08 19:48:09 -04:00
f2f92aaf8c
lazy redraw of Canvas::Text image
2013-04-06 19:04:34 -04:00
b9750bac72
pre-render text canvas items so that ::render() is just a blit from an image surface
2013-04-06 18:35:32 -04:00
486edf1680
add API to directly request access to pixbuf
2013-04-06 04:10:23 +02:00
8eef4b1904
master merge; new files not added after initial cairocanvas patch application
2013-04-05 17:16:33 -04:00
07a505b1b2
lots of tweaking and adding debug output including operator<</dump(ostream&) methods to help visualize canvas structure
2013-04-05 11:27:26 -04:00
19bd641915
commit immediately post linking
2013-04-04 18:45:27 -04:00
aaea166135
initial commit of hand merging, plus getting "ancient" waf script to work correctly
2013-04-04 00:32:52 -04:00