X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_window.pas;h=f711ab2149a49a1ca504bb506c1c84c32ae44eef;hb=cd0837a23eed9896737537add1a93d878a227840;hp=cbc10281f3f8df5809a1971fb1999830816223b7;hpb=844441154d1220d6c83f75043300c2851ec87109;p=d2df-sdl.git diff --git a/src/game/g_window.pas b/src/game/g_window.pas index cbc1028..f711ab2 100644 --- a/src/game/g_window.pas +++ b/src/game/g_window.pas @@ -1,3 +1,4 @@ +{$MODE DELPHI} unit g_window; interface @@ -43,8 +44,10 @@ var wLoadingProgress: Boolean = False; wLoadingQuit: Boolean = False; {wWinPause: Byte = 0;} +{$IFNDEF WINDOWS} ticksOverflow: Int64 = -1; lastTicks: Uint32 = 0; // to detect overflow +{$ENDIF} const // TODO: move this to a separate file @@ -78,7 +81,7 @@ begin Result := True; Exit; {$ENDIF} - + Result := False; e_WriteLog('Setting display mode...', MSG_NOTIFY); @@ -86,13 +89,13 @@ begin wFlags := SDL_WINDOW_OPENGL or SDL_WINDOW_RESIZABLE; if gFullscreen then wFlags := wFlags or SDL_WINDOW_FULLSCREEN; if gWinMaximized then wFlags := wFlags or SDL_WINDOW_MAXIMIZED; - + if h_Wnd <> nil then begin SDL_DestroyWindow(h_Wnd); h_Wnd := nil; end; - + if gFullscreen then begin mode.w := gScreenWidth; @@ -114,7 +117,7 @@ begin h_Wnd := SDL_CreateWindow(PChar(wTitle), gWinRealPosX, gWinRealPosY, gScreenWidth, gScreenHeight, wFlags); if h_Wnd = nil then Exit; - + SDL_GL_MakeCurrent(h_Wnd, h_GL); SDL_ShowCursor(SDL_DISABLE); @@ -205,7 +208,7 @@ begin Result := False; wActivate := False; wDeactivate := False; - + case ev.event of SDL_WINDOWEVENT_MOVED: begin @@ -215,7 +218,7 @@ begin gWinRealPosY := ev.data2; end; end; - + SDL_WINDOWEVENT_MINIMIZED: begin if not wMinimized then @@ -231,7 +234,7 @@ begin wDeactivate := True; end; end; - + SDL_WINDOWEVENT_RESIZED: begin gScreenWidth := ev.data1; @@ -244,10 +247,10 @@ begin e_WriteLog('[DEBUG] WinMsgs: Resized to ' + IntToStr(ev.data1) + 'x' + IntToStr(ev.data2), MSG_NOTIFY); end; end; - + SDL_WINDOWEVENT_EXPOSED: SwapBuffers(); - + SDL_WINDOWEVENT_MAXIMIZED: begin if wMinimized then @@ -266,7 +269,7 @@ begin end; end; end; - + SDL_WINDOWEVENT_RESTORED: begin if wMinimized then @@ -375,7 +378,7 @@ begin key := ev.key.keysym.scancode; KeyPress(key); end; - + SDL_TEXTINPUT: begin Utf8ToUnicode(@uc, PChar(ev.text.text), 1);