return ret;
}
+/**
+ * Merge transform value of E_Comp_Wl_Buffer_Viewport with given transform.
+ * @in vp A 'E_Comp_Wl_Buffer_Viewport' instance to be merged
+ * transform A transform operand to be merged
+ * @return merged result transform
+ */
+static uint
+_e_video_hwc_transform_merge_with_buffer_viewport(E_Comp_Wl_Buffer_Viewport *vp, uint transform)
+{
+ int vp_transform, flip;
+
+ vp_transform = vp->buffer.transform & 0x3;
+ flip = vp->buffer.transform & 0x4;
+
+ return (flip + (transform + vp_transform) % 4);
+}
+
static Eina_Bool
_e_video_hwc_geometry_map_apply(E_Client *ec, E_Video_Hwc_Geometry *out)
{
return EINA_FALSE;
}
+ /* NOTE Merge transform value from evas_map with E_Comp_Wl_Buffer_Viewport's one.
+ * Since buffer.transform isn't applied using evas_map,
+ * it has to be taken into account here to apply buffer.transform
+ * and rotation of e_client_transform together. */
+ transform =
+ _e_video_hwc_transform_merge_with_buffer_viewport(&ec->comp_data->scaler.buffer_viewport,
+ transform);
+
if ((!memcmp(&out->output_r, &output_r, sizeof(Eina_Rectangle))) &&
(out->transform == transform))
return EINA_FALSE;