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 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)
{
@@ -43,7 +43,7 @@ namespace OpenRA.FileFormats
s.Position += 8;
var headerParsed = false;
var data = new List<byte>();
Type = SpriteFrameType.RGBA;
Type = SpriteFrameType.Rgba32;
while (true)
{
@@ -69,9 +69,9 @@ namespace OpenRA.FileFormats
var bitDepth = ms.ReadUInt8();
var colorType = (PngColorType)ms.ReadByte();
if (IsPaletted(bitDepth, colorType))
Type = SpriteFrameType.Indexed;
Type = SpriteFrameType.Indexed8;
else if (colorType == PngColorType.Color)
Type = SpriteFrameType.RGB;
Type = SpriteFrameType.Rgb24;
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.");
return;
@@ -181,20 +181,20 @@ namespace OpenRA.FileFormats
switch (type)
{
case SpriteFrameType.Indexed:
case SpriteFrameType.RGBA:
case SpriteFrameType.RGB:
case SpriteFrameType.Indexed8:
case SpriteFrameType.Rgba32:
case SpriteFrameType.Rgb24:
{
// Data is already in a compatible format
Data = data;
if (type == SpriteFrameType.Indexed)
if (type == SpriteFrameType.Indexed8)
Palette = palette;
break;
}
case SpriteFrameType.BGRA:
case SpriteFrameType.BGR:
case SpriteFrameType.Bgra32:
case SpriteFrameType.Bgr24:
{
// Convert to big endian
Data = new byte[data.Length];
@@ -205,7 +205,7 @@ namespace OpenRA.FileFormats
Data[stride * i + 1] = data[stride * i + 1];
Data[stride * i + 2] = data[stride * i + 0];
if (type == SpriteFrameType.BGRA)
if (type == SpriteFrameType.Bgra32)
Data[stride * i + 3] = data[stride * i + 3];
}
@@ -299,8 +299,8 @@ namespace OpenRA.FileFormats
header.Write(IPAddress.HostToNetworkOrder(Height));
header.WriteByte(8); // Bit depth
var colorType = Type == SpriteFrameType.Indexed ? PngColorType.Indexed | PngColorType.Color :
Type == SpriteFrameType.RGB ? PngColorType.Color : PngColorType.Color | PngColorType.Alpha;
var colorType = Type == SpriteFrameType.Indexed8 ? PngColorType.Indexed | PngColorType.Color :
Type == SpriteFrameType.Rgb24 ? PngColorType.Color : PngColorType.Color | PngColorType.Alpha;
header.WriteByte((byte)colorType);
header.WriteByte(0); // Compression

View File

@@ -72,10 +72,10 @@ namespace OpenRA.Graphics
// Resolve indexed data to real colours
var data = f.Data;
var type = f.Type;
if (type == SpriteFrameType.Indexed)
if (type == SpriteFrameType.Indexed8)
{
data = ConvertIndexedToBgra(kv.Key, f, palette);
type = SpriteFrameType.BGRA;
type = SpriteFrameType.Bgra32;
}
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)
{
if (frame.Type != SpriteFrameType.Indexed)
if (frame.Type != SpriteFrameType.Indexed8)
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.

View File

@@ -82,7 +82,7 @@ namespace OpenRA.Graphics
if (Type == SheetType.Indexed)
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)
@@ -103,7 +103,7 @@ namespace OpenRA.Graphics
for (var i = 0; i < Palette.Size; 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()

View File

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

View File

@@ -26,20 +26,20 @@ namespace OpenRA.Graphics
public enum SpriteFrameType
{
// 8 bit index into an external palette
Indexed,
Indexed8,
// 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!)
BGRA,
Bgra32,
// Like BGRA, but without an alpha channel
BGR,
Bgr24,
// 32 bit color in big-endian format, like png
RGBA,
Rgba32,
// Like RGBA, but without an alpha channel
RGB
Rgb24
}
public interface ISpriteLoader

View File

@@ -138,9 +138,9 @@ namespace OpenRA.Graphics
// 1x1px transparent tile
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
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();
}

View File

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

View File

@@ -439,7 +439,7 @@ namespace OpenRA
for (var y = 0; y < destHeight; y++)
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 s = sheetBuilder.Allocate(size);
var t = sheetBuilder.Allocate(size);
OpenRA.Graphics.Util.FastCopyIntoChannel(s, colors, SpriteFrameType.Indexed);
OpenRA.Graphics.Util.FastCopyIntoChannel(t, normals, SpriteFrameType.Indexed);
OpenRA.Graphics.Util.FastCopyIntoChannel(s, colors, SpriteFrameType.Indexed8);
OpenRA.Graphics.Util.FastCopyIntoChannel(t, normals, SpriteFrameType.Indexed8);
// s and t are guaranteed to use the same sheet because
// of the custom voxel sheet allocation implementation

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
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 FrameSize { get { return Size; } }
public float2 Offset { get { return float2.Zero; } }

View File

@@ -77,7 +77,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
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 FrameSize { get { return reader.Size; } }
public float2 Offset { get { return float2.Zero; } }

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
{
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 FrameSize { get; private set; }
public float2 Offset { get { return float2.Zero; } }

View File

@@ -19,7 +19,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
{
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 FrameSize { get; private set; }
public float2 Offset { get { return float2.Zero; } }

View File

@@ -21,7 +21,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
{
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 FrameSize { get { return Size; } }
public float2 Offset { get { return parent.Offset; } }
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.Cnc.SpriteLoaders
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 FrameSize { get { return Size; } }
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 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");
var size = new Size(frames[0].Width, frames[0].Height);

View File

@@ -20,7 +20,7 @@ namespace OpenRA.Mods.Common.SpriteLoaders
{
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 FrameSize { get; private set; }
public float2 Offset { get; private set; }

View File

@@ -78,7 +78,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
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++));
}

View File

@@ -22,7 +22,7 @@ namespace OpenRA.Mods.D2k.SpriteLoaders
{
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 FrameSize { get; private set; }
public float2 Offset { get; private set; }