From: <enl...@li...> - 2001-04-12 20:25:44
|
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: god daaaaamn! fix fix fix fix :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.45 retrieving revision 1.46 diff -u -3 -r1.45 -r1.46 --- evas_gl_routines.c 2001/02/16 01:33:14 1.45 +++ evas_gl_routines.c 2001/04/12 20:25:43 1.46 @@ -1734,28 +1734,28 @@ __evas_gl_text_font_get_ascent(Evas_GL_Font *fn) { if (!fn) return 0; - return fn->ascent; + return fn->ascent / 64; } int __evas_gl_text_font_get_descent(Evas_GL_Font *fn) { if (!fn) return 0; - return fn->descent; + return fn->descent / 64; } int __evas_gl_text_font_get_max_ascent(Evas_GL_Font *fn) { if (!fn) return 0; - return fn->max_ascent; + return fn->max_ascent / 64; } int __evas_gl_text_font_get_max_descent(Evas_GL_Font *fn) { if (!fn) return 0; - return fn->max_descent; + return fn->max_descent / 64; } void =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_x11_routines.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- evas_x11_routines.c 2001/01/17 21:31:30 1.15 +++ evas_x11_routines.c 2001/04/12 20:25:43 1.16 @@ -782,28 +782,28 @@ __evas_x11_text_font_get_ascent(Evas_X11_Font *fn) { if (!fn) return 0; - return fn->ascent; + return fn->ascent / 64; } int __evas_x11_text_font_get_descent(Evas_X11_Font *fn) { if (!fn) return 0; - return fn->descent; + return fn->descent / 64; } int __evas_x11_text_font_get_max_ascent(Evas_X11_Font *fn) { if (!fn) return 0; - return fn->max_ascent; + return fn->max_ascent / 64; } int __evas_x11_text_font_get_max_descent(Evas_X11_Font *fn) { if (!fn) return 0; - return fn->max_descent; + return fn->max_descent / 64; } void |
From: <enl...@li...> - 2001-04-13 01:59:17
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_text.c Log Message: slight "over optimization" :) fix fix =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_text.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- evas_text.c 2000/12/14 07:23:27 1.16 +++ evas_text.c 2001/04/13 01:58:47 1.17 @@ -915,7 +915,8 @@ Evas_Object_Text oo; oo = (Evas_Object_Text)o; - if ((oo->current.font) && (!strcmp(oo->current.font, font))) + if ((oo->current.font) && (!strcmp(oo->current.font, font)) + && (size == oo->current.size)) return; if (oo->current.font) free(oo->current.font); oo->current.font = strdup(font); |
From: <enl...@li...> - 2001-04-13 19:10:06
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_events.c evas_misc.c Log Message: oops coord transforms form world to screen and back were um.. 1 letter off :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_events.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- evas_events.c 2001/01/02 23:09:32 1.17 +++ evas_events.c 2001/04/13 19:10:05 1.18 @@ -11,7 +11,7 @@ double cx, cy; cx = evas_screen_x_to_world(e, x); - cy = evas_screen_x_to_world(e, y); + cy = evas_screen_y_to_world(e, y); return evas_object_at_position(e, cx, cy); } @@ -21,7 +21,7 @@ double cx, cy; cx = evas_screen_x_to_world(e, x); - cy = evas_screen_x_to_world(e, y); + cy = evas_screen_y_to_world(e, y); return evas_objects_at_position(e, cx, cy); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_misc.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- evas_misc.c 2001/04/07 19:00:49 1.28 +++ evas_misc.c 2001/04/13 19:10:05 1.29 @@ -633,14 +633,18 @@ evas_screen_x_to_world(Evas e, int x) { if (!e) return 0; - return (double)((double)x * (e->current.viewport.w / (double)e->current.drawable_width)); - + e->current.viewport.x; + return (double)((double)x * + (e->current.viewport.w / + (double)e->current.drawable_width)) + + e->current.viewport.x; } double evas_screen_y_to_world(Evas e, int y) { if (!e) return 0; - return (double)((double)y * (e->current.viewport.h / (double)e->current.drawable_height)); - + e->current.viewport.y; + return (double)((double)y * + (e->current.viewport.h / + (double)e->current.drawable_height)) + + e->current.viewport.y; } |
From: <enl...@li...> - 2001-04-16 18:38:22
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/test Modified Files: evas_test_old.c Log Message: image cache for eva sis preciselyu that.. cache. image and font data are kept resident as long as the obejct has been rendered at leats once AND it is still within the viewport of the output of the evas and it is still visible. if it does not meet these conditiosn it gets put into "Cache" and only then does cache become an issue. the chancges were nice and small to do this :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/test/evas_test_old.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- evas_test_old.c 2000/12/29 20:43:48 1.8 +++ evas_test_old.c 2001/04/16 18:38:22 1.9 @@ -196,8 +196,8 @@ evas_set_output_size(e, win_w, win_h); evas_set_output_viewport(e, 0, 0, win_w, win_h); - evas_set_font_cache(e, 1 * 1024 * 1024); - evas_set_image_cache(e, 8 * 1024 * 1024); + evas_set_font_cache(e, 512 * 1024); + evas_set_image_cache(e, 1 * 1024 * 1024); o[0] = evas_add_image_from_file(e, IMGDIR"sky001.png"); evas_show(e, o[0]); |
From: <enl...@li...> - 2001-04-16 18:38:56
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_image.c evas_render.c evas_text.c Log Message: image cache for eva sis preciselyu that.. cache. image and font data are kept resident as long as the obejct has been rendered at leats once AND it is still within the viewport of the output of the evas and it is still visible. if it does not meet these conditiosn it gets put into "Cache" and only then does cache become an issue. the chancges were nice and small to do this :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_image.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- evas_image.c 2001/02/17 22:07:42 1.20 +++ evas_image.c 2001/04/16 18:38:21 1.21 @@ -22,14 +22,24 @@ switch (e->current.render_method) { case RENDER_METHOD_ALPHA_SOFTWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_imlib_image_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_BASIC_HARDWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_x11_image_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_3D_HARDWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_gl_image_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_ALPHA_HARDWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_render_image_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_IMAGE: + if (o->renderer_data.method[e->current.render_method]) + __evas_image_image_free((void *)o->renderer_data.method[e->current.render_method]); break; default: break; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- evas_render.c 2001/04/12 17:54:51 1.40 +++ evas_render.c 2001/04/16 18:38:21 1.41 @@ -376,6 +376,33 @@ if (o->delete_me) delete_objects = evas_list_append(delete_objects, o); + if ((o->type == OBJECT_IMAGE) || + (o->type == OBJECT_TEXT)) + { + if ((!(RECTS_INTERSECT(o->current.x, o->current.y, + o->current.w, o->current.h, + e->current.viewport.x, e->current.viewport.y, + e->current.viewport.w, e->current.viewport.h))) + || (!o->current.visible)) + { + if (o->type == OBJECT_IMAGE) + { + if (o->renderer_data.method[e->current.render_method]) + { + func_image_free((void *)o->renderer_data.method[e->current.render_method]); + o->renderer_data.method[e->current.render_method] = NULL; + } + } + else if (o->type == OBJECT_TEXT) + { + if (o->renderer_data.method[e->current.render_method]) + { + func_text_font_free((void *)o->renderer_data.method[e->current.render_method]); + o->renderer_data.method[e->current.render_method] = NULL; + } + } + } + } if (o->changed) { o->changed = 0; @@ -848,7 +875,10 @@ void *im; oo = o; - im = func_image_new_from_file(e->current.display, oo->current.file); + if (o->renderer_data.method[e->current.render_method]) + im = (void *)o->renderer_data.method[e->current.render_method]; + else + o->renderer_data.method[e->current.render_method] = im = func_image_new_from_file(e->current.display, oo->current.file); if (im) { int visx, visy, visw, vish; @@ -994,7 +1024,7 @@ } free(pointsx); free(pointsy); - func_image_free(im); +/* func_image_free(im);*/ } } break; @@ -1004,8 +1034,11 @@ void *fn; oo = o; - fn = func_text_font_new(e->current.display, oo->current.font, - (oo->current.size * (double)e->current.drawable_width) / e->current.viewport.w); + if (o->renderer_data.method[e->current.render_method]) + fn = (void *)o->renderer_data.method[e->current.render_method]; + else + o->renderer_data.method[e->current.render_method] = fn = func_text_font_new(e->current.display, oo->current.font, + (oo->current.size * (double)e->current.drawable_width) / e->current.viewport.w); if (fn) { func_text_draw(fn, @@ -1025,7 +1058,7 @@ oo->current.g, oo->current.b, oo->current.a); - func_text_font_free(fn); +/* func_text_font_free(fn);*/ } } break; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_text.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- evas_text.c 2001/04/13 01:58:47 1.17 +++ evas_text.c 2001/04/16 18:38:21 1.18 @@ -27,14 +27,24 @@ switch (e->current.render_method) { case RENDER_METHOD_ALPHA_SOFTWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_imlib_text_font_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_BASIC_HARDWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_x11_text_font_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_3D_HARDWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_gl_text_font_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_ALPHA_HARDWARE: + if (o->renderer_data.method[e->current.render_method]) + __evas_render_text_font_free((void *)o->renderer_data.method[e->current.render_method]); break; case RENDER_METHOD_IMAGE: + if (o->renderer_data.method[e->current.render_method]) + __evas_image_text_font_free((void *)o->renderer_data.method[e->current.render_method]); break; default: break; |
From: <enl...@li...> - 2001-04-16 19:18:15
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_image.c evas_text.c Log Message: and invalidate held data if u change image file or font (font/size) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_image.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- evas_image.c 2001/04/16 18:38:21 1.21 +++ evas_image.c 2001/04/16 19:18:15 1.22 @@ -134,6 +134,7 @@ (oo->current.image.h == 0) ) { + _evas_free_image_renderer_data(e, o); if (oo->current.file) free(oo->current.file); oo->previous.file = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_text.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- evas_text.c 2001/04/16 18:38:21 1.18 +++ evas_text.c 2001/04/16 19:18:15 1.19 @@ -928,6 +928,7 @@ if ((oo->current.font) && (!strcmp(oo->current.font, font)) && (size == oo->current.size)) return; + _evas_free_text_renderer_data(e, o); if (oo->current.font) free(oo->current.font); oo->current.font = strdup(font); oo->previous.font = NULL; |
From: <enl...@li...> - 2001-04-16 19:26:58
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_image.c evas_text.c Log Message: and set handle to NULL when we're done freeing it.... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_image.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- evas_image.c 2001/04/16 19:18:15 1.22 +++ evas_image.c 2001/04/16 19:26:58 1.23 @@ -44,6 +44,7 @@ default: break; } + o->renderer_data.method[e->current.render_method] = NULL; } /* adding objects */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_text.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- evas_text.c 2001/04/16 19:18:15 1.19 +++ evas_text.c 2001/04/16 19:26:58 1.20 @@ -49,6 +49,7 @@ default: break; } + o->renderer_data.method[e->current.render_method] = NULL; } Evas_Object |
From: <enl...@li...> - 2001-04-17 06:07:24
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_gl_routines.c Log Message: oops a printf.. remove =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -3 -r1.46 -r1.47 --- evas_gl_routines.c 2001/04/12 20:25:43 1.46 +++ evas_gl_routines.c 2001/04/17 06:07:24 1.47 @@ -291,7 +291,6 @@ glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, glw->w, 0, glw->h, -1, 1); - printf("%i %i\n", glw->w, glw->h); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glScalef(1, -1, 1); |
From: <enl...@li...> - 2001-04-17 07:42:57
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_render.c Log Message: fix that minor oversight for scaled ouput evases... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -3 -r1.41 -r1.42 --- evas_render.c 2001/04/16 18:38:21 1.41 +++ evas_render.c 2001/04/17 07:42:52 1.42 @@ -177,6 +177,7 @@ Imlib_Updates up = NULL; Evas_List delete_objects; Evas_List l, ll; + int output_size_change = 0; void (*func_draw_add_rect) (Display *disp, Imlib_Image dstim, Window win, int x, int y, int w, int h); void * (*func_image_new_from_file) (Display *disp, char *file); void (*func_image_set_borders) (void *im, int left, int right, int top, int bottom); @@ -211,7 +212,7 @@ (e->current.viewport.w <= 0) || (e->current.viewport.h <= 0)) return NULL; - + switch (e->current.render_method) { case RENDER_METHOD_ALPHA_SOFTWARE: @@ -354,6 +355,21 @@ e->current.drawable_width, e->current.drawable_height); } + else if ((e->current.drawable_width != e->previous.drawable_width) || + (e->current.drawable_height != e->previous.drawable_height)) + { + evas_update_rect(e, + 0, 0, + e->current.drawable_width, + e->current.drawable_height); + if (!(((((double)e->current.drawable_width / (double)e->current.viewport.w) + == + ((double)e->previous.drawable_width / (double)e->previous.viewport.w)) && + (((double)e->current.drawable_height / (double)e->current.viewport.h) + == + ((double)e->previous.drawable_height / (double)e->previous.viewport.h))))) + output_size_change = 1; + } e->changed = 0; delete_objects = 0; @@ -401,6 +417,14 @@ o->renderer_data.method[e->current.render_method] = NULL; } } + } + if ((o->type == OBJECT_TEXT) && (output_size_change)) + { + if (o->renderer_data.method[e->current.render_method]) + { + func_text_font_free((void *)o->renderer_data.method[e->current.render_method]); + o->renderer_data.method[e->current.render_method] = NULL; + } } } if (o->changed) |
From: <enl...@li...> - 2001-04-20 01:59:00
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: Evas.h Evas_private.h evas_image.c Log Message: add call to allow program to query if image object has alpha... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas.h,v retrieving revision 1.44 retrieving revision 1.45 diff -u -3 -r1.44 -r1.45 --- Evas.h 2001/04/12 17:54:51 1.44 +++ Evas.h 2001/04/20 01:58:57 1.45 @@ -183,6 +183,7 @@ void evas_hide(Evas e, Evas_Object o); /* image query ops */ +int evas_get_image_alpha(Evas e, Evas_Object o); void evas_get_image_size(Evas e, Evas_Object o, int *w, int *h); void evas_get_image_border(Evas e, Evas_Object o, int *l, int *r, int *t, int *b); Imlib_Load_Error evas_get_image_load_error(Evas e, Evas_Object o); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas_private.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- Evas_private.h 2001/02/17 20:26:57 1.7 +++ Evas_private.h 2001/04/20 01:58:57 1.8 @@ -203,6 +203,7 @@ char *file; int new_data; int scale; + int alpha; struct { int w, h; } image; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_image.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- evas_image.c 2001/04/16 19:26:58 1.23 +++ evas_image.c 2001/04/20 01:58:57 1.24 @@ -77,8 +77,13 @@ imlib_context_set_image(im); oo->current.image.w = imlib_image_get_width(); oo->current.image.h = imlib_image_get_height(); + oo->current.alpha = imlib_image_has_alpha(); imlib_free_image(); } + else + { + oo->current.alpha = 1; + } } } oo->current.fill.x = 0; @@ -149,6 +154,7 @@ imlib_context_set_image(im); oo->current.image.w = imlib_image_get_width(); oo->current.image.h = imlib_image_get_height(); + oo->current.alpha = imlib_image_has_alpha(); imlib_free_image(); evas_resize(e, o, (double)oo->current.image.w, @@ -169,6 +175,7 @@ oo->current.fill.y = 0; oo->current.fill.w = (double)oo->current.image.w; oo->current.fill.h = (double)oo->current.image.h; + oo->current.alpha = 1; } } o->changed = 1; @@ -182,6 +189,7 @@ oo->current.file = NULL; oo->current.image.w = 0; oo->current.image.h = 0; + oo->current.alpha = 1; evas_resize(e, o, (double)oo->current.image.w, (double)oo->current.image.h); @@ -222,6 +230,18 @@ } /* image query ops */ +int +evas_get_image_alpha(Evas e, Evas_Object o) +{ + Evas_Object_Image oo; + + if (!e) return; + if (!o) return; + IF_OBJ(o, OBJECT_IMAGE) return 0; + oo = o; + return oo->current.alpha; +} + void evas_get_image_size(Evas e, Evas_Object o, int *w, int *h) { |
From: <enl...@li...> - 2001-04-21 18:55:57
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_imlib_routines.c evas_render.c Log Message: and that woudl fix a segv problem.. wheee.. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_imlib_routines.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- evas_imlib_routines.c 2001/03/20 03:11:01 1.34 +++ evas_imlib_routines.c 2001/04/21 18:55:56 1.35 @@ -44,7 +44,11 @@ for (l = images; l; l = l->next) { - if (!l->next) last = l->data; + Evas_Imlib_Image *im; + + im = l->data; + if (im->references == 0) + last = l->data; } images = evas_list_remove(images, last); imlib_context_set_image(last->image); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -3 -r1.42 -r1.43 --- evas_render.c 2001/04/17 07:42:52 1.42 +++ evas_render.c 2001/04/21 18:55:56 1.43 @@ -1,3 +1,4 @@ + #include "Evas_private.h" #include "Evas.h" #include <stdio.h> |
From: <enl...@li...> - 2001-04-23 06:22:34
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_imlib_routines.c Log Message: oops leak.. fix fix fix :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_imlib_routines.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -3 -r1.35 -r1.36 --- evas_imlib_routines.c 2001/04/21 18:55:56 1.35 +++ evas_imlib_routines.c 2001/04/23 06:22:30 1.36 @@ -84,15 +84,18 @@ images = evas_list_remove(images, im); images = evas_list_prepend(images, im); imlib_context_set_image(im->image); - __evas_image_cache_used -= - imlib_image_get_width() * - imlib_image_get_height() * 4; - if (im->scaled.image) + if (im->references == 1) { - imlib_context_set_image(im->scaled.image); - __evas_image_cache_used -= - imlib_image_get_width() * - imlib_image_get_height() * 4; + __evas_image_cache_used -= + imlib_image_get_width() * + imlib_image_get_height() * 4; + if (im->scaled.image) + { + imlib_context_set_image(im->scaled.image); + __evas_image_cache_used -= + imlib_image_get_width() * + imlib_image_get_height() * 4; + } } return im; } |
From: <enl...@li...> - 2001-04-29 00:48:56
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_gl_routines.c Log Message: optimize... optimize... texture generation is 850% faster now that.. I err.. bypass libGLU - GLU is err.. SLOOOOOOW as balls when it comes to mipmap generation =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.47 retrieving revision 1.48 diff -u -3 -r1.47 -r1.48 --- evas_gl_routines.c 2001/04/17 06:07:24 1.47 +++ evas_gl_routines.c 2001/04/29 00:48:55 1.48 @@ -519,29 +519,76 @@ } } #ifdef HAVE_GLU - if (imlib_image_has_alpha()) + /* FIXME: GLU mipmap generation is BLOODY SLOW */ + if (0) /* if libGLU is fucking slow piece of shit - do it ourselves */ { - gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA8, tw, th, GL_RGBA, - GL_UNSIGNED_BYTE, data); + if (imlib_image_has_alpha()) + gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA8, tw, th, GL_RGBA, + GL_UNSIGNED_BYTE, data); + else + gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB8, tw, th, GL_RGBA, + GL_UNSIGNED_BYTE, data); } - else - { - gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB8, tw, th, GL_RGBA, - GL_UNSIGNED_BYTE, data); - } #else - if (imlib_image_has_alpha()) + if (0) { - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, tw, th, 0, - GL_RGBA, GL_UNSIGNED_BYTE, data); + if (imlib_image_has_alpha()) + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, tw, th, 0, + GL_RGBA, GL_UNSIGNED_BYTE, data); + else + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, tw, th, 0, + GL_RGBA, GL_UNSIGNED_BYTE, data); } +#endif else { - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, tw, th, 0, - GL_RGBA, GL_UNSIGNED_BYTE, data); + int mw, mh; + int level; + Imlib_Image im1 = NULL, im2 = NULL; + int alpha = 0; + + mw = tw; + mh = th; + level = 0; + alpha = imlib_image_has_alpha(); + im1 = imlib_create_image_using_data(tw, th, data); + imlib_context_set_image(im1); + imlib_image_set_has_alpha(1); + + for (;;) + { + int pw, ph; + DATA32 *idat; + + imlib_context_set_image(im1); + idat = imlib_image_get_data_for_reading_only(); + if (alpha) + glTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, mw, mh, 0, + GL_RGBA, GL_UNSIGNED_BYTE, idat); + else + glTexImage2D(GL_TEXTURE_2D, level, GL_RGB8, mw, mh, 0, + GL_RGBA, GL_UNSIGNED_BYTE, idat); + imlib_image_put_back_data(idat); + if ((mw == 1) && (mh == 1)) break; + level++; + pw = mw; ph = mh; + mw >>= 1; if (mw < 1) mw = 1; + mh >>= 1; if (mh < 1) mh = 1; + im2 = imlib_create_cropped_scaled_image(0, 0, pw, ph, mw, mh); + imlib_free_image(); + im1 = im2; im2 = NULL; + imlib_context_set_image(im1); + imlib_image_set_has_alpha(1); + } + if (im1) + { + imlib_context_set_image(im1); + imlib_free_image(); + im1 = NULL; + } } -#endif free(data); + imlib_context_set_image(im); imlib_image_put_back_data(im_data); imlib_context_set_image(prev_im); return tex; |
From: <enl...@li...> - 2001-04-29 02:58:18
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_gl_routines.c Log Message: debug debug debug.. fix :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_gl_routines.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -3 -r1.48 -r1.49 --- evas_gl_routines.c 2001/04/29 00:48:55 1.48 +++ evas_gl_routines.c 2001/04/29 02:58:17 1.49 @@ -476,8 +476,9 @@ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); prev_im = imlib_context_get_image(); imlib_context_set_image(im); - data = malloc(tw * th * 4); im_data = imlib_image_get_data_for_reading_only(); + if (!im_data) return tex; + data = malloc(tw * th * 4); im_w = imlib_image_get_width(); im_h = imlib_image_get_height(); for (ty = 0; ty < ih; ty++) |
From: <enl...@li...> - 2001-04-29 05:58:01
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: Makefile.am Log Message: up to 0.5.0 versaion for evas. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Makefile.am,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- Makefile.am 2001/04/12 17:54:51 1.24 +++ Makefile.am 2001/04/29 05:57:59 1.25 @@ -59,4 +59,4 @@ libevas_la_LIBADD = $(LIBS_ALL) libevas_la_DEPENDENCIES = $(top_builddir)/config.h -libevas_la_LDFLAGS = -version-info 0:5:0 +libevas_la_LDFLAGS = -version-info 5:0:5 |
From: <enl...@li...> - 2001-04-29 05:58:29
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas Modified Files: README configure.in evas.spec Log Message: up to 0.5.0 versaion for evas. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/README,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- README 2001/04/12 17:54:51 1.20 +++ README 2001/04/29 05:57:59 1.21 @@ -1,11 +1,23 @@ ------------------------------------------------------------------------------- - E V A S - 0.0.5 + E V A S - 0.5.0 ------------------------------------------------------------------------------- This is the ``E Canvas'' - a rip off of some of the other canvas's floating about - Tk and gnome too. it's at the Xlib level. it's intended to be accelerated by hardware or highly optimised software where possible. It is intended to be simple and allow for the building of interfaces ontop of it. + +What you NEED: +* Imlib2 1.0.3 or higher (and development headers) +* Freetype 1.1, 1.2 or 1.3 - NOT 2.0 and development headers +* X11R6 and development headersand libraries + +If you want hardware acceleration to be available: +* OpenGL 1.0 and headers, with hardware accel support and an Xserver with +that too - your milage will vary (Xfree86 4.0 with DRI or Nvidia drivers for +example). make sure you dont have mutliepl libGL's and multiple GL headers +on your system. Rememebr most GL drivers are buggy and you will experience +problems. See your driver maintainers for these :) if you got this from cvs do: ./autogen.sh =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/configure.in,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- configure.in 2001/04/12 17:54:51 1.28 +++ configure.in 2001/04/29 05:57:59 1.29 @@ -1,6 +1,6 @@ AC_INIT(src/Evas.h) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(evas, 0.0.5) +AM_INIT_AUTOMAKE(evas, 0.5.0) AC_C_BIGENDIAN AC_PROG_CC AM_PROG_CC_STDC =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/evas.spec,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- evas.spec 2001/03/02 19:07:20 1.9 +++ evas.spec 2001/04/29 05:57:59 1.10 @@ -1,6 +1,6 @@ # this is NOT relocatable, unless you alter the patch! %define name evas -%define ver 0.0.4 +%define ver 0.5.0 %define rel 1 %define prefix /usr @@ -19,7 +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.2 +Requires: imlib2 >= 1.0.3 %description Evas is an advanced canvas library, providing three backends for |
From: <enl...@li...> - 2001-06-18 01:59:52
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: Evas.h Evas_private.h evas_events.c evas_image.c evas_poly.c evas_text.c Log Message: fix soem routines that i found incosistent whilst writitng the docs... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/Evas.h,v retrieving revision 1.45 retrieving revision 1.46 diff -u -3 -r1.45 -r1.46 --- Evas.h 2001/04/20 01:58:57 1.45 +++ Evas.h 2001/06/18 01:59:51 1.46 @@ -11,8 +11,14 @@ typedef void * Evas_Object; #endif typedef struct _Evas_List * Evas_List; +typedef struct _Evas_Point * Evas_Point; /* public structs */ +struct _Evas_Point +{ + double x, y; +}; + struct _Evas_List { Evas_List prev, next; @@ -134,7 +140,8 @@ void evas_set_line_xy(Evas e, Evas_Object o, double x1, double y1, double x2, double y2); void evas_set_pass_events(Evas e, Evas_Object o, int pass_events); void evas_add_point(Evas e, Evas_Object o, double x, double y); - +void evas_clear_points(Evas e, Evas_Object o); + /* cache settings for performance */ void evas_set_font_cache(Evas e, int size); int evas_get_font_cache(Evas e); @@ -177,7 +184,7 @@ void evas_object_set_name(Evas e, Evas_Object o, char *name); char *evas_object_get_name(Evas e, Evas_Object o); Evas_List evas_get_points(Evas e, Evas_Object o); - + /* object visibility */ void evas_show(Evas e, Evas_Object o); void evas_hide(Evas e, Evas_Object o); @@ -198,10 +205,10 @@ char *evas_get_text_string(Evas e, Evas_Object o); char *evas_get_text_font(Evas e, Evas_Object o); int evas_get_text_size(Evas e, Evas_Object o); -int evas_get_text_width(Evas e, Evas_Object o); -int evas_get_text_height(Evas e, Evas_Object o); -int evas_text_at_position(Evas e, Evas_Object o, double x, double y, int *char_x, int *char_y, int *char_w, int *char_h); -void evas_text_at(Evas e, Evas_Object o, int index, int *char_x, int *char_y, int *char_w, int *char_h); +double evas_get_text_width(Evas e, Evas_Object o); +double evas_get_text_height(Evas e, Evas_Object o); +int evas_text_at_position(Evas e, Evas_Object o, double x, double y, double *char_x, double *char_y, double *char_w, double *char_h); +void evas_text_at(Evas e, Evas_Object o, int index, double *char_x, double *char_y, double *char_w, double *char_h); void evas_text_get_ascent_descent(Evas e, Evas_Object o, double *ascent, double *descent); void evas_text_get_max_ascent_descent(Evas e, Evas_Object o, double *ascent, double *descent); void evas_text_get_advance(Evas e, Evas_Object o, double *h_advance, double *v_advance); @@ -217,7 +224,6 @@ 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_private.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- Evas_private.h 2001/04/20 01:58:57 1.8 +++ Evas_private.h 2001/06/18 01:59:51 1.9 @@ -14,7 +14,6 @@ typedef struct _Evas_Render_Data Evas_Render_Data; typedef struct _Evas_Data * Evas_Data; typedef struct _Evas_Layer * Evas_Layer; -typedef struct _Evas_Point * Evas_Point; typedef struct _Evas_Color_Point * Evas_Color_Point; typedef struct _Evas_Callback * Evas_Callback; typedef struct _Evas_Rectangle * Evas_Rectangle; @@ -113,11 +112,6 @@ Evas_List layers; Imlib_Updates updates; Imlib_Updates obscures; -}; - -struct _Evas_Point -{ - double x, y; }; struct _Evas_Color_Point =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_events.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -3 -r1.18 -r1.19 --- evas_events.c 2001/04/13 19:10:05 1.18 +++ evas_events.c 2001/06/18 01:59:51 1.19 @@ -25,14 +25,6 @@ return evas_objects_at_position(e, cx, cy); } -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) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_image.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -3 -r1.24 -r1.25 --- evas_image.c 2001/04/20 01:58:57 1.24 +++ evas_image.c 2001/06/18 01:59:51 1.25 @@ -235,8 +235,8 @@ { Evas_Object_Image oo; - if (!e) return; - if (!o) return; + if (!e) return 0; + if (!o) return 0; IF_OBJ(o, OBJECT_IMAGE) return 0; oo = o; return oo->current.alpha; @@ -296,9 +296,9 @@ { Evas_Object_Image oo; - if (!e) return; - if (!o) return; - IF_OBJ(o, OBJECT_IMAGE) return; + if (!e) return IMLIB_LOAD_ERROR_NONE; + if (!o) return IMLIB_LOAD_ERROR_NONE; + IF_OBJ(o, OBJECT_IMAGE) return IMLIB_LOAD_ERROR_NONE; oo = o; return oo->load_error; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_poly.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- evas_poly.c 2000/10/12 00:26:34 1.1 +++ evas_poly.c 2001/06/18 01:59:51 1.2 @@ -83,6 +83,7 @@ } /* modifying object */ +void evas_clear_points(Evas e, Evas_Object o) { Evas_Point p; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_text.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- evas_text.c 2001/04/16 19:26:58 1.20 +++ evas_text.c 2001/06/18 01:59:51 1.21 @@ -218,7 +218,7 @@ return oo->current.size; } -int +double evas_get_text_height(Evas e, Evas_Object o) { Evas_Object_Text oo; @@ -228,10 +228,10 @@ IF_OBJ(o, OBJECT_TEXT) return 0; oo = o; - return oo->current.string.h; + return (double)oo->current.string.h; } -int +double evas_get_text_width(Evas e, Evas_Object o) { Evas_Object_Text oo; @@ -241,14 +241,15 @@ IF_OBJ(o, OBJECT_TEXT) return 0; oo = o; - return oo->current.string.w; + return (double)oo->current.string.w; } int evas_text_at_position(Evas e, Evas_Object o, double x, double y, - int *char_x, int *char_y, int *char_w, int *char_h) + double *char_x, double *char_y, double *char_w, double *char_h) { Evas_Object_Text oo; + int cx, cy, cw, ch; if (!e) return -1; if (!o) return -1; @@ -267,8 +268,11 @@ ret = __evas_imlib_text_get_character_at_pos(fn, oo->current.text, (int)(x - o->current.x), (int)(y - o->current.y), - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_imlib_text_font_free(fn); return ret; } @@ -285,8 +289,11 @@ ret = __evas_x11_text_get_character_at_pos(fn, oo->current.text, (int)(x - o->current.x), (int)(y - o->current.y), - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_x11_text_font_free(fn); return ret; } @@ -303,8 +310,11 @@ ret = __evas_gl_text_get_character_at_pos(fn, oo->current.text, (int)(x - o->current.x), (int)(y - o->current.y), - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_gl_text_font_free(fn); return ret; } @@ -321,8 +331,11 @@ ret = __evas_render_text_get_character_at_pos(fn, oo->current.text, (int)(x - o->current.x), (int)(y - o->current.y), - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_gl_text_font_free(fn); return ret; } @@ -339,8 +352,11 @@ ret = __evas_image_text_get_character_at_pos(fn, oo->current.text, (int)(x - o->current.x), (int)(y - o->current.y), - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_image_text_font_free(fn); return ret; } @@ -354,9 +370,10 @@ void evas_text_at(Evas e, Evas_Object o, int index, - int *char_x, int *char_y, int *char_w, int *char_h) + double *char_x, double *char_y, double *char_w, double *char_h) { Evas_Object_Text oo; + int cx, cy, cw, ch; if (!e) return; if (!o) return; @@ -373,8 +390,11 @@ { __evas_imlib_text_get_character_number(fn, oo->current.text, index, - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_imlib_text_font_free(fn); } } @@ -388,8 +408,11 @@ { __evas_x11_text_get_character_number(fn, oo->current.text, index, - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_x11_text_font_free(fn); } } @@ -403,8 +426,11 @@ { __evas_gl_text_get_character_number(fn, oo->current.text, index, - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_gl_text_font_free(fn); } } @@ -417,9 +443,12 @@ if (fn) { __evas_render_text_get_character_number(fn, oo->current.text, - index, - char_x, char_y, - char_w, char_h); + index, + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_render_text_font_free(fn); } } @@ -433,8 +462,11 @@ { __evas_image_text_get_character_number(fn, oo->current.text, index, - char_x, char_y, - char_w, char_h); + &cx, &cy, &cw, &ch); + if (char_x) *char_x = (double)cx; + if (char_y) *char_y = (double)cy; + if (char_w) *char_w = (double)cw; + if (char_h) *char_h = (double)ch; __evas_image_text_font_free(fn); } } |
From: <enl...@li...> - 2001-06-18 02:47:05
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/doc Modified Files: Makefile.am Added Files: evas.pdf evas.sdw Removed Files: eg1.gif eg2.gif eg3.gif eg4.gif eg5.gif eg6.gif eg7.gif eg8.gif eg9.gif index.html logo.gif Log Message: new docs for evas.... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/doc/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Makefile.am 2000/10/31 18:15:11 1.3 +++ Makefile.am 2001/06/18 02:47:02 1.4 @@ -1,4 +1,2 @@ EXTRA_DIST = \ -index.html \ -logo.gif \ -eg1.gif eg2.gif eg3.gif eg4.gif eg5.gif eg6.gif eg7.gif eg8.gif eg9.gif +evas.sdw evas.pdf |
From: <enl...@li...> - 2001-06-19 03:02:55
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_render.c Log Message: oops - didnt translate viewport for obj's other than images =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.43 retrieving revision 1.44 diff -u -3 -r1.43 -r1.44 --- evas_render.c 2001/04/21 18:55:56 1.43 +++ evas_render.c 2001/06/19 03:02:54 1.44 @@ -1072,10 +1072,10 @@ e->current.drawable, e->current.drawable_width, e->current.drawable_height, - (o->current.x * + ((o->current.x - e->current.viewport.x) * (double)e->current.drawable_width) / e->current.viewport.w, - (o->current.y * + ((o->current.y - e->current.viewport.y) * (double)e->current.drawable_height) / e->current.viewport.h, oo->current.text, @@ -1098,10 +1098,10 @@ e->current.drawable, e->current.drawable_width, e->current.drawable_height, - (o->current.x * + ((o->current.x - e->current.viewport.x) * (double)e->current.drawable_width) / e->current.viewport.w, - (o->current.y * + ((o->current.y - e->current.viewport.y) * (double)e->current.drawable_height) / e->current.viewport.h, (o->current.w * @@ -1156,10 +1156,10 @@ e->current.drawable, e->current.drawable_width, e->current.drawable_height, - (o->current.x * + ((o->current.x - e->current.viewport.x) * (double)e->current.drawable_width) / e->current.viewport.w, - (o->current.y * + ((o->current.y - e->current.viewport.y) * (double)e->current.drawable_height) / e->current.viewport.h, (o->current.w * @@ -1188,10 +1188,10 @@ p1 = pl->data; p2 = malloc(sizeof(struct _Evas_Point)); - p2->x = (p1->x * + p2->x = ((p1->x - e->current.viewport.x) * (double)e->current.drawable_width) / e->current.viewport.w, - p2->y = (p1->y * + p2->y = ((p1->y - e->current.viewport.y) * (double)e->current.drawable_height) / e->current.viewport.h, points = evas_list_append(points, p2); |
From: <enl...@li...> - 2001-06-21 06:44:59
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/doc Modified Files: evas.pdf evas.sdw Log Message: update docs... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/doc/evas.pdf,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 Binary files /tmp/cvsHIw9gu and /tmp/cvsaLPygj differ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/doc/evas.sdw,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 Binary files /tmp/cvsUVWhld and /tmp/cvsL0tlMq differ |
From: <enl...@li...> - 2001-06-22 02:27:04
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_render.c Log Message: oops double scaling for viewport - fix fix fix :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.44 retrieving revision 1.45 diff -u -3 -r1.44 -r1.45 --- evas_render.c 2001/06/19 03:02:54 1.44 +++ evas_render.c 2001/06/22 02:27:03 1.45 @@ -903,7 +903,9 @@ if (o->renderer_data.method[e->current.render_method]) im = (void *)o->renderer_data.method[e->current.render_method]; else - o->renderer_data.method[e->current.render_method] = im = func_image_new_from_file(e->current.display, oo->current.file); + o->renderer_data.method[e->current.render_method] = + im = + func_image_new_from_file(e->current.display, oo->current.file); if (im) { int visx, visy, visw, vish; @@ -922,15 +924,19 @@ visx = 0; visw += x; } - if ((visx + visw) > e->current.drawable_width) visw = e->current.drawable_width - visx; - tilex = (-oo->current.fill.x * (double)e->current.drawable_width) / e->current.viewport.w; - tilew = (oo->current.fill.w * (double)e->current.drawable_width) / e->current.viewport.w; + if ((visx + visw) > e->current.drawable_width) + visw = e->current.drawable_width - visx; + tilex = ((-oo->current.fill.x * (double)e->current.drawable_width) / + e->current.viewport.w); + tilew = ((oo->current.fill.w * (double)e->current.drawable_width) / + e->current.viewport.w); if (tilew < 1) tilew = 1; tilex = (((tilex - (x - visx)) % tilew) + tilew) % tilew; if (tilex == 0) ww = 1 + (visw - 1) / tilew; else ww = 1 + ((visw + tilex) / tilew); pointsx = malloc(ww * sizeof(struct _points)); + printf("r\n"); for (xx = 0; xx < ww; xx++) { if (xx == 0) @@ -939,14 +945,20 @@ { pointsx[xx].out1 = visx + 0; pointsx[xx].out2 = visw; - pointsx[xx].in1 = (int)(((double)tilex * (double)oo->current.image.w * e->current.viewport.w) / ((double)e->current.drawable_width * (double)tilew)); - pointsx[xx].in2 = (int)(((double)func_image_get_width(im) * (double)visw) / (double)tilew); + pointsx[xx].in1 = (int)(((double)tilex * + (double)oo->current.image.w) / + (double)tilew); + pointsx[xx].in2 = (int)(((double)func_image_get_width(im) * + (double)visw) / + (double)tilew); } else /* | * | | | */ { pointsx[xx].out1 = visx + 0; pointsx[xx].out2 = tilew - tilex; - pointsx[xx].in1 = (int)(((double)tilex * (double)oo->current.image.w * e->current.viewport.w) / ((double)e->current.drawable_width * (double)tilew)); + pointsx[xx].in1 = (int)(((double)tilex * + (double)oo->current.image.w) / + (double)tilew); pointsx[xx].in2 = func_image_get_width(im) - pointsx[xx].in1; } } @@ -957,7 +969,9 @@ pointsx[xx].out1 = visx + (xx * tilew) - tilex; pointsx[xx].out2 = visw - (pointsx[xx].out1 - visx); pointsx[xx].in1 = 0; - pointsx[xx].in2 = (int)(((double)pointsx[xx].out2 * (double)oo->current.image.w * e->current.viewport.w) / ((double)e->current.drawable_width * (double)tilew)); + pointsx[xx].in2 = (int)(((double)pointsx[xx].out2 * + (double)oo->current.image.w) / + (double)tilew); } else /* | | * | | */ { @@ -993,14 +1007,20 @@ { pointsy[yy].out1 = visy + 0; pointsy[yy].out2 = vish; - pointsy[yy].in1 = (int)(((double)tiley * (double)oo->current.image.h * e->current.viewport.h) / ((double)e->current.drawable_height * (double)tileh)); - pointsy[yy].in2 = (int)(((double)func_image_get_height(im) * (double)vish) / (double)tileh); + pointsy[yy].in1 = (int)(((double)tiley * + (double)oo->current.image.h) / + (double)tileh); + pointsy[yy].in2 = (int)(((double)func_image_get_height(im) * + (double)vish) / + (double)tileh); } else /* | * | | | */ { pointsy[yy].out1 = visy + 0; pointsy[yy].out2 = tileh - tiley; - pointsy[yy].in1 = (int)(((double)tiley * (double)oo->current.image.h * e->current.viewport.h) / ((double)e->current.drawable_height * (double)tileh)); + pointsy[yy].in1 = (int)(((double)tiley * + (double)oo->current.image.h) / + (double)tileh); pointsy[yy].in2 = func_image_get_height(im) - pointsy[yy].in1; } } @@ -1011,7 +1031,9 @@ pointsy[yy].out1 = visy + (yy * tileh) - tiley; pointsy[yy].out2 = vish - (pointsy[yy].out1 - visy); pointsy[yy].in1 = 0; - pointsy[yy].in2 = (int)(((double)pointsy[yy].out2 * (double)oo->current.image.h * e->current.viewport.h) / ((double)e->current.drawable_height * (double)tileh)); + pointsy[yy].in2 = (int)(((double)pointsy[yy].out2 * + (double)oo->current.image.h) / + (double)tileh); } else /* | | * | | */ { @@ -1387,6 +1409,7 @@ if (!e) return; if (w < 1) w = 1; if (h < 1) h = 1; + if ((e->current.drawable_width == w) && (e->current.drawable_height == h)) return; e->current.drawable_width = w; e->current.drawable_height = h; e->changed = 1; @@ -1398,6 +1421,8 @@ if (!e) return; if (w < 1) w = 1; if (h < 1) h = 1; + if ((e->current.viewport.x == x) && (e->current.viewport.y == y) && + (e->current.viewport.w == w) && (e->current.viewport.w == h)) return; e->current.viewport.x = x; e->current.viewport.y = y; e->current.viewport.w = w; |
From: <enl...@li...> - 2001-06-22 17:08:06
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_render.c Log Message: oops printf.. remove =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_render.c,v retrieving revision 1.45 retrieving revision 1.46 diff -u -3 -r1.45 -r1.46 --- evas_render.c 2001/06/22 02:27:03 1.45 +++ evas_render.c 2001/06/22 17:08:06 1.46 @@ -936,7 +936,6 @@ else ww = 1 + ((visw + tilex) / tilew); pointsx = malloc(ww * sizeof(struct _points)); - printf("r\n"); for (xx = 0; xx < ww; xx++) { if (xx == 0) |
From: <enl...@li...> - 2001-07-02 04:26:26
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/doc Modified Files: evas.pdf evas.sdw Log Message: updated evas docs =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/doc/evas.pdf,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 Binary files /tmp/cvs1FA6Xf and /tmp/cvsgauHdO differ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/doc/evas.sdw,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 Binary files /tmp/cvs0JrHlV and /tmp/cvs8ecXY1 differ |
From: <enl...@li...> - 2001-07-17 23:02:17
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_x11_routines.c Log Message: err... =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_x11_routines.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- evas_x11_routines.c 2001/04/12 20:25:43 1.16 +++ evas_x11_routines.c 2001/07/17 23:02:17 1.17 @@ -1512,8 +1512,12 @@ imlib_context_set_direction(IMLIB_TEXT_TO_RIGHT); imlib_context_set_color_modifier(NULL); + /* oops - math was rotated 180 derees - fixup here */ + angle += 180; + while (angle < 0.0) angle += 360.0; while (angle > 360.0) angle -= 360.0; + for (l = drawable_list; l; l = l->next) { |
From: <enl...@li...> - 2001-07-22 05:16:45
|
Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas Dir : e17/libs/evas/src Modified Files: evas_text.c Log Message: try this =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/evas/src/evas_text.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- evas_text.c 2001/06/18 01:59:51 1.21 +++ evas_text.c 2001/07/22 05:16:44 1.22 @@ -830,6 +830,8 @@ oo->current.text = NULL; if (text) oo->current.text = strdup(text); + else + oo->current.text = strdup(""); oo->previous.text = NULL; { switch (e->current.render_method) @@ -935,9 +937,9 @@ } o->current.w = (double)oo->current.string.w; o->current.h = (double)oo->current.string.h; + o->changed = 1; + e->changed = 1; } - o->changed = 1; - e->changed = 1; break; default: break; @@ -1070,9 +1072,9 @@ } o->current.w = (double)oo->current.string.w; o->current.h = (double)oo->current.string.h; + o->changed = 1; + e->changed = 1; } - o->changed = 1; - e->changed = 1; break; default: break; |