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