1 #include "test-common.h"
2
3 void blur(GeglBuffer *buffer);
4
5 gint
main(gint argc,gchar ** argv)6 main (gint argc,
7 gchar **argv)
8 {
9 GeglBuffer *buffer;
10
11 gegl_init(&argc, &argv);
12
13 buffer = test_buffer(1024, 1024, babl_format("RGB float"));
14 bench("gaussian-blur (RGB)", buffer, &blur);
15 g_object_unref (buffer);
16
17 buffer = test_buffer(1024, 1024, babl_format("RaGaBaA float"));
18 bench("gaussian-blur (RaGaBaA)", buffer, &blur);
19 g_object_unref (buffer);
20
21 buffer = test_buffer(1024, 1024, babl_format("RGBA float"));
22 bench("gaussian-blur (RGBA)", buffer, &blur);
23 g_object_unref (buffer);
24
25 buffer = test_buffer(1024, 1024, babl_format("Y float"));
26 bench("gaussian-blur (Y)", buffer, &blur);
27 g_object_unref (buffer);
28
29 buffer = test_buffer(1024, 1024, babl_format("YaA float"));
30 bench("gaussian-blur (YaA)", buffer, &blur);
31 g_object_unref (buffer);
32
33 buffer = test_buffer(1024, 1024, babl_format("YA float"));
34 bench("gaussian-blur (YA)", buffer, &blur);
35 g_object_unref (buffer);
36
37 gegl_exit ();
38 return 0;
39 }
40
blur(GeglBuffer * buffer)41 void blur(GeglBuffer *buffer)
42 {
43 GeglBuffer *buffer2;
44 GeglNode *gegl, *source, *node, *sink;
45
46 gegl = gegl_node_new ();
47 source = gegl_node_new_child (gegl, "operation", "gegl:buffer-source", "buffer", buffer, NULL);
48 node = gegl_node_new_child (gegl, "operation", "gegl:gaussian-blur",
49 "std-dev-x", 10.0,
50 "std-dev-y", 10.0,
51 NULL);
52 sink = gegl_node_new_child (gegl, "operation", "gegl:buffer-sink", "buffer", &buffer2, NULL);
53
54 gegl_node_link_many (source, node, sink, NULL);
55 gegl_node_process (sink);
56 g_object_unref (gegl);
57 g_object_unref (buffer2);
58 }
59