forked from enlightenment/efl
Evas render: Fix proxy source_clip with source images
In case the source is an Evas_Image, we skip proxy_subrender, and so the clip was not set against the source clip.
This commit is contained in:
parent
7b266b5518
commit
cfedba598c
|
@ -3291,7 +3291,7 @@ _evas_image_render(Eo *eo_obj, Evas_Object_Protected_Data *obj,
|
||||||
int l, int t, int r, int b, Eina_Bool do_async)
|
int l, int t, int r, int b, Eina_Bool do_async)
|
||||||
{
|
{
|
||||||
Evas_Image_Data *o = obj->private_data, *oi = NULL;
|
Evas_Image_Data *o = obj->private_data, *oi = NULL;
|
||||||
int imagew, imageh, uvw, uvh;
|
int imagew, imageh, uvw, uvh, cw, ch;
|
||||||
void *pixels;
|
void *pixels;
|
||||||
|
|
||||||
Evas_Object_Protected_Data *source =
|
Evas_Object_Protected_Data *source =
|
||||||
|
@ -3349,6 +3349,15 @@ _evas_image_render(Eo *eo_obj, Evas_Object_Protected_Data *obj,
|
||||||
imageh = oi->cur->image.h;
|
imageh = oi->cur->image.h;
|
||||||
uvw = source->cur->geometry.w;
|
uvw = source->cur->geometry.w;
|
||||||
uvh = source->cur->geometry.h;
|
uvh = source->cur->geometry.h;
|
||||||
|
/* check source_clip since we skip proxy_subrender here */
|
||||||
|
if (o->proxy_src_clip)
|
||||||
|
{
|
||||||
|
ENFN->context_clip_clip(ENDT, context,
|
||||||
|
source->cur->cache.clip.x + x,
|
||||||
|
source->cur->cache.clip.y + y,
|
||||||
|
source->cur->cache.clip.w,
|
||||||
|
source->cur->cache.clip.h);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -3363,6 +3372,9 @@ _evas_image_render(Eo *eo_obj, Evas_Object_Protected_Data *obj,
|
||||||
o->proxyrendering = EINA_FALSE;
|
o->proxyrendering = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ENFN->context_clip_get(ENDT, context, NULL, NULL, &cw, &ch);
|
||||||
|
if (!cw || !ch) return;
|
||||||
|
|
||||||
if (pixels)
|
if (pixels)
|
||||||
{
|
{
|
||||||
Evas_Coord idw, idh, idx, idy;
|
Evas_Coord idw, idh, idx, idy;
|
||||||
|
|
Loading…
Reference in New Issue