[SDL_Tizen] Modify function related to SDL_Window 17/137017/2
authorhuiyu.eun <huiyu.eun@samsung.com>
Tue, 4 Jul 2017 06:09:58 +0000 (15:09 +0900)
committerhuiyu.eun <huiyu.eun@samsung.com>
Tue, 4 Jul 2017 07:08:43 +0000 (16:08 +0900)
- Add SDL_SetWindowFullScreen()->Tizen_SetWindowFullScreen()
- Modify Tizen_SetWindowSize()

Change-Id: I29f6ecbd364ea981b1bfce6fc4083df3e44bb8ca
Signed-off-by: huiyu.eun <huiyu.eun@samsung.com>
src/video/tizen/SDL_tizenvideo.c
src/video/tizen/SDL_tizenwindow.c
src/video/tizen/SDL_tizenwindow.h

index 82dcc1e..9983233 100755 (executable)
@@ -110,7 +110,7 @@ Tizen_CreateDevice(int devindex)
     device->GL_UnloadLibrary = Tizen_GLES_UnloadLibrary;
     device->GL_GetProcAddress = Tizen_GLES_GetProcAddress;
     device->GL_DeleteContext = Tizen_GLES_DeleteContext;
-//    device->SetWindowBordered = Tizen_SetWindowBordered;
+    device->SetWindowBordered = Tizen_SetWindowBordered;
 #endif
     device->CreateWindow = Tizen_CreateWindow;
     device->SetWindowTitle = Tizen_SetWindowTitle;
index 7811e2f..adeb5d9 100755 (executable)
@@ -263,7 +263,7 @@ Tizen_ShowWindow(_THIS, SDL_Window *window)
 {
     SDL_VideoData* videoData = SDL_GetVideoDevice()->driverdata;
 
-    if(!(window->flags & SDL_WINDOW_FULLSCREEN) && !(window->flags & SDL_WINDOW_BORDERLESS) && !videoData->indicator_on)
+    if(!(window->flags & SDL_WINDOW_BORDERLESS) && !videoData->indicator_on)
     {
         Tizen_ExecuteIndicatorProcess();
     }
@@ -290,7 +290,21 @@ void
 Tizen_SetWindowFullscreen(_THIS, SDL_Window *window,
                           SDL_VideoDisplay *_display, SDL_bool fullscreen)
 {
-    /*DO NOTHING*/
+    SDL_WindowData *wind = window->driverdata;
+    if(!wind) return;
+
+    int screen_w, screen_h;
+    int rotation = (wind->output_rotation + wind->rotation) % 360;
+    if(rotation == 90 || rotation == 270)
+        ecore_wl_screen_size_get(&screen_h, &screen_w);
+    else
+        ecore_wl_screen_size_get(&screen_w, &screen_h);
+
+    _tizen_set_window_size(window, screen_w, screen_h);
+    Tizen_SetWindowSize(_this, window);
+
+    window->fullscreen_mode.w = screen_w;
+    window->fullscreen_mode.h = screen_h;
 }
 
 void
@@ -367,6 +381,12 @@ _tizen_set_window_size(SDL_Window * window, int w, int h)
         h = window->max_h;
     }
 
+    if(window->flags & SDL_WINDOW_FULLSCREEN)
+    {
+        window->fullscreen_mode.w = w;
+        window->fullscreen_mode.h = h;
+    }
+
     window->windowed.w = w;
     window->windowed.h = h;
 
@@ -720,20 +740,24 @@ Tizen_SetWindowSize(_THIS, SDL_Window *window)
     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) {
-        if(wind->output_rotation==90 || wind->output_rotation==270)
+// TODO : consider to rotation status.
+#if SDL_VIDEO_OPENGL_EGL
+    if (window->flags & SDL_WINDOW_OPENGL)
+    {
+        int rotation = (wind->output_rotation + wind->rotation) % 360;
+        if(rotation == 90 || rotation == 270)
+        {
+            ecore_wl_window_update_size(wind->window, window->h, window->w);
             wl_egl_window_resize(wind->egl_window, window->h, window->w, 0, 0);
+        }
         else
+        {
+            ecore_wl_window_update_size(wind->window, window->w, window->h);
             wl_egl_window_resize(wind->egl_window, window->w, window->h, 0, 0);
+        }
     }
-    #endif
+    SDL_SendWindowEvent(window, SDL_WINDOWEVENT_SIZE_CHANGED, window->w, window->h);
+#endif
 
 }
 
index cb0da77..c54b9a3 100755 (executable)
@@ -91,7 +91,7 @@ extern void Tizen_rotate_update(SDL_Window *window);
 
 extern int _tizen_init_ecore_ipc();
 extern void _tizen_ecore_ipc_client_send(int major, int minor, int ref, int ref_to);
-
+extern void _tizen_set_window_size(SDL_Window * window, int w, int h);
 enum
 {
     OP_INDICATOR_SHOW=1,