* Fix EGL/GLES bug when setting up rgba dest alpha windows where they
cease to be rendered to. use a shared context and it works.
+
+2012-09-07 Carsten Haitzler (The Rasterman)
+
+ * Fix image alpha set bug if the image data has not been loaded
+ yet from disk. Fixes across software and gl engines needed.
* Fix segmentation fault with the esvg loader.
* Fix EGL/GLES dest alpha rendering bug (no rendering).
+ * Fix evas_object_image_alpha_set when image data not loaded yet.
Evas 1.7.0
{
Evas_GL_Image *im_new;
+ if (!im->im->image.data)
+ evas_cache_image_load_data(&im->im->cache_entry);
im_new = evas_gl_common_image_new_from_copied_data
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
im->im->image.data,
if (im->alpha == alpha) return im;
im->alpha = alpha;
if (!im->im) return im;
+ evas_cache_image_load_data(&im->im->cache_entry);
im->im->cache_entry.flags.alpha = alpha ? 1 : 0;
if (im->tex)
{
im->tex = NULL;
}
if (!im->tex)
- im->tex = evas_gl_common_texture_new(im->gc, im->im);
+ {
+ if (im->tex_only)
+ im->tex = evas_gl_common_texture_native_new(im->gc, im->w, im->h,
+ im->alpha, im);
+ else
+ {
+ im->tex = evas_gl_common_texture_new(im->gc, im->im);
+ evas_gl_common_texture_update(im->tex, im->im);
+ }
+ }
return im;
}
{
Evas_GL_Image *im_new;
+ if (!im->im->image.data)
+ evas_cache_image_load_data(&im->im->cache_entry);
im_new = evas_gl_common_image_new_from_copied_data(im->gc, im->im->cache_entry.w, im->im->cache_entry.h, im->im->image.data,
eng_image_alpha_get(data, image),
eng_image_colorspace_get(data, image));
{
Evas_GL_Image *im_new;
+ if (!im->im->image.data)
+ evas_cache_image_load_data(&im->im->cache_entry);
im_new = evas_gl_common_image_new_from_copied_data
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
im->im->image.data,
im->cache_entry.flags.alpha = 0;
return im;
}
+ if (!im->image.data) evas_cache_image_load_data(&im->cache_entry);
im = (RGBA_Image *) evas_cache_image_alone(&im->cache_entry);
im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
evas_common_image_colorspace_dirty(im);
{
Evas_GL_Image *im_new;
+ if (!im->im->image.data)
+ evas_cache_image_load_data(&im->im->cache_entry);
im_new = evas_gl_common_image_new_from_copied_data
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
im->im->image.data,