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
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
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
79384aeb66
initial semi-working attempt at getting waveview cache to work correctly
2013-06-18 23:03:20 -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
d0867e67e3
more tweaks for enter/leave events for canvas items
2013-04-24 22:57:23 -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
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
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
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
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
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
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
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
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
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