13
0
Commit Graph

197 Commits

Author SHA1 Message Date
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