From: Enlightenment S. <no-...@en...> - 2009-10-25 19:56:59
|
Log: + Make the enesim engine use the figure renderer for the polygon Author: turran Date: 2009-10-25 12:56:47 -0700 (Sun, 25 Oct 2009) New Revision: 43277 Modified: trunk/PROTO/eon/data/suite/shape01.xml trunk/PROTO/eon/src/engines/enesim/enesim_engine.c Modified: trunk/PROTO/eon/data/suite/shape01.xml =================================================================== --- trunk/PROTO/eon/data/suite/shape01.xml 2009-10-25 19:15:32 UTC (rev 43276) +++ trunk/PROTO/eon/data/suite/shape01.xml 2009-10-25 19:56:47 UTC (rev 43277) @@ -1,11 +1,11 @@ <eon> <canvas w="100%" h="100%"> - <rect x="0" y="0" w="100%" h="100%" color="white" rop="fill"/> + <rect x="0" y="0" w="100%" h="100%" fill_color="white" rop="fill"/> <!-- rectangles --> - <rect x="10%" y="35%" w="40%" h="55%" color="red" rop="fill"/> + <rect x="10%" y="35%" w="40%" h="55%" fill_color="red" rop="fill"/> <!-- circles --> - <circle radius="70" y="50%" x="50%" color="0xaa00aa00"/> + <circle radius="70" y="50%" x="50%" fill_color="0xaa00aa00"/> <!-- polygons --> - <poly points="0,0 128,10 10,200 30,0" color="0xaaaaaa00"/> + <poly points="50,50 128,10 10,200 30,0" fill_color="0xaaff00ff" rop="blend"/> </canvas> </eon> Modified: trunk/PROTO/eon/src/engines/enesim/enesim_engine.c =================================================================== --- trunk/PROTO/eon/src/engines/enesim/enesim_engine.c 2009-10-25 19:15:32 UTC (rev 43276) +++ trunk/PROTO/eon/src/engines/enesim/enesim_engine.c 2009-10-25 19:56:47 UTC (rev 43277) @@ -585,48 +585,47 @@ /*============================================================================* * Polygon * *============================================================================*/ -typedef struct Polygon +static void polygon_setup(Paint *p) { - Eon_Polygon *p; - Enesim_Rasterizer *r; -} Polygon; + shape_renderer_setup(p); +} -static void * polygon_create(Eon_Polygon *ep) +static void polygon_point_add(void *pd, int x, int y) { - Polygon *p = calloc(1, sizeof(Polygon)); - p->p = ep; - /* FIXME alias by now */ - p->r = enesim_rasterizer_cpsc_new(); + Paint *p = pd; - return p; + enesim_renderer_figure_polygon_vertex_add(p->r, x, y); } -static void polygon_point_add(void *pd, int x, int y) +static void polygon_style(Paint *p, Paint *rel) { - Polygon *p = pd; - - /* create a rasterizer */ - /* TODO check the quality to create a kiia or a cpsc rasterizer */ - /* add a vertex to it */ - enesim_rasterizer_vertex_add(p->r, x, y); + polygon_setup(p); + paint_style_setup(p, rel, 0, 0); } static void polygon_render(void *pd, void *cd, Eina_Rectangle *clip) { - Polygon *p = pd; - Rasterizer_Drawer_Data sdd; + Paint *p = pd; - shape_rasterizer_setup((Eon_Shape *)p->p, &sdd, cd); - enesim_rasterizer_generate(p->r, clip, sdd.cb, &sdd); + polygon_setup(p); + paint_renderer_setup(p, 0, 0); + enesim_renderer_state_setup(p->r); + paint_renderer_draw(p->p, cd, p->r, clip); } -static void polygon_delete(void *ep) +static void * polygon_create(Eon_Polygon *ep) { - Polygon *p = ep; + Paint *p; - enesim_rasterizer_delete(p->r); - free(p); + p = malloc(sizeof(Paint)); + p->p = (Eon_Paint *)ep; + p->r = enesim_renderer_figure_new(); + enesim_renderer_figure_polygon_add(p->r); + p->style_setup = polygon_style; + + return p; } + /*============================================================================* * Rect * *============================================================================*/ @@ -944,10 +943,10 @@ e->circle_create = circle_create; e->circle_render = circle_render; e->circle_delete = paint_delete; -#if 0 e->polygon_create = polygon_create; e->polygon_point_add = polygon_point_add; e->polygon_render = polygon_render; +#if 0 e->text_create = text_create; e->text_render = text_render; #endif |