From: Jean-Philippe Andre Date: Tue, 13 Oct 2015 13:13:48 +0000 (+0900) Subject: Evas render: Fix proxy source_clip with source images X-Git-Tag: v1.16.0-beta2~55 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cfedba598c23844946c5af2e038870c7ca6befdc;p=platform%2Fupstream%2Fefl.git 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. --- diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index a16562b..0a525ba 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -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) { Evas_Image_Data *o = obj->private_data, *oi = NULL; - int imagew, imageh, uvw, uvh; + int imagew, imageh, uvw, uvh, cw, ch; void *pixels; 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; uvw = source->cur->geometry.w; 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 { @@ -3363,6 +3372,9 @@ _evas_image_render(Eo *eo_obj, Evas_Object_Protected_Data *obj, o->proxyrendering = EINA_FALSE; } + ENFN->context_clip_get(ENDT, context, NULL, NULL, &cw, &ch); + if (!cw || !ch) return; + if (pixels) { Evas_Coord idw, idh, idx, idy;