X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Frenders%2Fopengl%2Fr_render.pas;h=135141e69ca752e333f82730d8b9a251877df077;hb=b36923c380a9760c74967bc8c850517c386747db;hp=be9192d8a0a8e0aeec87ba210fea2f61d9745f88;hpb=6566ca53c9b557146e5ac5bd204ae0313b66e158;p=d2df-sdl.git diff --git a/src/game/renders/opengl/r_render.pas b/src/game/renders/opengl/r_render.pas index be9192d..135141e 100644 --- a/src/game/renders/opengl/r_render.pas +++ b/src/game/renders/opengl/r_render.pas @@ -74,6 +74,9 @@ implementation {$ELSE} GL, GLEXT, {$ENDIF} + {$IFDEF ENABLE_MENU} + r_gui, + {$ENDIF} {$IFDEF ENABLE_SYSTEM} g_system, {$ENDIF} @@ -81,7 +84,7 @@ implementation e_log, utils, g_game, g_options, g_console, g_player, g_weapons, g_language, g_net, - r_draw, r_textures, r_fonts, r_map + r_draw, r_textures, r_fonts, r_common, r_console, r_map ; type @@ -94,10 +97,6 @@ implementation var menuBG: TGLTexture; - stdfont: TGLFont; - smallfont: TGLFont; - menufont: TGLFont; - hud, hudbg: TGLTexture; hudhp: array [Boolean] of TGLTexture; hudap: TGLTexture; @@ -116,27 +115,14 @@ implementation r_Map_FreeTextures; end; - function r_Render_LoadFont (const name: AnsiString): TGLFont; - var info: TFontInfo; skiphack: Integer; - begin - result := nil; - if name = 'STD' then skiphack := 144 else skiphack := 0; - if r_Font_LoadInfoFromFile(GameWad + ':FONTS/' + name + 'TXT', info) then - result := r_Textures_LoadFontFromFile(GameWad + ':FONTS/' + name + 'FONT', info, skiphack, true); - if result = nil then - e_logwritefln('failed to load font %s', [name]); - end; - procedure r_Render_Load; const WeapName: array [0..WP_LAST] of AnsiString = ('KASTET', 'SAW', 'PISTOL', 'SHOTGUN1', 'SHOTGUN2', 'MGUN', 'RLAUNCHER', 'PGUN', 'BFG', 'SPULEMET', 'FLAMETHROWER'); var i: Integer; begin + r_Common_Load; menuBG := r_Textures_LoadFromFile(GameWAD + ':TEXTURES/TITLE'); - stdfont := r_Render_LoadFont('STD'); - smallfont := r_Render_LoadFont('SMALL'); - menufont := r_Render_LoadFont('MENU'); hud := r_Textures_LoadFromFile(GameWAD + ':TEXTURES/HUD'); hudbg := r_Textures_LoadFromFile(GameWAD + ':TEXTURES/HUDBG'); hudhp[false] := r_Textures_LoadFromFile(GameWAD + ':TEXTURES/MED2'); @@ -149,13 +135,21 @@ implementation hudkey[2] := r_Textures_LoadFromFile(GameWAD + ':TEXTURES/KEYB'); hudair := r_Textures_LoadFromFile(GameWAD + ':TEXTURES/AIRBAR'); hudjet := r_Textures_LoadFromFile(GameWAD + ':TEXTURES/JETBAR'); + r_Console_Load; r_Map_Load; + {$IFDEF ENABLE_MENU} + r_GUI_Load; + {$ENDIF} end; procedure r_Render_Free; var i: Integer; begin + {$IFDEF ENABLE_MENU} + r_GUI_Free; + {$ENDIF} r_Map_Free; + r_Console_Free; hudjet.Free; hudair.Free; hudkey[0].Free; @@ -172,10 +166,8 @@ implementation hudhp[false].Free; hudbg.Free; hud.Free; - menufont.Free; - smallfont.Free; - stdfont.Free; menuBG.Free; + r_Common_Free; end; {$IFDEF ENABLE_SYSTEM} @@ -203,17 +195,20 @@ implementation sys_EnableVSync(gVSync); {$ENDIF} r_Textures_Initialize; + r_Console_Initialize; r_Map_Initialize; end; procedure r_Render_Finalize; begin r_Map_Finalize; + r_Console_Finalize; r_Textures_Finalize; end; procedure r_Render_Update; begin + r_Console_Update; r_Map_Update; end; @@ -407,11 +402,13 @@ implementation {$IFDEF ENABLE_MENU} if g_ActiveWindow <> nil then begin - // TODO draw menu widgets + if gGameOn then + r_Draw_FillRect(0, 0, gScreenWidth - 1, gScreenHeight - 1, 0, 0, 0, 105); + r_GUI_Draw_Window(g_ActiveWindow); end; {$ENDIF} - // TODO draw console + r_Console_Draw(false); // TODO draw holmes interface @@ -470,27 +467,28 @@ implementation {$IFDEF ENABLE_MENU} procedure r_Render_GetControlSize (ctrl: TGUIControl; out w, h: Integer); begin - w := 0; h := 0; + r_GUI_GetSize(ctrl, w, h); end; procedure r_Render_GetLogoSize (out w, h: Integer); begin - w := 0; h := 0; + r_GUI_GetLogoSize(w, h); end; procedure r_Render_GetMaxFontSize (BigFont: Boolean; out w, h: Integer); begin - w := 0; h := 0; + r_GUI_GetMaxFontSize(BigFont, w, h); end; procedure r_Render_GetStringSize (BigFont: Boolean; str: String; out w, h: Integer); begin - w := 0; h := 0; + r_GUI_GetStringSize(BigFont, str, w, h); end; {$ENDIF} procedure r_Render_DrawLoading (force: Boolean); begin + // TODO draw loading screen end; end.