} commit_data;
};
-static void
+static Eina_Bool
_e_video_hwc_windows_commit_data_set(E_Video_Hwc_Windows *evhw, E_Comp_Wl_Video_Buf *vbuf)
{
+ if ((evhw->commit_data.info.src_config.size.h == vbuf->width_from_pitch) &&
+ (evhw->commit_data.info.src_config.size.v == vbuf->height_from_size) &&
+ (evhw->commit_data.info.src_config.pos.x == vbuf->content_r.x) &&
+ (evhw->commit_data.info.src_config.pos.y == vbuf->content_r.y) &&
+ (evhw->commit_data.info.src_config.pos.w == vbuf->content_r.w) &&
+ (evhw->commit_data.info.src_config.pos.h == vbuf->content_r.h) &&
+ (evhw->commit_data.info.src_config.format == vbuf->tbmfmt) &&
+ (evhw->commit_data.info.dst_pos.x == evhw->base.geo.tdm.output_r.x) &&
+ (evhw->commit_data.info.dst_pos.y == evhw->base.geo.tdm.output_r.y) &&
+ (evhw->commit_data.info.dst_pos.w == evhw->base.geo.tdm.output_r.w) &&
+ (evhw->commit_data.info.dst_pos.h == evhw->base.geo.tdm.output_r.h) &&
+ (evhw->commit_data.info.transform == vbuf->content_t) &&
+ (evhw->commit_data.buffer == vbuf->tbm_surface))
+ {
+ WRN("commit data ins't changed");
+ return EINA_FALSE;
+ }
+
CLEAR(evhw->commit_data.info);
/* Set src_config */
evhw->commit_data.info.dst_pos.x, evhw->commit_data.info.dst_pos.y,
evhw->commit_data.info.dst_pos.w, evhw->commit_data.info.dst_pos.h,
evhw->commit_data.info.transform);
+
+ return EINA_TRUE;
}
static void
_e_video_hwc_windows_iface_buffer_commit(E_Video_Hwc *evh, E_Comp_Wl_Video_Buf *vbuf)
{
E_Video_Hwc_Windows *evhw;
+ Eina_Bool ret;
evhw = (E_Video_Hwc_Windows *)evh;
if (!vbuf) return EINA_TRUE;
- _e_video_hwc_windows_commit_data_set(evhw, vbuf);
+ ret = _e_video_hwc_windows_commit_data_set(evhw, vbuf);
// TODO:: this logic move to the hwc windows after hwc commit
#if 1
e_video_hwc_client_mask_update((E_Video_Hwc *)evhw);
#endif
- return EINA_TRUE;
+ return ret;
}
static Eina_Bool