DEADSOFTWARE

render: draw touch controls via render
[d2df-sdl.git] / src / game / opengl / r_render.pas
index 76ef595268ff0ee9640d7d49ce70eb2ae84b0f42..cfc2a0d61464b50af5e7b0e67e07986cce8a9539 100644 (file)
@@ -17,6 +17,8 @@ unit r_render;
 
 interface
 
+  uses g_base; // TRectWH
+
   procedure r_Render_Initialize;
   procedure r_Render_Finalize;
 
@@ -27,16 +29,30 @@ interface
   procedure r_Render_FreeTextures;
 
   procedure r_Render_Update;
+  procedure r_Render_Draw;
 
   procedure r_Render_Resize (w, h: Integer);
   procedure r_Render_Apply;
 
   function r_Render_WriteScreenShot (filename: String): Boolean;
 
+  function r_Render_GetGibRect (m, id: Integer): TRectWH;
+  procedure r_Render_QueueEffect (AnimType, X, Y: Integer);
+
+{$IFDEF ENABLE_TOUCH}
+  // touch screen button location and size
+  procedure r_Render_GetKeyRect (key: Integer; out x, y, w, h: Integer; out founded: Boolean);
+{$ENDIF}
+
+  procedure r_Render_DrawLoading (force: Boolean); // !!! remove it
+
 implementation
 
   uses
     {$INCLUDE ../../nogl/noGLuses.inc}
+    {$IFDEF ENABLE_TOUCH}
+      r_touch,
+    {$ENDIF}
     SysUtils, Classes, Math,
     e_log, g_system, utils,
     g_game, g_options, g_console,
@@ -139,8 +155,18 @@ implementation
 
   procedure r_Render_Update;
   begin
+    r_GFX_Update;
     r_Map_Update;
     r_PlayerModel_Update;
+    r_Console_Update;
+  end;
+
+  procedure r_Render_Draw;
+  begin
+    r_Game_Draw;
+    {$IFDEF ENABLE_TOUCH}
+      r_Touch_Draw;
+    {$ENDIF}
   end;
 
   procedure r_Render_Resize (w, h: Integer);
@@ -196,4 +222,26 @@ implementation
     end
   end;
 
+  function r_Render_GetGibRect (m, id: Integer): TRectWH;
+  begin
+    Result := r_PlayerModel_GetGibRect(m, id)
+  end;
+
+  procedure r_Render_QueueEffect (AnimType, X, Y: Integer);
+  begin
+    r_GFX_OnceAnim(AnimType, X, Y)
+  end;
+
+{$IFDEF ENABLE_TOUCH}
+  procedure r_Render_GetKeyRect (key: Integer; out x, y, w, h: Integer; out founded: Boolean);
+  begin
+    r_Touch_GetKeyRect (key, x, y, w, h, founded)
+  end;
+{$ENDIF}
+
+  procedure r_Render_DrawLoading (force: Boolean);
+  begin
+    r_Window_DrawLoading(force)
+  end;
+
 end.