Remove System.Bitmap from map preview loading.

This commit is contained in:
Paul Chote
2018-12-22 18:58:33 +13:00
parent 4f10d4a302
commit f65a777366
2 changed files with 14 additions and 4 deletions

View File

@@ -12,6 +12,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using OpenRA.FileFormats;
namespace OpenRA.Graphics namespace OpenRA.Graphics
{ {
@@ -83,6 +84,14 @@ namespace OpenRA.Graphics
return rect; return rect;
} }
public Sprite Add(Png src)
{
var rect = Allocate(new Size(src.Width, src.Height));
Util.FastCopyIntoSprite(rect, src);
current.CommitBufferedData();
return rect;
}
public Sprite Add(Size size, byte paletteIndex) public Sprite Add(Size size, byte paletteIndex)
{ {
var data = new byte[size.Width * size.Height]; var data = new byte[size.Width * size.Height];

View File

@@ -18,6 +18,7 @@ using System.Linq;
using System.Net; using System.Net;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
using OpenRA.FileFormats;
using OpenRA.FileSystem; using OpenRA.FileSystem;
using OpenRA.Graphics; using OpenRA.Graphics;
using OpenRA.Primitives; using OpenRA.Primitives;
@@ -78,7 +79,7 @@ namespace OpenRA
public CPos[] SpawnPoints; public CPos[] SpawnPoints;
public MapGridType GridType; public MapGridType GridType;
public Rectangle Bounds; public Rectangle Bounds;
public Bitmap Preview; public Png Preview;
public MapStatus Status; public MapStatus Status;
public MapClassification Class; public MapClassification Class;
public MapVisibility Visibility; public MapVisibility Visibility;
@@ -147,7 +148,7 @@ namespace OpenRA
public CPos[] SpawnPoints { get { return innerData.SpawnPoints; } } public CPos[] SpawnPoints { get { return innerData.SpawnPoints; } }
public MapGridType GridType { get { return innerData.GridType; } } public MapGridType GridType { get { return innerData.GridType; } }
public Rectangle Bounds { get { return innerData.Bounds; } } public Rectangle Bounds { get { return innerData.Bounds; } }
public Bitmap Preview { get { return innerData.Preview; } } public Png Preview { get { return innerData.Preview; } }
public MapStatus Status { get { return innerData.Status; } } public MapStatus Status { get { return innerData.Status; } }
public MapClassification Class { get { return innerData.Class; } } public MapClassification Class { get { return innerData.Class; } }
public MapVisibility Visibility { get { return innerData.Visibility; } } public MapVisibility Visibility { get { return innerData.Visibility; } }
@@ -323,7 +324,7 @@ namespace OpenRA
if (p.Contains("map.png")) if (p.Contains("map.png"))
using (var dataStream = p.GetStream("map.png")) using (var dataStream = p.GetStream("map.png"))
newData.Preview = new Bitmap(dataStream); newData.Preview = new Png(dataStream);
// Assign the new data atomically // Assign the new data atomically
innerData = newData; innerData = newData;
@@ -376,7 +377,7 @@ namespace OpenRA
newData.GridType = r.map_grid_type; newData.GridType = r.map_grid_type;
try try
{ {
newData.Preview = new Bitmap(new MemoryStream(Convert.FromBase64String(r.minimap))); newData.Preview = new Png(new MemoryStream(Convert.FromBase64String(r.minimap)));
} }
catch (Exception e) catch (Exception e)
{ {