Add TextureChannel.RGBA for RBGA sprites.
This commit is contained in:
@@ -29,7 +29,7 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
public Sprite GetImage(Sheet s)
|
public Sprite GetImage(Sheet s)
|
||||||
{
|
{
|
||||||
return new Sprite(s, rect, TextureChannel.Alpha);
|
return new Sprite(s, rect, TextureChannel.RGBA);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MiniYaml Save(string defaultSrc)
|
public MiniYaml Save(string defaultSrc)
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
public SheetBuilder(SheetType t, Func<Sheet> allocateSheet)
|
public SheetBuilder(SheetType t, Func<Sheet> allocateSheet)
|
||||||
{
|
{
|
||||||
channel = TextureChannel.Red;
|
channel = t == SheetType.Indexed ? TextureChannel.Red : TextureChannel.RGBA;
|
||||||
Type = t;
|
Type = t;
|
||||||
current = allocateSheet();
|
current = allocateSheet();
|
||||||
sheets.Add(current);
|
sheets.Add(current);
|
||||||
@@ -121,7 +121,7 @@ namespace OpenRA.Graphics
|
|||||||
current.ReleaseBuffer();
|
current.ReleaseBuffer();
|
||||||
current = allocateSheet();
|
current = allocateSheet();
|
||||||
sheets.Add(current);
|
sheets.Add(current);
|
||||||
channel = TextureChannel.Red;
|
channel = Type == SheetType.Indexed ? TextureChannel.Red : TextureChannel.RGBA;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
channel = next.Value;
|
channel = next.Value;
|
||||||
|
|||||||
@@ -72,5 +72,6 @@ namespace OpenRA.Graphics
|
|||||||
Green = 1,
|
Green = 1,
|
||||||
Blue = 2,
|
Blue = 2,
|
||||||
Alpha = 3,
|
Alpha = 3,
|
||||||
|
RGBA = 4
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,24 +51,24 @@ namespace OpenRA.Mods.Cnc
|
|||||||
var res = r.Resolution;
|
var res = r.Resolution;
|
||||||
bounds = new Rectangle(0, 0, res.Width, res.Height);
|
bounds = new Rectangle(0, 0, res.Width, res.Height);
|
||||||
|
|
||||||
borderTop = new Sprite(sheet, new Rectangle(161, 128, 62, 33), TextureChannel.Alpha);
|
borderTop = new Sprite(sheet, new Rectangle(161, 128, 62, 33), TextureChannel.RGBA);
|
||||||
borderBottom = new Sprite(sheet, new Rectangle(161, 223, 62, 33), TextureChannel.Alpha);
|
borderBottom = new Sprite(sheet, new Rectangle(161, 223, 62, 33), TextureChannel.RGBA);
|
||||||
borderLeft = new Sprite(sheet, new Rectangle(128, 161, 33, 62), TextureChannel.Alpha);
|
borderLeft = new Sprite(sheet, new Rectangle(128, 161, 33, 62), TextureChannel.RGBA);
|
||||||
borderRight = new Sprite(sheet, new Rectangle(223, 161, 33, 62), TextureChannel.Alpha);
|
borderRight = new Sprite(sheet, new Rectangle(223, 161, 33, 62), TextureChannel.RGBA);
|
||||||
cornerTopLeft = new Sprite(sheet, new Rectangle(128, 128, 33, 33), TextureChannel.Alpha);
|
cornerTopLeft = new Sprite(sheet, new Rectangle(128, 128, 33, 33), TextureChannel.RGBA);
|
||||||
cornerTopRight = new Sprite(sheet, new Rectangle(223, 128, 33, 33), TextureChannel.Alpha);
|
cornerTopRight = new Sprite(sheet, new Rectangle(223, 128, 33, 33), TextureChannel.RGBA);
|
||||||
cornerBottomLeft = new Sprite(sheet, new Rectangle(128, 223, 33, 33), TextureChannel.Alpha);
|
cornerBottomLeft = new Sprite(sheet, new Rectangle(128, 223, 33, 33), TextureChannel.RGBA);
|
||||||
cornerBottomRight = new Sprite(sheet, new Rectangle(223, 223, 33, 33), TextureChannel.Alpha);
|
cornerBottomRight = new Sprite(sheet, new Rectangle(223, 223, 33, 33), TextureChannel.RGBA);
|
||||||
|
|
||||||
nodLogo = new Sprite(sheet, new Rectangle(0, 256, 256, 256), TextureChannel.Alpha);
|
nodLogo = new Sprite(sheet, new Rectangle(0, 256, 256, 256), TextureChannel.RGBA);
|
||||||
gdiLogo = new Sprite(sheet, new Rectangle(256, 256, 256, 256), TextureChannel.Alpha);
|
gdiLogo = new Sprite(sheet, new Rectangle(256, 256, 256, 256), TextureChannel.RGBA);
|
||||||
evaLogo = new Sprite(sheet, new Rectangle(256, 64, 128, 64), TextureChannel.Alpha);
|
evaLogo = new Sprite(sheet, new Rectangle(256, 64, 128, 64), TextureChannel.RGBA);
|
||||||
nodPos = new float2(bounds.Width / 2 - 384, bounds.Height / 2 - 128);
|
nodPos = new float2(bounds.Width / 2 - 384, bounds.Height / 2 - 128);
|
||||||
gdiPos = new float2(bounds.Width / 2 + 128, bounds.Height / 2 - 128);
|
gdiPos = new float2(bounds.Width / 2 + 128, bounds.Height / 2 - 128);
|
||||||
evaPos = new float2(bounds.Width - 43 - 128, 43);
|
evaPos = new float2(bounds.Width - 43 - 128, 43);
|
||||||
|
|
||||||
brightBlock = new Sprite(sheet, new Rectangle(320, 0, 16, 35), TextureChannel.Alpha);
|
brightBlock = new Sprite(sheet, new Rectangle(320, 0, 16, 35), TextureChannel.RGBA);
|
||||||
dimBlock = new Sprite(sheet, new Rectangle(336, 0, 16, 35), TextureChannel.Alpha);
|
dimBlock = new Sprite(sheet, new Rectangle(336, 0, 16, 35), TextureChannel.RGBA);
|
||||||
|
|
||||||
versionText = modData.Manifest.Metadata.Version;
|
versionText = modData.Manifest.Metadata.Version;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,8 +47,8 @@ namespace OpenRA.Mods.Common.LoadScreens
|
|||||||
using (var stream = modData.DefaultFileSystem.Open(info["Image"]))
|
using (var stream = modData.DefaultFileSystem.Open(info["Image"]))
|
||||||
sheet = new Sheet(SheetType.BGRA, stream);
|
sheet = new Sheet(SheetType.BGRA, stream);
|
||||||
|
|
||||||
logo = new Sprite(sheet, new Rectangle(0, 0, 256, 256), TextureChannel.Alpha);
|
logo = new Sprite(sheet, new Rectangle(0, 0, 256, 256), TextureChannel.RGBA);
|
||||||
stripe = new Sprite(sheet, new Rectangle(256, 0, 256, 256), TextureChannel.Alpha);
|
stripe = new Sprite(sheet, new Rectangle(256, 0, 256, 256), TextureChannel.RGBA);
|
||||||
stripeRect = new Rectangle(0, r.Resolution.Height / 2 - 128, r.Resolution.Width, 256);
|
stripeRect = new Rectangle(0, r.Resolution.Height / 2 - 128, r.Resolution.Width, 256);
|
||||||
logoPos = new float2(r.Resolution.Width / 2 - 128, r.Resolution.Height / 2 - 128);
|
logoPos = new float2(r.Resolution.Width / 2 - 128, r.Resolution.Height / 2 - 128);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.LoadScreens
|
|||||||
using (var stream = modData.DefaultFileSystem.Open(info["Image"]))
|
using (var stream = modData.DefaultFileSystem.Open(info["Image"]))
|
||||||
{
|
{
|
||||||
var sheet = new Sheet(SheetType.BGRA, stream);
|
var sheet = new Sheet(SheetType.BGRA, stream);
|
||||||
sprite = new Sprite(sheet, new Rectangle(0, 0, 1024, 480), TextureChannel.Alpha);
|
sprite = new Sprite(sheet, new Rectangle(0, 0, 1024, 480), TextureChannel.RGBA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
vRange[1] = vMax - VTrim;
|
vRange[1] = vMax - VTrim;
|
||||||
|
|
||||||
var rect = new Rectangle((int)(255 * sRange[0]), (int)(255 * (1 - vRange[1])), (int)(255 * (sRange[1] - sRange[0])) + 1, (int)(255 * (vRange[1] - vRange[0])) + 1);
|
var rect = new Rectangle((int)(255 * sRange[0]), (int)(255 * (1 - vRange[1])), (int)(255 * (sRange[1] - sRange[0])) + 1, (int)(255 * (vRange[1] - vRange[0])) + 1);
|
||||||
mixerSprite = new Sprite(mixerSprite.Sheet, rect, TextureChannel.Alpha);
|
mixerSprite = new Sprite(mixerSprite.Sheet, rect, TextureChannel.RGBA);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Initialize(WidgetArgs args)
|
public override void Initialize(WidgetArgs args)
|
||||||
@@ -84,7 +84,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
var rect = new Rectangle((int)(255 * sRange[0]), (int)(255 * (1 - vRange[1])), (int)(255 * (sRange[1] - sRange[0])) + 1, (int)(255 * (vRange[1] - vRange[0])) + 1);
|
var rect = new Rectangle((int)(255 * sRange[0]), (int)(255 * (1 - vRange[1])), (int)(255 * (sRange[1] - sRange[0])) + 1, (int)(255 * (vRange[1] - vRange[0])) + 1);
|
||||||
var mixerSheet = new Sheet(SheetType.BGRA, new Size(256, 256));
|
var mixerSheet = new Sheet(SheetType.BGRA, new Size(256, 256));
|
||||||
mixerSheet.GetTexture().SetData(front, 256, 256);
|
mixerSheet.GetTexture().SetData(front, 256, 256);
|
||||||
mixerSprite = new Sprite(mixerSheet, rect, TextureChannel.Alpha);
|
mixerSprite = new Sprite(mixerSheet, rect, TextureChannel.RGBA);
|
||||||
GenerateBitmap();
|
GenerateBitmap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
using (var hueBitmap = new Bitmap(256, 256))
|
using (var hueBitmap = new Bitmap(256, 256))
|
||||||
{
|
{
|
||||||
var hueSheet = new Sheet(SheetType.BGRA, new Size(256, 256));
|
var hueSheet = new Sheet(SheetType.BGRA, new Size(256, 256));
|
||||||
hueSprite = new Sprite(hueSheet, new Rectangle(0, 0, 256, 1), TextureChannel.Alpha);
|
hueSprite = new Sprite(hueSheet, new Rectangle(0, 0, 256, 1), TextureChannel.RGBA);
|
||||||
|
|
||||||
var bitmapData = hueBitmap.LockBits(hueBitmap.Bounds(),
|
var bitmapData = hueBitmap.LockBits(hueBitmap.Bounds(),
|
||||||
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
|
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
|
||||||
|
|||||||
@@ -125,9 +125,9 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
previewOrigin = new int2((int)((rb.Width - previewScale * b.Width) / 2), (int)((rb.Height - previewScale * b.Height) / 2));
|
previewOrigin = new int2((int)((rb.Width - previewScale * b.Width) / 2), (int)((rb.Height - previewScale * b.Height) / 2));
|
||||||
mapRect = new Rectangle(previewOrigin.X, previewOrigin.Y, (int)(previewScale * b.Width), (int)(previewScale * b.Height));
|
mapRect = new Rectangle(previewOrigin.X, previewOrigin.Y, (int)(previewScale * b.Width), (int)(previewScale * b.Height));
|
||||||
|
|
||||||
terrainSprite = new Sprite(radarSheet, b, TextureChannel.Alpha);
|
terrainSprite = new Sprite(radarSheet, b, TextureChannel.RGBA);
|
||||||
shroudSprite = new Sprite(radarSheet, new Rectangle(b.Location + new Size(previewWidth, 0), b.Size), TextureChannel.Alpha);
|
shroudSprite = new Sprite(radarSheet, new Rectangle(b.Location + new Size(previewWidth, 0), b.Size), TextureChannel.RGBA);
|
||||||
actorSprite = new Sprite(radarSheet, new Rectangle(b.Location + new Size(0, previewHeight), b.Size), TextureChannel.Alpha);
|
actorSprite = new Sprite(radarSheet, new Rectangle(b.Location + new Size(0, previewHeight), b.Size), TextureChannel.RGBA);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateTerrainCell(CPos cell)
|
void UpdateTerrainCell(CPos cell)
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
0,
|
0,
|
||||||
video.Width,
|
video.Width,
|
||||||
video.Height),
|
video.Height),
|
||||||
TextureChannel.Alpha);
|
TextureChannel.RGBA);
|
||||||
|
|
||||||
var scale = Math.Min((float)RenderBounds.Width / video.Width, (float)RenderBounds.Height / video.Height * AspectRatio);
|
var scale = Math.Min((float)RenderBounds.Width / video.Width, (float)RenderBounds.Height / video.Height * AspectRatio);
|
||||||
videoOrigin = new float2(
|
videoOrigin = new float2(
|
||||||
@@ -93,7 +93,7 @@ namespace OpenRA.Mods.Common.Widgets
|
|||||||
|
|
||||||
var overlaySheet = new Sheet(SheetType.BGRA, new Size(1, Exts.NextPowerOf2(scaledHeight)));
|
var overlaySheet = new Sheet(SheetType.BGRA, new Size(1, Exts.NextPowerOf2(scaledHeight)));
|
||||||
overlaySheet.GetTexture().SetData(overlay);
|
overlaySheet.GetTexture().SetData(overlay);
|
||||||
overlaySprite = new Sprite(overlaySheet, new Rectangle(0, 0, 1, scaledHeight), TextureChannel.Alpha);
|
overlaySprite = new Sprite(overlaySheet, new Rectangle(0, 0, 1, scaledHeight), TextureChannel.RGBA);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw()
|
public override void Draw()
|
||||||
|
|||||||
Reference in New Issue
Block a user