13
0
livetrax/libs/canvas
Paul Davis b6d0f8f661 canvas: add a drawing-request-freeze/thaw API
If queue_draw is "frozen", we simply accumulate drawing
requests in a (union) rectangle, and when finally "thawed"
the canvas submits a single redraw request for the entire
accumulated rect.

Although in theory this is all that GTK/GDK does for
draw requests, callgrind reveals significant costs
associated with the actual calltree for GtkWidget::queue_draw_area().

One potential cost is that GDK also maintains a list of
invalidated rectangles in addition to the union, and
for MIDI regions with thousands of notes, this can represent
real overhead. This approach dispenses with the rect list,
since our Canvas drawing model only uses the union rectangle
anyway.
2022-04-05 20:52:09 -06:00
..
benchmark
canvas canvas: add a drawing-request-freeze/thaw API 2022-04-05 20:52:09 -06:00
doc
MSVCcanvas
test
arc.cc ArdourCanvas::Arc (i.e. Circle) should allow for child items to be drawn 2022-01-18 16:42:00 -06:00
arrow.cc
box.cc
build-and-run-benchmark.sh
build-and-run-manual-test.sh
build-and-run-tests.sh
canvas.cc canvas: add a drawing-request-freeze/thaw API 2022-04-05 20:52:09 -06:00
circle.cc
container.cc
ct
curve.cc
debug.cc
fill.cc
flag.cc
framed_curve.cc
grid.cc
image.cc
item.cc canvas: fixing missing initializer for _scroll_translation in 3rd Item constructor 2022-01-27 14:02:34 -07:00
line_set.cc
line.cc
lookup_table.cc
meter.cc
note.cc
Notes
outline.cc
pixbuf.cc
poly_item.cc
poly_line.cc
polygon.cc
rectangle.cc
root_group.cc Remove 18 month old debug messages 2022-02-01 22:01:41 +01:00
ruler.cc ruler: make ::set_metric() API consistent with constructor by using ptr 2021-12-24 15:34:18 -07:00
run-manual-test.sh
run-tests.sh
scroll_group.cc
stateful_image.cc
step_button.cc
table.cc
text.cc
tracking_text.cc
types.cc
utils.cc
widget.cc
wscript wscript: drop configure statements already present in the top level wscript 2022-01-22 22:19:03 +01:00
xfade_curve.cc