diff --git a/OpenRA.Game/Graphics/MappedImage.cs b/OpenRA.Game/Graphics/MappedImage.cs index eab8024ff1..0e638de4f2 100644 --- a/OpenRA.Game/Graphics/MappedImage.cs +++ b/OpenRA.Game/Graphics/MappedImage.cs @@ -29,7 +29,7 @@ namespace OpenRA.Graphics public Sprite GetImage(Sheet s) { - return new Sprite(s, rect, TextureChannel.Alpha); + return new Sprite(s, rect, TextureChannel.RGBA); } public MiniYaml Save(string defaultSrc) diff --git a/OpenRA.Game/Graphics/SheetBuilder.cs b/OpenRA.Game/Graphics/SheetBuilder.cs index c394951bd3..661c503a2c 100644 --- a/OpenRA.Game/Graphics/SheetBuilder.cs +++ b/OpenRA.Game/Graphics/SheetBuilder.cs @@ -54,7 +54,7 @@ namespace OpenRA.Graphics public SheetBuilder(SheetType t, Func allocateSheet) { - channel = TextureChannel.Red; + channel = t == SheetType.Indexed ? TextureChannel.Red : TextureChannel.RGBA; Type = t; current = allocateSheet(); sheets.Add(current); @@ -121,7 +121,7 @@ namespace OpenRA.Graphics current.ReleaseBuffer(); current = allocateSheet(); sheets.Add(current); - channel = TextureChannel.Red; + channel = Type == SheetType.Indexed ? TextureChannel.Red : TextureChannel.RGBA; } else channel = next.Value; diff --git a/OpenRA.Game/Graphics/Sprite.cs b/OpenRA.Game/Graphics/Sprite.cs index a8aa72c12e..0ee1aa91df 100644 --- a/OpenRA.Game/Graphics/Sprite.cs +++ b/OpenRA.Game/Graphics/Sprite.cs @@ -72,5 +72,6 @@ namespace OpenRA.Graphics Green = 1, Blue = 2, Alpha = 3, + RGBA = 4 } } diff --git a/OpenRA.Mods.Cnc/CncLoadScreen.cs b/OpenRA.Mods.Cnc/CncLoadScreen.cs index 5b034dd64f..f2d3e0cb35 100644 --- a/OpenRA.Mods.Cnc/CncLoadScreen.cs +++ b/OpenRA.Mods.Cnc/CncLoadScreen.cs @@ -51,24 +51,24 @@ namespace OpenRA.Mods.Cnc var res = r.Resolution; bounds = new Rectangle(0, 0, res.Width, res.Height); - borderTop = new Sprite(sheet, new Rectangle(161, 128, 62, 33), TextureChannel.Alpha); - borderBottom = new Sprite(sheet, new Rectangle(161, 223, 62, 33), TextureChannel.Alpha); - borderLeft = new Sprite(sheet, new Rectangle(128, 161, 33, 62), TextureChannel.Alpha); - borderRight = new Sprite(sheet, new Rectangle(223, 161, 33, 62), TextureChannel.Alpha); - cornerTopLeft = new Sprite(sheet, new Rectangle(128, 128, 33, 33), TextureChannel.Alpha); - cornerTopRight = new Sprite(sheet, new Rectangle(223, 128, 33, 33), TextureChannel.Alpha); - cornerBottomLeft = new Sprite(sheet, new Rectangle(128, 223, 33, 33), TextureChannel.Alpha); - cornerBottomRight = new Sprite(sheet, new Rectangle(223, 223, 33, 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.RGBA); + borderLeft = new Sprite(sheet, new Rectangle(128, 161, 33, 62), TextureChannel.RGBA); + borderRight = new Sprite(sheet, new Rectangle(223, 161, 33, 62), TextureChannel.RGBA); + cornerTopLeft = new Sprite(sheet, new Rectangle(128, 128, 33, 33), TextureChannel.RGBA); + cornerTopRight = new Sprite(sheet, new Rectangle(223, 128, 33, 33), TextureChannel.RGBA); + cornerBottomLeft = new Sprite(sheet, new Rectangle(128, 223, 33, 33), TextureChannel.RGBA); + cornerBottomRight = new Sprite(sheet, new Rectangle(223, 223, 33, 33), TextureChannel.RGBA); - nodLogo = new Sprite(sheet, new Rectangle(0, 256, 256, 256), TextureChannel.Alpha); - gdiLogo = new Sprite(sheet, new Rectangle(256, 256, 256, 256), TextureChannel.Alpha); - evaLogo = new Sprite(sheet, new Rectangle(256, 64, 128, 64), 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.RGBA); + evaLogo = new Sprite(sheet, new Rectangle(256, 64, 128, 64), TextureChannel.RGBA); nodPos = new float2(bounds.Width / 2 - 384, bounds.Height / 2 - 128); gdiPos = new float2(bounds.Width / 2 + 128, bounds.Height / 2 - 128); evaPos = new float2(bounds.Width - 43 - 128, 43); - brightBlock = new Sprite(sheet, new Rectangle(320, 0, 16, 35), TextureChannel.Alpha); - dimBlock = new Sprite(sheet, new Rectangle(336, 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.RGBA); versionText = modData.Manifest.Metadata.Version; } diff --git a/OpenRA.Mods.Common/LoadScreens/LogoStripeLoadScreen.cs b/OpenRA.Mods.Common/LoadScreens/LogoStripeLoadScreen.cs index 1d99e422cd..737b1f74a9 100644 --- a/OpenRA.Mods.Common/LoadScreens/LogoStripeLoadScreen.cs +++ b/OpenRA.Mods.Common/LoadScreens/LogoStripeLoadScreen.cs @@ -47,8 +47,8 @@ namespace OpenRA.Mods.Common.LoadScreens using (var stream = modData.DefaultFileSystem.Open(info["Image"])) sheet = new Sheet(SheetType.BGRA, stream); - logo = new Sprite(sheet, new Rectangle(0, 0, 256, 256), TextureChannel.Alpha); - stripe = new Sprite(sheet, new Rectangle(256, 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.RGBA); 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); } diff --git a/OpenRA.Mods.Common/LoadScreens/ModContentLoadScreen.cs b/OpenRA.Mods.Common/LoadScreens/ModContentLoadScreen.cs index fb8081ad81..a481f4117f 100644 --- a/OpenRA.Mods.Common/LoadScreens/ModContentLoadScreen.cs +++ b/OpenRA.Mods.Common/LoadScreens/ModContentLoadScreen.cs @@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.LoadScreens using (var stream = modData.DefaultFileSystem.Open(info["Image"])) { 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); } } diff --git a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs index f8e4c3666a..8beb5224c6 100644 --- a/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ColorMixerWidget.cs @@ -65,7 +65,7 @@ namespace OpenRA.Mods.Common.Widgets 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); - mixerSprite = new Sprite(mixerSprite.Sheet, rect, TextureChannel.Alpha); + mixerSprite = new Sprite(mixerSprite.Sheet, rect, TextureChannel.RGBA); } 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 mixerSheet = new Sheet(SheetType.BGRA, new Size(256, 256)); mixerSheet.GetTexture().SetData(front, 256, 256); - mixerSprite = new Sprite(mixerSheet, rect, TextureChannel.Alpha); + mixerSprite = new Sprite(mixerSheet, rect, TextureChannel.RGBA); GenerateBitmap(); } diff --git a/OpenRA.Mods.Common/Widgets/HueSliderWidget.cs b/OpenRA.Mods.Common/Widgets/HueSliderWidget.cs index fe561b3723..14193da1f7 100644 --- a/OpenRA.Mods.Common/Widgets/HueSliderWidget.cs +++ b/OpenRA.Mods.Common/Widgets/HueSliderWidget.cs @@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Widgets using (var hueBitmap = new Bitmap(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(), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); diff --git a/OpenRA.Mods.Common/Widgets/RadarWidget.cs b/OpenRA.Mods.Common/Widgets/RadarWidget.cs index d4460b223d..9f80cd6fb9 100644 --- a/OpenRA.Mods.Common/Widgets/RadarWidget.cs +++ b/OpenRA.Mods.Common/Widgets/RadarWidget.cs @@ -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)); mapRect = new Rectangle(previewOrigin.X, previewOrigin.Y, (int)(previewScale * b.Width), (int)(previewScale * b.Height)); - terrainSprite = new Sprite(radarSheet, b, TextureChannel.Alpha); - shroudSprite = new Sprite(radarSheet, new Rectangle(b.Location + new Size(previewWidth, 0), b.Size), TextureChannel.Alpha); - actorSprite = new Sprite(radarSheet, new Rectangle(b.Location + new Size(0, previewHeight), b.Size), TextureChannel.Alpha); + terrainSprite = new Sprite(radarSheet, b, TextureChannel.RGBA); + 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.RGBA); } void UpdateTerrainCell(CPos cell) diff --git a/OpenRA.Mods.Common/Widgets/VqaPlayerWidget.cs b/OpenRA.Mods.Common/Widgets/VqaPlayerWidget.cs index c3745aa25e..610c481768 100644 --- a/OpenRA.Mods.Common/Widgets/VqaPlayerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/VqaPlayerWidget.cs @@ -72,7 +72,7 @@ namespace OpenRA.Mods.Common.Widgets 0, video.Width, video.Height), - TextureChannel.Alpha); + TextureChannel.RGBA); var scale = Math.Min((float)RenderBounds.Width / video.Width, (float)RenderBounds.Height / video.Height * AspectRatio); videoOrigin = new float2( @@ -93,7 +93,7 @@ namespace OpenRA.Mods.Common.Widgets var overlaySheet = new Sheet(SheetType.BGRA, new Size(1, Exts.NextPowerOf2(scaledHeight))); 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()