Blame examples/geglbuffer-clock.c

Packit bc1512
#include <stdlib.h>
Packit bc1512
#include <gegl.h>
Packit bc1512
#include <glib/gprintf.h>
Packit bc1512
Packit bc1512
#include <sys/time.h>
Packit bc1512
#include <time.h>
Packit bc1512
Packit bc1512
gint
Packit bc1512
main (gint    argc,
Packit bc1512
      gchar **argv)
Packit bc1512
{
Packit bc1512
  GeglNode   *gegl;   /* the gegl graph we're using as a node factor */
Packit bc1512
  GeglBuffer *buffer;
Packit bc1512
  GeglNode   *display,
Packit bc1512
             *text,
Packit bc1512
             *layer,
Packit bc1512
             *crop,
Packit bc1512
             *shift,
Packit bc1512
             *blank;
Packit bc1512
Packit bc1512
  if (argv[1]==NULL)
Packit bc1512
    {
Packit bc1512
      g_print ("\nUsage: %s <GeglBuffer>\n"
Packit bc1512
               "\n"
Packit bc1512
               "Continously writes a timestamp to 0,0 in the buffer\n", argv[0]);
Packit bc1512
      exit (-1);
Packit bc1512
    }
Packit bc1512
Packit bc1512
  gegl_init (&argc, &argv);  /* initialize the GEGL library */
Packit bc1512
Packit bc1512
  gegl = gegl_node_new ();
Packit bc1512
Packit bc1512
Packit bc1512
  buffer = gegl_buffer_open (argv[1]);
Packit bc1512
Packit bc1512
  blank      = gegl_node_new_child (gegl,
Packit bc1512
                                    "operation", "gegl:color",
Packit bc1512
                                    "value", gegl_color_new ("rgba(0.0,0.0,0.0,0.4)"),
Packit bc1512
                                    NULL);
Packit bc1512
Packit bc1512
  crop       = gegl_node_new_child (gegl,
Packit bc1512
                                    "operation", "gegl:crop",
Packit bc1512
                                    "x", 0.0,
Packit bc1512
                                    "y", 0.0,
Packit bc1512
                                    "width", 260.0,
Packit bc1512
                                    "height", 22.0,
Packit bc1512
                                    NULL);
Packit bc1512
Packit bc1512
  layer      = gegl_node_new_child (gegl,
Packit bc1512
                                    "operation", "gegl:layer",
Packit bc1512
                                    NULL);
Packit bc1512
Packit bc1512
  shift      = gegl_node_new_child (gegl,
Packit bc1512
                                    "operation", "gegl:translate",
Packit bc1512
                                    "x", 0.0,
Packit bc1512
                                    "y", 0.0,
Packit bc1512
                                    NULL);
Packit bc1512
Packit bc1512
  text       = gegl_node_new_child (gegl,
Packit bc1512
                                   "operation", "gegl:text",
Packit bc1512
                                   "size", 20.0,
Packit bc1512
                                   "color", gegl_color_new ("rgb(1.0,1.0,1.0)"),
Packit bc1512
                                   NULL);
Packit bc1512
  display    = gegl_node_new_child (gegl,
Packit bc1512
                                    "operation", "gegl:write-buffer",
Packit bc1512
                                    "buffer", buffer,
Packit bc1512
                                    NULL);
Packit bc1512
Packit bc1512
  gegl_node_link_many (blank, crop, layer, shift, display, NULL);
Packit bc1512
  gegl_node_connect_to (text, "output", layer, "aux");
Packit bc1512
  
Packit bc1512
  /* request that the save node is processed, all dependencies will
Packit bc1512
   * be processed as well
Packit bc1512
   */
Packit bc1512
  {
Packit bc1512
    gint frame;
Packit bc1512
    gint frames = 1024;
Packit bc1512
Packit bc1512
    for (frame=0; frame
Packit bc1512
      {
Packit bc1512
        struct timeval tv;
Packit bc1512
Packit bc1512
        gettimeofday(&tv, NULL);
Packit bc1512
        gegl_node_set (text, "string", ctime((void*)&tv), NULL);
Packit bc1512
        gegl_node_process (display);
Packit bc1512
        g_usleep (1000000);
Packit bc1512
      }
Packit bc1512
  }
Packit bc1512
  /* free resources globally used by GEGL */
Packit bc1512
  gegl_exit ();
Packit bc1512
Packit bc1512
  return 0;
Packit bc1512
}