X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Frenders%2Fopengl%2Fr_gui.pas;h=b6fa9d6569016772a7198396a987cbad727ad299;hb=0592c8529428165e2523e0cb054bff29e297777a;hp=7016db9b17456ed6c7ee0f8587b6b5e257a76b2a;hpb=64cf710bf7eb902971736580b36bcf8ce20400d8;p=d2df-sdl.git diff --git a/src/game/renders/opengl/r_gui.pas b/src/game/renders/opengl/r_gui.pas index 7016db9..b6fa9d6 100644 --- a/src/game/renders/opengl/r_gui.pas +++ b/src/game/renders/opengl/r_gui.pas @@ -42,12 +42,6 @@ implementation const EDIT_CURSORLEN = 10; - type - THereTexture = record - name: AnsiString; - id: TGLTexture; - end; - var Box: Array [0..8] of TGLTexture; MarkerID: array [Boolean] of TGLTexture; @@ -63,51 +57,37 @@ implementation Background: THereTexture; ImageControl: THereTexture; - procedure r_GUI_FreeThis (var here: THereTexture); - begin - here.name := ''; - if here.id <> nil then - here.id.Free; - here.id := nil; - end; - - function r_GUI_LoadThis (const name: AnsiString; var here: THereTexture): Boolean; - begin - r_GUI_FreeThis(here); - if (name <> '') and (here.name <> name) then - here.id := r_Textures_LoadFromFile(name); - result := here.id <> nil; - end; - procedure r_GUI_Load; var i: Integer; begin Font[FALSE] := smallfont; Font[TRUE] := menufont; - MarkerID[FALSE] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/MARKER1'); - MarkerID[TRUE] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/MARKER2'); + r_Common_SetLoading('GUI', 2 + 9 + 14); + + MarkerID[FALSE] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/MARKER1'); + MarkerID[TRUE] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/MARKER2'); for i := 0 to 8 do - Box[i] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/BOX' + IntToStr(i + 1)); + Box[i] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/BOX' + IntToStr(i + 1)); - ScrollLeft := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SLEFT'); - ScrollRight := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SRIGHT'); - ScrollMiddle := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SMIDDLE'); - ScrollMarker := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SMARKER'); + ScrollLeft := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SLEFT'); + ScrollRight := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SRIGHT'); + ScrollMiddle := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SMIDDLE'); + ScrollMarker := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SMARKER'); - EditLeft := r_Textures_LoadFromFile(GameWad + ':TEXTURES/ELEFT'); - EditRight := r_Textures_LoadFromFile(GameWad + ':TEXTURES/ERIGHT'); - EditMiddle := r_Textures_LoadFromFile(GameWad + ':TEXTURES/EMIDDLE'); + EditLeft := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/ELEFT'); + EditRight := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/ERIGHT'); + EditMiddle := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/EMIDDLE'); - BScrollUp[true] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLUPA'); - BScrollUp[false] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLUPU'); - BScrollDown[true] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLDOWNA'); - BScrollDown[false] := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLDOWNU'); - BScrollMiddle := r_Textures_LoadFromFile(GameWad + ':TEXTURES/SCROLLMIDDLE'); + BScrollUp[true] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLUPA'); + BScrollUp[false] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLUPU'); + BScrollDown[true] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLDOWNA'); + BScrollDown[false] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLDOWNU'); + BScrollMiddle := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLMIDDLE'); - LogoTex := r_Textures_LoadFromFile(GameWad + ':TEXTURES/MAINLOGO'); - nopic := r_Textures_LoadFromFile(GameWad + ':TEXTURES/NOPIC'); + LogoTex := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/MAINLOGO'); + nopic := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/NOPIC'); end; procedure r_GUI_Free; @@ -140,8 +120,8 @@ implementation LogoTex.Free; nopic.Free; - r_GUI_FreeThis(Background); - r_GUI_FreeThis(ImageControl); + r_Common_FreeThis(Background); + r_Common_FreeThis(ImageControl); end; procedure r_GUI_GetMaxFontSize (BigFont: Boolean; out w, h: Integer); @@ -412,7 +392,7 @@ implementation begin pic := nopic; if ctrl.ImageRes <> '' then - if r_GUI_LoadThis(ctrl.ImageRes, ImageControl) then + if r_Common_LoadThis(ctrl.ImageRes, ImageControl) then pic := ImageControl.id; if pic <> nil then r_Draw_Texture(pic, ctrl.x, ctrl.y, pic.width, pic.height, false, 255, 255, 255, 255, false); @@ -573,7 +553,7 @@ implementation begin // Here goes code duplication from g_game.pas:DrawMenuBackground() if win.BackTexture <> '' then - if r_GUI_LoadThis(win.BackTexture, Background) then + if r_Common_LoadThis(win.BackTexture, Background) then begin r_Draw_FillRect(0, 0, gScreenWidth - 1, gScreenHeight - 1, 0, 0, 0, 255); tw := Background.id.width;