Tizen 2.0 Release
[framework/graphics/cairo.git] / util / cairo-script / csi-trace.c
1 #include <cairo-script.h>
2 #include <cairo-script-interpreter.h>
3
4 #include <stdio.h>
5 #include <string.h>
6 #include <libgen.h>
7
8 static cairo_surface_t *
9 _script_surface_create (void *closure,
10                          cairo_content_t content,
11                          double width, double height,
12                          long uid)
13 {
14     return cairo_script_surface_create (closure, content, width, height);
15 }
16
17 int
18 main (int argc, char **argv)
19 {
20     cairo_script_interpreter_t *csi;
21     cairo_script_interpreter_hooks_t hooks = {
22         .surface_create = _script_surface_create,
23     };
24     int i;
25
26     csi = cairo_script_interpreter_create ();
27
28     for (i = 1; i < argc; i++) {
29         char buf[4096];
30
31         snprintf (buf, sizeof (buf), "%s.trace", basename (argv[i]));
32         cairo_device_destroy (hooks.closure);
33         hooks.closure = cairo_script_create (buf);
34         cairo_script_interpreter_install_hooks (csi, &hooks);
35         cairo_script_interpreter_run (csi, argv[i]);
36     }
37     cairo_device_destroy (hooks.closure);
38
39     return cairo_script_interpreter_destroy (csi);
40 }