Hello,

I really need evas' directfb engine working so I took it upon myself to do some work on it. :) I am not the best C guy around but I am familiar with the workings of directfb.

My first patch just brings the directfb engine in line with some recent engine API changes. It builds now and I am able to run the directfb tests. There are still some problems and some things left unimplimented but I will work on those things next.

I will followup soon with some questions about the engines and how I should attack these functions.

Thanks,
-Rob
Index: src/modules/engines/directfb/evas_engine_dfb.c
===================================================================
RCS file: 
/var/cvs/e/e17/libs/evas/src/modules/engines/directfb/evas_engine_dfb.c,v
retrieving revision 1.8
diff -u -r1.8 evas_engine_dfb.c
--- src/modules/engines/directfb/evas_engine_dfb.c      17 Oct 2006 10:36:36 
-0000      1.8
+++ src/modules/engines/directfb/evas_engine_dfb.c      15 Jan 2007 16:15:41 
-0000
@@ -80,6 +80,10 @@
    evas_engine_directfb_image_draw,
    evas_engine_directfb_image_comment_get,
    evas_engine_directfb_image_format_get,
+   evas_engine_directfb_image_colorspace_set,
+   evas_engine_directfb_image_colorspace_get,
+   evas_engine_directfb_image_native_set,
+   evas_engine_directfb_image_native_get,
 
    evas_engine_directfb_image_cache_flush,
    evas_engine_directfb_image_cache_set,
@@ -771,7 +775,7 @@
  *
  * */
 void *
-eng_gradient_new(void *data)
+evas_engine_directfb_gradient_new(void *data)
 {
    return evas_common_gradient_new();
 }
@@ -914,10 +918,10 @@
    re = (Render_Engine *)data;
    if (!context || !gradient)  return 0;
    return 1;
- }
+}
 
-static void
-eng_gradient_render_pre(void *data, void *context, void *gradient)
+void
+evas_engine_directfb_gradient_render_pre(void *data, void *context, void 
*gradient)
 {
    int  len;
    Render_Engine *re;
@@ -930,8 +934,8 @@
    evas_common_gradient_map(context, gradient, len);
 }
 
-static void
-eng_gradient_render_post(void *data, void *gradient)
+void
+evas_engine_directfb_gradient_render_post(void *data, void *gradient)
 {
 }
 
@@ -965,7 +969,7 @@
  * */
 
 void        *
-evas_engine_directfb_font_load(void *data, char *name, int size)
+evas_engine_directfb_font_load(void *data, const char *name, int size)
 {
    Render_Engine      *re;
 
@@ -983,7 +987,7 @@
 }
 
 void *
-evas_engine_directfb_font_add(void *data, void *font, char *name, int size)
+evas_engine_directfb_font_add(void *data, void *font, const char *name, int 
size)
 {
    Render_Engine *re;
 
@@ -1047,7 +1051,7 @@
 }
 
 void
-evas_engine_directfb_font_string_size_get(void *data, void *font, char *text,
+evas_engine_directfb_font_string_size_get(void *data, void *font, const char 
*text,
                                          int *w, int *h)
 {
    Render_Engine      *re;
@@ -1057,7 +1061,7 @@
 }
 
 int
-evas_engine_directfb_font_inset_get(void *data, void *font, char *text)
+evas_engine_directfb_font_inset_get(void *data, void *font, const char *text)
 {
    Render_Engine      *re;
 
@@ -1066,7 +1070,7 @@
 }
 
 int
-evas_engine_directfb_font_h_advance_get(void *data, void *font, char *text)
+evas_engine_directfb_font_h_advance_get(void *data, void *font, const char 
*text)
 {
    Render_Engine      *re;
    int                 h, v;
@@ -1077,7 +1081,7 @@
 }
 
 int
-evas_engine_directfb_font_v_advance_get(void *data, void *font, char *text)
+evas_engine_directfb_font_v_advance_get(void *data, void *font, const char 
*text)
 {
    Render_Engine      *re;
    int                 h, v;
@@ -1088,7 +1092,7 @@
 }
 
 int
-evas_engine_directfb_font_char_coords_get(void *data, void *font, char *text,
+evas_engine_directfb_font_char_coords_get(void *data, void *font, const char 
*text,
                                          int pos, int *cx, int *cy, int *cw,
                                          int *ch)
 {
@@ -1099,7 +1103,7 @@
 }
 
 int
-evas_engine_directfb_font_char_at_coords_get(void *data, void *font, char 
*text,
+evas_engine_directfb_font_char_at_coords_get(void *data, void *font, const 
char *text,
                                             int x, int y, int *cx, int *cy,
                                             int *cw, int *ch)
 {
@@ -1112,7 +1116,7 @@
 void
 evas_engine_directfb_font_draw(void *data, void *context, void *surface,
                               void *font, int x, int y, int w, int h, int ow,
-                              int oh, char *text)
+                              int oh, const char *text)
 {
    Render_Engine *re;
    void *p;
Index: src/modules/engines/directfb/evas_engine_dfb.h
===================================================================
RCS file: 
/var/cvs/e/e17/libs/evas/src/modules/engines/directfb/evas_engine_dfb.h,v
retrieving revision 1.4
diff -u -r1.4 evas_engine_dfb.h
--- src/modules/engines/directfb/evas_engine_dfb.h      30 Sep 2006 10:18:34 
-0000      1.4
+++ src/modules/engines/directfb/evas_engine_dfb.h      15 Jan 2007 16:15:41 
-0000
@@ -152,15 +152,18 @@
 void               evas_engine_directfb_gradient_draw(void *data, void 
*context, void *surface,
                                                       void *gradient, int x, 
int y, int w, int h);
 
-void               *evas_engine_directfb_font_load(void *data, char *name,
+void               *evas_engine_directfb_font_load(void *data, const char 
*name,
                                                   int size);
 void               *evas_engine_directfb_font_memory_load(void *data,
                                                          char *name,
                                                          int size,
                                                          const void *fdata,
                                                          int fdata_size);
-void *evas_engine_directfb_font_add(void *data, void *font, char *name, int 
size);
-void *evas_engine_directfb_font_memory_add(void *data, void *font, char *name, 
int size, const void *fdata, int fdata_size);
+void                *evas_engine_directfb_font_add(void *data, void *font, 
const char *name, int size);
+void                *evas_engine_directfb_font_memory_add(void *data, void 
*font, 
+                                                         char *name, int size, 
+                                                         const void *fdata, 
+                                                         int fdata_size);
 void                evas_engine_directfb_font_free(void *data, void *font);
 int                 evas_engine_directfb_font_ascent_get(void *data,
                                                         void *font);
@@ -172,25 +175,25 @@
                                                              void *font);
 void                evas_engine_directfb_font_string_size_get(void *data,
                                                              void *font,
-                                                             char *text,
+                                                             const char *text,
                                                              int *w, int *h);
 int                 evas_engine_directfb_font_inset_get(void *data, void *font,
-                                                       char *text);
+                                                       const char *text);
 int                 evas_engine_directfb_font_h_advance_get(void *data,
                                                            void *font,
-                                                           char *text);
+                                                           const char *text);
 int                 evas_engine_directfb_font_v_advance_get(void *data,
                                                            void *font,
-                                                           char *text);
+                                                           const char *text);
 int                 evas_engine_directfb_font_char_coords_get(void *data,
                                                              void *font,
-                                                             char *text,
+                                                             const char *text,
                                                              int pos, int *cx,
                                                              int *cy, int *cw,
                                                              int *ch);
 int                 evas_engine_directfb_font_char_at_coords_get(void *data,
                                                                 void *font,
-                                                                char *text,
+                                                                const char 
*text,
                                                                 int x, int y,
                                                                 int *cx,
                                                                 int *cy,
@@ -199,7 +202,7 @@
 void                evas_engine_directfb_font_draw(void *data, void *context,
                                                   void *surface, void *font,
                                                   int x, int y, int w, int h,
-                                                  int ow, int oh, char *text);
+                                                  int ow, int oh, const char 
*text);
 void                evas_engine_directfb_font_cache_flush(void *data);
 void                evas_engine_directfb_font_cache_set(void *data, int bytes);
 int                 evas_engine_directfb_font_cache_get(void *data);
Index: src/modules/engines/directfb/evas_engine_dfb_image_objects.c
===================================================================
RCS file: 
/var/cvs/e/e17/libs/evas/src/modules/engines/directfb/evas_engine_dfb_image_objects.c,v
retrieving revision 1.8
diff -u -r1.8 evas_engine_dfb_image_objects.c
--- src/modules/engines/directfb/evas_engine_dfb_image_objects.c        17 Dec 
2006 15:48:51 -0000      1.8
+++ src/modules/engines/directfb/evas_engine_dfb_image_objects.c        15 Jan 
2007 16:15:41 -0000
@@ -28,7 +28,7 @@
  */
 
 void               *
-evas_engine_directfb_image_load(void *data, char *file, char *key, int *error, 
Evas_Image_Load_Opts *lo)
+evas_engine_directfb_image_load(void *data, const char *file, const char *key, 
int *error, Evas_Image_Load_Opts *lo)
 {
    Render_Engine      *re;
    DFBSurfaceDescription dsc;
@@ -99,13 +99,14 @@
                                         DATA32 * image_data, int alpha, int 
cspace)
 {
    /* FIXME document this peculiarity */
-   return evas_engine_directfb_image_new_from_copied_data(data, w, h, 
image_data);
+   return evas_engine_directfb_image_new_from_copied_data(data, w, h, 
image_data, alpha, cspace);
 }
 
 void               *
 evas_engine_directfb_image_new_from_copied_data(void *data, int w, int h,
                                                DATA32 * image_data, int alpha, 
int cspace)
 {
+   /* FIXME use alpha and cspace here or not? */
 
    Render_Engine      *re;
    RGBA_Image         *im = NULL;
@@ -235,7 +236,8 @@
        w = im->image->w;
        h = im->image->h;
        _dfb_image_unref(im);
-       return evas_engine_directfb_image_new_from_data(data, w, h, image_data);
+        /* FIXME alpha and cspace (0, 0) is not used here yet */
+       return evas_engine_directfb_image_new_from_data(data, w, h, image_data, 
0, 0);
      }
    _dfb_image_dirty(im);
 
@@ -539,8 +541,31 @@
    return NULL;
 }
 
+void
+evas_engine_directfb_image_colorspace_set(void *data, void *image, int cspace)
+{
+   /* FIXME impliment image_colorspace_set */
+}
 
+int
+evas_engine_directfb_image_colorspace_get(void *data, void *image)
+{
+   /* FIXME impliment image_colorspace_get */
+   return 0;
+}
 
+void
+evas_engine_directfb_image_native_set(void *data, void *image, void *native)
+{
+   /* FIXME impliment image_native_set */
+}
+
+void               *
+evas_engine_directfb_image_native_get(void *data, void *image)
+{
+   /* FIXME impliment image_native_get */
+   return NULL;
+}
 
 /*
  * Private routines. These are slightly modified versions of the ones in
Index: src/modules/engines/directfb/evas_engine_dfb_image_objects.h
===================================================================
RCS file: 
/var/cvs/e/e17/libs/evas/src/modules/engines/directfb/evas_engine_dfb_image_objects.h,v
retrieving revision 1.3
diff -u -r1.3 evas_engine_dfb_image_objects.h
--- src/modules/engines/directfb/evas_engine_dfb_image_objects.h        18 Aug 
2006 14:45:25 -0000      1.3
+++ src/modules/engines/directfb/evas_engine_dfb_image_objects.h        15 Jan 
2007 16:15:41 -0000
@@ -1,16 +1,16 @@
 #ifndef EVAS_ENGINE_DFB_IMAGE_OBJECTS_H
 #define EVAS_ENGINE_DFB_IMAGE_OBJECTS_H
-void               *evas_engine_directfb_image_load(void *data, char *file,
-                                                   char *key, int *error, 
Evas_Image_Load_Opts *lo);
+void               *evas_engine_directfb_image_load(void *data, const char 
*file,
+                                                   const char *key, int 
*error, Evas_Image_Load_Opts *lo);
 void               *evas_engine_directfb_image_new_from_data(void *data, int w,
                                                             int h,
-                                                            DATA32 *
-                                                            image_data);
+                                                            DATA32 
*image_data, 
+                                                            int alpha, int 
cspace);
 void               *evas_engine_directfb_image_new_from_copied_data(void *data,
                                                                    int w,
                                                                    int h,
-                                                                   DATA32 *
-                                                                   image_data);
+                                                                   DATA32 
*image_data, 
+                                                                   int alpha, 
int cspace);
 void                evas_engine_directfb_image_free(void *data, void *image);
 void                evas_engine_directfb_image_size_get(void *data, void 
*image,
                                                        int *w, int *h);
@@ -48,6 +48,16 @@
                                                           char *key);
 char               *evas_engine_directfb_image_format_get(void *data,
                                                          void *image);
+void                evas_engine_directfb_image_colorspace_set(void *data, 
+                                                             void *image, 
+                                                             int cspace);
+int                 evas_engine_directfb_image_colorspace_get(void *data, 
+                                                             void *image);
+void                evas_engine_directfb_image_native_set(void *data, 
+                                                         void *image, 
+                                                         void *native);
+void               *evas_engine_directfb_image_native_get(void *data, 
+                                                         void *image);
 void                evas_engine_directfb_image_cache_flush(void *data);
 void                evas_engine_directfb_image_cache_set(void *data, int 
bytes);
 int                 evas_engine_directfb_image_cache_get(void *data);
-------------------------------------------------------------------------
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-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to