1 #include "test-common.h"
2 
3 void rotate(GeglBuffer *buffer);
4 void rotate_nearest(GeglBuffer *buffer);
5 
6 gint
main(gint argc,gchar ** argv)7 main (gint    argc,
8       gchar **argv)
9 {
10   GeglBuffer *buffer;
11 
12   gegl_init (&argc, &argv);
13 
14   buffer = test_buffer (2048, 1024, babl_format ("RGBA float"));
15   bench ("rotate", buffer, &rotate);
16   bench ("rotate-nearest", buffer, &rotate_nearest);
17 
18   return 0;
19 }
20 
rotate(GeglBuffer * buffer)21 void rotate(GeglBuffer *buffer)
22 {
23   GeglBuffer *buffer2;
24   GeglNode   *gegl, *source, *rotate, *sink;
25 
26   gegl = gegl_node_new ();
27   source = gegl_node_new_child (gegl, "operation", "gegl:buffer-source", "buffer", buffer, NULL);
28   rotate = gegl_node_new_child (gegl, "operation", "gegl:rotate", "degrees", 4.0, NULL);
29   sink = gegl_node_new_child (gegl, "operation", "gegl:buffer-sink", "buffer", &buffer2, NULL);
30 
31   gegl_node_link_many (source, rotate, sink, NULL);
32   gegl_node_process (sink);
33   g_object_unref (gegl);
34   g_object_unref (buffer2);
35 }
36 
rotate_nearest(GeglBuffer * buffer)37 void rotate_nearest(GeglBuffer *buffer)
38 {
39   GeglBuffer *buffer2;
40   GeglNode   *gegl, *source, *rotate, *sink;
41 
42   gegl = gegl_node_new ();
43   source = gegl_node_new_child (gegl, "operation", "gegl:buffer-source", "buffer", buffer, NULL);
44   rotate = gegl_node_new_child (gegl, "operation", "gegl:rotate", "degrees", 4.0, "sampler", GEGL_SAMPLER_NEAREST, NULL);
45   sink = gegl_node_new_child (gegl, "operation", "gegl:buffer-sink", "buffer", &buffer2, NULL);
46 
47   gegl_node_link_many (source, rotate, sink, NULL);
48   gegl_node_process (sink);
49   g_object_unref (gegl);
50   g_object_unref (buffer2);
51 }
52