index 992d6dc4c7091de9906f6f9808ef695c7553542c..6f48d28bef982189e1b68bd9243f897eb723ce5f 100644 (file)
(* --------- Graphics --------- *)
function LoadGL: Boolean;
+ var ltmp: Integer;
begin
result := true;
{$IFDEF NOGL_INIT}
- nogl_Init;
- if glRenderToFBO and (not nogl_ExtensionSupported('GL_OES_framebuffer_object')) then
+ nogl_Init;
+ if glRenderToFBO and (not nogl_ExtensionSupported('GL_OES_framebuffer_object')) then
+ begin
+ e_LogWriteln('GL: framebuffer objects not supported; disabling FBO rendering');
+ glRenderToFBO := false;
+ end;
{$ELSE}
- if glRenderToFBO and (not Load_GL_ARB_framebuffer_object) then
+ if glRenderToFBO and (not Load_GL_ARB_framebuffer_object) then
+ begin
+ e_LogWriteln('GL: framebuffer objects not supported; disabling FBO rendering');
+ glRenderToFBO := false;
+ end;
{$ENDIF}
+ if SDL_GL_GetAttribute(SDL_GL_STENCIL_SIZE, @ltmp) = 0 then
begin
- e_LogWriteln('GL: framebuffer objects not supported; disabling FBO rendering');
- glRenderToFBO := false;
+ e_LogWritefln('stencil buffer size: %s', [ltmp]);
+ gwin_has_stencil := (ltmp > 0);
end;
end;
e_ResizeWindow(w, h);
e_InitGL;
g_Game_SetupScreenSize;
- {$IFNDEF ANDOIRD}
+ {$IFNDEF ANDROID}
(* This will fix menu reset on keyboard showing *)
g_Menu_Reset;
{$ENDIF}
{$ENDIF}
end;
- function GetTitle (): PChar;
+ function GetTitle (): AnsiString;
var info: AnsiString;
begin
info := g_GetBuildHash(false);
if info = 'custom build' then
info := info + ' by ' + g_GetBuilderName() + ' ' + GAME_BUILDDATE + ' ' + GAME_BUILDTIME;
- result := PChar(Format(GameTitle, [info]))
+ result := Format(GameTitle, [info]);
end;
function InitWindow (w, h, bpp: Integer; fullScreen, maximized: Boolean): Boolean;
- var flags: UInt32; x, y: cint;
+ var flags: UInt32; x, y: cint; title: AnsiString;
begin
// note: on window close make: if assigned(oglDeinitCB) then oglDeinitCB;
e_LogWritefln('InitWindow %s %s %s %s', [w, h, bpp, fullScreen]);
x := wx;
y := wy
end;
- window := SDL_CreateWindow(GetTitle(), x, y, w, h, flags);
+ title := GetTitle();
+ window := SDL_CreateWindow(PChar(title), x, y, w, h, flags);
if window <> nil then
begin
context := SDL_GL_CreateContext(window);
procedure sys_Repaint;
begin
- if glRenderToFBO then
- e_BlitFramebuffer(gWinSizeX, gWinSizeY);
SDL_GL_SwapWindow(window)
end;
e_KeyUpDown(key, down);
g_Console_ProcessBind(key, down);
end
- else if gConsoleShow or gChatShow or (g_ActiveWindow <> nil) then
+ else
begin
- KeyPress(key) // key repeat in menus and shit
+ if g_dbg_input then
+ e_LogWritefln('Input Debug: keyrep, scancode=%s', [key]);
+ g_Console_ProcessBindRepeat(key);
end
end;