Merge pull request #5410 from RoosterDragon/IDisposable
Disposable fixup
This commit is contained in:
@@ -18,7 +18,6 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
{
|
||||
public class HueSliderWidget : SliderWidget
|
||||
{
|
||||
Bitmap hueBitmap;
|
||||
Sprite hueSprite;
|
||||
|
||||
public HueSliderWidget() {}
|
||||
@@ -28,20 +27,22 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
{
|
||||
base.Initialize(args);
|
||||
|
||||
hueBitmap = new Bitmap(256, 256);
|
||||
hueSprite = new Sprite(new Sheet(new Size(256, 256)), new Rectangle(0, 0, 256, 1), TextureChannel.Alpha);
|
||||
|
||||
var bitmapData = hueBitmap.LockBits(hueBitmap.Bounds(),
|
||||
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
|
||||
unsafe
|
||||
using (var hueBitmap = new Bitmap(256, 256))
|
||||
{
|
||||
int* c = (int*)bitmapData.Scan0;
|
||||
for (var h = 0; h < 256; h++)
|
||||
*(c + h) = HSLColor.FromHSV(h/255f, 1, 1).RGB.ToArgb();
|
||||
}
|
||||
hueBitmap.UnlockBits(bitmapData);
|
||||
hueSprite = new Sprite(new Sheet(new Size(256, 256)), new Rectangle(0, 0, 256, 1), TextureChannel.Alpha);
|
||||
|
||||
hueSprite.sheet.Texture.SetData(hueBitmap);
|
||||
var bitmapData = hueBitmap.LockBits(hueBitmap.Bounds(),
|
||||
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
|
||||
unsafe
|
||||
{
|
||||
int* c = (int*)bitmapData.Scan0;
|
||||
for (var h = 0; h < 256; h++)
|
||||
*(c + h) = HSLColor.FromHSV(h / 255f, 1, 1).RGB.ToArgb();
|
||||
}
|
||||
hueBitmap.UnlockBits(bitmapData);
|
||||
|
||||
hueSprite.sheet.Texture.SetData(hueBitmap);
|
||||
}
|
||||
}
|
||||
|
||||
public override void Draw()
|
||||
|
||||
@@ -68,16 +68,18 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
mapRect = new Rectangle(previewOrigin.X, previewOrigin.Y, (int)(previewScale * width), (int)(previewScale * height));
|
||||
|
||||
// Only needs to be done once
|
||||
var terrainBitmap = Minimap.TerrainBitmap(world.Map.Rules.TileSets[world.Map.Tileset], world.Map);
|
||||
var r = new Rectangle(0, 0, width, height);
|
||||
var s = new Size(terrainBitmap.Width, terrainBitmap.Height);
|
||||
terrainSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
terrainSprite.sheet.Texture.SetData(terrainBitmap);
|
||||
using (var terrainBitmap = Minimap.TerrainBitmap(world.Map.Rules.TileSets[world.Map.Tileset], world.Map))
|
||||
{
|
||||
var r = new Rectangle(0, 0, width, height);
|
||||
var s = new Size(terrainBitmap.Width, terrainBitmap.Height);
|
||||
terrainSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
terrainSprite.sheet.Texture.SetData(terrainBitmap);
|
||||
|
||||
// Data is set in Tick()
|
||||
customTerrainSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
actorSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
shroudSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
// Data is set in Tick()
|
||||
customTerrainSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
actorSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
shroudSprite = new Sprite(new Sheet(s), r, TextureChannel.Alpha);
|
||||
}
|
||||
}
|
||||
|
||||
public override string GetCursor(int2 pos)
|
||||
@@ -197,14 +199,17 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
if (updateTicks <= 0)
|
||||
{
|
||||
updateTicks = 12;
|
||||
customTerrainSprite.sheet.Texture.SetData(Minimap.CustomTerrainBitmap(world));
|
||||
using (var bitmap = Minimap.CustomTerrainBitmap(world))
|
||||
customTerrainSprite.sheet.Texture.SetData(bitmap);
|
||||
}
|
||||
|
||||
if (updateTicks == 8)
|
||||
actorSprite.sheet.Texture.SetData(Minimap.ActorsBitmap(world));
|
||||
using (var bitmap = Minimap.ActorsBitmap(world))
|
||||
actorSprite.sheet.Texture.SetData(bitmap);
|
||||
|
||||
if (updateTicks == 4)
|
||||
shroudSprite.sheet.Texture.SetData(Minimap.ShroudBitmap(world));
|
||||
using (var bitmap = Minimap.ShroudBitmap(world))
|
||||
shroudSprite.sheet.Texture.SetData(bitmap);
|
||||
|
||||
// Enable/Disable the radar
|
||||
var enabled = IsEnabled();
|
||||
|
||||
Reference in New Issue
Block a user