X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fsdl%2Fg_system.pas;h=4a4a3cb34c92799203e3db627d004a33d2d7769a;hb=4171d8dd0b8d733da27c584616e431811bf0fdcf;hp=21501c6705baacbfc11a2711f7789163b9c9556e;hpb=684f59b7bf1a5735fbd5169a0239f22794d94613;p=d2df-sdl.git diff --git a/src/game/sdl/g_system.pas b/src/game/sdl/g_system.pas index 21501c6..4a4a3cb 100644 --- a/src/game/sdl/g_system.pas +++ b/src/game/sdl/g_system.pas @@ -40,8 +40,9 @@ interface implementation uses - SysUtils, SDL, GL, Math, - e_log, e_graphics, e_input, + SysUtils, SDL, Math, + {$INCLUDE ../nogl/noGLuses.inc} + e_log, e_graphics, e_input, e_sound, g_options, g_window, g_console, g_game, g_menu, g_gui, g_main; const @@ -108,6 +109,9 @@ implementation screen := SDL_SetVideoMode(w, h, bpp, flags); if screen <> nil then begin + {$IFDEF USE_NOGL} + nogl_Init; + {$ENDIF} SDL_WM_SetCaption(GameTitle, nil); UpdateSize(w, h); result := True @@ -429,6 +433,7 @@ implementation SDL_JOYAXISMOTION: HandleJoyAxis(ev.jaxis); SDL_JOYHATMOTION: HandleJoyHat(ev.jhat); SDL_VIDEOEXPOSE: sys_Repaint; + SDL_ACTIVEEVENT: e_MuteChannels((ev.active.gain = 0) and gMuteWhenInactive); end end end; @@ -443,7 +448,7 @@ implementation (* --------- Init --------- *) procedure sys_Init; - var flags: Uint32; ok: Boolean; i: Integer; + var flags: Uint32; i: Integer; begin e_WriteLog('Init SDL', TMsgType.Notify); flags := SDL_INIT_VIDEO or SDL_INIT_AUDIO or @@ -451,9 +456,6 @@ implementation (*or SDL_INIT_NOPARACHUTE*); if SDL_Init(flags) <> 0 then raise Exception.Create('SDL: Init failed: ' + SDL_GetError); - ok := InitWindow(gScreenWidth, gScreenHeight, gBPP, gFullScreen); - if not ok then - raise Exception.Create('SDL: Failed to set videomode: ' + SDL_GetError); SDL_EnableUNICODE(1); SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); for i := 0 to e_MaxJoys - 1 do @@ -466,7 +468,13 @@ implementation e_WriteLog('Releasing SDL', TMsgType.Notify); for i := 0 to e_MaxJoys - 1 do RemoveJoystick(i); - SDL_FreeSurface(screen); + if screen <> nil then + begin + {$IFDEF USE_NOGL} + nogl_Quit; + {$ENDIF} + SDL_FreeSurface(screen) + end; SDL_Quit end;