parent
f4cc630f3a
commit
ee49da7665
|
@ -1029,3 +1029,8 @@
|
||||||
|
|
||||||
* Fix EGL/GLES bug when setting up rgba dest alpha windows where they
|
* 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.
|
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.
|
||||||
|
|
|
@ -16,6 +16,7 @@ Fixes:
|
||||||
|
|
||||||
* Fix segmentation fault with the esvg loader.
|
* Fix segmentation fault with the esvg loader.
|
||||||
* Fix EGL/GLES dest alpha rendering bug (no rendering).
|
* 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 1.7.0
|
||||||
|
|
||||||
|
|
|
@ -446,6 +446,8 @@ eng_image_alpha_set(void *data, void *image, int has_alpha)
|
||||||
{
|
{
|
||||||
Evas_GL_Image *im_new;
|
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_new = evas_gl_common_image_new_from_copied_data
|
||||||
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
|
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
|
||||||
im->im->image.data,
|
im->im->image.data,
|
||||||
|
|
|
@ -314,6 +314,7 @@ evas_gl_common_image_alpha_set(Evas_GL_Image *im, int alpha)
|
||||||
if (im->alpha == alpha) return im;
|
if (im->alpha == alpha) return im;
|
||||||
im->alpha = alpha;
|
im->alpha = alpha;
|
||||||
if (!im->im) return im;
|
if (!im->im) return im;
|
||||||
|
evas_cache_image_load_data(&im->im->cache_entry);
|
||||||
im->im->cache_entry.flags.alpha = alpha ? 1 : 0;
|
im->im->cache_entry.flags.alpha = alpha ? 1 : 0;
|
||||||
if (im->tex)
|
if (im->tex)
|
||||||
{
|
{
|
||||||
|
@ -321,7 +322,16 @@ evas_gl_common_image_alpha_set(Evas_GL_Image *im, int alpha)
|
||||||
im->tex = NULL;
|
im->tex = NULL;
|
||||||
}
|
}
|
||||||
if (!im->tex)
|
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;
|
return im;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -390,6 +390,8 @@ eng_image_alpha_set(void *data, void *image, int has_alpha)
|
||||||
{
|
{
|
||||||
Evas_GL_Image *im_new;
|
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_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_alpha_get(data, image),
|
||||||
eng_image_colorspace_get(data, image));
|
eng_image_colorspace_get(data, image));
|
||||||
|
|
|
@ -1741,6 +1741,8 @@ eng_image_alpha_set(void *data, void *image, int has_alpha)
|
||||||
{
|
{
|
||||||
Evas_GL_Image *im_new;
|
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_new = evas_gl_common_image_new_from_copied_data
|
||||||
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
|
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
|
||||||
im->im->image.data,
|
im->im->image.data,
|
||||||
|
|
|
@ -569,6 +569,7 @@ eng_image_alpha_set(void *data __UNUSED__, void *image, int has_alpha)
|
||||||
im->cache_entry.flags.alpha = 0;
|
im->cache_entry.flags.alpha = 0;
|
||||||
return im;
|
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 = (RGBA_Image *) evas_cache_image_alone(&im->cache_entry);
|
||||||
im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
|
im->cache_entry.flags.alpha = has_alpha ? 1 : 0;
|
||||||
evas_common_image_colorspace_dirty(im);
|
evas_common_image_colorspace_dirty(im);
|
||||||
|
|
|
@ -1265,6 +1265,8 @@ eng_image_alpha_set(void *data, void *image, int has_alpha)
|
||||||
{
|
{
|
||||||
Evas_GL_Image *im_new;
|
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_new = evas_gl_common_image_new_from_copied_data
|
||||||
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
|
(im->gc, im->im->cache_entry.w, im->im->cache_entry.h,
|
||||||
im->im->image.data,
|
im->im->image.data,
|
||||||
|
|
Loading…
Reference in New Issue