remove invalid assertion - #6634
[ardour.git] / libs / canvas / benchmark / render_from_log.cc
1 #include <sys/time.h>
2 #include <pangomm/init.h>
3 #include "pbd/compose.h"
4 #include "pbd/xml++.h"
5 #include "canvas/group.h"
6 #include "canvas/canvas.h"
7 #include "canvas/root_group.h"
8 #include "canvas/rectangle.h"
9 #include "benchmark.h"
10
11 using namespace std;
12 using namespace ArdourCanvas;
13
14 class RenderFromLog : public Benchmark
15 {
16 public:
17         RenderFromLog (string const & session) : Benchmark (session) {}
18
19         void set_items_per_cell (int items)
20         {
21                 _items_per_cell = items;
22         }
23
24         void do_run (ImageCanvas& canvas)
25         {
26                 Group::default_items_per_cell = _items_per_cell;
27                 canvas.set_log_renders (false);
28
29                 list<Rect> const & renders = canvas.renders ();
30
31                 for (list<Rect>::const_iterator i = renders.begin(); i != renders.end(); ++i) {
32                         canvas.render_to_image (*i);
33                 }
34         }
35
36 private:
37         int _items_per_cell;
38 };
39
40 int main (int argc, char* argv[])
41 {
42         if (argc < 2) {
43                 cerr << "Syntax: render_parts <session>\n";
44                 exit (EXIT_FAILURE);
45         }
46
47         Pango::init ();
48
49         RenderFromLog render_from_log (argv[1]);
50
51 //      int tests[] = { 16, 32, 64, 128, 256, 512, 1024, 1e4, 1e5, 1e6 };
52         int tests[] = { 16 };
53
54         for (unsigned int i = 0; i < sizeof (tests) / sizeof (int); ++i) {
55                 render_from_log.set_items_per_cell (tests[i]);
56                 cout << tests[i] << " " << render_from_log.run () << "\n";
57         }
58
59         return 0;
60 }
61
62