summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2016-03-10 15:13:20 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2016-03-15 11:11:59 +0900
commitb7e0eec08927de641c177f01ef09a83af55bee4b (patch)
tree61048476d7f8a8197ae41e777ed7d99242ddee49 /src
parent0c95b694742c712ec4c66e566f216f1b6c1b7079 (diff)
Evas.Image: Fix legacy proxy API
Diffstat (limited to 'src')
-rw-r--r--src/lib/evas/canvas/efl_canvas_proxy.c182
-rw-r--r--src/lib/evas/canvas/efl_canvas_proxy.eo2
-rw-r--r--src/lib/evas/canvas/evas_image_private.h6
-rw-r--r--src/lib/evas/canvas/evas_object_image.c147
-rw-r--r--src/lib/evas/canvas/evas_render.c2
-rw-r--r--src/lib/evas/include/evas_private.h1
6 files changed, 191 insertions, 149 deletions
diff --git a/src/lib/evas/canvas/efl_canvas_proxy.c b/src/lib/evas/canvas/efl_canvas_proxy.c
index add2b6a597..af94ec0806 100644
--- a/src/lib/evas/canvas/efl_canvas_proxy.c
+++ b/src/lib/evas/canvas/efl_canvas_proxy.c
@@ -3,12 +3,11 @@
3 3
4#define MY_CLASS EFL_CANVAS_PROXY_CLASS 4#define MY_CLASS EFL_CANVAS_PROXY_CLASS
5 5
6EOLIAN static Eina_Bool 6Eina_Bool
7_efl_canvas_proxy_source_set(Eo *eo_obj, void *pd EINA_UNUSED, Evas_Object *eo_src) 7_evas_image_proxy_source_set(Eo *eo_obj, Evas_Object *eo_src)
8{ 8{
9 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 9 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
10 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS); 10 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
11
12 if (obj->delete_me && eo_src) 11 if (obj->delete_me && eo_src)
13 { 12 {
14 WRN("Setting deleted object %p as image source %p", eo_src, eo_obj); 13 WRN("Setting deleted object %p as image source %p", eo_src, eo_obj);
@@ -57,15 +56,27 @@ _efl_canvas_proxy_source_set(Eo *eo_obj, void *pd EINA_UNUSED, Evas_Object *eo_s
57 return EINA_TRUE; 56 return EINA_TRUE;
58} 57}
59 58
60EOLIAN static Evas_Object * 59EOLIAN static Eina_Bool
61_efl_canvas_proxy_source_get(Eo *eo_obj EINA_UNUSED, void *pd EINA_UNUSED) 60_efl_canvas_proxy_source_set(Eo *eo_obj, void *pd EINA_UNUSED, Evas_Object *eo_src)
61{
62 return _evas_image_proxy_source_set(eo_obj, eo_src);
63}
64
65Evas_Object *
66_evas_image_proxy_source_get(const Eo *eo_obj)
62{ 67{
63 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS); 68 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
64 return o->cur->source; 69 return o->cur->source;
65} 70}
66 71
67EOLIAN static void 72EOLIAN static Evas_Object *
68_efl_canvas_proxy_source_clip_set(Eo *eo_obj EINA_UNUSED, void *pd EINA_UNUSED, Eina_Bool source_clip) 73_efl_canvas_proxy_source_get(Eo *eo_obj, void *pd EINA_UNUSED)
74{
75 return _evas_image_proxy_source_get(eo_obj);
76}
77
78void
79_evas_image_proxy_source_clip_set(Eo *eo_obj, Eina_Bool source_clip)
69{ 80{
70 Evas_Object_Protected_Data *src_obj; 81 Evas_Object_Protected_Data *src_obj;
71 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 82 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
@@ -82,15 +93,27 @@ _efl_canvas_proxy_source_clip_set(Eo *eo_obj EINA_UNUSED, void *pd EINA_UNUSED,
82 evas_object_change(o->cur->source, src_obj); 93 evas_object_change(o->cur->source, src_obj);
83} 94}
84 95
85EOLIAN static Eina_Bool 96EOLIAN static void
86_efl_canvas_proxy_source_clip_get(Eo *eo_obj EINA_UNUSED, void *pd EINA_UNUSED) 97_efl_canvas_proxy_source_clip_set(Eo *eo_obj, void *pd EINA_UNUSED, Eina_Bool source_clip)
98{
99 return _evas_image_proxy_source_clip_set(eo_obj, source_clip);
100}
101
102Eina_Bool
103_evas_image_proxy_source_clip_get(const Eo *eo_obj)
87{ 104{
88 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS); 105 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
89 return o->proxy_src_clip; 106 return o->proxy_src_clip;
90} 107}
91 108
92EOLIAN static void 109EOLIAN static Eina_Bool
93_efl_canvas_proxy_source_events_set(Eo *eo_obj EINA_UNUSED, void *pd EINA_UNUSED, Eina_Bool source_events) 110_efl_canvas_proxy_source_clip_get(Eo *eo_obj, void *pd EINA_UNUSED)
111{
112 return _evas_image_proxy_source_clip_get(eo_obj);
113}
114
115void
116_evas_image_proxy_source_events_set(Eo *eo_obj, Eina_Bool source_events)
94{ 117{
95 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 118 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
96 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS); 119 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
@@ -107,11 +130,144 @@ _efl_canvas_proxy_source_events_set(Eo *eo_obj EINA_UNUSED, void *pd EINA_UNUSED
107 //FIXME: Feed mouse events here. 130 //FIXME: Feed mouse events here.
108} 131}
109 132
110EOLIAN static Eina_Bool 133EOLIAN static void
111_efl_canvas_proxy_source_events_get(Eo *eo_obj, void *pd EINA_UNUSED) 134_efl_canvas_proxy_source_events_set(Eo *eo_obj, void *pd EINA_UNUSED, Eina_Bool repeat)
135{
136 return _evas_image_proxy_source_events_set(eo_obj, repeat);
137}
138
139Eina_Bool
140_evas_image_proxy_source_events_get(const Eo *eo_obj)
112{ 141{
113 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); 142 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS);
114 return obj->proxy->src_events; 143 return obj->proxy->src_events;
115} 144}
116 145
146EOLIAN static Eina_Bool
147_efl_canvas_proxy_source_events_get(Eo *eo_obj, void *pd EINA_UNUSED)
148{
149 return _evas_image_proxy_source_events_get(eo_obj);
150}
151
152Evas_Object *
153_evas_object_image_source_get(Evas_Object *eo_obj)
154{
155 Evas_Image_Data *o = eo_data_scope_get(eo_obj, EVAS_IMAGE_CLASS);
156 return o->cur->source;
157}
158
159void
160_evas_image_proxy_unset(Evas_Object *proxy, Evas_Object_Protected_Data *cur_proxy, Evas_Image_Data *o)
161{
162 Evas_Object_Protected_Data *cur_source;
163
164 if (!o->cur->source) return;
165
166 cur_source = eo_data_scope_get(o->cur->source, EVAS_OBJECT_CLASS);
167
168 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, cur_source->proxy, Evas_Object_Proxy_Data, proxy_source_write)
169 {
170 proxy_source_write->proxies = eina_list_remove(proxy_source_write->proxies,
171 proxy);
172
173 if (eina_list_count(proxy_source_write->proxies) == 0)
174 {
175 if (proxy_source_write->surface)
176 cur_proxy->layer->evas->engine.func->image_free(cur_proxy->layer->evas->engine.data.output,
177 proxy_source_write->surface);
178 proxy_source_write->surface = NULL;
179 proxy_source_write->redraw = EINA_FALSE;
180 }
181
182 if (proxy_source_write->src_invisible)
183 {
184 proxy_source_write->src_invisible = EINA_FALSE;
185 cur_source->changed_src_visible = EINA_TRUE;
186 evas_object_change(o->cur->source, cur_source);
187 evas_object_smart_member_cache_invalidate(o->cur->source, EINA_FALSE,
188 EINA_FALSE, EINA_TRUE);
189 }
190 }
191 EINA_COW_WRITE_END(evas_object_proxy_cow, cur_source->proxy, proxy_source_write);
192
193 if (o->cur->source)
194 {
195 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
196 state_write->source = NULL;
197 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
198 }
199
200 if (o->cur->defmap)
201 {
202 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
203 {
204 evas_map_free(state_write->defmap);
205 state_write->defmap = NULL;
206 }
207 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
208 }
209
210 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, cur_source->proxy, Evas_Object_Proxy_Data, proxy_write)
211 proxy_write->is_proxy = EINA_FALSE;
212 EINA_COW_WRITE_END(evas_object_proxy_cow, cur_proxy->proxy, proxy_write);
213}
214
215void
216_evas_image_proxy_set(Evas_Object *eo_proxy, Evas_Object *eo_src)
217{
218 Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS);
219 Evas_Object_Protected_Data *proxy = eo_data_scope_get(eo_proxy, EVAS_OBJECT_CLASS);
220 Evas_Image_Data *o = eo_data_scope_get(eo_proxy, EVAS_IMAGE_CLASS);
221
222 evas_object_image_file_set(eo_proxy, NULL, NULL);
223
224 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, proxy->proxy, Evas_Object_Proxy_Data, proxy_write)
225 proxy_write->is_proxy = EINA_TRUE;
226 EINA_COW_WRITE_END(evas_object_proxy_cow, proxy->proxy, proxy_write);
227
228 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
229 state_write->source = eo_src;
230 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
231 o->load_error = EVAS_LOAD_ERROR_NONE;
232 o->proxyerror = 0;
233
234 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write)
235 {
236 if (!eina_list_data_find(proxy_src_write->proxies, eo_proxy))
237 proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies,
238 eo_proxy);
239 proxy_src_write->redraw = EINA_TRUE;
240 }
241 EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_src_write);
242}
243
244/* Some moron just set a proxy on a proxy.
245 * Give them some pixels. A random color
246 */
247void
248_evas_image_proxy_error(Evas_Object *eo_proxy, void *context, void *output, void *surface,
249 int x, int y, Eina_Bool do_async)
250{
251 Evas_Image_Data *o = eo_data_scope_get(eo_proxy, EVAS_IMAGE_CLASS);
252 Evas_Object_Protected_Data *proxy;
253 Evas_Func *func;
254
255 if (!o->proxyerror)
256 {
257 ERR("Using recursive proxies! Don't set a proxy's source as another proxy!");
258 o->proxyerror = 1;
259 }
260
261 proxy = eo_data_scope_get(eo_proxy, EVAS_OBJECT_CLASS);
262 func = proxy->layer->evas->engine.func;
263 func->context_color_set(output, context, 0, 0, 0, 255);
264 func->context_multiplier_unset(output, context);
265 func->context_render_op_set(output, context, proxy->cur->render_op);
266 func->rectangle_draw(output, context, surface, proxy->cur->geometry.x + x,
267 proxy->cur->geometry.y + y,
268 proxy->cur->geometry.w,
269 proxy->cur->geometry.h,
270 do_async);
271}
272
117#include "efl_canvas_proxy.eo.c" 273#include "efl_canvas_proxy.eo.c"
diff --git a/src/lib/evas/canvas/efl_canvas_proxy.eo b/src/lib/evas/canvas/efl_canvas_proxy.eo
index 6c061c759f..19b16eeed5 100644
--- a/src/lib/evas/canvas/efl_canvas_proxy.eo
+++ b/src/lib/evas/canvas/efl_canvas_proxy.eo
@@ -67,7 +67,7 @@ class Efl.Canvas.Proxy (Evas.Image, Efl.Gfx.Base, Efl.Image, Efl.Gfx.Buffer, Efl
67 set {} 67 set {}
68 get {} 68 get {}
69 values { 69 values {
70 source: bool; [[Whether this object should pass events ($true) or not 70 repeat: bool; [[Whether this object should pass events ($true) or not
71 ($false) to its source.]] 71 ($false) to its source.]]
72 } 72 }
73 } 73 }
diff --git a/src/lib/evas/canvas/evas_image_private.h b/src/lib/evas/canvas/evas_image_private.h
index 28ae8638bc..68fa686c2d 100644
--- a/src/lib/evas/canvas/evas_image_private.h
+++ b/src/lib/evas/canvas/evas_image_private.h
@@ -146,6 +146,12 @@ void _evas_image_proxy_error(Evas_Object *proxy, void *context, void *output, vo
146void _evas_image_3d_render(Evas *eo_e, Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Data *o, Evas_Canvas3D_Scene *scene); 146void _evas_image_3d_render(Evas *eo_e, Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, Evas_Image_Data *o, Evas_Canvas3D_Scene *scene);
147void _evas_image_3d_set(Evas_Object *eo_obj, Evas_Canvas3D_Scene *scene); 147void _evas_image_3d_set(Evas_Object *eo_obj, Evas_Canvas3D_Scene *scene);
148void _evas_image_3d_unset(Evas_Object *eo_obj, Evas_Object_Protected_Data *image, Evas_Image_Data *o); 148void _evas_image_3d_unset(Evas_Object *eo_obj, Evas_Object_Protected_Data *image, Evas_Image_Data *o);
149Eina_Bool _evas_image_proxy_source_set(Eo *eo_obj, Evas_Object *eo_src);
150Evas_Object *_evas_image_proxy_source_get(const Eo *eo_obj);
151void _evas_image_proxy_source_clip_set(Eo *eo_obj, Eina_Bool source_clip);
152Eina_Bool _evas_image_proxy_source_clip_get(const Eo *eo_obj);
153void _evas_image_proxy_source_events_set(Eo *eo_obj, Eina_Bool source_events);
154Eina_Bool _evas_image_proxy_source_events_get(const Eo *eo_obj);
149Eina_Bool _evas_image_native_surface_set(Eo *eo_obj, Evas_Native_Surface *surf); 155Eina_Bool _evas_image_native_surface_set(Eo *eo_obj, Evas_Native_Surface *surf);
150Evas_Native_Surface *_evas_image_native_surface_get(const Evas_Object *eo_obj); 156Evas_Native_Surface *_evas_image_native_surface_get(const Evas_Object *eo_obj);
151 157
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index f9e6bc49a4..33f375c0be 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1944,120 +1944,6 @@ _evas_canvas_image_max_size_get(Eo *eo_e EINA_UNUSED, Evas_Public_Data *e, int *
1944 return EINA_TRUE; 1944 return EINA_TRUE;
1945} 1945}
1946 1946
1947void
1948_evas_image_proxy_unset(Evas_Object *proxy, Evas_Object_Protected_Data *cur_proxy, Evas_Image_Data *o)
1949{
1950 Evas_Object_Protected_Data *cur_source;
1951
1952 if (!o->cur->source) return;
1953
1954 cur_source = eo_data_scope_get(o->cur->source, EVAS_OBJECT_CLASS);
1955
1956 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, cur_source->proxy, Evas_Object_Proxy_Data, proxy_source_write)
1957 {
1958 proxy_source_write->proxies = eina_list_remove(proxy_source_write->proxies,
1959 proxy);
1960
1961 if (eina_list_count(proxy_source_write->proxies) == 0)
1962 {
1963 if (proxy_source_write->surface)
1964 cur_proxy->layer->evas->engine.func->image_free(cur_proxy->layer->evas->engine.data.output,
1965 proxy_source_write->surface);
1966 proxy_source_write->surface = NULL;
1967 proxy_source_write->redraw = EINA_FALSE;
1968 }
1969
1970 if (proxy_source_write->src_invisible)
1971 {
1972 proxy_source_write->src_invisible = EINA_FALSE;
1973 cur_source->changed_src_visible = EINA_TRUE;
1974 evas_object_change(o->cur->source, cur_source);
1975 evas_object_smart_member_cache_invalidate(o->cur->source, EINA_FALSE,
1976 EINA_FALSE, EINA_TRUE);
1977 }
1978 }
1979 EINA_COW_WRITE_END(evas_object_proxy_cow, cur_source->proxy, proxy_source_write);
1980
1981 if (o->cur->source)
1982 {
1983 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
1984 state_write->source = NULL;
1985 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
1986 }
1987
1988 if (o->cur->defmap)
1989 {
1990 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
1991 {
1992 evas_map_free(state_write->defmap);
1993 state_write->defmap = NULL;
1994 }
1995 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
1996 }
1997
1998 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, cur_source->proxy, Evas_Object_Proxy_Data, proxy_write)
1999 proxy_write->is_proxy = EINA_FALSE;
2000 EINA_COW_WRITE_END(evas_object_proxy_cow, cur_proxy->proxy, proxy_write);
2001}
2002
2003void
2004_evas_image_proxy_set(Evas_Object *eo_proxy, Evas_Object *eo_src)
2005{
2006 Evas_Object_Protected_Data *src = eo_data_scope_get(eo_src, EVAS_OBJECT_CLASS);
2007 Evas_Object_Protected_Data *proxy = eo_data_scope_get(eo_proxy, EVAS_OBJECT_CLASS);
2008 Evas_Image_Data *o = eo_data_scope_get(eo_proxy, MY_CLASS);
2009
2010 evas_object_image_file_set(eo_proxy, NULL, NULL);
2011
2012 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, proxy->proxy, Evas_Object_Proxy_Data, proxy_write)
2013 proxy_write->is_proxy = EINA_TRUE;
2014 EINA_COW_WRITE_END(evas_object_proxy_cow, proxy->proxy, proxy_write);
2015
2016 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
2017 state_write->source = eo_src;
2018 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
2019 o->load_error = EVAS_LOAD_ERROR_NONE;
2020 o->proxyerror = 0;
2021
2022 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write)
2023 {
2024 if (!eina_list_data_find(proxy_src_write->proxies, eo_proxy))
2025 proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies,
2026 eo_proxy);
2027 proxy_src_write->redraw = EINA_TRUE;
2028 }
2029 EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_src_write);
2030}
2031
2032/* Some moron just set a proxy on a proxy.
2033 * Give them some pixels. A random color
2034 */
2035void
2036_evas_image_proxy_error(Evas_Object *eo_proxy, void *context, void *output, void *surface,
2037 int x, int y, Eina_Bool do_async)
2038{
2039 Evas_Image_Data *o = eo_data_scope_get(eo_proxy, MY_CLASS);
2040 Evas_Object_Protected_Data *proxy;
2041 Evas_Func *func;
2042
2043 if (!o->proxyerror)
2044 {
2045 ERR("Using recursive proxies! Don't set a proxy's source as another proxy!");
2046 o->proxyerror = 1;
2047 }
2048
2049 proxy = eo_data_scope_get(eo_proxy, EVAS_OBJECT_CLASS);
2050 func = proxy->layer->evas->engine.func;
2051 func->context_color_set(output, context, 0, 0, 0, 255);
2052 func->context_multiplier_unset(output, context);
2053 func->context_render_op_set(output, context, proxy->cur->render_op);
2054 func->rectangle_draw(output, context, surface, proxy->cur->geometry.x + x,
2055 proxy->cur->geometry.y + y,
2056 proxy->cur->geometry.w,
2057 proxy->cur->geometry.h,
2058 do_async);
2059}
2060
2061static void 1947static void
2062evas_object_image_unload(Evas_Object *eo_obj, Eina_Bool dirty) 1948evas_object_image_unload(Evas_Object *eo_obj, Eina_Bool dirty)
2063{ 1949{
@@ -4021,13 +3907,6 @@ evas_object_image_filled_resize_listener(void *data EINA_UNUSED, Evas *e EINA_UN
4021 evas_object_image_fill_set(obj, 0, 0, w, h); 3907 evas_object_image_fill_set(obj, 0, 0, w, h);
4022} 3908}
4023 3909
4024Evas_Object *
4025_evas_object_image_source_get(Evas_Object *eo_obj)
4026{
4027 Evas_Image_Data *o = eo_data_scope_get(eo_obj, MY_CLASS);
4028 return o->cur->source;
4029}
4030
4031Eina_Bool 3910Eina_Bool
4032_evas_object_image_preloading_get(const Evas_Object *eo_obj) 3911_evas_object_image_preloading_get(const Evas_Object *eo_obj)
4033{ 3912{
@@ -4789,42 +4668,49 @@ EAPI Eina_Bool
4789evas_object_image_source_set(Evas_Object *eo, Evas_Object *src) 4668evas_object_image_source_set(Evas_Object *eo, Evas_Object *src)
4790{ 4669{
4791 EVAS_OBJECT_LEGACY_API(eo, EINA_FALSE); 4670 EVAS_OBJECT_LEGACY_API(eo, EINA_FALSE);
4792 return efl_canvas_proxy_source_set(eo, src); 4671 return _evas_image_proxy_source_set(eo, src);
4793} 4672}
4794 4673
4795EAPI Evas_Object * 4674EAPI Evas_Object *
4796evas_object_image_source_get(const Evas_Object *eo) 4675evas_object_image_source_get(const Evas_Object *eo)
4797{ 4676{
4798 EVAS_OBJECT_LEGACY_API(eo, NULL); 4677 EVAS_OBJECT_LEGACY_API(eo, NULL);
4799 return efl_canvas_proxy_source_get(eo); 4678 return _evas_image_proxy_source_get(eo);
4679}
4680
4681EAPI Eina_Bool
4682evas_object_image_source_unset(Evas_Object *eo_obj)
4683{
4684 EVAS_OBJECT_LEGACY_API(eo_obj, EINA_FALSE);
4685 return _evas_image_proxy_source_set(eo_obj, NULL);
4800} 4686}
4801 4687
4802EAPI void 4688EAPI void
4803evas_object_image_source_clip_set(Evas_Object *eo, Eina_Bool source_clip) 4689evas_object_image_source_clip_set(Evas_Object *eo, Eina_Bool source_clip)
4804{ 4690{
4805 EVAS_OBJECT_LEGACY_API(eo); 4691 EVAS_OBJECT_LEGACY_API(eo);
4806 efl_canvas_proxy_source_clip_set(eo, source_clip); 4692 _evas_image_proxy_source_clip_set(eo, source_clip);
4807} 4693}
4808 4694
4809EAPI Eina_Bool 4695EAPI Eina_Bool
4810evas_object_image_source_clip_get(const Evas_Object *eo) 4696evas_object_image_source_clip_get(const Evas_Object *eo)
4811{ 4697{
4812 EVAS_OBJECT_LEGACY_API(eo, EINA_FALSE); 4698 EVAS_OBJECT_LEGACY_API(eo, EINA_FALSE);
4813 return efl_canvas_proxy_source_clip_get(eo); 4699 return _evas_image_proxy_source_clip_get(eo);
4814} 4700}
4815 4701
4816EAPI void 4702EAPI void
4817evas_object_image_source_events_set(Evas_Object *eo, Eina_Bool repeat) 4703evas_object_image_source_events_set(Evas_Object *eo, Eina_Bool repeat)
4818{ 4704{
4819 EVAS_OBJECT_LEGACY_API(eo); 4705 EVAS_OBJECT_LEGACY_API(eo);
4820 efl_canvas_proxy_source_events_set(eo, repeat); 4706 _evas_image_proxy_source_events_set(eo, repeat);
4821} 4707}
4822 4708
4823EAPI Eina_Bool 4709EAPI Eina_Bool
4824evas_object_image_source_events_get(const Evas_Object *eo) 4710evas_object_image_source_events_get(const Evas_Object *eo)
4825{ 4711{
4826 EVAS_OBJECT_LEGACY_API(eo, EINA_FALSE); 4712 EVAS_OBJECT_LEGACY_API(eo, EINA_FALSE);
4827 return efl_canvas_proxy_source_events_get(eo); 4713 return _evas_image_proxy_source_events_get(eo);
4828} 4714}
4829 4715
4830EAPI void 4716EAPI void
@@ -4883,13 +4769,6 @@ evas_object_image_source_visible_get(const Evas_Object *eo)
4883 return visible; 4769 return visible;
4884} 4770}
4885 4771
4886EAPI Eina_Bool
4887evas_object_image_source_unset(Evas_Object *eo_obj)
4888{
4889 EVAS_OBJECT_LEGACY_API(eo_obj, EINA_FALSE);
4890 return efl_canvas_proxy_source_set(eo_obj, NULL);
4891}
4892
4893#include "canvas/evas_image.eo.c" 4772#include "canvas/evas_image.eo.c"
4894 4773
4895/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/ 4774/* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 2eb3bffad6..f3678e84f2 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1872,7 +1872,7 @@ evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_
1872 ENFN->context_free(ENDT, ctx); 1872 ENFN->context_free(ENDT, ctx);
1873 1873
1874 if (eo_isa(eo_proxy, EVAS_IMAGE_CLASS)) 1874 if (eo_isa(eo_proxy, EVAS_IMAGE_CLASS))
1875 source_clip = efl_canvas_proxy_source_clip_get(eo_proxy); 1875 source_clip = _evas_image_proxy_source_clip_get(eo_proxy);
1876 1876
1877 Evas_Proxy_Render_Data proxy_render_data = { 1877 Evas_Proxy_Render_Data proxy_render_data = {
1878 .eo_proxy = eo_proxy, 1878 .eo_proxy = eo_proxy,
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 9683e5c576..525ff1da9e 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1927,6 +1927,7 @@ void _evas_device_unref(Evas_Device *dev);
1927Eina_Bool evas_vg_loader_svg(Evas_Object *vg, const Eina_File *f, const char *key EINA_UNUSED); 1927Eina_Bool evas_vg_loader_svg(Evas_Object *vg, const Eina_File *f, const char *key EINA_UNUSED);
1928 1928
1929void *_evas_object_image_surface_get(Evas_Object *eo, Evas_Object_Protected_Data *obj); 1929void *_evas_object_image_surface_get(Evas_Object *eo, Evas_Object_Protected_Data *obj);
1930Eina_Bool _evas_image_proxy_source_clip_get(const Eo *eo_obj);
1930 1931
1931extern Eina_Cow *evas_object_proxy_cow; 1932extern Eina_Cow *evas_object_proxy_cow;
1932extern Eina_Cow *evas_object_map_cow; 1933extern Eina_Cow *evas_object_map_cow;