summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2013-04-29 15:30:37 +0900
committerChunEon Park <hermet@hermet.pe.kr>2013-04-29 15:30:37 +0900
commit9fc2835cf40b2a864cf395bad8e06ec93da8e996 (patch)
treee4cda09162436e3c4f0a1b6d007344374e383400
parenta24854871264f166797486404b0d48afb4be985e (diff)
evas - add evas_object_image_source_clip_set()/get()
-rw-r--r--ChangeLog4
-rw-r--r--NEWS3
-rw-r--r--src/lib/evas/Evas_Eo.h34
-rw-r--r--src/lib/evas/Evas_Legacy.h26
-rw-r--r--src/lib/evas/canvas/evas_object_image.c64
-rw-r--r--src/lib/evas/canvas/evas_render.c20
-rw-r--r--src/lib/evas/include/evas_private.h2
7 files changed, 132 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index f09bb59..57f9c1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,6 @@
12013-04-26 ChunEon Park (Hermet) 12013-04-29 ChunEon Park (Hermet)
2 2
3 * Evas: Fix the proxy object to not be clipped by source clipper. 3 * Evas: Added evas_object_image_source_clip_set()/get().
4 4
52013-04-25 Tom Hacohen 52013-04-25 Tom Hacohen
6 6
diff --git a/NEWS b/NEWS
index 0eb982f..db11d25 100644
--- a/NEWS
+++ b/NEWS
@@ -102,6 +102,7 @@ Additions:
102 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_BACK 102 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_BACK
103 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_SCROLL 103 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_SCROLL
104 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_MOUSE 104 ECORE_X_ATOM_E_ILLUME_ACCESS_ACTION_MOUSE
105 * Add evas_object_image_source_clip_set()/get()
105 106
106Deprecations: 107Deprecations:
107 * ecore_x: 108 * ecore_x:
@@ -256,5 +257,3 @@ Fixes:
256 * Ecore-X: Fix selection parser to not overrun buffer read by using longs on 64bit. 257 * Ecore-X: Fix selection parser to not overrun buffer read by using longs on 64bit.
257 * Evas: Fix recursive proxy image rendering to just render black 258 * Evas: Fix recursive proxy image rendering to just render black
258 * Evas textblock: Fixed line size calculation when using multiple fonts. 259 * Evas textblock: Fixed line size calculation when using multiple fonts.
259 * Evas: Fix the proxy object to not be clipped by source clipper.
260
diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
index 531faad..bacdbfe 100644
--- a/src/lib/evas/Evas_Eo.h
+++ b/src/lib/evas/Evas_Eo.h
@@ -5497,6 +5497,8 @@ enum
5497 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET, 5497 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET,
5498 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET, 5498 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET,
5499 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET, 5499 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET,
5500 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_SET,
5501 EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_GET,
5500 EVAS_OBJ_IMAGE_SUB_ID_LAST 5502 EVAS_OBJ_IMAGE_SUB_ID_LAST
5501}; 5503};
5502 5504
@@ -5590,7 +5592,7 @@ enum
5590 * 5592 *
5591 * @param[in] visible in 5593 * @param[in] visible in
5592 * 5594 *
5593 * @see evas_object_image_source_visible_get 5595 * @see evas_object_image_source_visible_set
5594 */ 5596 */
5595#define evas_obj_image_source_visible_set(visible) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_SET), EO_TYPECHECK(Eina_Bool, visible) 5597#define evas_obj_image_source_visible_set(visible) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_SET), EO_TYPECHECK(Eina_Bool, visible)
5596 5598
@@ -5602,7 +5604,7 @@ enum
5602 * 5604 *
5603 * @param[out] visible out 5605 * @param[out] visible out
5604 * 5606 *
5605 * @see evas_obj_image_source_visible_set 5607 * @see evas_object_image_source_visible_get
5606 */ 5608 */
5607#define evas_obj_image_source_visible_get(visible) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET), EO_TYPECHECK(Eina_Bool *, visible) 5609#define evas_obj_image_source_visible_get(visible) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET), EO_TYPECHECK(Eina_Bool *, visible)
5608 5610
@@ -5614,7 +5616,7 @@ enum
5614 * 5616 *
5615 * @param[in] source in 5617 * @param[in] source in
5616 * 5618 *
5617 * @see evas_object_image_source_events_get 5619 * @see evas_object_image_source_events_set
5618 */ 5620 */
5619#define evas_obj_image_source_events_set(source) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET), EO_TYPECHECK(Eina_Bool, source) 5621#define evas_obj_image_source_events_set(source) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET), EO_TYPECHECK(Eina_Bool, source)
5620 5622
@@ -5626,11 +5628,35 @@ enum
5626 * 5628 *
5627 * @param[out] source out 5629 * @param[out] source out
5628 * 5630 *
5629 * @see evas_obj_image_source_event_set 5631 * @see evas_object_image_source_event_get
5630 */ 5632 */
5631#define evas_obj_image_source_events_get(source) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET), EO_TYPECHECK(Eina_Bool *, source) 5633#define evas_obj_image_source_events_get(source) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET), EO_TYPECHECK(Eina_Bool *, source)
5632 5634
5633/** 5635/**
5636 * @def evas_obj_image_source_clip_set
5637 * @since 1.8
5638 *
5639 * Apply the source object's clip to the proxy
5640 *
5641 * @param[in] clip in
5642 *
5643 * @see evas_object_image_source_clip_set
5644 */
5645#define evas_obj_image_source_clip_set(source_clip) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_SET), EO_TYPECHECK(Eina_Bool, source_clip)
5646
5647/**
5648 * @def evas_obj_image_source_clip_get
5649 * @since 1.8
5650 *
5651 * Get the state of the source clip
5652 *
5653 * @param[out] source clip out
5654 *
5655 * @see evas_object_image_source_clip_get
5656 */
5657#define evas_obj_image_source_clip_get(source_clip) EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_GET), EO_TYPECHECK(Eina_Bool *, source_clip)
5658
5659/**
5634 * @def evas_obj_image_border_set 5660 * @def evas_obj_image_border_set
5635 * @since 1.8 5661 * @since 1.8
5636 * 5662 *
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 5efa2b7..e36e14c 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -4867,6 +4867,32 @@ EAPI void evas_object_image_source_events_set(Evas_Object *obj, Eina_Bool source
4867EAPI Eina_Bool evas_object_image_source_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1); 4867EAPI Eina_Bool evas_object_image_source_events_get(const Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
4868 4868
4869/** 4869/**
4870 * Clip the proxy object with the source object's clipper.
4871 *
4872 * @param obj Proxy (image) object.
4873 * @param source_clip whether @p obj is clipped by the source clipper.
4874 * (@c EINA_TRUE) or not (@c EINA_FALSE)
4875 *
4876 * @see evas_object_clip_set()
4877 * @see evas_object_image_source_set()
4878 * @since 1.8
4879 */
4880EAPI void evas_object_image_source_clip_set(Evas_Object *obj, Eina_Bool source_clip) EINA_ARG_NONNULL(1);
4881
4882/**
4883 * Determine whether an object is clipped by source object's clipper.
4884 *
4885 * @param obj Proxy (image) object.
4886 * @return @c EINA_TRUE if source clip is enabled, @c EINA_FALSE otherwise.
4887 *
4888 * @see evas_object_clip_set()
4889 * @see evas_object_image_source_set()
4890 * @see evas_object_image_source_clip_set()
4891 * @since 1.8
4892 */
4893EAPI Eina_Bool evas_object_image_source_clip_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
4894
4895/**
4870 * Check if an image object can be animated (have multiple frames) 4896 * Check if an image object can be animated (have multiple frames)
4871 * 4897 *
4872 * @param obj Image object 4898 * @param obj Image object
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index db572b4..c566c82 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -122,6 +122,7 @@ struct _Evas_Object_Image
122 Eina_Bool video_visible : 1; 122 Eina_Bool video_visible : 1;
123 Eina_Bool created : 1; 123 Eina_Bool created : 1;
124 Eina_Bool proxyerror : 1; 124 Eina_Bool proxyerror : 1;
125 Eina_Bool proxy_src_clip : 1;
125}; 126};
126 127
127/* private methods for image objects */ 128/* private methods for image objects */
@@ -311,6 +312,7 @@ _constructor(Eo *eo_obj, void *class_data, va_list *list EINA_UNUSED)
311 o->pixels = eina_cow_alloc(evas_object_image_pixels_cow); 312 o->pixels = eina_cow_alloc(evas_object_image_pixels_cow);
312 o->cur = eina_cow_alloc(evas_object_image_state_cow); 313 o->cur = eina_cow_alloc(evas_object_image_state_cow);
313 o->prev = eina_cow_alloc(evas_object_image_state_cow); 314 o->prev = eina_cow_alloc(evas_object_image_state_cow);
315 o->proxy_src_clip = EINA_TRUE;
314 316
315 cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output, 317 cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output,
316 o->engine_data); 318 o->engine_data);
@@ -735,6 +737,54 @@ evas_object_image_source_unset(Evas_Object *eo_obj)
735} 737}
736 738
737EAPI void 739EAPI void
740evas_object_image_source_clip_set(Evas_Object *eo_obj, Eina_Bool source_clip)
741{
742 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
743 return;
744 MAGIC_CHECK_END();
745
746 eo_do(eo_obj, evas_obj_image_source_clip_set(source_clip));
747}
748
749static void
750_image_source_clip_set(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
751{
752 Evas_Object_Image *o = _pd;
753 Eina_Bool source_clip = va_arg(*list, int);
754 Evas_Object_Protected_Data *src_obj;
755
756 source_clip = !!source_clip;
757 if (o->proxy_src_clip == source_clip) return;
758 o->proxy_src_clip = source_clip;
759
760 if (!o->cur->source) return;
761
762 src_obj = eo_data_get(o->cur->source, EVAS_OBJ_CLASS);
763 evas_object_change(o->cur->source, src_obj);
764}
765
766EAPI Eina_Bool
767evas_object_image_source_clip_get(const Evas_Object *eo_obj)
768{
769 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
770 return EINA_FALSE;
771 MAGIC_CHECK_END();
772
773 Eina_Bool source_clip;
774 eo_do((Eo*)eo_obj, evas_obj_image_source_clip_get(&source_clip));
775
776 return source_clip;
777}
778
779static void
780_image_source_clip_get(Eo *eo_obj EINA_UNUSED, void *_pd, va_list *list)
781{
782 Evas_Object_Image *o = _pd;
783 Eina_Bool *ret = va_arg(*list, Eina_Bool *);
784 *ret = o->proxy_src_clip;
785}
786
787EAPI void
738evas_object_image_source_events_set(Evas_Object *eo_obj, Eina_Bool source_events) 788evas_object_image_source_events_set(Evas_Object *eo_obj, Eina_Bool source_events)
739{ 789{
740 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); 790 MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ);
@@ -3204,7 +3254,7 @@ _proxy_subrender_recurse(Evas_Object *eo_obj, Evas_Object *clip, void *output, v
3204 * Used to force a draw if necessary, else just makes sures it's available. 3254 * Used to force a draw if necessary, else just makes sures it's available.
3205 */ 3255 */
3206static void 3256static void
3207_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Eina_Bool do_async) 3257_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_proxy, Eina_Bool do_async)
3208{ 3258{
3209 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS); 3259 Evas_Public_Data *e = eo_data_get(eo_e, EVAS_CLASS);
3210 Evas_Object_Protected_Data *source; 3260 Evas_Object_Protected_Data *source;
@@ -3254,7 +3304,7 @@ _proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Eina_Bool do_async)
3254 evas_render_mapped(e, eo_source, source, ctx, proxy_write->surface, 3304 evas_render_mapped(e, eo_source, source, ctx, proxy_write->surface,
3255 -source->cur->geometry.x, 3305 -source->cur->geometry.x,
3256 -source->cur->geometry.y, 3306 -source->cur->geometry.y,
3257 1, 0, 0, e->output.w, e->output.h, EINA_TRUE 3307 1, 0, 0, e->output.w, e->output.h, eo_proxy
3258#ifdef REND_DBG 3308#ifdef REND_DBG
3259 , 1 3309 , 1
3260#endif 3310#endif
@@ -3689,7 +3739,8 @@ evas_object_image_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, v
3689 else 3739 else
3690 { 3740 {
3691 o->proxyrendering = EINA_TRUE; 3741 o->proxyrendering = EINA_TRUE;
3692 _proxy_subrender(obj->layer->evas->evas, o->cur->source, EINA_FALSE); 3742 _proxy_subrender(obj->layer->evas->evas, o->cur->source, eo_obj,
3743 EINA_FALSE);
3693 pixels = source->proxy->surface; 3744 pixels = source->proxy->surface;
3694 imagew = source->proxy->w; 3745 imagew = source->proxy->w;
3695 imageh = source->proxy->h; 3746 imageh = source->proxy->h;
@@ -4568,7 +4619,8 @@ evas_object_image_is_inside(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj
4568 else 4619 else
4569 { 4620 {
4570 o->proxyrendering = EINA_TRUE; 4621 o->proxyrendering = EINA_TRUE;
4571 _proxy_subrender(obj->layer->evas->evas, o->cur->source, EINA_FALSE); 4622 _proxy_subrender(obj->layer->evas->evas, o->cur->source, eo_obj,
4623 EINA_FALSE);
4572 pixels = source->proxy->surface; 4624 pixels = source->proxy->surface;
4573 imagew = source->proxy->w; 4625 imagew = source->proxy->w;
4574 imageh = source->proxy->h; 4626 imageh = source->proxy->h;
@@ -5155,6 +5207,8 @@ _class_constructor(Eo_Class *klass)
5155 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET), _image_source_visible_get), 5207 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET), _image_source_visible_get),
5156 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET), _image_source_events_set), 5208 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET), _image_source_events_set),
5157 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET), _image_source_events_get), 5209 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET), _image_source_events_get),
5210 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_SET), _image_source_clip_set),
5211 EO_OP_FUNC(EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_GET), _image_source_clip_get),
5158 EO_OP_FUNC_SENTINEL 5212 EO_OP_FUNC_SENTINEL
5159 }; 5213 };
5160 5214
@@ -5231,6 +5285,8 @@ static const Eo_Op_Description op_desc[] = {
5231 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET, "Get the source object visibility of a given image object being used as a proxy."), 5285 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_VISIBLE_GET, "Get the source object visibility of a given image object being used as a proxy."),
5232 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET, "Set the events to be repeated to the source object."), 5286 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_SET, "Set the events to be repeated to the source object."),
5233 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET, "Get the state of the source events."), 5287 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_EVENTS_GET, "Get the state of the source events."),
5288 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_SET, "Apply the source object's clip to the proxy"),
5289 EO_OP_DESCRIPTION(EVAS_OBJ_IMAGE_SUB_ID_SOURCE_CLIP_GET, "Get the state of the source clip"),
5234 EO_OP_DESCRIPTION_SENTINEL 5290 EO_OP_DESCRIPTION_SENTINEL
5235}; 5291};
5236 5292
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 368a88c..c6404d7 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -950,7 +950,7 @@ Eina_Bool
950evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj, 950evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
951 Evas_Object_Protected_Data *obj, void *context, 951 Evas_Object_Protected_Data *obj, void *context,
952 void *surface, int off_x, int off_y, int mapped, int ecx, 952 void *surface, int off_x, int off_y, int mapped, int ecx,
953 int ecy, int ecw, int ech, Eina_Bool proxy_render 953 int ecy, int ecw, int ech, Evas_Object *proxy_obj
954#ifdef REND_DBG 954#ifdef REND_DBG
955 , int level 955 , int level
956#endif 956#endif
@@ -959,10 +959,14 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
959 void *ctx; 959 void *ctx;
960 Evas_Object_Protected_Data *obj2; 960 Evas_Object_Protected_Data *obj2;
961 Eina_Bool clean_them = EINA_FALSE; 961 Eina_Bool clean_them = EINA_FALSE;
962 Eina_Bool proxy_src_clip = EINA_FALSE;
962 963
963 if ((!proxy_render) && (evas_object_is_source_invisible(eo_obj, obj))) 964 if ((!proxy_obj) && (evas_object_is_source_invisible(eo_obj, obj)))
964 return clean_them; 965 return clean_them;
965 966
967 if (proxy_obj)
968 eo_do(proxy_obj, evas_obj_image_source_clip_get(&proxy_src_clip));
969
966 evas_object_clip_recalc(obj); 970 evas_object_clip_recalc(obj);
967 971
968 RDI(level); 972 RDI(level);
@@ -970,7 +974,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
970 974
971 if (mapped) 975 if (mapped)
972 { 976 {
973 if (!proxy_render) 977 if (!proxy_obj || proxy_src_clip)
974 { 978 {
975 if ((!evas_object_is_visible(eo_obj, obj)) || (obj->clip.clipees) 979 if ((!evas_object_is_visible(eo_obj, obj)) || (obj->clip.clipees)
976 || (obj->cur->have_clipees)) 980 || (obj->cur->have_clipees))
@@ -1134,7 +1138,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
1134 obj->map->surface, 1138 obj->map->surface,
1135 off_x2, off_y2, 1, 1139 off_x2, off_y2, 1,
1136 ecx, ecy, ecw, ech, 1140 ecx, ecy, ecw, ech,
1137 proxy_render 1141 proxy_obj
1138#ifdef REND_DBG 1142#ifdef REND_DBG
1139 , level + 1 1143 , level + 1
1140#endif 1144#endif
@@ -1265,7 +1269,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
1265 obj2, ctx, surface, 1269 obj2, ctx, surface,
1266 off_x, off_y, 1, 1270 off_x, off_y, 1,
1267 ecx, ecy, ecw, ech, 1271 ecx, ecy, ecw, ech,
1268 proxy_render 1272 proxy_obj
1269#ifdef REND_DBG 1273#ifdef REND_DBG
1270 , level + 1 1274 , level + 1
1271#endif 1275#endif
@@ -1277,7 +1281,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
1277 RDI(level); 1281 RDI(level);
1278 1282
1279 //FIXME: Consider to clip by the proxy clipper. 1283 //FIXME: Consider to clip by the proxy clipper.
1280 if (obj->cur->clipper && !proxy_render) 1284 if (obj->cur->clipper && (!proxy_obj || proxy_src_clip))
1281 { 1285 {
1282 RD(" clip: %i %i %ix%i [%i %i %ix%i]\n", 1286 RD(" clip: %i %i %ix%i [%i %i %ix%i]\n",
1283 obj->cur->cache.clip.x + off_x, 1287 obj->cur->cache.clip.x + off_x,
@@ -1322,7 +1326,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
1322 else 1326 else
1323 { 1327 {
1324 //FIXME: Consider to clip by the proxy clipper. 1328 //FIXME: Consider to clip by the proxy clipper.
1325 if (obj->cur->clipper && !proxy_render) 1329 if (obj->cur->clipper && (!proxy_obj || proxy_src_clip))
1326 { 1330 {
1327 int x, y, w, h; 1331 int x, y, w, h;
1328 1332
@@ -1744,7 +1748,7 @@ evas_render_updates_internal(Evas *eo_e,
1744 surface, off_x, 1748 surface, off_x,
1745 off_y, 0, 1749 off_y, 0,
1746 cx, cy, cw, ch, 1750 cx, cy, cw, ch,
1747 EINA_FALSE 1751 NULL
1748#ifdef REND_DBG 1752#ifdef REND_DBG
1749 , 1 1753 , 1
1750#endif 1754#endif
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 9defa26..325c0d6 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1239,7 +1239,7 @@ Eina_Bool evas_render_mapped(Evas_Public_Data *e, Evas_Object *obj,
1239 Evas_Object_Protected_Data *source_pd, 1239 Evas_Object_Protected_Data *source_pd,
1240 void *context, void *surface, int off_x, int off_y, 1240 void *context, void *surface, int off_x, int off_y,
1241 int mapped, int ecx, int ecy, int ecw, int ech, 1241 int mapped, int ecx, int ecy, int ecw, int ech,
1242 Eina_Bool proxy_render 1242 Evas_Object *proxy_obj
1243#ifdef REND_DBG 1243#ifdef REND_DBG
1244 , int level 1244 , int level
1245#endif 1245#endif