X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_window.pas;h=8336ea9b82cb39b11cd0b5b95c8e992e8cc3b0dd;hb=a9ab7bf0c72e15b932b20aad24b10db60138bb21;hp=7f542509b7b9febaf98200f072db129d08de578d;hpb=3a2594735abd86e583b35da46526b9d16a9cd0ed;p=d2df-sdl.git diff --git a/src/game/g_window.pas b/src/game/g_window.pas index 7f54250..8336ea9 100644 --- a/src/game/g_window.pas +++ b/src/game/g_window.pas @@ -51,11 +51,7 @@ implementation uses {$IFDEF WINDOWS}Windows,{$ENDIF} -{$IFDEF USE_NANOGL} - nanoGL, -{$ELSE} - GL, GLExt, -{$ENDIF} +{$INCLUDE ../nogl/noGLuses.inc} {$IFDEF ENABLE_HOLMES} g_holmes, sdlcarcass, fui_ctls, {$ENDIF} @@ -98,9 +94,15 @@ begin if (h_Wnd <> nil) then SDL_DestroyWindow(h_Wnd); if (h_GL <> nil) and (not preserveGL) then begin + {$IFDEF USE_NANOGL} nanoGL_Destroy; -{$ENDIF USE_NANOGL} +{$ENDIF} + +{$IFDEF USE_NOGL} + nogl_Quit; +{$ENDIF} + SDL_GL_DeleteContext(h_GL); end; h_Wnd := nil; @@ -232,7 +234,7 @@ begin end; -procedure ChangeWindowSize (); +procedure ChangeWindowSize (requested: Boolean); begin e_LogWritefln(' ChangeWindowSize: (ws=%dx%d) (ss=%dx%d)', [gWinSizeX, gWinSizeY, gScreenWidth, gScreenHeight]); gWinSizeX := gScreenWidth; @@ -244,7 +246,13 @@ begin {$ENDIF} e_ResizeWindow(gScreenWidth, gScreenHeight); g_Game_SetupScreenSize(); - g_Menu_Reset(); + {$IF DEFINED(ANDROID)} + (* This will fix menu reset on keyboard showing *) + if requested then + g_Menu_Reset; + {$ELSE} + g_Menu_Reset; + {$ENDIF} g_Game_ClearLoading(); {$ENDIF} end; @@ -279,7 +287,7 @@ begin if result then begin g_Window_SetDisplay(preserve); - ChangeWindowSize(); + ChangeWindowSize(true); end; {$ENDIF} end; @@ -306,6 +314,8 @@ begin SDL_WINDOWEVENT_MINIMIZED: begin e_UnpressAllKeys(); + if (gPlayer1 <> nil) then gPlayer1.releaseAllWeaponSwitchKeys(); + if (gPlayer2 <> nil) then gPlayer2.releaseAllWeaponSwitchKeys(); if not wMinimized then begin e_ResizeWindow(0, 0); @@ -335,7 +345,7 @@ begin gScreenWidth := ev.data1; gScreenHeight := ev.data2; end; - ChangeWindowSize(); + ChangeWindowSize(false); SwapBuffers(); if g_debug_WinMsgs then begin @@ -394,6 +404,8 @@ begin begin wDeactivate := true; e_UnpressAllKeys(); + if (gPlayer1 <> nil) then gPlayer1.releaseAllWeaponSwitchKeys(); + if (gPlayer2 <> nil) then gPlayer2.releaseAllWeaponSwitchKeys(); //e_WriteLog('window lost focus!', MSG_NOTIFY); end; end; @@ -564,6 +576,9 @@ begin e_WriteLog('nanoGL initialization error', TMsgType.Fatal); exit; end; +{$ENDIF} +{$IFDEF USE_NOGL} + nogl_Init; {$ENDIF} {$IFDEF ENABLE_HOLMES} if (assigned(oglInitCB)) then oglInitCB(); @@ -819,7 +834,7 @@ end; procedure InitOpenGL (); begin {$IF not DEFINED(HEADLESS)} - {$IFDEF USE_NANOGL} + {$IFDEF USE_GLES1} SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES); @@ -887,8 +902,10 @@ var {$ENDIF} arg: AnsiString; mdfo: TStream; + {$IFDEF ENABLE_HOLMES} itmp: Integer; valres: Word; + {$ENDIF} begin {$IFDEF HEADLESS} e_NoGraphics := true; @@ -1006,15 +1023,16 @@ begin e_LogWritefln('stencil buffer size: %s', [ltmp]); gwin_has_stencil := (ltmp > 0); - if not glHasExtension('GL_ARB_texture_non_power_of_two') then + if glHasExtension('GL_ARB_texture_non_power_of_two') or + glHasExtension('GL_OES_texture_npot') then begin - e_WriteLog('NPOT textures: NO', TMsgType.Warning); - glLegacyNPOT := true; + e_WriteLog('NPOT textures: YES', TMsgType.Notify); + glLegacyNPOT := false; end else begin - e_WriteLog('NPOT textures: YES', TMsgType.Notify); - glLegacyNPOT := false; + e_WriteLog('NPOT textures: NO', TMsgType.Warning); + glLegacyNPOT := true; end; gwin_dump_extensions := false; {$ENDIF}