Rename SpriteFrameType enums.

This commit is contained in:
Paul Chote
2020-12-19 11:31:39 +00:00
committed by abcdefg30
parent ce09b402d0
commit 62fa3b7c9c
19 changed files with 55 additions and 55 deletions

View File

@@ -33,7 +33,7 @@ namespace OpenRA.FileFormats
public SpriteFrameType Type { get; private set; } public SpriteFrameType Type { get; private set; }
public Dictionary<string, string> EmbeddedData = new Dictionary<string, string>(); public Dictionary<string, string> EmbeddedData = new Dictionary<string, string>();
public int PixelStride { get { return Type == SpriteFrameType.Indexed ? 1 : Type == SpriteFrameType.RGB ? 3 : 4; } } public int PixelStride { get { return Type == SpriteFrameType.Indexed8 ? 1 : Type == SpriteFrameType.Rgb24 ? 3 : 4; } }
public Png(Stream s) public Png(Stream s)
{ {
@@ -43,7 +43,7 @@ namespace OpenRA.FileFormats
s.Position += 8; s.Position += 8;
var headerParsed = false; var headerParsed = false;
var data = new List<byte>(); var data = new List<byte>();
Type = SpriteFrameType.RGBA; Type = SpriteFrameType.Rgba32;
while (true) while (true)
{ {
@@ -69,9 +69,9 @@ namespace OpenRA.FileFormats
var bitDepth = ms.ReadUInt8(); var bitDepth = ms.ReadUInt8();
var colorType = (PngColorType)ms.ReadByte(); var colorType = (PngColorType)ms.ReadByte();
if (IsPaletted(bitDepth, colorType)) if (IsPaletted(bitDepth, colorType))
Type = SpriteFrameType.Indexed; Type = SpriteFrameType.Indexed8;
else if (colorType == PngColorType.Color) else if (colorType == PngColorType.Color)
Type = SpriteFrameType.RGB; Type = SpriteFrameType.Rgb24;
Data = new byte[Width * Height * PixelStride]; Data = new byte[Width * Height * PixelStride];
@@ -155,7 +155,7 @@ namespace OpenRA.FileFormats
} }
} }
if (Type == SpriteFrameType.Indexed && Palette == null) if (Type == SpriteFrameType.Indexed8 && Palette == null)
throw new InvalidDataException("Non-Palette indexed PNG are not supported."); throw new InvalidDataException("Non-Palette indexed PNG are not supported.");
return; return;
@@ -181,20 +181,20 @@ namespace OpenRA.FileFormats
switch (type) switch (type)
{ {
case SpriteFrameType.Indexed: case SpriteFrameType.Indexed8:
case SpriteFrameType.RGBA: case SpriteFrameType.Rgba32:
case SpriteFrameType.RGB: case SpriteFrameType.Rgb24:
{ {
// Data is already in a compatible format // Data is already in a compatible format
Data = data; Data = data;
if (type == SpriteFrameType.Indexed) if (type == SpriteFrameType.Indexed8)
Palette = palette; Palette = palette;
break; break;
} }
case SpriteFrameType.BGRA: case SpriteFrameType.Bgra32:
case SpriteFrameType.BGR: case SpriteFrameType.Bgr24:
{ {
// Convert to big endian // Convert to big endian
Data = new byte[data.Length]; Data = new byte[data.Length];
@@ -205,7 +205,7 @@ namespace OpenRA.FileFormats
Data[stride * i + 1] = data[stride * i + 1]; Data[stride * i + 1] = data[stride * i + 1];
Data[stride * i + 2] = data[stride * i + 0]; Data[stride * i + 2] = data[stride * i + 0];
if (type == SpriteFrameType.BGRA) if (type == SpriteFrameType.Bgra32)
Data[stride * i + 3] = data[stride * i + 3]; Data[stride * i + 3] = data[stride * i + 3];
} }
@@ -299,8 +299,8 @@ namespace OpenRA.FileFormats
header.Write(IPAddress.HostToNetworkOrder(Height)); header.Write(IPAddress.HostToNetworkOrder(Height));
header.WriteByte(8); // Bit depth header.WriteByte(8); // Bit depth
var colorType = Type == SpriteFrameType.Indexed ? PngColorType.Indexed | PngColorType.Color : var colorType = Type == SpriteFrameType.Indexed8 ? PngColorType.Indexed | PngColorType.Color :
Type == SpriteFrameType.RGB ? PngColorType.Color : PngColorType.Color | PngColorType.Alpha; Type == SpriteFrameType.Rgb24 ? PngColorType.Color : PngColorType.Color | PngColorType.Alpha;
header.WriteByte((byte)colorType); header.WriteByte((byte)colorType);
header.WriteByte(0); // Compression header.WriteByte(0); // Compression

View File

@@ -72,10 +72,10 @@ namespace OpenRA.Graphics
// Resolve indexed data to real colours // Resolve indexed data to real colours
var data = f.Data; var data = f.Data;
var type = f.Type; var type = f.Type;
if (type == SpriteFrameType.Indexed) if (type == SpriteFrameType.Indexed8)
{ {
data = ConvertIndexedToBgra(kv.Key, f, palette); data = ConvertIndexedToBgra(kv.Key, f, palette);
type = SpriteFrameType.BGRA; type = SpriteFrameType.Bgra32;
} }
c.Sprites[c.Length++] = sheetBuilder.Add(data, type, f.Size, 0, hotspot); c.Sprites[c.Length++] = sheetBuilder.Add(data, type, f.Size, 0, hotspot);
@@ -226,7 +226,7 @@ namespace OpenRA.Graphics
public static byte[] ConvertIndexedToBgra(string name, ISpriteFrame frame, ImmutablePalette palette) public static byte[] ConvertIndexedToBgra(string name, ISpriteFrame frame, ImmutablePalette palette)
{ {
if (frame.Type != SpriteFrameType.Indexed) if (frame.Type != SpriteFrameType.Indexed8)
throw new ArgumentException("ConvertIndexedToBgra requires input frames to be indexed.", nameof(frame)); throw new ArgumentException("ConvertIndexedToBgra requires input frames to be indexed.", nameof(frame));
// All palettes must be explicitly referenced, even if they are embedded in the sprite. // All palettes must be explicitly referenced, even if they are embedded in the sprite.

View File

@@ -82,7 +82,7 @@ namespace OpenRA.Graphics
if (Type == SheetType.Indexed) if (Type == SheetType.Indexed)
throw new InvalidOperationException("AsPng() cannot be called on Indexed sheets."); throw new InvalidOperationException("AsPng() cannot be called on Indexed sheets.");
return new Png(GetData(), SpriteFrameType.BGRA, Size.Width, Size.Height); return new Png(GetData(), SpriteFrameType.Bgra32, Size.Width, Size.Height);
} }
public Png AsPng(TextureChannel channel, IPalette pal) public Png AsPng(TextureChannel channel, IPalette pal)
@@ -103,7 +103,7 @@ namespace OpenRA.Graphics
for (var i = 0; i < Palette.Size; i++) for (var i = 0; i < Palette.Size; i++)
palColors[i] = pal.GetColor(i); palColors[i] = pal.GetColor(i);
return new Png(plane, SpriteFrameType.BGRA, Size.Width, Size.Height, palColors); return new Png(plane, SpriteFrameType.Bgra32, Size.Width, Size.Height, palColors);
} }
public void CreateBuffer() public void CreateBuffer()

View File

@@ -52,14 +52,14 @@ namespace OpenRA.Graphics
{ {
switch (t) switch (t)
{ {
case SpriteFrameType.Indexed: case SpriteFrameType.Indexed8:
return SheetType.Indexed; return SheetType.Indexed;
// Util.FastCopyIntoChannel will automatically convert these to BGRA // Util.FastCopyIntoChannel will automatically convert these to BGRA
case SpriteFrameType.BGRA: case SpriteFrameType.Bgra32:
case SpriteFrameType.BGR: case SpriteFrameType.Bgr24:
case SpriteFrameType.RGBA: case SpriteFrameType.Rgba32:
case SpriteFrameType.RGB: case SpriteFrameType.Rgb24:
return SheetType.BGRA; return SheetType.BGRA;
default: throw new NotImplementedException("Unknown SpriteFrameType {0}".F(t)); default: throw new NotImplementedException("Unknown SpriteFrameType {0}".F(t));
} }

View File

@@ -26,20 +26,20 @@ namespace OpenRA.Graphics
public enum SpriteFrameType public enum SpriteFrameType
{ {
// 8 bit index into an external palette // 8 bit index into an external palette
Indexed, Indexed8,
// 32 bit color such as returned by Color.ToArgb() or the bmp file format // 32 bit color such as returned by Color.ToArgb() or the bmp file format
// (remember that little-endian systems place the little bits in the first byte!) // (remember that little-endian systems place the little bits in the first byte!)
BGRA, Bgra32,
// Like BGRA, but without an alpha channel // Like BGRA, but without an alpha channel
BGR, Bgr24,
// 32 bit color in big-endian format, like png // 32 bit color in big-endian format, like png
RGBA, Rgba32,
// Like RGBA, but without an alpha channel // Like RGBA, but without an alpha channel
RGB Rgb24
} }
public interface ISpriteLoader public interface ISpriteLoader

View File

@@ -138,9 +138,9 @@ namespace OpenRA.Graphics
// 1x1px transparent tile // 1x1px transparent tile
if (sheetBuilder.Type == SheetType.BGRA) if (sheetBuilder.Type == SheetType.BGRA)
missingTile = sheetBuilder.Add(new byte[4], SpriteFrameType.BGRA, new Size(1, 1)); missingTile = sheetBuilder.Add(new byte[4], SpriteFrameType.Bgra32, new Size(1, 1));
else else
missingTile = sheetBuilder.Add(new byte[1], SpriteFrameType.Indexed, new Size(1, 1)); missingTile = sheetBuilder.Add(new byte[1], SpriteFrameType.Indexed8, new Size(1, 1));
Sheet.ReleaseBuffer(); Sheet.ReleaseBuffer();
} }

View File

@@ -88,23 +88,23 @@ namespace OpenRA.Graphics
byte r, g, b, a; byte r, g, b, a;
switch (srcType) switch (srcType)
{ {
case SpriteFrameType.BGRA: case SpriteFrameType.Bgra32:
case SpriteFrameType.BGR: case SpriteFrameType.Bgr24:
{ {
b = src[k++]; b = src[k++];
g = src[k++]; g = src[k++];
r = src[k++]; r = src[k++];
a = srcType == SpriteFrameType.BGRA ? src[k++] : (byte)255; a = srcType == SpriteFrameType.Bgra32 ? src[k++] : (byte)255;
break; break;
} }
case SpriteFrameType.RGBA: case SpriteFrameType.Rgba32:
case SpriteFrameType.RGB: case SpriteFrameType.Rgb24:
{ {
r = src[k++]; r = src[k++];
g = src[k++]; g = src[k++];
b = src[k++]; b = src[k++];
a = srcType == SpriteFrameType.RGBA ? src[k++] : (byte)255; a = srcType == SpriteFrameType.Rgba32 ? src[k++] : (byte)255;
break; break;
} }
@@ -163,19 +163,19 @@ namespace OpenRA.Graphics
Color cc; Color cc;
switch (src.Type) switch (src.Type)
{ {
case SpriteFrameType.Indexed: case SpriteFrameType.Indexed8:
{ {
cc = src.Palette[src.Data[k++]]; cc = src.Palette[src.Data[k++]];
break; break;
} }
case SpriteFrameType.RGBA: case SpriteFrameType.Rgba32:
case SpriteFrameType.RGB: case SpriteFrameType.Rgb24:
{ {
var r = src.Data[k++]; var r = src.Data[k++];
var g = src.Data[k++]; var g = src.Data[k++];
var b = src.Data[k++]; var b = src.Data[k++];
var a = src.Type == SpriteFrameType.RGBA ? src.Data[k++] : (byte)255; var a = src.Type == SpriteFrameType.Rgba32 ? src.Data[k++] : (byte)255;
cc = Color.FromArgb(a, r, g, b); cc = Color.FromArgb(a, r, g, b);
break; break;
} }

View File

@@ -779,7 +779,7 @@ namespace OpenRA
} }
} }
var png = new Png(minimapData, SpriteFrameType.BGRA, bitmapWidth, height); var png = new Png(minimapData, SpriteFrameType.Bgra32, bitmapWidth, height);
return png.Save(); return png.Save();
} }

View File

@@ -439,7 +439,7 @@ namespace OpenRA
for (var y = 0; y < destHeight; y++) for (var y = 0; y < destHeight; y++)
Array.Copy(src, 4 * y * srcWidth, dest, 4 * y * destWidth, 4 * destWidth); Array.Copy(src, 4 * y * srcWidth, dest, 4 * y * destWidth, 4 * destWidth);
new Png(dest, SpriteFrameType.BGRA, destWidth, destHeight).Save(path); new Png(dest, SpriteFrameType.Bgra32, destWidth, destHeight).Save(path);
}); });
} }

View File

@@ -77,8 +77,8 @@ namespace OpenRA.Mods.Cnc.Graphics
var size = new Size(su, sv); var size = new Size(su, sv);
var s = sheetBuilder.Allocate(size); var s = sheetBuilder.Allocate(size);
var t = sheetBuilder.Allocate(size); var t = sheetBuilder.Allocate(size);
OpenRA.Graphics.Util.FastCopyIntoChannel(s, colors, SpriteFrameType.Indexed); OpenRA.Graphics.Util.FastCopyIntoChannel(s, colors, SpriteFrameType.Indexed8);
OpenRA.Graphics.Util.FastCopyIntoChannel(t, normals, SpriteFrameType.Indexed); OpenRA.Graphics.Util.FastCopyIntoChannel(t, normals, SpriteFrameType.Indexed8);
// s and t are guaranteed to use the same sheet because // s and t are guaranteed to use the same sheet because
// of the custom voxel sheet allocation implementation // of the custom voxel sheet allocation implementation

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
class ShpD2Frame : ISpriteFrame class ShpD2Frame : ISpriteFrame
{ {
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get; private set; } public Size Size { get; private set; }
public Size FrameSize { get { return Size; } } public Size FrameSize { get { return Size; } }
public float2 Offset { get { return float2.Zero; } } public float2 Offset { get { return float2.Zero; } }

View File

@@ -77,7 +77,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
class ImageHeader : ISpriteFrame class ImageHeader : ISpriteFrame
{ {
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get { return reader.Size; } } public Size Size { get { return reader.Size; } }
public Size FrameSize { get { return reader.Size; } } public Size FrameSize { get { return reader.Size; } }
public float2 Offset { get { return float2.Zero; } } public float2 Offset { get { return float2.Zero; } }

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
{ {
class TmpRAFrame : ISpriteFrame class TmpRAFrame : ISpriteFrame
{ {
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get; private set; } public Size Size { get; private set; }
public Size FrameSize { get; private set; } public Size FrameSize { get; private set; }
public float2 Offset { get { return float2.Zero; } } public float2 Offset { get { return float2.Zero; } }

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
{ {
class TmpTDFrame : ISpriteFrame class TmpTDFrame : ISpriteFrame
{ {
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get; private set; } public Size Size { get; private set; }
public Size FrameSize { get; private set; } public Size FrameSize { get; private set; }
public float2 Offset { get { return float2.Zero; } } public float2 Offset { get { return float2.Zero; } }

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
{ {
readonly TmpTSFrame parent; readonly TmpTSFrame parent;
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get { return parent.Size; } } public Size Size { get { return parent.Size; } }
public Size FrameSize { get { return Size; } } public Size FrameSize { get { return Size; } }
public float2 Offset { get { return parent.Offset; } } public float2 Offset { get { return parent.Offset; } }
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
class TmpTSFrame : ISpriteFrame class TmpTSFrame : ISpriteFrame
{ {
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get; private set; } public Size Size { get; private set; }
public Size FrameSize { get { return Size; } } public Size FrameSize { get { return Size; } }
public float2 Offset { get; private set; } public float2 Offset { get; private set; }

View File

@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Cnc.UtilityCommands
var dest = inputFiles[0].Split('-').First() + ".shp"; var dest = inputFiles[0].Split('-').First() + ".shp";
var frames = inputFiles.Select(a => new Png(File.OpenRead(a))).ToList(); var frames = inputFiles.Select(a => new Png(File.OpenRead(a))).ToList();
if (frames.Any(f => f.Type != SpriteFrameType.Indexed)) if (frames.Any(f => f.Type != SpriteFrameType.Indexed8))
throw new InvalidOperationException("All frames must be paletted"); throw new InvalidOperationException("All frames must be paletted");
var size = new Size(frames[0].Width, frames[0].Height); var size = new Size(frames[0].Width, frames[0].Height);

View File

@@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.SpriteLoaders
{ {
class ShpTSFrame : ISpriteFrame class ShpTSFrame : ISpriteFrame
{ {
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get; private set; } public Size Size { get; private set; }
public Size FrameSize { get; private set; } public Size FrameSize { get; private set; }
public float2 Offset { get; private set; } public float2 Offset { get; private set; }

View File

@@ -78,7 +78,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
frame.Size.Width); frame.Size.Width);
} }
var png = new Png(pngData, SpriteFrameType.Indexed, frameSize.Width, frameSize.Height, palColors); var png = new Png(pngData, SpriteFrameType.Indexed8, frameSize.Width, frameSize.Height, palColors);
png.Save("{0}-{1:D4}.png".F(prefix, count++)); png.Save("{0}-{1:D4}.png".F(prefix, count++));
} }

View File

@@ -22,7 +22,7 @@ namespace OpenRA.Mods.D2k.SpriteLoaders
{ {
class R8Frame : ISpriteFrame class R8Frame : ISpriteFrame
{ {
public SpriteFrameType Type { get { return SpriteFrameType.Indexed; } } public SpriteFrameType Type { get { return SpriteFrameType.Indexed8; } }
public Size Size { get; private set; } public Size Size { get; private set; }
public Size FrameSize { get; private set; } public Size FrameSize { get; private set; }
public float2 Offset { get; private set; } public float2 Offset { get; private set; }