(* Copyright (C) Doom 2D: Forever Developers * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License ONLY. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . *) {$INCLUDE ../../../shared/a_modes.inc} unit r_render; interface uses {$IFDEF ENABLE_MENU} g_gui, {$ENDIF} g_base // TRectWH ; procedure r_Render_Initialize; procedure r_Render_Finalize; procedure r_Render_Load; procedure r_Render_Free; procedure r_Render_LoadTextures; 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; {$IFDEF ENABLE_GIBS} function r_Render_GetGibRect (m, id: Integer): TRectWH; {$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 implementation uses {$IFDEF ENABLE_SYSTEM} g_system, {$ENDIF} SysUtils, Classes, Math, e_log, utils, g_game, g_options, g_console ; procedure r_Render_LoadTextures; begin end; procedure r_Render_FreeTextures; begin end; procedure r_Render_Load; begin end; procedure r_Render_Free; begin end; procedure r_Render_Initialize; begin {$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} end; procedure r_Render_Finalize; begin end; procedure r_Render_Update; begin end; procedure r_Render_Draw; begin end; procedure r_Render_Resize (w, h: Integer); begin gWinSizeX := w; gWinSizeY := h; gRC_Width := w; gRC_Height := h; gScreenWidth := w; gScreenHeight := h; end; procedure r_Render_Apply; begin {$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; begin Result := False; end; {$IFDEF ENABLE_GIBS} function r_Render_GetGibRect (m, id: Integer): TRectWH; begin Result.X := 16; Result.Y := 16; Result.Width := 16; Result.Height := 16; end; {$ENDIF} {$IFDEF ENABLE_GFX} procedure r_Render_QueueEffect (AnimType, X, Y: Integer); begin end; {$ENDIF} {$IFDEF ENABLE_TOUCH} procedure r_Render_GetKeyRect (key: Integer; out x, y, w, h: Integer; out founded: Boolean); begin founded := False; end; {$ENDIF} {$IFDEF ENABLE_MENU} procedure r_Render_GetControlSize (ctrl: TGUIControl; out w, h: Integer); begin w := 0; h := 0; end; procedure r_Render_GetLogoSize (out w, h: Integer); begin w := 0; h := 0; end; procedure r_Render_GetMaxFontSize (BigFont: Boolean; out w, h: Integer); begin w := 0; h := 0; end; procedure r_Render_GetStringSize (BigFont: Boolean; str: String; out w, h: Integer); begin w := 0; h := 0; end; {$ENDIF} procedure r_Render_DrawLoading (force: Boolean); begin end; end.