Skip to content

Commit

Permalink
Fix SDL not resizing window when Android screen resolution changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Gachapen committed Oct 1, 2016
1 parent 0250eb3 commit 555e6c9
Showing 1 changed file with 16 additions and 1 deletion.
17 changes: 16 additions & 1 deletion src/video/android/SDL_androidvideo.c
Expand Up @@ -194,7 +194,6 @@ Android_VideoQuit(_THIS)
Android_QuitTouch();
}

/* This function gets called before VideoInit() */
void
Android_SetScreenResolution(int width, int height, Uint32 format, float rate)
{
Expand All @@ -203,6 +202,22 @@ Android_SetScreenResolution(int width, int height, Uint32 format, float rate)
Android_ScreenFormat = format;
Android_ScreenRate = rate;

/*
Update the resolution of the desktop mode, so that the window
can be properly resized. The screen resolution change can for
example happen when the Activity enters or exists immersive mode,
which can happen after VideoInit().
*/
SDL_VideoDevice* device = SDL_GetVideoDevice();
if (device && device->num_displays > 0)
{
SDL_VideoDisplay* display = &device->displays[0];
display->desktop_mode.format = Android_ScreenFormat;
display->desktop_mode.w = Android_ScreenWidth;
display->desktop_mode.h = Android_ScreenHeight;
display->desktop_mode.refresh_rate = Android_ScreenRate;
}

if (Android_Window) {
SDL_SendWindowEvent(Android_Window, SDL_WINDOWEVENT_RESIZED, width, height);
}
Expand Down

0 comments on commit 555e6c9

Please sign in to comment.