Blame examples/geglbuffer-clock.c

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