X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Frenders%2Fopengl%2Fr_gui.pas;h=37fb2179daa3dea752185bf4504072a0fa296821;hb=007ba24a2c0e0c07941679f415561c3cdf43cef2;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..37fb217 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', [TGLHints.txNoRepeat]); + MarkerID[TRUE] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/MARKER2', [TGLHints.txNoRepeat]); 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', [TGLHints.txNoRepeat]); + ScrollRight := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SRIGHT', [TGLHints.txNoRepeat]); + ScrollMiddle := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SMIDDLE', []); + ScrollMarker := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SMARKER', [TGLHints.txNoRepeat]); - 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', [TGLHints.txNoRepeat]); + EditRight := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/ERIGHT', [TGLHints.txNoRepeat]); + 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', [TGLHints.txNoRepeat]); + BScrollUp[false] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLUPU', [TGLHints.txNoRepeat]); + BScrollDown[true] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLDOWNA', [TGLHints.txNoRepeat]); + BScrollDown[false] := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/SCROLLDOWNU', [TGLHints.txNoRepeat]); + 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', [TGLHints.txNoRepeat]); + nopic := r_Common_LoadTextureFromFile(GameWad + ':TEXTURES/NOPIC', [TGLHints.txNoRepeat]); end; procedure r_GUI_Free; @@ -116,32 +96,32 @@ implementation Font[FALSE] := nil; Font[TRUE] := nil; - MarkerID[FALSE].Free; - MarkerID[TRUE].Free; + r_Common_FreeAndNil(MarkerID[FALSE]); + r_Common_FreeAndNil(MarkerID[TRUE]); for i := 0 to 8 do - Box[i].Free; + r_Common_FreeAndNil(Box[i]); - ScrollLeft.Free; - ScrollRight.Free; - ScrollMiddle.Free; - ScrollMarker.Free; + r_Common_FreeAndNil(ScrollLeft); + r_Common_FreeAndNil(ScrollRight); + r_Common_FreeAndNil(ScrollMiddle); + r_Common_FreeAndNil(ScrollMarker); - EditLeft.Free; - EditRight.Free; - EditMiddle.Free; + r_Common_FreeAndNil(EditLeft); + r_Common_FreeAndNil(EditRight); + r_Common_FreeAndNil(EditMiddle); - BScrollUp[true].Free; - BScrollUp[false].Free; - BScrollDown[true].Free; - BScrollDown[false].Free; - BScrollMiddle.Free; + r_Common_FreeAndNil(BScrollUp[true]); + r_Common_FreeAndNil(BScrollUp[false]); + r_Common_FreeAndNil(BScrollDown[true]); + r_Common_FreeAndNil(BScrollDown[false]); + r_Common_FreeAndNil(BScrollMiddle); - LogoTex.Free; - nopic.Free; + r_Common_FreeAndNil(LogoTex); + r_Common_FreeAndNil(nopic); - 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;