From be3de7a824381249d32e301646503afe4f1aca66 Mon Sep 17 00:00:00 2001 From: tobigun Date: Mon, 15 Sep 2008 09:41:41 +0000 Subject: - It is not possible to handle the window/fullscreen command-line parameters with a single boolean member like TCMDParams.Fullscreen. It was replaced by ScreenMode: TScreenMode with TScreenMode = (scmDefault, scmFullscreen, scmWindowed) - cleanup git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1384 b956fd51-792f-4845-bead-9b4dfca2ff2c --- src/base/UGraphic.pas | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src/base/UGraphic.pas') diff --git a/src/base/UGraphic.pas b/src/base/UGraphic.pas index 35d8fd3b..724e3bed 100644 --- a/src/base/UGraphic.pas +++ b/src/base/UGraphic.pas @@ -549,6 +549,7 @@ var I: integer; W, H: integer; Depth: Integer; + Fullscreen: boolean; begin if (Params.Screens <> -1) then Screens := Params.Screens + 1 @@ -592,16 +593,22 @@ begin Log.LogStatus('SDL_SetVideoMode', 'Initialize3D'); - if (Ini.FullScreen = 0) and (Not Params.FullScreen) then - begin - Log.LogStatus('SDL_SetVideoMode', 'Set Video Mode... Windowed'); - screen := SDL_SetVideoMode(W, H, (Depth+1) * 16, SDL_OPENGL or SDL_RESIZABLE) - end - else + // check whether to start in fullscreen or windowed mode. + // The command-line parameters take precedence over the ini settings. + Fullscreen := ((Ini.FullScreen = 1) or (Params.ScreenMode = scmFullscreen)) and + not (Params.ScreenMode = scmWindowed); + + if Fullscreen then begin Log.LogStatus('SDL_SetVideoMode', 'Set Video Mode... Full Screen'); screen := SDL_SetVideoMode(W, H, (Depth+1) * 16, SDL_OPENGL or SDL_FULLSCREEN ); SDL_ShowCursor(0); + end + else + begin + Log.LogStatus('SDL_SetVideoMode', 'Set Video Mode... Windowed'); + screen := SDL_SetVideoMode(W, H, 0, SDL_OPENGL or SDL_RESIZABLE); + SDL_ShowCursor(1); end; if (screen = nil) then @@ -631,7 +638,7 @@ begin Display.CurrentScreen := @ScreenLoading; - swapbuffers; + SwapBuffers; ScreenLoading.Draw; Display.Draw; -- cgit v1.2.3