2 #include <pangomm/init.h>
3 #include "pbd/compose.h"
5 #include "canvas/group.h"
6 #include "canvas/canvas.h"
7 #include "canvas/root_group.h"
8 #include "canvas/rectangle.h"
12 using namespace ArdourCanvas;
14 class RenderParts : public Benchmark
17 RenderParts (string const & session) : Benchmark (session) {}
19 void set_items_per_cell (int items)
21 _items_per_cell = items;
24 void do_run (ImageCanvas& canvas)
26 Group::default_items_per_cell = _items_per_cell;
28 for (int i = 0; i < 1e4; i += 50) {
29 canvas.render_to_image (Rect (i, 0, i + 50, 1024));
37 int main (int argc, char* argv[])
40 cerr << "Syntax: render_parts <session>\n";
46 RenderParts render_parts (argv[1]);
48 int tests[] = { 16, 32, 64, 128, 256, 512, 1024, 1e4, 1e5, 1e6 };
50 for (unsigned int i = 0; i < sizeof (tests) / sizeof (int); ++i) {
51 render_parts.set_items_per_cell (tests[i]);
52 cout << tests[i] << " " << render_parts.run () << "\n";