X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fopengl%2Fr_render.pas;h=cfc2a0d61464b50af5e7b0e67e07986cce8a9539;hb=83221a8d1b958465bd68e3c79575f4a94c8ffa42;hp=90bda3b04a230a27abceb3ad4e651b518a5fad7e;hpb=c7f0b67e60e7e48d12889ad331ee5d24d289a81e;p=d2df-sdl.git diff --git a/src/game/opengl/r_render.pas b/src/game/opengl/r_render.pas index 90bda3b..cfc2a0d 100644 --- a/src/game/opengl/r_render.pas +++ b/src/game/opengl/r_render.pas @@ -17,6 +17,8 @@ unit r_render; interface + uses g_base; // TRectWH + procedure r_Render_Initialize; procedure r_Render_Finalize; @@ -26,18 +28,33 @@ interface procedure r_Render_LoadTextures; procedure r_Render_FreeTextures; - procedure r_Render_Resize (w, h: Integer); - 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, + e_log, g_system, utils, g_game, g_options, g_console, r_window, r_graphics, r_console, r_playermodel, r_textures, r_animations, r_weapons, r_items, r_gfx, r_monsters, r_map, r_player, r_game @@ -138,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); @@ -178,4 +205,43 @@ implementation sys_EnableVSync(gVSync) end; + function r_Render_WriteScreenShot (filename: String): Boolean; + var s: TStream; + begin + Result := False; + try + s := CreateDiskFile(filename); + try + e_MakeScreenshot(s, gScreenWidth, gScreenHeight); + Result := True; + except + DeleteFile(filename) + end; + s.Free; + finally + 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.