Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/modules/engines/directfb


Modified Files:
        evas_engine_dfb.c evas_engine_dfb.h 


Log Message:


same as previous commit.

===================================================================
RCS file: /cvs/e/e17/libs/evas/src/modules/engines/directfb/evas_engine_dfb.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- evas_engine_dfb.c   6 Sep 2006 07:23:37 -0000       1.5
+++ evas_engine_dfb.c   30 Sep 2006 10:18:34 -0000      1.6
@@ -44,18 +44,24 @@
    evas_engine_directfb_polygon_points_clear,
    evas_engine_directfb_polygon_draw,
    /* gardient draw funcs */
-   evas_engine_directfb_gradient_color_add,
-   evas_engine_directfb_gradient_colors_clear,
-   evas_engine_directfb_gradient_data_set,
-   evas_engine_directfb_gradient_data_unset,
+   evas_engine_directfb_gradient_new,
    evas_engine_directfb_gradient_free,
+   evas_engine_directfb_gradient_color_stop_add,
+   evas_engine_directfb_gradient_alpha_stop_add,
+   evas_engine_directfb_gradient_color_data_set,
+   evas_engine_directfb_gradient_alpha_data_set,
+   evas_engine_directfb_gradient_clear,
    evas_engine_directfb_gradient_fill_set,
-   evas_engine_directfb_gradient_range_offset_set,
+   evas_engine_directfb_gradient_fill_angle_set,
+   evas_engine_directfb_gradient_fill_spread_set,
+   evas_engine_directfb_gradient_angle_set,
+   evas_engine_directfb_gradient_offset_set,
+   evas_engine_directfb_gradient_direction_set,
    evas_engine_directfb_gradient_type_set,
-   evas_engine_directfb_gradient_type_params_set,
-   evas_engine_directfb_gradient_geometry_init,
-   evas_engine_directfb_gradient_alpha_get,
-   evas_engine_directfb_gradient_map,
+   evas_engine_directfb_gradient_is_opaque,
+   evas_engine_directfb_gradient_is_visible,
+   evas_engine_directfb_gradient_render_pre,
+   evas_engine_directfb_gradient_render_post,
    evas_engine_directfb_gradient_draw,
    /* image draw funcs */
    evas_engine_directfb_image_load,
@@ -765,60 +771,68 @@
  *
  * */
 void *
-evas_engine_directfb_gradient_color_add(void *data, void *context, void 
*gradient, int r, int g, int b, int a, int distance)
+eng_gradient_new(void *data)
+{
+   return evas_common_gradient_new();
+}
+
+void
+evas_engine_directfb_gradient_free(void *data, void *gradient)
+{
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   evas_common_gradient_free(gradient);
+}
+
+void
+evas_engine_directfb_gradient_color_stop_add(void *data, void *gradient, int 
r, int g, int b, int a, int delta)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   if (!gradient)
-     gradient = evas_common_gradient_new();
-   evas_common_gradient_color_add(gradient, r, g, b, a, distance);
-   return gradient;
+   evas_common_gradient_color_stop_add(gradient, r, g, b, a, delta);
    context = NULL;
 }
 
-void *
-evas_engine_directfb_gradient_colors_clear(void *data, void *context, void 
*gradient)
+void
+evas_engine_directfb_gradient_alpha_stop_add(void *data, void *gradient, int 
a, int delta)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   evas_common_gradient_colors_clear(gradient);
-   return gradient;
+   evas_common_gradient_alpha_stop_add(gradient, a, delta);
    context = NULL;
 }
 
-void *
-evas_engine_directfb_gradient_data_set(void *data, void *context, void 
*gradient, void *map, int len, int has_alpha)
+void
+evas_engine_directfb_gradient_color_data_set(void *data, void *gradient, void 
*map, int len, int has_alpha)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   if (!gradient)
-     gradient = evas_common_gradient_new();
-   evas_common_gradient_data_set(gradient, map, len, has_alpha);
-   return gradient;
+   evas_common_gradient_color_data_set(gradient, map, len, has_alpha);
    context = NULL;
 }
 
-void *
-evas_engine_directfb_gradient_data_unset(void *data, void *context, void 
*gradient)
+void
+evas_engine_directfb_gradient_alpha_data_set(void *data, void *gradient, void 
*alpha_map, int len)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   evas_common_gradient_data_unset(gradient);
-   return gradient;
+   evas_common_gradient_alpha_data_set(gradient, alpha_map, len);
    context = NULL;
 }
 
 void
-evas_engine_directfb_gradient_free(void *data, void *gradient)
+evas_engine_directfb_gradient_clear(void *data, void *gradient)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   evas_common_gradient_free(gradient);
+   evas_common_gradient_clear(gradient);
+   context = NULL;
 }
 
 void
@@ -831,63 +845,101 @@
 }
 
 void
-evas_engine_directfb_gradient_range_offset_set(void *data, void *gradient, 
float offset)
+evas_engine_directfb_gradient_fill_angle_set(void *data, void *gradient, 
double angle)
 {
-   Render_Engine *re;
+    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   evas_common_gradient_range_offset_set(gradient, offset);
+  evas_common_gradient_fill_angle_set(gradient, angle);
 }
 
 void
-evas_engine_directfb_gradient_type_set(void *data, void *gradient, char *name)
+evas_engine_directfb_gradient_fill_spread_set(void *data, void *gradient, int 
spread)
+{
+    Render_Engine *re;
+
+   re = (Render_Engine *)data;
+  evas_common_gradient_fill_spread_set(gradient, spread);
+}
+
+void
+evas_engine_directfb_gradient_angle_set(void *data, void *gradient, double 
angle)
+{
+    Render_Engine *re;
+
+   re = (Render_Engine *)data;
+  evas_common_gradient_map_angle_set(gradient, angle);
+}
+
+void
+evas_engine_directfb_gradient_offset_set(void *data, void *gradient, float 
offset)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   evas_common_gradient_type_set(gradient, name);
+   evas_common_gradient_offset_set(gradient, offset);
 }
 
 void
-evas_engine_directfb_gradient_type_params_set(void *data, void *gradient, char 
*params)
+evas_engine_directfb_gradient_direction_set(void *data, void *gradient, int 
direction)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   evas_common_gradient_type_params_set(gradient, params);
+   evas_common_gradient_map_direction_set(gradient, direction);
 }
 
-void *
-evas_engine_directfb_gradient_geometry_init(void *data, void *gradient, int 
spread)
+void
+evas_engine_directfb_gradient_type_set(void *data, void *gradient, char *name, 
char *params)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   gradient = evas_common_gradient_geometry_init(gradient, spread);
-   return gradient;
+   evas_common_gradient_type_set(gradient, name, params);
 }
 
 int
-evas_engine_directfb_gradient_alpha_get(void *data, void *gradient, int 
spread, int op)
+evas_engine_directfb_gradient_is_opaque(void *data, void *context, void 
*gradient, int x, int y, int w, int h)
 {
+   RGBA_Draw_Context *dc = (RGBA_Draw_Context *)context;
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   return evas_common_gradient_has_alpha(gradient, spread, op);
+   if (!dc || !gradient || !gradient->type.geometer)  return 0;
+   return !(gr->type.geometer->has_alpha(gradient, dc->render_op) |
+              gr->type.geometer->has_mask(gradient, dc->render_op));
 }
 
-void
-evas_engine_directfb_gradient_map(void *data, void *context, void *gradient, 
int spread)
+int
+evas_engine_directfb_gradient_is_visible(void *data, void *context, void 
*gradient, int x, int y, int w, int h)
 {
    Render_Engine *re;
 
    re = (Render_Engine *)data;
-   evas_common_gradient_map(context, gradient, spread);
-   evas_common_cpu_end_opt();
+   if (!context || !gradient)  return 0;
+   return 1;
+ }
+
+static void
+eng_gradient_render_pre(void *data, void *context, void *gradient)
+{
+   int  len;
+   Render_Engine *re;
+
+   re = (Render_Engine *)data;
+   if (!context || !gradient || !gradient->type.geometer) return;
+   gradient->type.geometer->geom_set(gradient);
+   len = gradient->type.geometer->get_map_len(gradient);
+   evas_common_gradient_map(context, gradient, len);
+}
+
+static void
+eng_gradient_render_post(void *data, void *gradient)
+{
 }
 
 void
-evas_engine_directfb_gradient_draw(void *data, void *context, void *surface, 
void *gradient, int x, int y, int w, int h, double angle, int spread)
+evas_engine_directfb_gradient_draw(void *data, void *context, void *surface, 
void *gradient, int x, int y, int w, int h)
 {
    Render_Engine *re;
    IDirectFBSurface *surf;
@@ -900,7 +952,7 @@
    surf = (IDirectFBSurface *)im->image->data;
    surf->Lock(surf, DSLF_WRITE, &p, & pitch);
    im->image->data = p;
-   evas_common_gradient_draw(im, context, x, y, w, h, gradient, angle, spread);
+   evas_common_gradient_draw(im, context, x, y, w, h, gradient);
    surf->Unlock(surf);
    im->image->data = (void *)surf;
    evas_common_cpu_end_opt();



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to