diff -r 5d0704f23a2a -r ad4b6c2b09e8 hedgewars/uStore.pas --- a/hedgewars/uStore.pas Mon Jun 25 10:44:27 2012 +0200 +++ b/hedgewars/uStore.pas Mon Jun 25 11:47:40 2012 +0200 @@ -155,8 +155,7 @@ SDL_UnlockSurface(texsurf); FreeTexture(CrosshairTex); - CrosshairTex:= Surface2Tex(texsurf, false); - SDL_FreeSurface(texsurf) + CrosshairTex:= Surface2Atlas(texsurf, false); end; SDL_FreeSurface(tmpsurf) @@ -189,8 +188,7 @@ rr:= r; inc(rr.x, 2); dec(rr.w, 4); inc(rr.y, 2); dec(rr.h, 4); DrawRoundRect(@rr, Clan^.Color, Clan^.Color, texsurf, false); - HealthTex:= Surface2Tex(texsurf, false); - SDL_FreeSurface(texsurf); + HealthTex:= Surface2Atlas(texsurf, false); r.x:= 0; r.y:= 0; @@ -230,8 +228,7 @@ PLongwordArray(texsurf^.pixels)^[32 * 16 + 2]:= cNearBlackColor; PLongwordArray(texsurf^.pixels)^[32 * 16 + 23]:= cNearBlackColor; - FlagTex:= Surface2Tex(texsurf, false); - SDL_FreeSurface(texsurf); + FlagTex:= Surface2Atlas(texsurf, false); texsurf:= nil; AIKillsTex := RenderStringTex(inttostr(stats.AIKills), Clan^.Color, fnt16); @@ -263,8 +260,7 @@ r.w:= 28; r.h:= 28; DrawRoundRect(@r, cWhiteColor, cNearBlackColor, iconsurf, true); - ropeIconTex:= Surface2Tex(iconsurf, false); - SDL_FreeSurface(iconsurf); + ropeIconTex:= Surface2Atlas(iconsurf, false); iconsurf:= nil; end; end; @@ -299,8 +295,7 @@ texsurf:= LoadImage(UserPathz[ptGraves] + '/Statue', ifTransparent); if texsurf = nil then texsurf:= LoadImage(Pathz[ptGraves] + '/Statue', ifCritical or ifTransparent); - GraveTex:= Surface2Tex(texsurf, false); - SDL_FreeSurface(texsurf) + GraveTex:= Surface2Atlas(texsurf, false); end end; @@ -397,12 +392,12 @@ end; if (ii in [sprSky, sprSkyL, sprSkyR, sprHorizont, sprHorizontL, sprHorizontR]) then begin - Texture:= Surface2Tex(tmpsurf, true); + Texture:= Surface2Atlas(tmpsurf, true); Texture^.Scale:= 2 end else begin - Texture:= Surface2Tex(tmpsurf, false); + Texture:= Surface2Atlas(tmpsurf, false); // HACK: We should include some sprite attribute to define the texture wrap directions if ((ii = sprWater) or (ii = sprSDWater)) and ((cReducedQuality and (rq2DWater or rqClampLess)) = 0) then glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); @@ -416,8 +411,8 @@ {$ELSE} if saveSurf then Surface:= tmpsurf - else - SDL_FreeSurface(tmpsurf) + //else + // SDL_FreeSurface(tmpsurf) released by FreeTexture {$ENDIF} end end @@ -432,8 +427,7 @@ if tmpsurf = nil then tmpsurf:= LoadImage(Pathz[ptGraphics] + '/' + cHHFileName, ifAlpha or ifCritical or ifTransparent); -HHTexture:= Surface2Tex(tmpsurf, false); -SDL_FreeSurface(tmpsurf); +HHTexture:= Surface2Atlas(tmpsurf, false); InitHealth; @@ -453,8 +447,7 @@ TryDo(tmpsurf <> nil,'Name-texture creation for ammo type #' + intToStr(ord(ai)) + ' failed!',true); tmpsurf:= doSurfaceConversion(tmpsurf); FreeTexture(NameTex); - NameTex:= Surface2Tex(tmpsurf, false); - SDL_FreeSurface(tmpsurf) + NameTex:= Surface2Atlas(tmpsurf, false); end; // number of weapons in ammo menu @@ -463,8 +456,7 @@ tmpsurf:= TTF_RenderUTF8_Blended(Fontz[fnt16].Handle, Str2PChar(IntToStr(i) + 'x'), cWhiteColorChannels); tmpsurf:= doSurfaceConversion(tmpsurf); FreeTexture(CountTexz[i]); - CountTexz[i]:= Surface2Tex(tmpsurf, false); - SDL_FreeSurface(tmpsurf) + CountTexz[i]:= Surface2Atlas(tmpsurf, false); end; if not reload then @@ -616,10 +608,7 @@ FreeTexture(HHGear^.Hedgehog^.HatTex); // assign new hat to hedgehog - HHGear^.Hedgehog^.HatTex:= Surface2Tex(texsurf, true); - - // cleanup: free temporary surface mem - SDL_FreeSurface(texsurf) + HHGear^.Hedgehog^.HatTex:= Surface2Atlas(texsurf, true); end; end; @@ -1052,11 +1041,10 @@ if texsurf = nil then texsurf:= LoadImage(Pathz[ptGraphics] + '/Progress', ifCritical or ifTransparent); - ProgrTex:= Surface2Tex(texsurf, false); + ProgrTex:= Surface2Atlas(texsurf, false); squaresize:= texsurf^.w shr 1; numsquares:= texsurf^.h div squaresize; - SDL_FreeSurface(texsurf); uMobile.GameLoading(); end; @@ -1201,8 +1189,7 @@ SDL_FillRect(tmpsurf, @r, $ffffffff); SDL_UpperBlit(iconsurf, iconrect, tmpsurf, @r); -RenderHelpWindow:= Surface2Tex(tmpsurf, true); -SDL_FreeSurface(tmpsurf) +RenderHelpWindow:= Surface2Atlas(tmpsurf, true); end; procedure RenderWeaponTooltip(atype: TAmmoType);