DEADSOFTWARE

gl: shade titlepic in main menu
[d2df-sdl.git] / src / game / sdl / g_system.pas
index c228aee8d77952d27bf1cf618f6f8fac1bd0b0e9..6d7cf03ef433b371fb4abcad6cf440f1c9b8cbd5 100644 (file)
@@ -19,19 +19,36 @@ interface
 
   uses Utils;
 
-  (* --- Utils --- *)
-  procedure sys_Delay (ms: Integer);
+  type
+    TGLProfile = (Core, Compat, Common, CommonLite);
+
+    TGLDisplayInfo = record
+      w, h, bpp: Integer;
+      fullscreen: Boolean;
+      maximized: Boolean;
+      major, minor: Integer;
+      profile: TGLProfile;
+    end;
 
   (* --- Graphics --- *)
+
   function sys_GetDisplayModes (bpp: Integer): SSArray;
   function sys_SetDisplayMode (w, h, bpp: Integer; fullscreen, maximized: Boolean): Boolean;
   procedure sys_EnableVSync (yes: Boolean);
   procedure sys_Repaint;
 
+  function sys_SetDisplayModeGL (const info: TGLDisplayInfo): Boolean;
+
   (* --- Input --- *)
+
   function sys_HandleInput (): Boolean;
   procedure sys_RequestQuit;
 
+{$IFDEF ENABLE_TOUCH}
+  function sys_IsTextInputActive (): Boolean;
+  procedure sys_ShowKeyboard (yes: Boolean);
+{$ENDIF}
+
   (* --- Init --- *)
   procedure sys_Init;
   procedure sys_Final;
@@ -65,13 +82,6 @@ implementation
     JoystickHatState: array [0..e_MaxJoys - 1, 0..e_MaxJoyHats - 1, HAT_LEFT..HAT_DOWN] of Boolean;
     JoystickZeroAxes: array [0..e_MaxJoys - 1, 0..e_MaxJoyAxes - 1] of Integer;
 
-  (* --------- Utils --------- *)
-
-  procedure sys_Delay (ms: Integer);
-  begin
-    SDL_Delay(ms)
-  end;
-
   (* --------- Graphics --------- *)
 
   function GetDriver (): AnsiString;
@@ -160,6 +170,14 @@ implementation
     result := InitWindow(w, h, bpp, fullscreen)
   end;
 
+  function sys_SetDisplayModeGL (const info: TGLDisplayInfo): Boolean;
+  begin
+    result := false;
+    case info.profile of
+      TGLProfile.Compat: result := InitWindow(info.w, info.h, info.bpp, info.fullscreen);
+    end;
+  end;
+
   (* --------- Joystick --------- *)
 
   procedure HandleJoyButton (var ev: TSDL_JoyButtonEvent);
@@ -458,6 +476,18 @@ implementation
   end;
 {$ENDIF}
 
+{$IFDEF ENABLE_TOUCH}
+  procedure sys_ShowKeyboard (yes: Boolean);
+  begin
+    // stub
+  end;
+
+  function sys_IsTextInputActive (): Boolean;
+  begin
+    Result := false
+  end;
+{$ENDIF}
+
   function Key2Stub (key: Integer): Integer;
     var x: Integer;
   begin