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

Reply via email to