#ifdef HAVE_CONFIG_H
 
#include "config.h"
#else
#define EINA_UNUSED
#endif
 
#include <stdio.h>
 
#define WIDTH  (320)
#define HEIGHT (240)
 
static Ecore_Evas *ee;
 
static void
_scene_save(
Evas *canvas,
            const char *dest)
{
   const unsigned int *pixels, *pixels_end;
   int width, height;
   FILE *f;
 
 
   f = fopen(dest, "wb+");
   if (!f)
     {
        fprintf(stderr, "ERROR: could not open for writing '%s': %s\n",
                dest, strerror(errno));
        return;
     }
 
   pixels_end = pixels + (width * height);
 
   
   fprintf(f, "P6\n%d %d\n255\n", width, height);
   for (; pixels < pixels_end; pixels++)
     {
        int r, g, b;
 
        r = ((*pixels) & 0xff0000) >> 16;
        g = ((*pixels) & 0x00ff00) >> 8;
        b = (*pixels) & 0x0000ff;
 
        fprintf(f, "%c%c%c", r, g, b);
     }
 
   fclose(f);
   printf("Saved scene as '%s'\n", dest);
}
 
int
main(void)
{
 
 
   if (!ee) goto error;
 
 
 
 
 
 
   _scene_save(canvas, "/tmp/evas-buffer-simple-render.ppm");
 
 
   return 0;
 
error:
   fprintf(stderr, "error: Requires at least one Evas engine built"
                   " and linked to ecore-evas for this example to run"
                   " properly.\n");
   return -1;
}
 
EAPI int ecore_evas_init(void)
Inits the Ecore_Evas system.
Definition: ecore_evas.c:606
EAPI const void * ecore_evas_buffer_pixels_get(Ecore_Evas *ee)
Grabs a pointer to the actual pixels array of a given Ecore_Evas buffer canvas/window.
Definition: ecore_evas_buffer.c:918
EAPI Evas * ecore_evas_get(const Ecore_Evas *ee)
Gets an Ecore_Evas's Evas.
Definition: ecore_evas.c:1326
EAPI void ecore_evas_manual_render(Ecore_Evas *ee)
Forces immediate rendering on a given Ecore_Evas window.
Definition: ecore_evas.c:2671
EAPI int ecore_evas_shutdown(void)
Shuts down the Ecore_Evas system.
Definition: ecore_evas.c:674
EAPI Ecore_Evas * ecore_evas_buffer_new(int w, int h)
Creates a new Ecore_Evas canvas bound to the Evas buffer engine.
Definition: ecore_evas_buffer.c:896
EAPI void ecore_evas_free(Ecore_Evas *ee)
Frees an Ecore_Evas.
Definition: ecore_evas.c:1109
Eo Evas
An opaque handle to an Evas canvas.
Definition: Evas_Common.h:163
void evas_output_size_get(const Evas *eo_e, int *w, int *h)
Retrieve the output size of the render engine of the given evas.
Definition: evas_main.c:1402
void evas_object_show(Evas_Object *eo_obj)
Makes the given Evas object visible.
Definition: evas_object_main.c:1814
void evas_object_color_set(Evas_Object *obj, int r, int g, int b, int a)
Sets the general/main color of the given Evas object to the given one.
Definition: evas_object_main.c:2024
void evas_object_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
Move the given Evas object to the given location inside its canvas' viewport.
Definition: evas_object_main.c:1171
void evas_object_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
Changes the size of the given Evas object.
Definition: evas_object_main.c:1236
Efl_Canvas_Object Evas_Object
An Evas Object handle.
Definition: Evas_Common.h:185
Evas_Object * evas_object_rectangle_add(Evas *e)
Adds a rectangle to the given evas.
Definition: evas_object_rectangle.c:78