From: <enl...@li...> - 2000-10-26 22:47:33
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_events.c Log Message: fix a minor event bug with retaining the wrong coordinates fomr the last event. never saw it because i was always feedingin mosue move events too =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_events.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- evas_events.c 2000/10/17 16:29:59 1.12 +++ evas_events.c 2000/10/26 22:47:33 1.13 @@ -37,7 +37,9 @@ if ((ob->current.visible) && (!ob->pass_events) && (!ob->delete_me)) { if (_evas_point_in_object(e, ob, x, y)) - o = ob; + { + o = ob; + } } } } @@ -80,7 +82,7 @@ if ((b < 1) || (b > 32)) return; if (!e->mouse.buttons) { - o = _evas_highest_object_at_point(e, e->mouse.x, e->mouse.y); + o = _evas_highest_object_at_point(e, x, y); e->mouse.button_object = o; } e->mouse.buttons |= (1 << (b - 1)); @@ -109,7 +111,7 @@ if ((e->mouse.button_object) && (e->mouse.object != e->mouse.button_object)) _evas_callback_call(e, e->mouse.button_object, CALLBACK_MOUSE_OUT, - e->mouse.buttons, e->mouse.x, e->mouse.y); + e->mouse.buttons, x, y); e->mouse.button_object = NULL; } } |
From: <enl...@li...> - 2000-10-28 18:03:39
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_render.c Log Message: fix "special case" for rectangles - property chnage parameter wasnt being set in some cases. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- evas_render.c 2000/10/22 19:14:22 1.28 +++ evas_render.c 2000/10/28 18:03:39 1.29 @@ -329,7 +329,20 @@ (o->current.zoomscale != o->previous.zoomscale) || (o->current.layer != o->previous.layer) || (o->current.stacking)))) - prop_change = 1; + prop_change = 1; + if ((!prop_change) && + (o->type == OBJECT_RECTANGLE)) + { + Evas_Object_Rectangle oo; + + oo = o; + if ((oo->current.r != oo->previous.r) || + (oo->current.g != oo->previous.g) || + (oo->current.b != oo->previous.b) || + (oo->current.a != oo->previous.a) + ) + prop_change = 1; + } real_change = 1; } |
From: <enl...@li...> - 2000-10-28 18:27:44
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_gl_routines.c Log Message: fix bug with gradient texture binding :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -3 -r1.36 -r1.37 --- evas_gl_routines.c 2000/10/15 05:59:26 1.36 +++ evas_gl_routines.c 2000/10/28 18:27:43 1.37 @@ -2207,6 +2207,10 @@ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); glBindTexture(GL_TEXTURE_2D, gr->texture); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); t[0] = cos(((-angle + 45 + 90) * 2 * 3.141592654) / 360); t[1] = sin(((-angle + 45 + 90) * 2 * 3.141592654) / 360); |
From: <enl...@li...> - 2000-10-31 18:15:11
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_test.c Log Message: add ungrab call for ungrabbing the implicit grab when buttons go down.... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/test/evas_test.c,v retrieving revision 1.77 retrieving revision 1.78 diff -u -3 -r1.77 -r1.78 --- evas_test.c 2000/10/24 00:21:49 1.77 +++ evas_test.c 2000/10/31 18:15:11 1.78 @@ -333,6 +333,7 @@ }; static char *fonts[] = { +/* "notepad", "grunge", "morpheus", @@ -341,9 +342,19 @@ "grunge", "morpheus", "notepad" + */ + "andover", + "andover", + "andover", + "andover", + "andover", + "andover", + "andover", + "andover" }; static int sizes[] = { +/* 16, 28, 34, @@ -352,6 +363,15 @@ 8, 20, 34 + */ + 64, + 64, + 64, + 64, + 64, + 64, + 64, + 64 }; static double coords[] = { @@ -584,7 +604,7 @@ { 22.0, 2.0, 4.0, 6.0, "The Hanging Gardens of Babylon ...", NULL, NULL}, { 26.0, 4.0, 4.0, 6.0, "The Mausoleum at Halicarnassus ...", NULL, NULL}, { 30.0, 2.0, 4.0, 6.0, "The Lighthouse at Alexandria ...", NULL, NULL}, - { 34.0, 2.0, 4.0, 6.0, "The Great Pyriamids at Giza ...", NULL, NULL}, + { 34.0, 2.0, 4.0, 6.0, "The Great Pyramids at Giza ...", NULL, NULL}, { 38.0, 2.0, 4.0, 6.0, "The Statue of Zeus at Olympia ...", NULL, NULL}, { 46.0, 2.0, 4.0, 6.0, "Is there an 8th wonder?", NULL, NULL}, @@ -911,8 +931,6 @@ for (i = 0; i < (sizeof(codes) / sizeof(CodeBlock)); i++) codes[i].function(0, 0, 1); if (evas_view) evas_free(evas_view); evas_view = e; - - e = evas_view; o = evas_add_text(e, "andover", 20, "FPS: ???"); evas_set_color(e, o, 255, 255, 255, 100); |
From: <enl...@li...> - 2000-10-31 18:15:41
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: Makefile.am Log Message: add ungrab call for ungrabbing the implicit grab when buttons go down.... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/doc/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Makefile.am 2000/10/12 00:26:34 1.2 +++ Makefile.am 2000/10/31 18:15:11 1.3 @@ -1,3 +1,4 @@ EXTRA_DIST = \ index.html \ -logo.gif +logo.gif \ +eg1.gif eg2.gif eg3.gif eg4.gif eg5.gif eg6.gif eg7.gif eg8.gif eg9.gif |
From: <enl...@li...> - 2000-10-31 18:15:41
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: Evas.h evas_events.c Log Message: add ungrab call for ungrabbing the implicit grab when buttons go down.... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas.h,v retrieving revision 1.36 retrieving revision 1.37 diff -u -3 -r1.36 -r1.37 --- Evas.h 2000/10/16 23:18:22 1.36 +++ Evas.h 2000/10/31 18:15:11 1.37 @@ -203,6 +203,7 @@ void *evas_remove_data(Evas e, Evas_Object o, char *key); /* events */ +void evas_ungrab_button(Evas e); void evas_event_button_down(Evas e, int x, int y, int b); void evas_event_button_up(Evas e, int x, int y, int b); void evas_event_move(Evas e, int x, int y); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_events.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- evas_events.c 2000/10/26 22:47:33 1.13 +++ evas_events.c 2000/10/31 18:15:11 1.14 @@ -71,7 +71,15 @@ } return objs; } - + +void +evas_ungrab_button(Evas e) +{ + if (e->mouse.button_object) + e->mouse.button_object = NULL; + e->mouse.buttons = 0; +} + /* events */ void evas_event_button_down(Evas e, int x, int y, int b) @@ -105,6 +113,9 @@ e->mouse.y = y; if (e->mouse.button_object) _evas_callback_call(e, e->mouse.button_object, CALLBACK_MOUSE_UP, + b, x, y); + else if (e->mouse.object) + _evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_UP, b, x, y); if (!e->mouse.buttons) { |
From: <enl...@li...> - 2000-11-04 19:17:57
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_events.c Log Message: mouse out event - ay object mouse is in.... leave event... generate. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_events.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- evas_events.c 2000/10/31 18:15:11 1.14 +++ evas_events.c 2000/11/04 19:17:57 1.15 @@ -186,6 +186,14 @@ { if (!e) return; e->mouse.in = 0; + if ((e->mouse.object) && (!e->mouse.button_object)) + { + _evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_MOVE, + e->mouse.buttons, e->mouse.x, e->mouse.y); + _evas_callback_call(e, e->mouse.object, CALLBACK_MOUSE_OUT, + e->mouse.buttons, e->mouse.x, e->mouse.y); + e->mouse.object = NULL; + } } Evas_Object |
From: <enl...@li...> - 2000-11-07 20:43:06
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_misc.c Log Message: return values in default cases where applicable =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_misc.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- evas_misc.c 2000/10/18 00:48:25 1.25 +++ evas_misc.c 2000/11/07 20:43:05 1.26 @@ -362,7 +362,7 @@ return __evas_image_text_cache_get_size(e->current.display); break; default: - return; + return 0; break; } return 0; @@ -444,7 +444,7 @@ return __evas_image_image_cache_get_size(e->current.display); break; default: - return; + return 0; break; } return 0; |
From: <enl...@li...> - 2000-11-27 23:51:02
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_test.c Log Message: enable the font bug again... debugging dri.. :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/test/evas_test.c,v retrieving revision 1.78 retrieving revision 1.79 diff -u -3 -r1.78 -r1.79 --- evas_test.c 2000/10/31 18:15:11 1.78 +++ evas_test.c 2000/11/27 23:51:00 1.79 @@ -333,7 +333,6 @@ }; static char *fonts[] = { -/* "notepad", "grunge", "morpheus", @@ -342,19 +341,9 @@ "grunge", "morpheus", "notepad" - */ - "andover", - "andover", - "andover", - "andover", - "andover", - "andover", - "andover", - "andover" }; static int sizes[] = { -/* 16, 28, 34, @@ -363,15 +352,6 @@ 8, 20, 34 - */ - 64, - 64, - 64, - 64, - 64, - 64, - 64, - 64 }; static double coords[] = { |
From: <enl...@li...> - 2000-11-28 00:51:23
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_gl_routines.c Log Message: slightly cleaner code... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- evas_gl_routines.c 2000/10/28 18:27:43 1.37 +++ evas_gl_routines.c 2000/11/28 00:51:22 1.38 @@ -881,6 +881,7 @@ if ((__evas_current_win != win) || (__evas_current_disp != disp)) { + printf("%p %x %p\n", disp, win, f->context); glXMakeCurrent(disp, win, f->context); __evas_current_disp = disp; __evas_current_win = win; @@ -1005,11 +1006,6 @@ r = 0; data = malloc(256 * 256); - glBindTexture(GL_TEXTURE_2D, f->textures[0]); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); for (j = 0, k = 0, i = 0; i < f->num_glyph; i++) { TT_F26Dot6 xmin, ymin, xmax, ymax; @@ -1062,28 +1058,18 @@ } k++; + /* last char done */ if (k == (cols * rows)) { + glBindTexture(GL_TEXTURE_2D, f->textures[j]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA4, f->max_texture_size, f->max_texture_size, 0, GL_ALPHA, GL_UNSIGNED_BYTE, data); - if (glGetError() == GL_OUT_OF_MEMORY) - { - __evas_gl_image_cache_empty(f->buffer.display); - __evas_gl_text_cache_empty(f->buffer.display); - glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA4, f->max_texture_size, f->max_texture_size, 0, - GL_ALPHA, GL_UNSIGNED_BYTE, data); - } j++; - if (j >= f->num_textures) - didlast = 1; - else - { - glBindTexture(GL_TEXTURE_2D, f->textures[j]); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); - } + if (j >= f->num_textures) didlast = 1; k = 0; r = 0; c = 0; @@ -1100,15 +1086,14 @@ } if (!didlast) { + glBindTexture(GL_TEXTURE_2D, f->textures[j]); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA4, f->max_texture_size, f->max_texture_size, 0, GL_ALPHA, GL_UNSIGNED_BYTE, data); - if (glGetError() == GL_OUT_OF_MEMORY) - { - __evas_gl_image_cache_empty(f->buffer.display); - __evas_gl_text_cache_empty(f->buffer.display); - glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA4, f->max_texture_size, f->max_texture_size, 0, - GL_ALPHA, GL_UNSIGNED_BYTE, data); - } + j++; } if (data) { |
From: <enl...@li...> - 2000-11-28 00:53:24
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_test.c Log Message: increase font cache and image cache.. this shoudl help a bit =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/test/evas_test.c,v retrieving revision 1.79 retrieving revision 1.80 diff -u -3 -r1.79 -r1.80 --- evas_test.c 2000/11/27 23:51:00 1.79 +++ evas_test.c 2000/11/28 00:53:22 1.80 @@ -788,7 +788,7 @@ evas_control = evas_new_all(display, win_base, 0, 0, 128,768, RENDER_METHOD_ALPHA_SOFTWARE, 216, - 1 * 1024 * 1024, 8 * 1024 * 1024, + 4 * 1024 * 1024, 16 * 1024 * 1024, FNTDIR); win_control = evas_get_window(evas_control); @@ -892,7 +892,7 @@ double x, y; e = evas_new_all(display, win_base, 128, 0, 1024 - 128, 768, - method, 216, 1 * 1024 * 1024, 8 * 1024 * 1024, + method, 216, 4 * 1024 * 1024, 16 * 1024 * 1024, FNTDIR); /* if (method == RENDER_METHOD_BASIC_HARDWARE) |
From: <enl...@li...> - 2000-11-29 04:38:24
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: configure.in Log Message: woooop fix fix fix.. note to self... font caching in the gl engine REALLY needs work.. but that can wait as an optmization/imporovement later. for now it works and works pretty fast / ok if your hardware is good. i'll have to make it better later. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/configure.in,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- configure.in 2000/11/26 17:21:17 1.19 +++ configure.in 2000/11/29 04:38:21 1.20 @@ -54,12 +54,12 @@ AC_CHECK_LIB(Xext, XShapeCombineMask, x_libs="-lXext $x_libs", AC_MSG_ERROR([ERROR: XShape not found.]); exit, $x_libs) -AC_CHECK_LIB(Xrender, XRenderCreatePicture, - [ x_libs=" -lXrender -lXext $x_libs"; - AC_DEFINE(HAVE_RENDER) - ], - [], - $x_libs) +#AC_CHECK_LIB(Xrender, XRenderCreatePicture, +# [ x_libs=" -lXrender -lXext $x_libs"; +# AC_DEFINE(HAVE_RENDER) +# ], +# [], +# $x_libs) #### Find out about E db #AC_CHECK_HEADER(Edb.h, |
From: <enl...@li...> - 2000-11-29 04:38:24
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_gl_routines.c Log Message: woooop fix fix fix.. note to self... font caching in the gl engine REALLY needs work.. but that can wait as an optmization/imporovement later. for now it works and works pretty fast / ok if your hardware is good. i'll have to make it better later. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- evas_gl_routines.c 2000/11/28 00:51:22 1.38 +++ evas_gl_routines.c 2000/11/29 04:38:22 1.39 @@ -881,7 +881,6 @@ if ((__evas_current_win != win) || (__evas_current_disp != disp)) { - printf("%p %x %p\n", disp, win, f->context); glXMakeCurrent(disp, win, f->context); __evas_current_disp = disp; __evas_current_win = win; @@ -1504,11 +1503,15 @@ &att); f->buffer.window = __evas_context_window; glXMakeCurrent(f->buffer.display, f->buffer.window, f->context); + __evas_current_disp = f->buffer.display; + __evas_current_win = f->buffer.window; } else { f->buffer.window = __evas_context_window; glXMakeCurrent(f->buffer.display, f->buffer.window, f->context); + __evas_current_disp = f->buffer.display; + __evas_current_win = f->buffer.window; } __evas_gl_text_font_render_textures(f); __evas_fonts = evas_list_prepend(__evas_fonts, f); |
From: <enl...@li...> - 2000-11-29 04:38:25
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_test.c Log Message: woooop fix fix fix.. note to self... font caching in the gl engine REALLY needs work.. but that can wait as an optmization/imporovement later. for now it works and works pretty fast / ok if your hardware is good. i'll have to make it better later. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/test/evas_test.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -3 -r1.80 -r1.81 --- evas_test.c 2000/11/28 00:53:22 1.80 +++ evas_test.c 2000/11/29 04:38:22 1.81 @@ -788,7 +788,7 @@ evas_control = evas_new_all(display, win_base, 0, 0, 128,768, RENDER_METHOD_ALPHA_SOFTWARE, 216, - 4 * 1024 * 1024, 16 * 1024 * 1024, + 4 * 1024 * 1024, 8 * 1024 * 1024, FNTDIR); win_control = evas_get_window(evas_control); @@ -892,7 +892,7 @@ double x, y; e = evas_new_all(display, win_base, 128, 0, 1024 - 128, 768, - method, 216, 4 * 1024 * 1024, 16 * 1024 * 1024, + method, 216, 4 * 1024 * 1024, 4 * 1024 * 1024, FNTDIR); /* if (method == RENDER_METHOD_BASIC_HARDWARE) |
From: <enl...@li...> - 2000-11-29 04:47:03
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Added Files: libevas-sample.dirs libevas-sample.files libevas.dirs libevas.files Log Message: doesn't pass make distcheck! |
From: <enl...@li...> - 2000-11-29 04:49:24
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: Makefile.am evas_image.c Log Message: dont return null fi images doesnt exist.. obejct creation shoudl ALWAYs succeed! =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Makefile.am,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- Makefile.am 2000/10/25 23:37:23 1.20 +++ Makefile.am 2000/11/29 04:49:22 1.21 @@ -59,4 +59,4 @@ libevas_la_LIBADD = $(LIBS_ALL) libevas_la_DEPENDENCIES = $(top_builddir)/config.h -libevas_la_LDFLAGS = -version-info 0:1:0 +libevas_la_LDFLAGS = -version-info 0:2:0 =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_image.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- evas_image.c 2000/11/15 21:31:14 1.15 +++ evas_image.c 2000/11/29 04:49:22 1.16 @@ -65,9 +65,7 @@ oo->current.image.w = imlib_image_get_width(); oo->current.image.h = imlib_image_get_height(); imlib_free_image(); - } else if(!im){ - return NULL; - } + } } } oo->current.fill.x = 0; |
From: <enl...@li...> - 2000-11-29 04:49:24
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: README configure.in evas.spec Log Message: dont return null fi images doesnt exist.. obejct creation shoudl ALWAYs succeed! =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/README,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- README 2000/10/21 17:01:56 1.7 +++ README 2000/11/29 04:49:21 1.8 @@ -1,5 +1,5 @@ ------------------------------------------------------------------------------- - E V A S - 0.0.1 + E V A S - 0.0.2 ------------------------------------------------------------------------------- This is the ``E Canvas'' - a rip off of some of the other canvas's floating =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/configure.in,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- configure.in 2000/11/29 04:38:21 1.20 +++ configure.in 2000/11/29 04:49:21 1.21 @@ -1,6 +1,6 @@ AC_INIT(src/Evas.h) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(evas, 0.0.1) +AM_INIT_AUTOMAKE(evas, 0.0.2) AC_C_BIGENDIAN AC_PROG_CC AM_PROG_CC_STDC =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/evas.spec,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- evas.spec 2000/10/24 22:11:31 1.4 +++ evas.spec 2000/11/29 04:49:21 1.5 @@ -1,6 +1,6 @@ # this is NOT relocatable, unless you alter the patch! %define name evas -%define ver 0.0.1 +%define ver 0.0.2 %define rel 1 %define prefix /usr @@ -14,7 +14,7 @@ Release: %{rel} Copyright: BSD Group: User Interface/X -URL: http://www.enlightenment.org/efm.html +URL: http://www.enlightenment.org/ Packager: Term <ke...@ut...> Vendor: The Enlightenment Development Team <e-d...@en...> Source: ftp://ftp.enlightenment.org/enlightenment/%{name}-%{ver}.tar.gz |
From: <enl...@li...> - 2000-12-02 02:21:17
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: Evas.h evas_render.c Log Message: add new render call that returns the updates that got rendered :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas.h,v retrieving revision 1.37 retrieving revision 1.38 diff -u -3 -r1.37 -r1.38 --- Evas.h 2000/10/31 18:15:11 1.37 +++ Evas.h 2000/12/02 02:21:07 1.38 @@ -82,7 +82,8 @@ void evas_clear_obscured_rects(Evas e); /* drawing */ -void evas_render(Evas e); +Imlib_Updates evas_render_updates(Evas e); +void evas_render(Evas e); /* query for settings to use */ Visual *evas_get_optimal_visual(Evas e, Display *disp); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- evas_render.c 2000/10/28 18:03:39 1.29 +++ evas_render.c 2000/12/02 02:21:07 1.30 @@ -150,7 +150,16 @@ void evas_render(Evas e) { - Imlib_Updates up; + Imlib_Updates u; + + u = evas_render_updates(e); + if (u) imlib_updates_free(u); +} + +Imlib_Updates +evas_render_updates(Evas e) +{ + Imlib_Updates up = NULL; Evas_List delete_objects; Evas_List l, ll; void (*func_draw_add_rect) (Display *disp, Imlib_Image dstim, Window win, int x, int y, int w, int h); @@ -610,7 +619,6 @@ x, y, w, h); u = imlib_updates_get_next(u); } - imlib_updates_free(up); /* draw all objects now */ for (l = e->layers; l; l = l->next) { @@ -908,6 +916,7 @@ } } e->previous = e->current; + return up; } /* query for settings to use */ |
From: <enl...@li...> - 2000-12-02 02:49:55
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: evas_render.c Log Message: and return valid info when theres nothngi to do... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- evas_render.c 2000/12/02 02:21:07 1.30 +++ evas_render.c 2000/12/02 02:49:51 1.31 @@ -179,22 +179,22 @@ void (*func_gradient_draw) (void *gr, Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, int w, int h, double angle); void (*func_poly_draw) (Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, Evas_List points, int r, int g, int b, int a); - if (!e) return; + if (!e) return NULL; if ((e->current.render_method == RENDER_METHOD_IMAGE) && (!e->current.image)) - return; + return NULL; if ((e->current.render_method != RENDER_METHOD_IMAGE) && ((!e->current.display) || (!e->current.visual) || (!e->current.colormap) || (!e->current.drawable))) - return; + return NULL; if ((!e->changed) || (e->current.drawable_width <= 0) || (e->current.drawable_height <= 0) || (e->current.viewport.w <= 0) || (e->current.viewport.h <= 0)) - return; + return NULL; switch (e->current.render_method) { @@ -596,6 +596,7 @@ } func_init(e->current.display, e->current.screen, e->current.colors); + up = NULL; if (e->updates) { _evas_clip_obscures(e); |
From: <enl...@li...> - 2000-12-11 19:12:17
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: Evas_private.h Log Message: I wonder what i fixed.... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas_private.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Evas_private.h 2000/10/15 03:11:11 1.4 +++ Evas_private.h 2000/12/11 19:12:16 1.5 @@ -3,6 +3,9 @@ #include <X11/Xlib.h> #include <Imlib2.h> +#ifdef WITH_DMALLOC +#include <dmalloc.h> +#endif typedef struct _Evas * Evas; typedef struct _Evas_Gradient * Evas_Gradient; |
From: <enl...@li...> - 2000-12-12 21:13:34
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: Evas.h evas_object.c Log Message: evas_get_layer(); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- Evas.h 2000/12/02 02:21:07 1.38 +++ Evas.h 2000/12/12 21:13:32 1.39 @@ -141,6 +141,7 @@ /* layer stacking for object */ void evas_set_layer(Evas e, Evas_Object o, int l); +int evas_get_layer(Evas e, Evas_Object o); /* ** ** not implimented yet ** ** */void evas_set_layer_store(Evas e, int l, int store); /* gradient creating / deletion / modification */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_object.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- evas_object.c 2000/10/17 16:29:59 1.21 +++ evas_object.c 2000/12/12 21:13:32 1.22 @@ -189,6 +189,18 @@ evas_event_move(e, e->mouse.x, e->mouse.y); } +int +evas_get_layer(Evas e, Evas_Object o) +{ + Evas_Layer layer; + Evas_List l; + int removed; + + if (!e) return 0; + if (!o) return 0; + return o->current.layer; +} + void evas_set_layer_store(Evas e, int l, int store) { |
From: <enl...@so...> - 2001-01-02 23:09:34
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Modified Files: Evas.h evas_events.c evas_gl_routines.c evas_x11_routines.c Log Message: fix that event problem... and errr.. some gfx optimizations :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas.h,v retrieving revision 1.41 retrieving revision 1.42 diff -u -3 -r1.41 -r1.42 --- Evas.h 2000/12/27 20:51:39 1.41 +++ Evas.h 2001/01/02 23:09:32 1.42 @@ -222,7 +222,7 @@ int evas_pointer_in(Evas e); void evas_pointer_pos(Evas e, int *x, int *y); int evas_pointer_buttons(Evas e); -void evas_pinter_ungrab(Evas e); +void evas_pointer_ungrab(Evas e); /* callbacks */ void evas_callback_add(Evas e, Evas_Object o, Evas_Callback_Type callback, void (*func) (void *_data, Evas _e, Evas_Object _o, int _b, int _x, int _y), void *data); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_events.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- evas_events.c 2000/12/27 20:51:39 1.16 +++ evas_events.c 2001/01/02 23:09:32 1.17 @@ -86,7 +86,7 @@ Evas_Object o; if (!e) return; - o = _evas_highest_object_at_point(e, e->mouse.x, e->mouse.y); + o = _evas_highest_object_at_point(e, x, y); if (o != e->mouse.object) { if (e->mouse.object) @@ -179,7 +179,7 @@ } void -evas_pinter_ungrab(Evas e) +evas_pointer_ungrab(Evas e) { e->mouse.buttons = 0; e->mouse.button_object = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -3 -r1.42 -r1.43 --- evas_gl_routines.c 2000/12/29 20:43:48 1.42 +++ evas_gl_routines.c 2001/01/02 23:09:32 1.43 @@ -2707,14 +2707,14 @@ gluTessCallback(tess, GLU_TESS_VERTEX, __evas_gl_tess_vertex_cb); gluTessCallback(tess, GLU_TESS_COMBINE, __evas_gl_tess_combine_cb); } + num = 0; + for (l2 = points; l2; l2 = l2->next) num++; + i = 0; + glp = malloc(num * 6 * sizeof(GLdouble)); gluTessNormal(tess, 0, 0, 1); gluTessProperty(tess, GLU_TESS_WINDING_RULE, GLU_TESS_WINDING_ODD); gluTessBeginPolygon(tess, NULL); gluTessBeginContour(tess); - num = 0; - for (l2 = points; l2; l2 = l2->next) num++; - i = 0; - glp = malloc(num * 3 * sizeof(GLdouble)); for (l2 = points; l2; l2 = l2->next) { Evas_Point p; @@ -2724,6 +2724,7 @@ glp[i++] = p->y; glp[i++] = 0; gluTessVertex(tess, &(glp[i - 3]), &(glp[i - 3])); + i += 3; } gluTessEndContour(tess); gluTessEndPolygon(tess); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_x11_routines.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- evas_x11_routines.c 2000/12/29 20:43:48 1.13 +++ evas_x11_routines.c 2001/01/02 23:09:32 1.14 @@ -237,7 +237,7 @@ imlib_context_set_drawable(w); imlib_context_set_dither_mask(0); imlib_context_set_anti_alias(0); - if (imlib_get_visual_depth(disp, __evas_visual) < 8) + if (imlib_get_visual_depth(disp, __evas_visual) <= 8) imlib_context_set_dither(__evas_anti_alias); else imlib_context_set_dither(0); imlib_context_set_blend(0); |
From: <enl...@so...> - 2001-01-07 21:04:50
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_image_routines.c evas_imlib_routines.c Log Message: errr - beat me dead with a large possum - but somehow these 2 files got swapped (in their contents) - thank god it still worked & compiled - but well... that wasn't very good now was it? :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_image_routines.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- evas_image_routines.c 2000/12/29 20:43:48 1.14 +++ evas_image_routines.c 2001/01/07 21:04:32 1.15 @@ -1,7 +1,6 @@ +#include "evas_image_routines.h" -#include "evas_imlib_routines.h" - -static void __evas_imlib_image_cache_flush(Display *disp); +static void __evas_image_image_cache_flush(Display *disp); static int __evas_anti_alias = 1; static Evas_List drawable_list = NULL; @@ -21,7 +20,7 @@ /*****************************************************************************/ static void -__evas_imlib_image_cache_flush(Display *disp) +__evas_image_image_cache_flush(Display *disp) { int size; @@ -34,21 +33,21 @@ /* image externals ***********************************************************/ /*****************************************************************************/ -Evas_Imlib_Image * -__evas_imlib_image_new_from_file(Display *disp, char *file) +Evas_Image_Image * +__evas_image_image_new_from_file(Display *disp, char *file) { - return (Evas_Imlib_Image *)imlib_load_image(file); + return (Evas_Image_Image *)imlib_load_image(file); } void -__evas_imlib_image_free(Evas_Imlib_Image *im) +__evas_image_image_free(Evas_Image_Image *im) { imlib_context_set_image((Imlib_Image)im); imlib_free_image(); } void -__evas_imlib_image_cache_empty(Display *disp) +__evas_image_image_cache_empty(Display *disp) { int size; @@ -58,19 +57,19 @@ } void -__evas_imlib_image_cache_set_size(Display *disp, int size) +__evas_image_image_cache_set_size(Display *disp, int size) { imlib_set_cache_size(size); } int -__evas_imlib_image_cache_get_size(Display *disp) +__evas_image_image_cache_get_size(Display *disp) { return imlib_get_cache_size(); } void -__evas_imlib_image_draw(Evas_Imlib_Image *im, +__evas_image_image_draw(Evas_Image_Image *im, Display *disp, Imlib_Image dstim, Window w, int win_w, int win_h, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, @@ -113,17 +112,17 @@ imlib_context_set_blend(1); for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == w) && (dr->disp == disp)) + if (dr->im == dstim) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; up = ll->data; @@ -138,8 +137,20 @@ __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - up->image = imlib_create_image(up->w, up->h); + if (!up->image) + { + DATA32 *data; + + up->image = imlib_create_image(up->w, up->h); + if (up->image) + { + imlib_context_set_image(up->image); + data = imlib_image_get_data(); + memset(data, 0, up->w * up->h * sizeof(DATA32)); + imlib_image_put_back_data(data); + imlib_image_set_has_alpha(1); + } + } imlib_context_set_image(up->image); imlib_blend_image_onto_image(im, 0, src_x, src_y, src_w, src_h, @@ -156,21 +167,21 @@ } int -__evas_imlib_image_get_width(Evas_Imlib_Image *im) +__evas_image_image_get_width(Evas_Image_Image *im) { imlib_context_set_image((Imlib_Image)im); return imlib_image_get_width(); } int -__evas_imlib_image_get_height(Evas_Imlib_Image *im) +__evas_image_image_get_height(Evas_Image_Image *im) { imlib_context_set_image((Imlib_Image)im); return imlib_image_get_height(); } void -__evas_imlib_image_set_borders(Evas_Imlib_Image *im, int left, int right, +__evas_image_image_set_borders(Evas_Image_Image *im, int left, int right, int top, int bottom) { Imlib_Border bd; @@ -184,7 +195,7 @@ } void -__evas_imlib_image_set_smooth_scaling(int on) +__evas_image_image_set_smooth_scaling(int on) { __evas_anti_alias = on; } @@ -223,52 +234,52 @@ /* font externals ************************************************************/ /*****************************************************************************/ -Evas_Imlib_Font * -__evas_imlib_text_font_new(Display *disp, char *font, int size) +Evas_Image_Font * +__evas_image_text_font_new(Display *disp, char *font, int size) { char buf[4096]; sprintf(buf, "%s/%i", font, size); - return (Evas_Imlib_Font *)imlib_load_font(buf); + return (Evas_Image_Font *)imlib_load_font(buf); } void -__evas_imlib_text_font_free(Evas_Imlib_Font *fn) +__evas_image_text_font_free(Evas_Image_Font *fn) { imlib_context_set_font((Imlib_Font)fn); imlib_free_font(); } int -__evas_imlib_text_font_get_ascent(Evas_Imlib_Font *fn) +__evas_image_text_font_get_ascent(Evas_Image_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_font_ascent(); } int -__evas_imlib_text_font_get_descent(Evas_Imlib_Font *fn) +__evas_image_text_font_get_descent(Evas_Image_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_font_descent(); } int -__evas_imlib_text_font_get_max_ascent(Evas_Imlib_Font *fn) +__evas_image_text_font_get_max_ascent(Evas_Image_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_maximum_font_ascent(); } int -__evas_imlib_text_font_get_max_descent(Evas_Imlib_Font *fn) +__evas_image_text_font_get_max_descent(Evas_Image_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_maximum_font_descent(); } void -__evas_imlib_text_font_get_advances(Evas_Imlib_Font *fn, char *text, +__evas_image_text_font_get_advances(Evas_Image_Font *fn, char *text, int *advance_horiz, int *advance_vert) { @@ -277,32 +288,32 @@ } int -__evas_imlib_text_font_get_first_inset(Evas_Imlib_Font *fn, char *text) +__evas_image_text_font_get_first_inset(Evas_Image_Font *fn, char *text) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_text_inset(text); } void -__evas_imlib_text_font_add_path(char *path) +__evas_image_text_font_add_path(char *path) { imlib_add_path_to_font_path(path); } void -__evas_imlib_text_font_del_path(char *path) +__evas_image_text_font_del_path(char *path) { imlib_remove_path_from_font_path(path); } char ** -__evas_imlib_text_font_list_paths(int *count) +__evas_image_text_font_list_paths(int *count) { return imlib_list_font_path(count); } void -__evas_imlib_text_cache_empty(Display *disp) +__evas_image_text_cache_empty(Display *disp) { int size; @@ -312,19 +323,19 @@ } void -__evas_imlib_text_cache_set_size(Display *disp, int size) +__evas_image_text_cache_set_size(Display *disp, int size) { imlib_set_font_cache_size(size); } int -__evas_imlib_text_cache_get_size(Display *disp) +__evas_image_text_cache_get_size(Display *disp) { return imlib_get_font_cache_size(); } void -__evas_imlib_text_draw(Evas_Imlib_Font *fn, Display *disp, Imlib_Image dstim, Window win, +__evas_image_text_draw(Evas_Image_Font *fn, Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, char *text, int cr, int cg, int cb, int ca) { @@ -351,17 +362,17 @@ imlib_get_text_size(text, &w, &h); for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == win) && (dr->disp == disp)) + if (dr->im == dstim) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; up = ll->data; @@ -375,8 +386,20 @@ __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - up->image = imlib_create_image(up->w, up->h); + if (!up->image) + { + DATA32 *data; + + up->image = imlib_create_image(up->w, up->h); + if (up->image) + { + imlib_context_set_image(up->image); + data = imlib_image_get_data(); + memset(data, 0, up->w * up->h * sizeof(DATA32)); + imlib_image_put_back_data(data); + imlib_image_set_has_alpha(1); + } + } imlib_context_set_image(up->image); imlib_text_draw(x - up->x, y - up->y, text); } @@ -386,7 +409,7 @@ } void -__evas_imlib_text_get_size(Evas_Imlib_Font *fn, char *text, int *w, int *h) +__evas_image_text_get_size(Evas_Image_Font *fn, char *text, int *w, int *h) { if ((!fn) || (!text)) { @@ -398,7 +421,7 @@ } int -__evas_imlib_text_get_character_at_pos(Evas_Imlib_Font *fn, char *text, +__evas_image_text_get_character_at_pos(Evas_Image_Font *fn, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) { @@ -407,7 +430,7 @@ } void -__evas_imlib_text_get_character_number(Evas_Imlib_Font *fn, char *text, +__evas_image_text_get_character_number(Evas_Image_Font *fn, char *text, int num, int *cx, int *cy, int *cw, int *ch) { @@ -443,7 +466,7 @@ /* rectangle externals *******************************************************/ /*****************************************************************************/ -void __evas_imlib_rectangle_draw(Display *disp, Imlib_Image dstim, Window win, +void __evas_image_rectangle_draw(Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, int w, int h, int cr, int cg, int cb, int ca) @@ -467,17 +490,17 @@ imlib_context_set_blend(1); for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == win) && (dr->disp == disp)) + if (dr->im == dstim) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; up = ll->data; @@ -487,8 +510,20 @@ { if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - up->image = imlib_create_image(up->w, up->h); + if (!up->image) + { + DATA32 *data; + + up->image = imlib_create_image(up->w, up->h); + if (up->image) + { + imlib_context_set_image(up->image); + data = imlib_image_get_data(); + memset(data, 0, up->w * up->h * sizeof(DATA32)); + imlib_image_put_back_data(data); + imlib_image_set_has_alpha(1); + } + } imlib_context_set_image(up->image); imlib_image_fill_rectangle(x - up->x, y - up->y, w, h); } @@ -517,7 +552,7 @@ /* rectangle externals *******************************************************/ /*****************************************************************************/ -void __evas_imlib_line_draw(Display *disp, Imlib_Image dstim, Window win, +void __evas_image_line_draw(Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x1, int y1, int x2, int y2, int cr, int cg, int cb, int ca) @@ -551,17 +586,17 @@ w++; h++; for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == win) && (dr->disp == disp)) + if (dr->im == dstim) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; up = ll->data; @@ -571,8 +606,20 @@ { if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - up->image = imlib_create_image(up->w, up->h); + if (!up->image) + { + DATA32 *data; + + up->image = imlib_create_image(up->w, up->h); + if (up->image) + { + imlib_context_set_image(up->image); + data = imlib_image_get_data(); + memset(data, 0, up->w * up->h * sizeof(DATA32)); + imlib_image_put_back_data(data); + imlib_image_set_has_alpha(1); + } + } imlib_context_set_image(up->image); imlib_image_draw_line(x1 - up->x, y1 - up->y, x2 - up->x, y2 - up->y, 0); } @@ -602,17 +649,17 @@ /*****************************************************************************/ -Evas_Imlib_Graident * -__evas_imlib_gradient_new(Display *disp) +Evas_Image_Graident * +__evas_image_gradient_new(Display *disp) { - Evas_Imlib_Graident *gr; + Evas_Image_Graident *gr; - gr = malloc(sizeof(Evas_Imlib_Graident)); + gr = malloc(sizeof(Evas_Image_Graident)); gr->colors = NULL; } void -__evas_imlib_gradient_free(Evas_Imlib_Graident *gr) +__evas_image_gradient_free(Evas_Image_Graident *gr) { Evas_List l; @@ -628,11 +675,11 @@ } void -__evas_imlib_gradient_color_add(Evas_Imlib_Graident *gr, int r, int g, int b, int a, int dist) +__evas_image_gradient_color_add(Evas_Image_Graident *gr, int r, int g, int b, int a, int dist) { - Evas_Imlib_Color *cl; + Evas_Image_Color *cl; - cl = malloc(sizeof(Evas_Imlib_Color)); + cl = malloc(sizeof(Evas_Image_Color)); cl->r = r; cl->g = g; cl->b = b; @@ -642,7 +689,7 @@ } void -__evas_imlib_gradient_draw(Evas_Imlib_Graident *gr, Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, int w, int h, double angle) +__evas_image_gradient_draw(Evas_Image_Graident *gr, Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, int w, int h, double angle) { Evas_List l; Imlib_Color_Range cr; @@ -661,7 +708,7 @@ for (l = gr->colors; l; l = l->next) { - Evas_Imlib_Color *cl; + Evas_Image_Color *cl; cl = l->data; if (__evas_clip) @@ -676,17 +723,17 @@ } for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == win) && (dr->disp == disp)) + if (dr->im == dstim) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; up = ll->data; @@ -696,8 +743,20 @@ { if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - up->image = imlib_create_image(up->w, up->h); + if (!up->image) + { + DATA32 *data; + + up->image = imlib_create_image(up->w, up->h); + if (up->image) + { + imlib_context_set_image(up->image); + data = imlib_image_get_data(); + memset(data, 0, up->w * up->h * sizeof(DATA32)); + imlib_image_put_back_data(data); + imlib_image_set_has_alpha(1); + } + } imlib_context_set_image(up->image); imlib_image_fill_color_range_rectangle(x - up->x, y - up->y, w, h, angle); } @@ -714,7 +773,7 @@ /* polygons */ /************/ void -__evas_imlib_poly_draw (Display *disp, Imlib_Image dstim, Window win, +__evas_image_poly_draw (Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, Evas_List points, int cr, int cg, int cb, int ca) @@ -771,17 +830,17 @@ } for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == win) && (dr->disp == disp)) + if (dr->im == dstim) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; up = ll->data; @@ -794,8 +853,20 @@ if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - up->image = imlib_create_image(up->w, up->h); + if (!up->image) + { + DATA32 *data; + + up->image = imlib_create_image(up->w, up->h); + if (up->image) + { + imlib_context_set_image(up->image); + data = imlib_image_get_data(); + memset(data, 0, up->w * up->h * sizeof(DATA32)); + imlib_image_put_back_data(data); + imlib_image_set_has_alpha(1); + } + } imlib_context_set_image(up->image); pol = imlib_polygon_new(); for (l2 = points; l2; l2 = l2->next) @@ -833,7 +904,7 @@ static Colormap __evas_cmap = 0; void -__evas_imlib_set_clip_rect(int on, int x, int y, int w, int h, int r, int g, int b, int a) +__evas_image_set_clip_rect(int on, int x, int y, int w, int h, int r, int g, int b, int a) { __evas_clip = on; __evas_clip_x = x; @@ -847,43 +918,43 @@ } void -__evas_imlib_sync(Display *disp) +__evas_image_sync(Display *disp) { - XSync(disp, False); } void -__evas_imlib_flush_draw(Display *disp, Imlib_Image dstim, Window win) +__evas_image_flush_draw(Display *disp, Imlib_Image dstim, Window win) { Evas_List l; - imlib_context_set_display(disp); - imlib_context_set_visual(__evas_visual); - imlib_context_set_colormap(__evas_cmap); - imlib_context_set_drawable(win); - imlib_context_set_dither(1); - imlib_context_set_blend(0); + imlib_context_set_blend(1); for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == win) && (dr->disp == disp)) + if (dr->im == dstim) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; up = ll->data; if (up->image) { + int w, h; + + w = up->w; h = up->h; + imlib_context_set_image(dr->im); + imlib_blend_image_onto_image(up->image, 1, + 0, 0, w, h, + up->x, up->y, w, h); imlib_context_set_image(up->image); - imlib_render_image_on_drawable(up->x, up->y); imlib_free_image(); } free(up); @@ -899,14 +970,14 @@ } - int -__evas_imlib_capable(Display *disp) +int +__evas_image_capable(Display *disp) { return 1; } Visual * -__evas_imlib_get_visual(Display *disp, int screen) +__evas_image_get_visual(Display *disp, int screen) { int depth; @@ -915,26 +986,26 @@ } XVisualInfo * -__evas_imlib_get_visual_info(Display *disp, int screen) +__evas_image_get_visual_info(Display *disp, int screen) { static XVisualInfo *vi = NULL; XVisualInfo vi_template; int n; if (vi) return vi; - vi_template.visualid = (__evas_imlib_get_visual(disp, screen))->visualid; + vi_template.visualid = (__evas_image_get_visual(disp, screen))->visualid; vi_template.screen = screen; vi = XGetVisualInfo(disp, VisualIDMask | VisualScreenMask, &vi_template ,&n); return vi; } Colormap -__evas_imlib_get_colormap(Display *disp, int screen) +__evas_image_get_colormap(Display *disp, int screen) { Visual *v; if (__evas_cmap) return __evas_cmap; - v = __evas_imlib_get_visual(disp, screen); + v = __evas_image_get_visual(disp, screen); __evas_cmap = DefaultColormap(disp, screen); return __evas_cmap; __evas_cmap = XCreateColormap(disp, RootWindow(disp, screen), v, AllocNone); @@ -942,37 +1013,35 @@ } void -__evas_imlib_init(Display *disp, int screen, int colors) +__evas_image_init(Display *disp, int screen, int colors) { static int initted = 0; if (!initted) { - imlib_set_color_usage(colors); imlib_set_font_cache_size(1024 * 1024); imlib_set_cache_size(8 * 1024 * 1024); initted = 1; } - imlib_set_color_usage(colors); } void -__evas_imlib_draw_add_rect(Display *disp, Imlib_Image dstim, Window win, +__evas_image_draw_add_rect(Display *disp, Imlib_Image dstim, Window win, int x, int y, int w, int h) { Evas_List l; for(l = drawable_list; l; l = l->next) { - Evas_Imlib_Drawable *dr; + Evas_Image_Drawable *dr; dr = l->data; - if ((dr->win == win) && (dr->disp == disp)) + if (dr->im == dstim) { - Evas_Imlib_Update *up; + Evas_Image_Update *up; - up = malloc(sizeof(Evas_Imlib_Update)); + up = malloc(sizeof(Evas_Image_Update)); up->x = x; up->y = y; up->w = w; @@ -983,14 +1052,13 @@ return; } { - Evas_Imlib_Drawable *dr; - Evas_Imlib_Update *up; + Evas_Image_Drawable *dr; + Evas_Image_Update *up; - dr = malloc(sizeof(Evas_Imlib_Drawable)); - dr->win = win; - dr->disp = disp; + dr = malloc(sizeof(Evas_Image_Drawable)); + dr->im = dstim; dr->tmp_images = NULL; - up = malloc(sizeof(Evas_Imlib_Update)); + up = malloc(sizeof(Evas_Image_Update)); up->x = x; up->y = y; up->w = w; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_imlib_routines.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- evas_imlib_routines.c 2000/12/29 20:43:48 1.29 +++ evas_imlib_routines.c 2001/01/07 21:04:32 1.30 @@ -1,6 +1,7 @@ -#include "evas_image_routines.h" -static void __evas_image_image_cache_flush(Display *disp); +#include "evas_imlib_routines.h" + +static void __evas_imlib_image_cache_flush(Display *disp); static int __evas_anti_alias = 1; static Evas_List drawable_list = NULL; @@ -20,7 +21,7 @@ /*****************************************************************************/ static void -__evas_image_image_cache_flush(Display *disp) +__evas_imlib_image_cache_flush(Display *disp) { int size; @@ -33,21 +34,21 @@ /* image externals ***********************************************************/ /*****************************************************************************/ -Evas_Image_Image * -__evas_image_image_new_from_file(Display *disp, char *file) +Evas_Imlib_Image * +__evas_imlib_image_new_from_file(Display *disp, char *file) { - return (Evas_Image_Image *)imlib_load_image(file); + return (Evas_Imlib_Image *)imlib_load_image(file); } void -__evas_image_image_free(Evas_Image_Image *im) +__evas_imlib_image_free(Evas_Imlib_Image *im) { imlib_context_set_image((Imlib_Image)im); imlib_free_image(); } void -__evas_image_image_cache_empty(Display *disp) +__evas_imlib_image_cache_empty(Display *disp) { int size; @@ -57,19 +58,19 @@ } void -__evas_image_image_cache_set_size(Display *disp, int size) +__evas_imlib_image_cache_set_size(Display *disp, int size) { imlib_set_cache_size(size); } int -__evas_image_image_cache_get_size(Display *disp) +__evas_imlib_image_cache_get_size(Display *disp) { return imlib_get_cache_size(); } void -__evas_image_image_draw(Evas_Image_Image *im, +__evas_imlib_image_draw(Evas_Imlib_Image *im, Display *disp, Imlib_Image dstim, Window w, int win_w, int win_h, int src_x, int src_y, int src_w, int src_h, int dst_x, int dst_y, int dst_w, int dst_h, @@ -112,17 +113,17 @@ imlib_context_set_blend(1); for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == w) && (dr->disp == disp)) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; up = ll->data; @@ -137,20 +138,8 @@ __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - { - DATA32 *data; - - up->image = imlib_create_image(up->w, up->h); - if (up->image) - { - imlib_context_set_image(up->image); - data = imlib_image_get_data(); - memset(data, 0, up->w * up->h * sizeof(DATA32)); - imlib_image_put_back_data(data); - imlib_image_set_has_alpha(1); - } - } + if (!up->image) + up->image = imlib_create_image(up->w, up->h); imlib_context_set_image(up->image); imlib_blend_image_onto_image(im, 0, src_x, src_y, src_w, src_h, @@ -167,21 +156,21 @@ } int -__evas_image_image_get_width(Evas_Image_Image *im) +__evas_imlib_image_get_width(Evas_Imlib_Image *im) { imlib_context_set_image((Imlib_Image)im); return imlib_image_get_width(); } int -__evas_image_image_get_height(Evas_Image_Image *im) +__evas_imlib_image_get_height(Evas_Imlib_Image *im) { imlib_context_set_image((Imlib_Image)im); return imlib_image_get_height(); } void -__evas_image_image_set_borders(Evas_Image_Image *im, int left, int right, +__evas_imlib_image_set_borders(Evas_Imlib_Image *im, int left, int right, int top, int bottom) { Imlib_Border bd; @@ -195,7 +184,7 @@ } void -__evas_image_image_set_smooth_scaling(int on) +__evas_imlib_image_set_smooth_scaling(int on) { __evas_anti_alias = on; } @@ -234,52 +223,52 @@ /* font externals ************************************************************/ /*****************************************************************************/ -Evas_Image_Font * -__evas_image_text_font_new(Display *disp, char *font, int size) +Evas_Imlib_Font * +__evas_imlib_text_font_new(Display *disp, char *font, int size) { char buf[4096]; sprintf(buf, "%s/%i", font, size); - return (Evas_Image_Font *)imlib_load_font(buf); + return (Evas_Imlib_Font *)imlib_load_font(buf); } void -__evas_image_text_font_free(Evas_Image_Font *fn) +__evas_imlib_text_font_free(Evas_Imlib_Font *fn) { imlib_context_set_font((Imlib_Font)fn); imlib_free_font(); } int -__evas_image_text_font_get_ascent(Evas_Image_Font *fn) +__evas_imlib_text_font_get_ascent(Evas_Imlib_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_font_ascent(); } int -__evas_image_text_font_get_descent(Evas_Image_Font *fn) +__evas_imlib_text_font_get_descent(Evas_Imlib_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_font_descent(); } int -__evas_image_text_font_get_max_ascent(Evas_Image_Font *fn) +__evas_imlib_text_font_get_max_ascent(Evas_Imlib_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_maximum_font_ascent(); } int -__evas_image_text_font_get_max_descent(Evas_Image_Font *fn) +__evas_imlib_text_font_get_max_descent(Evas_Imlib_Font *fn) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_maximum_font_descent(); } void -__evas_image_text_font_get_advances(Evas_Image_Font *fn, char *text, +__evas_imlib_text_font_get_advances(Evas_Imlib_Font *fn, char *text, int *advance_horiz, int *advance_vert) { @@ -288,32 +277,32 @@ } int -__evas_image_text_font_get_first_inset(Evas_Image_Font *fn, char *text) +__evas_imlib_text_font_get_first_inset(Evas_Imlib_Font *fn, char *text) { imlib_context_set_font((Imlib_Font)fn); return imlib_get_text_inset(text); } void -__evas_image_text_font_add_path(char *path) +__evas_imlib_text_font_add_path(char *path) { imlib_add_path_to_font_path(path); } void -__evas_image_text_font_del_path(char *path) +__evas_imlib_text_font_del_path(char *path) { imlib_remove_path_from_font_path(path); } char ** -__evas_image_text_font_list_paths(int *count) +__evas_imlib_text_font_list_paths(int *count) { return imlib_list_font_path(count); } void -__evas_image_text_cache_empty(Display *disp) +__evas_imlib_text_cache_empty(Display *disp) { int size; @@ -323,19 +312,19 @@ } void -__evas_image_text_cache_set_size(Display *disp, int size) +__evas_imlib_text_cache_set_size(Display *disp, int size) { imlib_set_font_cache_size(size); } int -__evas_image_text_cache_get_size(Display *disp) +__evas_imlib_text_cache_get_size(Display *disp) { return imlib_get_font_cache_size(); } void -__evas_image_text_draw(Evas_Image_Font *fn, Display *disp, Imlib_Image dstim, Window win, +__evas_imlib_text_draw(Evas_Imlib_Font *fn, Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, char *text, int cr, int cg, int cb, int ca) { @@ -362,17 +351,17 @@ imlib_get_text_size(text, &w, &h); for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == win) && (dr->disp == disp)) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; up = ll->data; @@ -386,20 +375,8 @@ __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - { - DATA32 *data; - - up->image = imlib_create_image(up->w, up->h); - if (up->image) - { - imlib_context_set_image(up->image); - data = imlib_image_get_data(); - memset(data, 0, up->w * up->h * sizeof(DATA32)); - imlib_image_put_back_data(data); - imlib_image_set_has_alpha(1); - } - } + if (!up->image) + up->image = imlib_create_image(up->w, up->h); imlib_context_set_image(up->image); imlib_text_draw(x - up->x, y - up->y, text); } @@ -409,7 +386,7 @@ } void -__evas_image_text_get_size(Evas_Image_Font *fn, char *text, int *w, int *h) +__evas_imlib_text_get_size(Evas_Imlib_Font *fn, char *text, int *w, int *h) { if ((!fn) || (!text)) { @@ -421,7 +398,7 @@ } int -__evas_image_text_get_character_at_pos(Evas_Image_Font *fn, char *text, +__evas_imlib_text_get_character_at_pos(Evas_Imlib_Font *fn, char *text, int x, int y, int *cx, int *cy, int *cw, int *ch) { @@ -430,7 +407,7 @@ } void -__evas_image_text_get_character_number(Evas_Image_Font *fn, char *text, +__evas_imlib_text_get_character_number(Evas_Imlib_Font *fn, char *text, int num, int *cx, int *cy, int *cw, int *ch) { @@ -466,7 +443,7 @@ /* rectangle externals *******************************************************/ /*****************************************************************************/ -void __evas_image_rectangle_draw(Display *disp, Imlib_Image dstim, Window win, +void __evas_imlib_rectangle_draw(Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, int w, int h, int cr, int cg, int cb, int ca) @@ -490,17 +467,17 @@ imlib_context_set_blend(1); for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == win) && (dr->disp == disp)) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; up = ll->data; @@ -510,20 +487,8 @@ { if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - { - DATA32 *data; - - up->image = imlib_create_image(up->w, up->h); - if (up->image) - { - imlib_context_set_image(up->image); - data = imlib_image_get_data(); - memset(data, 0, up->w * up->h * sizeof(DATA32)); - imlib_image_put_back_data(data); - imlib_image_set_has_alpha(1); - } - } + if (!up->image) + up->image = imlib_create_image(up->w, up->h); imlib_context_set_image(up->image); imlib_image_fill_rectangle(x - up->x, y - up->y, w, h); } @@ -552,7 +517,7 @@ /* rectangle externals *******************************************************/ /*****************************************************************************/ -void __evas_image_line_draw(Display *disp, Imlib_Image dstim, Window win, +void __evas_imlib_line_draw(Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x1, int y1, int x2, int y2, int cr, int cg, int cb, int ca) @@ -586,17 +551,17 @@ w++; h++; for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == win) && (dr->disp == disp)) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; up = ll->data; @@ -606,20 +571,8 @@ { if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - { - DATA32 *data; - - up->image = imlib_create_image(up->w, up->h); - if (up->image) - { - imlib_context_set_image(up->image); - data = imlib_image_get_data(); - memset(data, 0, up->w * up->h * sizeof(DATA32)); - imlib_image_put_back_data(data); - imlib_image_set_has_alpha(1); - } - } + if (!up->image) + up->image = imlib_create_image(up->w, up->h); imlib_context_set_image(up->image); imlib_image_draw_line(x1 - up->x, y1 - up->y, x2 - up->x, y2 - up->y, 0); } @@ -649,17 +602,17 @@ /*****************************************************************************/ -Evas_Image_Graident * -__evas_image_gradient_new(Display *disp) +Evas_Imlib_Graident * +__evas_imlib_gradient_new(Display *disp) { - Evas_Image_Graident *gr; + Evas_Imlib_Graident *gr; - gr = malloc(sizeof(Evas_Image_Graident)); + gr = malloc(sizeof(Evas_Imlib_Graident)); gr->colors = NULL; } void -__evas_image_gradient_free(Evas_Image_Graident *gr) +__evas_imlib_gradient_free(Evas_Imlib_Graident *gr) { Evas_List l; @@ -675,11 +628,11 @@ } void -__evas_image_gradient_color_add(Evas_Image_Graident *gr, int r, int g, int b, int a, int dist) +__evas_imlib_gradient_color_add(Evas_Imlib_Graident *gr, int r, int g, int b, int a, int dist) { - Evas_Image_Color *cl; + Evas_Imlib_Color *cl; - cl = malloc(sizeof(Evas_Image_Color)); + cl = malloc(sizeof(Evas_Imlib_Color)); cl->r = r; cl->g = g; cl->b = b; @@ -689,7 +642,7 @@ } void -__evas_image_gradient_draw(Evas_Image_Graident *gr, Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, int w, int h, double angle) +__evas_imlib_gradient_draw(Evas_Imlib_Graident *gr, Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, int x, int y, int w, int h, double angle) { Evas_List l; Imlib_Color_Range cr; @@ -708,7 +661,7 @@ for (l = gr->colors; l; l = l->next) { - Evas_Image_Color *cl; + Evas_Imlib_Color *cl; cl = l->data; if (__evas_clip) @@ -723,17 +676,17 @@ } for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == win) && (dr->disp == disp)) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; up = ll->data; @@ -743,20 +696,8 @@ { if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - { - DATA32 *data; - - up->image = imlib_create_image(up->w, up->h); - if (up->image) - { - imlib_context_set_image(up->image); - data = imlib_image_get_data(); - memset(data, 0, up->w * up->h * sizeof(DATA32)); - imlib_image_put_back_data(data); - imlib_image_set_has_alpha(1); - } - } + if (!up->image) + up->image = imlib_create_image(up->w, up->h); imlib_context_set_image(up->image); imlib_image_fill_color_range_rectangle(x - up->x, y - up->y, w, h, angle); } @@ -773,7 +714,7 @@ /* polygons */ /************/ void -__evas_image_poly_draw (Display *disp, Imlib_Image dstim, Window win, +__evas_imlib_poly_draw (Display *disp, Imlib_Image dstim, Window win, int win_w, int win_h, Evas_List points, int cr, int cg, int cb, int ca) @@ -830,17 +771,17 @@ } for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == win) && (dr->disp == disp)) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; up = ll->data; @@ -853,20 +794,8 @@ if (__evas_clip) imlib_context_set_cliprect(__evas_clip_x - up->x, __evas_clip_y - up->y, __evas_clip_w, __evas_clip_h); else imlib_context_set_cliprect(0, 0, 0, 0); - if (!up->image) - { - DATA32 *data; - - up->image = imlib_create_image(up->w, up->h); - if (up->image) - { - imlib_context_set_image(up->image); - data = imlib_image_get_data(); - memset(data, 0, up->w * up->h * sizeof(DATA32)); - imlib_image_put_back_data(data); - imlib_image_set_has_alpha(1); - } - } + if (!up->image) + up->image = imlib_create_image(up->w, up->h); imlib_context_set_image(up->image); pol = imlib_polygon_new(); for (l2 = points; l2; l2 = l2->next) @@ -904,7 +833,7 @@ static Colormap __evas_cmap = 0; void -__evas_image_set_clip_rect(int on, int x, int y, int w, int h, int r, int g, int b, int a) +__evas_imlib_set_clip_rect(int on, int x, int y, int w, int h, int r, int g, int b, int a) { __evas_clip = on; __evas_clip_x = x; @@ -918,43 +847,43 @@ } void -__evas_image_sync(Display *disp) +__evas_imlib_sync(Display *disp) { + XSync(disp, False); } void -__evas_image_flush_draw(Display *disp, Imlib_Image dstim, Window win) +__evas_imlib_flush_draw(Display *disp, Imlib_Image dstim, Window win) { Evas_List l; - imlib_context_set_blend(1); + imlib_context_set_display(disp); + imlib_context_set_visual(__evas_visual); + imlib_context_set_colormap(__evas_cmap); + imlib_context_set_drawable(win); + imlib_context_set_dither(1); + imlib_context_set_blend(0); for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == win) && (dr->disp == disp)) { Evas_List ll; for (ll = dr->tmp_images; ll; ll = ll->next) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; up = ll->data; if (up->image) { - int w, h; - - w = up->w; h = up->h; - imlib_context_set_image(dr->im); - imlib_blend_image_onto_image(up->image, 1, - 0, 0, w, h, - up->x, up->y, w, h); imlib_context_set_image(up->image); + imlib_render_image_on_drawable(up->x, up->y); imlib_free_image(); } free(up); @@ -970,14 +899,14 @@ } -int -__evas_image_capable(Display *disp) + int +__evas_imlib_capable(Display *disp) { return 1; } Visual * -__evas_image_get_visual(Display *disp, int screen) +__evas_imlib_get_visual(Display *disp, int screen) { int depth; @@ -986,26 +915,26 @@ } XVisualInfo * -__evas_image_get_visual_info(Display *disp, int screen) +__evas_imlib_get_visual_info(Display *disp, int screen) { static XVisualInfo *vi = NULL; XVisualInfo vi_template; int n; if (vi) return vi; - vi_template.visualid = (__evas_image_get_visual(disp, screen))->visualid; + vi_template.visualid = (__evas_imlib_get_visual(disp, screen))->visualid; vi_template.screen = screen; vi = XGetVisualInfo(disp, VisualIDMask | VisualScreenMask, &vi_template ,&n); return vi; } Colormap -__evas_image_get_colormap(Display *disp, int screen) +__evas_imlib_get_colormap(Display *disp, int screen) { Visual *v; if (__evas_cmap) return __evas_cmap; - v = __evas_image_get_visual(disp, screen); + v = __evas_imlib_get_visual(disp, screen); __evas_cmap = DefaultColormap(disp, screen); return __evas_cmap; __evas_cmap = XCreateColormap(disp, RootWindow(disp, screen), v, AllocNone); @@ -1013,35 +942,37 @@ } void -__evas_image_init(Display *disp, int screen, int colors) +__evas_imlib_init(Display *disp, int screen, int colors) { static int initted = 0; if (!initted) { + imlib_set_color_usage(colors); imlib_set_font_cache_size(1024 * 1024); imlib_set_cache_size(8 * 1024 * 1024); initted = 1; } + imlib_set_color_usage(colors); } void -__evas_image_draw_add_rect(Display *disp, Imlib_Image dstim, Window win, +__evas_imlib_draw_add_rect(Display *disp, Imlib_Image dstim, Window win, int x, int y, int w, int h) { Evas_List l; for(l = drawable_list; l; l = l->next) { - Evas_Image_Drawable *dr; + Evas_Imlib_Drawable *dr; dr = l->data; - if (dr->im == dstim) + if ((dr->win == win) && (dr->disp == disp)) { - Evas_Image_Update *up; + Evas_Imlib_Update *up; - up = malloc(sizeof(Evas_Image_Update)); + up = malloc(sizeof(Evas_Imlib_Update)); up->x = x; up->y = y; up->w = w; @@ -1052,13 +983,14 @@ return; } { - Evas_Image_Drawable *dr; - Evas_Image_Update *up; + Evas_Imlib_Drawable *dr; + Evas_Imlib_Update *up; - dr = malloc(sizeof(Evas_Image_Drawable)); - dr->im = dstim; + dr = malloc(sizeof(Evas_Imlib_Drawable)); + dr->win = win; + dr->disp = disp; dr->tmp_images = NULL; - up = malloc(sizeof(Evas_Image_Update)); + up = malloc(sizeof(Evas_Imlib_Update)); up->x = x; up->y = y; up->w = w; |
From: <enl...@so...> - 2001-01-07 22:02:19
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas Modified Files: evas.spec Log Message: * fix requires for imlib2 to require 1.0.1 =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/evas.spec,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- evas.spec 2000/12/29 21:39:19 1.7 +++ evas.spec 2001/01/07 22:02:31 1.8 @@ -19,9 +19,7 @@ Vendor: The Enlightenment Development Team <e-d...@en...> Source: ftp://ftp.enlightenment.org/enlightenment/%{name}-%{ver}.tar.gz BuildRoot: /var/tmp/%{name}-root -Requires: imlib2 >= 1.0.0 - -#Patch1: evas_test-fix.patch +Requires: imlib2 >= 1.0.1 %description Evas is an advanced canvas library, providing three backends for |
From: <enl...@so...> - 2001-01-17 21:31:28
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_gl_routines.c evas_x11_routines.c Log Message: minor fixup if last char in string has 0 boundingbox width :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -3 -r1.43 -r1.44 --- evas_gl_routines.c 2001/01/02 23:09:32 1.43 +++ evas_gl_routines.c 2001/01/17 21:31:30 1.44 @@ -2058,7 +2058,12 @@ if (i == 0) pw += ((-g->metrics.bearingX) / 64); if (text[i + 1] == 0) /* last char - ineternationalization issue */ - pw += (g->metrics.bbox.xMax / 64); + { + if ((g->metrics.bbox.xMax / 64) == 0) + pw += (g->metrics.advance / 64); + else + pw += (g->metrics.bbox.xMax / 64); + } else pw += g->metrics.advance / 64; } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_x11_routines.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- evas_x11_routines.c 2001/01/02 23:09:32 1.14 +++ evas_x11_routines.c 2001/01/17 21:31:30 1.15 @@ -1104,7 +1104,12 @@ if (i == 0) pw += ((-g->metrics.bearingX) / 64); if (text[i + 1] == 0) /* last char - ineternationalization issue */ - pw += (g->metrics.bbox.xMax / 64); + { + if ((g->metrics.bbox.xMax / 64) == 0) + pw += (g->metrics.advance / 64); + else + pw += (g->metrics.bbox.xMax / 64); + } else pw += g->metrics.advance / 64; } |