diff --git a/src/game/g_window.pas b/src/game/g_window.pas
index cbc10281f3f8df5809a1971fb1999830816223b7..f711ab2149a49a1ca504bb506c1c84c32ae44eef 100644 (file)
--- a/src/game/g_window.pas
+++ b/src/game/g_window.pas
+{$MODE DELPHI}
unit g_window;
interface
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
Result := True;
Exit;
{$ENDIF}
-
+
Result := False;
e_WriteLog('Setting display mode...', MSG_NOTIFY);
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;
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);
Result := False;
wActivate := False;
wDeactivate := False;
-
+
case ev.event of
SDL_WINDOWEVENT_MOVED:
begin
gWinRealPosY := ev.data2;
end;
end;
-
+
SDL_WINDOWEVENT_MINIMIZED:
begin
if not wMinimized then
wDeactivate := True;
end;
end;
-
+
SDL_WINDOWEVENT_RESIZED:
begin
gScreenWidth := ev.data1;
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
end;
end;
end;
-
+
SDL_WINDOWEVENT_RESTORED:
begin
if wMinimized then
key := ev.key.keysym.scancode;
KeyPress(key);
end;
-
+
SDL_TEXTINPUT:
begin
Utf8ToUnicode(@uc, PChar(ev.text.text), 1);