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