From 9918763c41070ae06d55eb198031f223ff60f72b Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Fri, 15 Dec 2017 10:23:28 +0100 Subject: Changed a bit how desktop fullscreen is initialized --- src/main.c | 1 - src/sdl/graphics.c | 15 ++++++++++++++- src/sdl/graphics.h | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index 39ce6ae..d772bd0 100644 --- a/src/main.c +++ b/src/main.c @@ -48,7 +48,6 @@ int main(int argc, char **argv) SDL_Delay(5000); exit(EXIT_FAILURE); } - int desktopFS = 0; #if defined(PANDORA) || defined(PYRA) || defined(CHIP) || defined(ODROID) wantFullscreen = 1; #else diff --git a/src/sdl/graphics.c b/src/sdl/graphics.c index 2488fae..a947a3e 100755 --- a/src/sdl/graphics.c +++ b/src/sdl/graphics.c @@ -10,6 +10,7 @@ SDL_Surface* backbuffer = NULL; int wantFullscreen = 0; int screenScale = 2; +int desktopFS = 0; int deltaX = 0; int deltaY = 0; @@ -39,7 +40,19 @@ void PHL_GraphicsInit() uint32_t flags = SDL_HWSURFACE|SDL_DOUBLEBUF; if(wantFullscreen) flags |= SDL_FULLSCREEN; - screen = SDL_SetVideoMode(screenW, screenH, 0, flags); + screen = SDL_SetVideoMode((desktopFS)?0:screenW, (desktopFS)?0:screenH, 0, flags); + if(desktopFS) + { + const SDL_VideoInfo* infos = SDL_GetVideoInfo(); + screenH = infos->current_h; + screenW = infos->current_w; + if(screenW/320 < screenH/240) + screenScale = screenW/320; + else + screenScale = screenH/240; // automatic guess the scale + deltaX = (screenW-320*screenScale)/2; + deltaY = (screenH-240*screenScale)/2; + } drawbuffer = screen; drawscreen = 1; backbuffer = PHL_NewSurface(320*screenScale, 240*screenScale); diff --git a/src/sdl/graphics.h b/src/sdl/graphics.h index d3de8bc..c3fb20c 100644 --- a/src/sdl/graphics.h +++ b/src/sdl/graphics.h @@ -29,6 +29,7 @@ extern PHL_Surface screen; extern int wantFullscreen; extern int screenScale; +extern int desktopFS; extern int deltaX; extern int deltaY; -- cgit v1.2.3