diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2014-09-01 16:36:36 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2014-10-20 12:16:42 +0900 |
commit | c51ea956cd37fd8258490a849389c43a4d01e427 (patch) | |
tree | 853f2959061152fec5da2081d5dd73978b170008 /src/lib | |
parent | 7db93de9b853e1027b747944e41ded3922b62ff6 (diff) |
GLView: Clean up the native surface during deletion
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/elm_glview.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/elm_glview.c b/src/lib/elm_glview.c index 0e10f2511..20216c869 100644 --- a/src/lib/elm_glview.c +++ b/src/lib/elm_glview.c | |||
@@ -239,6 +239,8 @@ _elm_glview_evas_object_smart_add(Eo *obj, Elm_Glview_Data *priv) | |||
239 | EOLIAN static void | 239 | EOLIAN static void |
240 | _elm_glview_evas_object_smart_del(Eo *obj, Elm_Glview_Data *sd) | 240 | _elm_glview_evas_object_smart_del(Eo *obj, Elm_Glview_Data *sd) |
241 | { | 241 | { |
242 | ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); | ||
243 | |||
242 | // Call delete func if it's registered | 244 | // Call delete func if it's registered |
243 | if (sd->del_func) | 245 | if (sd->del_func) |
244 | { | 246 | { |
@@ -248,7 +250,11 @@ _elm_glview_evas_object_smart_del(Eo *obj, Elm_Glview_Data *sd) | |||
248 | 250 | ||
249 | ecore_idle_enterer_del(sd->render_idle_enterer); | 251 | ecore_idle_enterer_del(sd->render_idle_enterer); |
250 | 252 | ||
251 | if (sd->surface) evas_gl_surface_destroy(sd->evasgl, sd->surface); | 253 | if (sd->surface) |
254 | { | ||
255 | evas_object_image_native_surface_set(wd->resize_obj, NULL); | ||
256 | evas_gl_surface_destroy(sd->evasgl, sd->surface); | ||
257 | } | ||
252 | if (sd->context) evas_gl_context_destroy(sd->evasgl, sd->context); | 258 | if (sd->context) evas_gl_context_destroy(sd->evasgl, sd->context); |
253 | if (sd->config) evas_gl_config_free(sd->config); | 259 | if (sd->config) evas_gl_config_free(sd->config); |
254 | if (sd->evasgl) evas_gl_free(sd->evasgl); | 260 | if (sd->evasgl) evas_gl_free(sd->evasgl); |