X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fopengl%2Fr_render.pas;h=363093cd5ab7cab025f451473ba406b3c362435b;hb=6837a957a80cae5f212cc5a1447b2e7dac15c159;hp=203c9c2d3038c2359caf6e7d0e8c547772ea6ba7;hpb=373f27c0de10cb90442f535cb5d330095bafbf54;p=d2df-sdl.git diff --git a/src/game/opengl/r_render.pas b/src/game/opengl/r_render.pas index 203c9c2..363093c 100644 --- a/src/game/opengl/r_render.pas +++ b/src/game/opengl/r_render.pas @@ -17,7 +17,12 @@ unit r_render; interface - uses g_base; // TRectWH + uses + {$IFDEF ENABLE_MENU} + g_gui, + {$ENDIF} + g_base // TRectWH + ; procedure r_Render_Initialize; procedure r_Render_Finalize; @@ -36,13 +41,25 @@ interface 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_GIBS} + function r_Render_GetGibRect (m, id: Integer): TRectWH; + {$ENDIF} -{$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} + {$IFDEF ENABLE_GFX} + procedure r_Render_QueueEffect (AnimType, X, Y: Integer); + {$ENDIF} + + {$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} + + {$IFDEF ENABLE_MENU} + procedure r_Render_GetControlSize (ctrl: TGUIControl; out w, h: Integer); + procedure r_Render_GetLogoSize (out w, h: Integer); + procedure r_Render_GetMaxFontSize (BigFont: Boolean; out w, h: Integer); + procedure r_Render_GetStringSize (BigFont: Boolean; str: String; out w, h: Integer); + {$ENDIF} procedure r_Render_DrawLoading (force: Boolean); // !!! remove it @@ -53,11 +70,20 @@ implementation {$IFDEF ENABLE_TOUCH} r_touch, {$ENDIF} + {$IFDEF ENABLE_GFX} + r_gfx, + {$ENDIF} + {$IFDEF ENABLE_SYSTEM} + g_system, + {$ENDIF} + {$IFDEF ENABLE_MENU} + r_gui, + {$ENDIF} SysUtils, Classes, Math, - e_log, g_system, utils, + e_log, 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 + r_weapons, r_items, r_monsters, r_map, r_player, r_game ; var @@ -206,12 +232,22 @@ implementation r_Monsters_Load; r_Weapon_Load; r_Items_Load; - r_GFX_Load; + {$IFDEF ENABLE_GFX} + r_GFX_Load; + {$ENDIF} + {$IFDEF ENABLE_MENU} + r_GUI_Load; + {$ENDIF} end; procedure r_Render_Free; begin - r_GFX_Free; + {$IFDEF ENABLE_MENU} + r_GUI_Free; + {$ENDIF} + {$IFDEF ENABLE_GFX} + r_GFX_Free; + {$ENDIF} r_Items_Free; r_Weapon_Free; r_Monsters_Free; @@ -225,8 +261,10 @@ implementation procedure r_Render_Initialize; begin - if sys_SetDisplayMode(gRC_Width, gRC_Height, gBPP, gRC_FullScreen, gRC_Maximized) = False then - raise Exception.Create('Failed to set videomode on startup.'); + {$IFDEF ENABLE_SYSTEM} + if sys_SetDisplayMode(gRC_Width, gRC_Height, gBPP, gRC_FullScreen, gRC_Maximized) = False then + raise Exception.Create('Failed to set videomode on startup.'); + {$ENDIF} LoadGL; r_Window_Initialize; r_Console_Init; @@ -244,10 +282,13 @@ implementation procedure r_Render_Update; begin - r_GFX_Update; + {$IFDEF ENABLE_GFX} + r_GFX_Update; + {$ENDIF} r_Map_Update; r_PlayerModel_Update; r_Console_Update; + r_Items_Update; end; procedure r_Render_Draw; @@ -287,11 +328,13 @@ implementation procedure r_Render_Apply; begin - if sys_SetDisplayMode(Max(1, gRC_Width), Max(1, gRC_Height), Max(1, gBPP), gRC_FullScreen, gRC_Maximized) then - e_LogWriteln('resolution changed') - else - e_LogWriteln('resolution not changed'); - sys_EnableVSync(gVSync) + {$IFDEF ENABLE_SYSTEM} + if sys_SetDisplayMode(Max(1, gRC_Width), Max(1, gRC_Height), Max(1, gBPP), gRC_FullScreen, gRC_Maximized) then + e_LogWriteln('resolution changed') + else + e_LogWriteln('resolution not changed'); + sys_EnableVSync(gVSync) + {$ENDIF} end; function r_Render_WriteScreenShot (filename: String): Boolean; @@ -311,15 +354,19 @@ implementation end end; +{$IFDEF ENABLE_GIBS} function r_Render_GetGibRect (m, id: Integer): TRectWH; begin Result := r_PlayerModel_GetGibRect(m, id) end; +{$ENDIF} +{$IFDEF ENABLE_GFX} procedure r_Render_QueueEffect (AnimType, X, Y: Integer); begin r_GFX_OnceAnim(AnimType, X, Y) end; +{$ENDIF} {$IFDEF ENABLE_TOUCH} procedure r_Render_GetKeyRect (key: Integer; out x, y, w, h: Integer; out founded: Boolean); @@ -328,6 +375,28 @@ implementation end; {$ENDIF} +{$IFDEF ENABLE_MENU} + procedure r_Render_GetControlSize (ctrl: TGUIControl; out w, h: Integer); + begin + r_GUI_GetSize(ctrl, w, h) + end; + + procedure r_Render_GetLogoSize (out w, h: Integer); + begin + r_GUI_GetLogoSize(w, h) + end; + + procedure r_Render_GetMaxFontSize (BigFont: Boolean; out w, h: Integer); + begin + r_GUI_GetMaxFontSize(BigFont, w, h) + end; + + procedure r_Render_GetStringSize (BigFont: Boolean; str: String; out w, h: Integer); + begin + r_GUI_GetStringSize(BigFont, str, w, h) + end; +{$ENDIF} + procedure r_Render_DrawLoading (force: Boolean); begin r_Window_DrawLoading(force)