#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
Evas_Engine_Info_Wayland_Egl *einfo = (Evas_Engine_Info_Wayland_Egl *)info;
einfo->info.rotation = (ee->rotation + wdata->output_rotation) % 360;
- ecore_wl_window_buffer_transform_set(wdata->win, wdata->output_rotation / 90);
+ /* the buffer transform information will be set in side of gl when rendering finish */
+ einfo->window_rotation = ee->rotation;
WRN("evas engine rotate: %d", einfo->info.rotation);
#endif
}
dy = ah - h;
}
+ /* buffer_transform: screen rotation + window rotation
+ * window_transform: window rotation only
+ * We have to let the display server know the window rotation value
+ * because the display server needs to calcuate the screen rotation value
+ * from buffer_transform value.
+ */
+ wl_egl_window_set_buffer_transform(ob->win, ob->info->info.rotation / 90);
+ wl_egl_window_set_window_transform(ob->win, ob->info->window_rotation / 90);
+
if ((ob->info->info.rotation == 90) || (ob->info->info.rotation == 270))
wl_egl_window_resize(ob->win, h, w, dx, dy);
else