Add support for 32 bit BGRA sprites.

This commit is contained in:
Paul Chote
2020-01-17 15:28:06 +00:00
committed by abcdefg30
parent cdbee49280
commit 1111ce4754
16 changed files with 122 additions and 29 deletions

View File

@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
{
var ts = new TileSet(modData.DefaultFileSystem, t);
Console.WriteLine("Tileset: " + ts.Name);
var sc = new SpriteCache(modData.DefaultFileSystem, modData.SpriteLoaders, new SheetBuilder(SheetType.Indexed));
var sc = new SpriteCache(modData.DefaultFileSystem, modData.SpriteLoaders);
var nodes = MiniYaml.Merge(modData.Manifest.Sequences.Select(s => MiniYaml.FromStream(modData.DefaultFileSystem.Open(s), s)));
foreach (var n in nodes.Where(node => !node.Key.StartsWith(ActorInfo.AbstractActorPrefix, StringComparison.Ordinal)))
modData.SpriteSequenceLoader.ParseSequences(modData, ts, sc, n);

View File

@@ -79,8 +79,16 @@ namespace OpenRA.Mods.Common.UtilityCommands
frame.Size.Width);
}
var png = new Png(pngData, frameSize.Width, frameSize.Height, palColors);
png.Save("{0}-{1:D4}.png".F(prefix, count++));
if (frame.Type == SpriteFrameType.BGRA)
{
var png = new Png(pngData, frameSize.Width, frameSize.Height);
png.Save("{0}-{1:D4}.png".F(prefix, count++));
}
else
{
var png = new Png(pngData, frameSize.Width, frameSize.Height, palColors);
png.Save("{0}-{1:D4}.png".F(prefix, count++));
}
}
Console.WriteLine("Saved {0}-[0..{1}].png", prefix, count - 1);

View File

@@ -44,7 +44,8 @@ namespace OpenRA.Mods.Common.UtilityCommands
sequences.Preload();
var count = 0;
var sb = sequences.SpriteCache.SheetBuilder;
var sb = sequences.SpriteCache.SheetBuilders[SpriteFrameType.Indexed];
foreach (var s in sb.AllSheets)
{
var max = s == sb.Current ? (int)sb.CurrentChannel + 1 : 4;
@@ -52,6 +53,10 @@ namespace OpenRA.Mods.Common.UtilityCommands
s.AsPng((TextureChannel)ChannelMasks[i], palette).Save("{0}.png".F(count++));
}
sb = sequences.SpriteCache.SheetBuilders[SpriteFrameType.BGRA];
foreach (var s in sb.AllSheets)
s.AsPng().Save("{0}.png".F(count++));
Console.WriteLine("Saved [0..{0}].png", count - 1);
}
}