diff --git a/legacy/evas/data/Makefile.am b/legacy/evas/data/Makefile.am index fbcaaa0309..bb9f76c47a 100644 --- a/legacy/evas/data/Makefile.am +++ b/legacy/evas/data/Makefile.am @@ -1,7 +1,7 @@ FILES = Vera.ttf VeraBI.ttf VeraBd.ttf VeraIt.ttf VeraMoBI.ttf VeraMoBd.ttf \ VeraMoIt.ttf VeraMono.ttf VeraSe.ttf VeraSeBd.ttf fonts.alias fonts.dir \ - backdrop.png bg.png e_logo.png evas_logo.png panel.png \ - panel_shadow.png panel_top.png sphere.png sphere_shadow.png \ + backdrop.png e_logo.png evas_logo.png panel.png \ + panel_shadow.png panel_top.png \ t1.png t2.png test_pattern.png miscdir = $(pkgdatadir)/data diff --git a/legacy/evas/data/backdrop.png b/legacy/evas/data/backdrop.png index 08e2ffe8d4..55f29e21dd 100644 Binary files a/legacy/evas/data/backdrop.png and b/legacy/evas/data/backdrop.png differ diff --git a/legacy/evas/data/bg.png b/legacy/evas/data/bg.png deleted file mode 100644 index 3f63b4adb8..0000000000 Binary files a/legacy/evas/data/bg.png and /dev/null differ diff --git a/legacy/evas/data/sphere.png b/legacy/evas/data/sphere.png deleted file mode 100644 index bde2d542c1..0000000000 Binary files a/legacy/evas/data/sphere.png and /dev/null differ diff --git a/legacy/evas/data/sphere_shadow.png b/legacy/evas/data/sphere_shadow.png deleted file mode 100644 index 70a0429ced..0000000000 Binary files a/legacy/evas/data/sphere_shadow.png and /dev/null differ diff --git a/legacy/evas/data/t1.png b/legacy/evas/data/t1.png index f818de332f..e6e70c9113 100644 Binary files a/legacy/evas/data/t1.png and b/legacy/evas/data/t1.png differ diff --git a/legacy/evas/data/t2.png b/legacy/evas/data/t2.png index 9f12761bb7..12edf0185d 100644 Binary files a/legacy/evas/data/t2.png and b/legacy/evas/data/t2.png differ diff --git a/legacy/evas/src/lib/engines/buffer/evas_engine.c b/legacy/evas/src/lib/engines/buffer/evas_engine.c index e67f76bd74..4970701370 100644 --- a/legacy/evas/src/lib/engines/buffer/evas_engine.c +++ b/legacy/evas/src/lib/engines/buffer/evas_engine.c @@ -671,7 +671,7 @@ evas_engine_buffer_image_new_from_data(void *data, int w, int h, DATA32 *image_d re = (Render_Engine *)data; im = evas_common_image_new(); - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { evas_common_image_free(im); diff --git a/legacy/evas/src/lib/engines/buffer/evas_outbuf.c b/legacy/evas/src/lib/engines/buffer/evas_outbuf.c index 3f076f81df..c670ea30c4 100644 --- a/legacy/evas/src/lib/engines/buffer/evas_outbuf.c +++ b/legacy/evas/src/lib/engines/buffer/evas_outbuf.c @@ -46,7 +46,7 @@ evas_buffer_outbuf_buf_setup_fb(int w, int h, Outbuf_Depth depth, void *dest, in (buf->dest) && (buf->dest_row_bytes == (buf->w * sizeof(DATA32)))) { buf->priv.back_buf = evas_common_image_new(); - buf->priv.back_buf->image = evas_common_image_surface_new(); + buf->priv.back_buf->image = evas_common_image_surface_new( buf->priv.back_buf); buf->priv.back_buf->image->w = w; buf->priv.back_buf->image->h = h; buf->priv.back_buf->image->data = buf->dest; diff --git a/legacy/evas/src/lib/engines/common/evas_image_load.c b/legacy/evas/src/lib/engines/common/evas_image_load.c index 7d2c28b949..a98fc8debe 100644 --- a/legacy/evas/src/lib/engines/common/evas_image_load.c +++ b/legacy/evas/src/lib/engines/common/evas_image_load.c @@ -83,7 +83,7 @@ load_image_file_head_png(RGBA_Image *im, const char *file, const char *key) (png_uint_32 *) (&h32), &bit_depth, &color_type, &interlace_type, NULL, NULL); if (!im->image) - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp) NULL); @@ -299,7 +299,7 @@ load_image_file_head_jpeg_internal(RGBA_Image *im, FILE *f) /* head decoding */ if (!im->image) - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { jpeg_destroy_decompress(&cinfo); @@ -586,7 +586,7 @@ load_image_file_head_eet(RGBA_Image *im, const char *file, const char *key) } if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; if (!im->image) - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { free(body); @@ -626,7 +626,7 @@ load_image_file_data_eet(RGBA_Image *im, const char *file, const char *key) } if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; if (!im->image) - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { eet_close(ef); @@ -696,7 +696,7 @@ load_image_file_head_edb(RGBA_Image *im, const char *file, const char *key) } if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; if (!im->image) - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { free(ret); @@ -767,7 +767,7 @@ load_image_file_data_edb(RGBA_Image *im, const char *file, const char *key) } if (alpha) im->flags |= RGBA_IMAGE_HAS_ALPHA; if (!im->image) - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { free(ret); diff --git a/legacy/evas/src/lib/engines/common/evas_image_main.c b/legacy/evas/src/lib/engines/common/evas_image_main.c index c69b6a39e9..d7d2822ac9 100644 --- a/legacy/evas/src/lib/engines/common/evas_image_main.c +++ b/legacy/evas/src/lib/engines/common/evas_image_main.c @@ -77,11 +77,12 @@ evas_common_image_shutdown(void) } RGBA_Surface * -evas_common_image_surface_new(void) +evas_common_image_surface_new(RGBA_Image *im) { RGBA_Surface *is; is = calloc(1, sizeof(RGBA_Surface)); + is->im = im; return is; } @@ -95,7 +96,7 @@ evas_common_image_surface_free(RGBA_Surface *is) void evas_common_image_surface_alloc(RGBA_Surface *is) { - size_t siz = is->w * is->h * sizeof(DATA32); + size_t siz = 0; static int on_valgrind; /* init data when we're under Valgrind's control */ @@ -108,7 +109,11 @@ evas_common_image_surface_alloc(RGBA_Surface *is) init = 1; } #endif - + if (is->im->flags & RGBA_IMAGE_ALPHA_ONLY) + siz = is->w * is->h * sizeof(DATA8); + else + siz = is->w * is->h * sizeof(DATA32); + is->data = on_valgrind ? calloc(1, siz) : malloc(siz); } @@ -129,7 +134,7 @@ evas_common_image_create(int w, int h) im = evas_common_image_new(); if (!im) return NULL; - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { evas_common_image_free(im); diff --git a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c index 33b71b8b51..2552ec7d73 100644 --- a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c +++ b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb.c @@ -182,7 +182,7 @@ evas_engine_directfb_output_setup(int w, int h, IDirectFB * dfb, * manipulated directly. */ im = evas_common_image_new(); if (!im) return; - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { evas_common_image_free(im); diff --git a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c index 1a312cbfd2..448620eaa6 100644 --- a/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c +++ b/legacy/evas/src/lib/engines/directfb/evas_engine_dfb_image_objects.c @@ -71,7 +71,7 @@ evas_engine_directfb_image_load(void *data, char *file, char *key, int *error) provider->Release(provider); im = evas_common_image_new(); - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { image->Release(image); @@ -556,7 +556,7 @@ _dfb_image_create(Render_Engine *re, int w, int h) im = evas_common_image_new(); if (!im) return NULL; - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { _dfb_image_free(im); diff --git a/legacy/evas/src/lib/engines/fb/evas_engine.c b/legacy/evas/src/lib/engines/fb/evas_engine.c index 5531871bef..4433576f26 100644 --- a/legacy/evas/src/lib/engines/fb/evas_engine.c +++ b/legacy/evas/src/lib/engines/fb/evas_engine.c @@ -587,7 +587,7 @@ evas_engine_fb_image_new_from_data(void *data, int w, int h, DATA32 *image_data) re = (Render_Engine *)data; im = evas_common_image_new(); - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { evas_common_image_free(im); diff --git a/legacy/evas/src/lib/engines/gl_common/evas_gl_image.c b/legacy/evas/src/lib/engines/gl_common/evas_gl_image.c index 79723fff3c..ec47d8c47b 100644 --- a/legacy/evas/src/lib/engines/gl_common/evas_gl_image.c +++ b/legacy/evas/src/lib/engines/gl_common/evas_gl_image.c @@ -66,7 +66,7 @@ evas_gl_common_image_new_from_data(Evas_GL_Context *gc, int w, int h, int *data) free(im); return NULL; } - im->im->image = evas_common_image_surface_new(); + im->im->image = evas_common_image_surface_new(im->im); if (!im->im->image) { evas_common_image_free(im->im); diff --git a/legacy/evas/src/lib/engines/gl_x11/evas_engine.c b/legacy/evas/src/lib/engines/gl_x11/evas_engine.c index feb7b7ba2d..55698b1906 100644 --- a/legacy/evas/src/lib/engines/gl_x11/evas_engine.c +++ b/legacy/evas/src/lib/engines/gl_x11/evas_engine.c @@ -986,7 +986,7 @@ evas_engine_gl_x11_font_draw(void *data, void *context, void *surface, void *fon if (!im) { im = evas_common_image_new(); - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); im->image->no_free = 1; } im->image->w = re->win->w; diff --git a/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c index d1e6c2b759..c1eee94148 100644 --- a/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c +++ b/legacy/evas/src/lib/engines/software_qtopia/evas_engine.c @@ -610,7 +610,7 @@ evas_engine_software_qtopia_image_new_from_data(void *data, int w, int h, DATA32 re = (Render_Engine *)data; im = evas_common_image_new(); - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { evas_common_image_free(im); diff --git a/legacy/evas/src/lib/engines/software_x11/evas_engine.c b/legacy/evas/src/lib/engines/software_x11/evas_engine.c index 25c4304f4d..14f204c99d 100644 --- a/legacy/evas/src/lib/engines/software_x11/evas_engine.c +++ b/legacy/evas/src/lib/engines/software_x11/evas_engine.c @@ -666,7 +666,7 @@ evas_engine_software_x11_image_new_from_data(void *data, int w, int h, DATA32 *i re = (Render_Engine *)data; im = evas_common_image_new(); - im->image = evas_common_image_surface_new(); + im->image = evas_common_image_surface_new(im); if (!im->image) { evas_common_image_free(im); diff --git a/legacy/evas/src/lib/include/evas_common.h b/legacy/evas/src/lib/include/evas_common.h index e5e9ff8261..e1d1bfa284 100644 --- a/legacy/evas/src/lib/include/evas_common.h +++ b/legacy/evas/src/lib/include/evas_common.h @@ -188,10 +188,12 @@ typedef void (*Gfx_Func_Convert) (DATA32 *src, DATA8 *dst, int src_jump, int dst typedef enum _RGBA_Image_Flags { - RGBA_IMAGE_NOTHING = (0), - RGBA_IMAGE_HAS_ALPHA = (1 << 0), - RGBA_IMAGE_IS_DIRTY = (1 << 1), - RGBA_IMAGE_INDEXED = (1 << 2) + RGBA_IMAGE_NOTHING = (0), + RGBA_IMAGE_HAS_ALPHA = (1 << 0), + RGBA_IMAGE_IS_DIRTY = (1 << 1), + RGBA_IMAGE_INDEXED = (1 << 2), + RGBA_IMAGE_ALPHA_ONLY = (1 << 3), + RGBA_IMAGE_HAVE_SPANS = (1 << 4) } RGBA_Image_Flags; typedef enum _Convert_Pal_Mode @@ -284,9 +286,10 @@ struct _RGBA_Draw_Context struct _RGBA_Surface { - int w, h; - DATA32 *data; - char no_free : 1; + int w, h; + DATA32 *data; + char no_free : 1; + RGBA_Image *im; }; struct _RGBA_Image @@ -758,7 +761,7 @@ void evas_common_scale_rgba_in_to_out_clip_sample (RGBA_Image *src, RGBA_Im void evas_common_image_init (void); void evas_common_image_shutdown (void); -RGBA_Surface *evas_common_image_surface_new (void); +RGBA_Surface *evas_common_image_surface_new (RGBA_Image *im); void evas_common_image_surface_free (RGBA_Surface *is); void evas_common_image_surface_alloc (RGBA_Surface *is); void evas_common_image_surface_dealloc (RGBA_Surface *is);