SDL_WindowData* wdata = (SDL_WindowData*)window->driverdata;
if (wdata->received_rotation == 1) {
- if(wdata->support_pre_rotation) {
- int screen_w, screen_h;
- if(wdata->rotation==90 || wdata->rotation==270)
- ecore_wl_screen_size_get(&screen_h, &screen_w);
- else
- ecore_wl_screen_size_get(&screen_w, &screen_h);
-
- SDL_SetWindowSize(window, screen_w, screen_h);
- if(window->flags & SDL_WINDOW_FULLSCREEN)
- {
- window->w = screen_w;
- window->h = screen_h;
- }
-
- wl_egl_window_resize(wdata->egl_window, window->w, window->h, 0, 0);
- Tizen_pre_rotation_set(wdata);
- }
- SDL_SendWindowEvent(window, SDL_WINDOWEVENT_SIZE_CHANGED, window->w, window->h);
ecore_wl_window_rotation_change_done_send(wdata->window);
wdata->received_rotation = 0;
}
window->x, window->y, window->w, window->h,
ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
wind->surface = ecore_wl_window_surface_create(wind->window);
+ ecore_wl_window_type_set(wind->window, ECORE_WL_WINDOW_TYPE_UTILITY);
+
wind->rotation = 0;
wind->rotation_supported = 0;
wind->received_rotation = 0;
}
void
-_tizen_egl_window_resize(SDL_Window *window)
+_tizen_window_resize(SDL_Window *window)
{
SDL_WindowData *wind = window->driverdata;
if (!wind->egl_window) {
return;
}
+ if(wind->support_pre_rotation && (wind->rotation==90 || wind->rotation==270))
+ ecore_wl_window_update_size(wind->window, window->h, window->w);
+ else
+ ecore_wl_window_update_size(wind->window, window->w, window->h);
+
// TODO : consider to rotation status.
#if SDL_VIDEO_OPENGL_EGL
if (window->flags & SDL_WINDOW_OPENGL) {
- // TODO : if window size is not FULL, we need the code about Non FullSize Window.
- int aw, ah;
- wl_egl_window_get_attached_size(wind->egl_window, &aw, &ah);
- wl_egl_window_resize(wind->egl_window, aw, ah, 0, 0);
+ if(wind->support_pre_rotation && (wind->rotation==90 || wind->rotation==270))
+ wl_egl_window_resize(wind->egl_window, window->h, window->w, 0, 0);
+ else
+ wl_egl_window_resize(wind->egl_window, window->w, window->h, 0, 0);
}
#endif
-
}
void
if (!wind->window) {
return;
}
- ecore_wl_window_update_size(wind->window, window->w, window->h);
}
void
Tizen_SetWindowSize(_THIS, SDL_Window *window)
{
-// _tizen_setwindowsize(window);
-// _tizen_egl_window_resize(window);
+ _tizen_window_resize(window);
}
void
return;
}
+void
+_tizen_set_window_size(SDL_Window * window, int w, int h)
+{
+ if(!window)
+ {
+ SDL_SetError("Invalid window");
+ return;
+ }
+
+ SDL_VideoDevice *_this = SDL_GetVideoDevice();
+ if (!_this) {
+ SDL_SetError("Video subsystem has not been initialized");
+ return;
+ }
+
+ if (window->magic != &_this->window_magic) {
+ return;
+ }
+
+ if (w <= 0) {
+ SDL_InvalidParamError("w");
+ return;
+ }
+ if (h <= 0) {
+ SDL_InvalidParamError("h");
+ return;
+ }
+
+ /* Make sure we don't exceed any window size limits */
+ if (window->min_w && w < window->min_w)
+ {
+ w = window->min_w;
+ }
+ if (window->max_w && w > window->max_w)
+ {
+ w = window->max_w;
+ }
+ if (window->min_h && h < window->min_h)
+ {
+ h = window->min_h;
+ }
+ if (window->max_h && h > window->max_h)
+ {
+ h = window->max_h;
+ }
+
+ window->windowed.w = w;
+ window->windowed.h = h;
+
+ window->w = w;
+ window->h = h;
+}
+
Eina_Bool
_tizen_cb_event_window_rotate(void *data, int type EINA_UNUSED, void *event)
{
/* set ecore_wayland window rotation */
wind->rotation = ev->angle;
ecore_wl_window_rotation_set(ew, ev->angle);
- // Send Rotation Event
+ if(wind->support_pre_rotation) {
+ int window_w, window_h;
+ if(wind->rotation==90 || wind->rotation==270)
+ ecore_wl_window_geometry_get(wind->window, 0, 0, &window_h, &window_w);
+ else
+ ecore_wl_window_geometry_get(wind->window, 0, 0, &window_w, &window_h);
+
+ _tizen_set_window_size(window, window_w, window_h);
+ Tizen_pre_rotation_set(wind);
+ }
_tizen_send_rotation_event(window, ev->angle);
+ SDL_SendWindowEvent(window, SDL_WINDOWEVENT_SIZE_CHANGED, window->w, window->h);
wind->received_rotation = 1;
}