summaryrefslogtreecommitdiff
path: root/libs/canvas/benchmark/render_whole.cc
blob: cf4749c3e0eb771fb4eea95c467269db6cbecf8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <sys/time.h>
#include <pangomm/init.h>
#include "pbd/xml++.h"
#include "pbd/compose.h"
#include "canvas/canvas.h"
#include "canvas/types.h"
#include "benchmark.h"

using namespace std;
using namespace ArdourCanvas;

class RenderWhole : public Benchmark
{
public:
	RenderWhole (string const & session) : Benchmark (session) {}

	void do_run (ImageCanvas& canvas)
	{
		canvas.render_to_image (Rect (0, 0, 4096, 1024));
	}

	void finish (ImageCanvas& canvas)
	{
		canvas.write_to_png ("session.png");
	}
};

int main (int argc, char* argv[])
{
	if (argc < 2) {
		cerr << "Syntax: render_whole <session-name> [<number-of-iterations>]\n";
		exit (EXIT_FAILURE);
	}

	Pango::init ();

	RenderWhole render_whole (argv[1]);

	if (argc > 2) {
		render_whole.set_iterations (atoi (argv[2]));
	}

	cout << render_whole.run () << "\n";

	return 0;
}