Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/modules/engines/gl_common Modified Files: evas_gl_image.c Log Message: cedric's sdl patch. =================================================================== RCS file: /cvs/e/e17/libs/evas/src/modules/engines/gl_common/evas_gl_image.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- evas_gl_image.c 2 Jun 2007 15:30:58 -0000 1.8 +++ evas_gl_image.c 16 Jul 2007 07:25:34 -0000 1.9 @@ -15,7 +15,7 @@ im = l->data; if (im->im == im_im) { - evas_common_image_unref(im_im); + evas_cache_image_drop(im_im); gc->images = evas_list_remove_list(gc->images, l); gc->images = evas_list_prepend(gc->images, im); im->references++; @@ -63,19 +63,12 @@ im = calloc(1, sizeof(Evas_GL_Image)); if (!im) return NULL; im->references = 1; - im->im = evas_common_image_new(); + im->im = evas_cache_image_empty(evas_common_image_cache_get()); if (!im->im) { free(im); return NULL; } - im->im->image = evas_common_image_surface_new(im->im); - if (!im->im->image) - { - evas_common_image_free(im->im); - free(im); - return NULL; - } im->gc = gc; im->im->image->w = w; im->im->image->h = h; @@ -117,12 +110,14 @@ im = calloc(1, sizeof(Evas_GL_Image)); if (!im) return NULL; im->references = 1; - im->im = evas_common_image_create(w, h); + im->im = evas_cache_image_empty(evas_common_image_cache_get()); if (!im->im) { free(im); return NULL; } + im->im->image->w = w; + im->im->image->h = h; im->gc = gc; im->cs.space = cspace; if (alpha) @@ -132,13 +127,12 @@ switch (cspace) { case EVAS_COLORSPACE_ARGB8888: + evas_common_image_surface_alloc(im->im->image); if (data) memcpy(im->im->image->data, data, w * h * sizeof(DATA32)); break; case EVAS_COLORSPACE_YCBCR422P601_PL: case EVAS_COLORSPACE_YCBCR422P709_PL: - evas_common_image_surface_dealloc(im->im->image); - im->im->image->data = NULL; if (im->tex) evas_gl_common_texture_free(im->tex); im->tex = NULL; im->cs.no_free = 0; @@ -161,12 +155,14 @@ im = calloc(1, sizeof(Evas_GL_Image)); if (!im) return NULL; im->references = 1; - im->im = evas_common_image_create(w, h); + im->im = evas_cache_image_empty(evas_common_image_cache_get()); if (!im->im) { free(im); return NULL; } + im->im->image->w = w; + im->im->image->h = h; im->gc = gc; im->cs.space = cspace; if (alpha) @@ -176,6 +172,7 @@ switch (cspace) { case EVAS_COLORSPACE_ARGB8888: + evas_common_image_surface_alloc(im->im->image); // if (data) // memcpy(im->im->image->data, data, w * h * sizeof(DATA32)); break; @@ -208,7 +205,7 @@ if (!im->cs.no_free) free(im->cs.data); } if (im->cached) im->gc->images = evas_list_remove(im->gc->images, im); - if (im->im) evas_common_image_unref(im->im); + if (im->im) evas_cache_image_drop(im->im); if (im->tex) evas_gl_common_texture_free(im->tex); free(im); } @@ -216,7 +213,7 @@ void evas_gl_common_image_dirty(Evas_GL_Image *im) { - evas_common_image_dirty(im->im); + im->im = evas_cache_image_dirty(im->im, 0, 0, im->im->image->w, im->im->image->h); im->dirty = 1; } @@ -242,11 +239,11 @@ { r = g = b = a = 255; } - evas_common_load_image_data_from_file(im->im); /* leak in this switch */ switch (im->cs.space) { case EVAS_COLORSPACE_ARGB8888: + evas_cache_image_load_data(im->im); if ((im->tex) && (im->dirty)) { evas_gl_common_texture_update(im->tex, im->im, im->tex->smooth); ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs