summaryrefslogtreecommitdiff
path: root/src/mm_evas_renderer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm_evas_renderer.c')
-rwxr-xr-xsrc/mm_evas_renderer.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/mm_evas_renderer.c b/src/mm_evas_renderer.c
index 6b1e9e5..3f4621c 100755
--- a/src/mm_evas_renderer.c
+++ b/src/mm_evas_renderer.c
@@ -219,26 +219,26 @@ static void _evas_pipe_cb(void *data, void *buffer, update_info info)
return;
}
- LOGD("evas_info : %p, evas_info->eo : %p", evas_info, evas_info->eo);
+ LOGD("evas_info : %p, type : %d, evas_info->eo : %p", evas_info, info, evas_info->eo);
+
+ if (info != UPDATE_TBM_SURF && info != UPDATE_VISIBILITY) {
+ LOGW("invalid info type : %d", info);
+ g_mutex_unlock(&evas_info->mp_lock);
+ return;
+ }
- /* FIXME: fix visible logic to skip to render buffer instead of calling evas_object_hide/show directly */
if (info == UPDATE_VISIBILITY) {
if (!evas_info->visible) {
+ evas_object_image_native_surface_set(evas_info->eo, NULL);
evas_object_hide(evas_info->eo);
LOGI("object hide..");
+ LOGD("[LEAVE]");
+ g_mutex_unlock(&evas_info->mp_lock);
+ return;
} else {
evas_object_show(evas_info->eo);
LOGI("object show.. %d", evas_info->visible);
}
- LOGD("[LEAVE]");
- g_mutex_unlock(&evas_info->mp_lock);
- return;
- }
-
- if (info != UPDATE_TBM_SURF) {
- LOGW("invalid info type : %d", info);
- g_mutex_unlock(&evas_info->mp_lock);
- return;
}
if ((evas_info->cur_idx == -1) || !evas_info->pkt_info[evas_info->cur_idx].tbm_surf) {
@@ -314,8 +314,12 @@ static void _evas_pipe_cb(void *data, void *buffer, update_info info)
else
g_cnt_out++;
#endif
- evas_object_image_native_surface_set(evas_info->eo, &surf);
- LOGD("native surface set finish");
+ if (evas_info->visible) {
+ evas_object_image_native_surface_set(evas_info->eo, &surf);
+ LOGD("native surface set finish");
+ } else {
+ LOGD("skip... surface set");
+ }
if (result.x || result.y)
LOGD("coordinate x, y (%d, %d) for locating video to center", result.x, result.y);
@@ -746,8 +750,6 @@ static int _mm_evas_renderer_set_info(mm_evas_info *evas_info, Evas_Object *eo)
evas_info->pkt_info[i].tbm_surf = NULL;
evas_info->pkt_info[i].prev = -1;
}
- /* FIXME: forcedly make hide evas object, because default value of visible is false */
- evas_object_hide(evas_info->eo);
evas_info->cur_idx = -1;
evas_info->dst_roi.x = evas_info->dst_roi.y = evas_info->dst_roi.w = evas_info->dst_roi.h = 0;