X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fsdl2%2Fg_system.pas;h=e4bd07046a8576bbecdc7763b13cbe282295e062;hb=14771a7395dda16d199b88c71d975d840c7e5b14;hp=89cebaf02b5e84d292118595e878a4a17e680f52;hpb=e452d337f0620b50d8d978b534437b2732134d8f;p=d2df-sdl.git diff --git a/src/game/sdl2/g_system.pas b/src/game/sdl2/g_system.pas index 89cebaf..e4bd070 100644 --- a/src/game/sdl2/g_system.pas +++ b/src/game/sdl2/g_system.pas @@ -157,17 +157,15 @@ implementation if context <> nil then begin {$IFDEF NOGL_INIT} - nogl_Init; - glRenderToFBO := False; // TODO: check for GL_OES_framebuffer_object + nogl_Init; + if (not nogl_ExtensionSupported('GL_OES_framebuffer_object')) and glRenderToFBO then {$ELSE} - if glRenderToFBO then - if not Load_GL_ARB_framebuffer_object() then - if not Load_GL_EXT_framebuffer_object() then - begin - e_LogWriteln('SDL: no framebuffer support detected'); - glRenderToFBO := False - end; + if (not Load_GL_ARB_framebuffer_object()) and glRenderToFBO then {$ENDIF} + begin + e_LogWriteln('SDL: no framebuffer object support detected'); + glRenderToFBO := False + end; if (fullscreen = false) and (maximized = false) and (wc = false) then begin SDL_GetWindowPosition(window, @x, @y); @@ -193,8 +191,12 @@ implementation end else begin + if fullScreen then flags := SDL_WINDOW_FULLSCREEN else flags := 0; + SDL_SetWindowFullscreen(window, flags); SDL_SetWindowSize(window, w, h); - if wc then + if maximized then SDL_MaximizeWindow(window); + // always reset to center when changing fullscreen->windowed for safety purposes + if wc or (gFullscreen and not fullscreen) or (gWinMaximized and not maximized) then begin x := SDL_WINDOWPOS_CENTERED; y := SDL_WINDOWPOS_CENTERED @@ -210,10 +212,6 @@ implementation SDL_GetWindowPosition(window, @x, @y); wx := x; wy := y end; - if maximized then - SDL_MaximizeWindow(window); - if fullScreen then flags := SDL_WINDOW_FULLSCREEN else flags := 0; - SDL_SetWindowFullscreen(window, flags); gFullScreen := fullscreen; gWinMaximized := maximized; gRC_FullScreen := fullscreen;