diff --git a/src/game/g_window.pas b/src/game/g_window.pas
index 8a23d00c53283fdd5bc98233fcf1a5630e6de042..1db0c639efbfe27713abca1491ad2723fc4de1d5 100644 (file)
--- a/src/game/g_window.pas
+++ b/src/game/g_window.pas
procedure ProcessLoading (forceUpdate: Boolean=false);
+// returns `true` if quit event was received
+function g_ProcessMessages (): Boolean;
+
var
gwin_dump_extensions: Boolean = false;
Utf8ToUnicode(@uc, PChar(ev.text.text), 1);
keychr := Word(uc);
if (keychr > 127) then keychr := Word(wchar2win(WideChar(keychr)));
- CharPress(AnsiChar(keychr));
+ if (keychr > 0) and (keychr <= 255) then CharPress(AnsiChar(keychr));
end;
// other key presses and joysticks are handled in e_input
while (SDL_PollEvent(@ev) > 0) do
begin
+ EventHandler(ev);
if (ev.type_ = SDL_QUITEV) then break;
end;
+ e_PollJoysticks();
if (ev.type_ = SDL_QUITEV) or (gExit = EXIT_QUIT) then
begin
end;
-function ProcessMessage (): Boolean;
+function g_ProcessMessages (): Boolean;
var
- i, t: Integer;
ev: TSDL_Event;
begin
result := false;
FillChar(ev, SizeOf(ev), 0);
-
while (SDL_PollEvent(@ev) > 0) do
begin
result := EventHandler(ev);
if (ev.type_ = SDL_QUITEV) then exit;
end;
+ e_PollJoysticks();
+end;
+
+
+function ProcessMessage (): Boolean;
+var
+ i, t: Integer;
+begin
+ result := g_ProcessMessages();
Time := GetTimer();
Time_Delta := Time-Time_Old;
if not glHasExtension('GL_ARB_texture_non_power_of_two') then
begin
- e_WriteLog('Driver DID''T advertised NPOT textures support', TMsgType.Warning);
+ e_WriteLog('NPOT textures: NO', TMsgType.Warning);
glLegacyNPOT := true;
end
else
begin
- e_WriteLog('Driver advertised NPOT textures support', TMsgType.Notify);
+ e_WriteLog('NPOT textures: YES', TMsgType.Notify);
glLegacyNPOT := false;
end;
gwin_dump_extensions := false;