diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index d6f550b6ee..a19487246b 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -118,7 +118,7 @@ namespace OpenRA Manifest = new Manifest(LobbyInfo.GlobalSettings.Mods); Timer.Time("manifest: {0}"); LoadModAssemblies(Manifest); - SheetBuilder.Initialize(Renderer); + SheetBuilder.Initialize(); LoadModPackages(); Timer.Time("load assemblies, packages: {0}"); packageChangePending = false; @@ -129,7 +129,7 @@ namespace OpenRA static void LoadMap(string mapName) { Timer.Time("----LoadMap"); - SheetBuilder.Initialize(Renderer); + SheetBuilder.Initialize(); Manifest = new Manifest(LobbyInfo.GlobalSettings.Mods); Timer.Time("manifest: {0}"); diff --git a/OpenRA.Game/Graphics/ChromeProvider.cs b/OpenRA.Game/Graphics/ChromeProvider.cs index 0a8f79485f..29322f8053 100644 --- a/OpenRA.Game/Graphics/ChromeProvider.cs +++ b/OpenRA.Game/Graphics/ChromeProvider.cs @@ -52,7 +52,7 @@ namespace OpenRA.Graphics collections.Add(elementName, images); } - public static Sprite GetImage(Renderer renderer, string collection, string image) + public static Sprite GetImage(string collection, string image) { // Cached sprite if (cachedSprites.ContainsKey(collection) && cachedSprites[collection].ContainsKey(image)) @@ -72,14 +72,14 @@ namespace OpenRA.Graphics sheet = cachedSheets[mi.Src]; else { - sheet = new Sheet(renderer, mi.Src); + sheet = new Sheet(mi.Src); cachedSheets.Add(mi.Src, sheet); } // Cache the sprite if (!cachedSprites.ContainsKey(collection)) cachedSprites.Add(collection, new Dictionary()); - cachedSprites[collection].Add(image, mi.GetImage(renderer, sheet)); + cachedSprites[collection].Add(image, mi.GetImage(sheet)); return cachedSprites[collection][image]; } diff --git a/OpenRA.Game/Graphics/HardwarePalette.cs b/OpenRA.Game/Graphics/HardwarePalette.cs index aea58a4e91..083cd1ab10 100644 --- a/OpenRA.Game/Graphics/HardwarePalette.cs +++ b/OpenRA.Game/Graphics/HardwarePalette.cs @@ -25,8 +25,8 @@ namespace OpenRA.Graphics // We should probably try to fix this somehow static Dictionary palettes; static Dictionary indices; - public HardwarePalette(Renderer renderer, Map map) - : base(renderer,new Size(256, MaxPalettes)) + public HardwarePalette(Map map) + : base(new Size(256, MaxPalettes)) { palettes = new Dictionary(); indices = new Dictionary(); diff --git a/OpenRA.Game/Graphics/MappedImage.cs b/OpenRA.Game/Graphics/MappedImage.cs index f676a580a7..0fa842d3a2 100644 --- a/OpenRA.Game/Graphics/MappedImage.cs +++ b/OpenRA.Game/Graphics/MappedImage.cs @@ -33,7 +33,7 @@ namespace OpenRA.Graphics int.Parse(e.GetAttribute("height"))); } - public Sprite GetImage(Renderer r, Sheet s) + public Sprite GetImage(Sheet s) { return new Sprite(s, rect, TextureChannel.Alpha); } diff --git a/OpenRA.Game/Graphics/Minimap.cs b/OpenRA.Game/Graphics/Minimap.cs index 7c636a38e6..4f9069223d 100644 --- a/OpenRA.Game/Graphics/Minimap.cs +++ b/OpenRA.Game/Graphics/Minimap.cs @@ -21,18 +21,16 @@ namespace OpenRA.Graphics { readonly World world; Sheet sheet; - SpriteRenderer rgbaRenderer; Sprite sprite; Bitmap terrain, customLayer; Rectangle bounds; const int alpha = 230; - public Minimap(World world, Renderer r) + public Minimap(World world) { this.world = world; - sheet = new Sheet(r, new Size(world.Map.MapSize.X, world.Map.MapSize.Y)); - rgbaRenderer = r.RgbaSpriteRenderer; + sheet = new Sheet( new Size(world.Map.MapSize.X, world.Map.MapSize.Y)); var size = Math.Max(world.Map.Width, world.Map.Height); var dw = (size - world.Map.Width) / 2; var dh = (size - world.Map.Height) / 2; @@ -135,9 +133,9 @@ namespace OpenRA.Graphics public void Draw(RectangleF rect) { - rgbaRenderer.DrawSprite(sprite, + Game.Renderer.RgbaSpriteRenderer.DrawSprite(sprite, new float2(rect.X, rect.Y), "chrome", new float2(rect.Width, rect.Height)); - rgbaRenderer.Flush(); + Game.Renderer.RgbaSpriteRenderer.Flush(); } int2 CellToMinimapPixel(RectangleF viewRect, int2 p) diff --git a/OpenRA.Game/Graphics/Renderer.cs b/OpenRA.Game/Graphics/Renderer.cs index 3db94d0a9c..b86bd5c5e4 100644 --- a/OpenRA.Game/Graphics/Renderer.cs +++ b/OpenRA.Game/Graphics/Renderer.cs @@ -54,9 +54,9 @@ namespace OpenRA.Graphics WorldSpriteRenderer = new SpriteRenderer( this, WorldSpriteShader ); LineRenderer = new LineRenderer(this); - RegularFont = new SpriteFont(this, "FreeSans.ttf", 14); - BoldFont = new SpriteFont(this, "FreeSansBold.ttf", 14); - TitleFont = new SpriteFont(this, "titles.ttf", 48); + RegularFont = new SpriteFont("FreeSans.ttf", 14); + BoldFont = new SpriteFont("FreeSansBold.ttf", 14); + TitleFont = new SpriteFont("titles.ttf", 48); } IGraphicsDevice CreateDevice( Assembly rendererDll, int width, int height, WindowMode window, bool vsync ) diff --git a/OpenRA.Game/Graphics/Sheet.cs b/OpenRA.Game/Graphics/Sheet.cs index dd9e86509c..0d1026576b 100644 --- a/OpenRA.Game/Graphics/Sheet.cs +++ b/OpenRA.Game/Graphics/Sheet.cs @@ -16,20 +16,17 @@ namespace OpenRA.Graphics { public class Sheet { - readonly Renderer renderer; protected readonly Bitmap bitmap; ITexture texture; bool dirty; - internal Sheet(Renderer renderer, Size size) + internal Sheet(Size size) { - this.renderer = renderer; this.bitmap = new Bitmap(size.Width, size.Height); } - internal Sheet(Renderer renderer, string filename) + internal Sheet(string filename) { - this.renderer = renderer; this.bitmap = (Bitmap)Image.FromStream(FileSystem.Open(filename)); } @@ -38,7 +35,7 @@ namespace OpenRA.Graphics get { if (texture == null) - texture = renderer.Device.CreateTexture(bitmap); + texture = Game.Renderer.Device.CreateTexture(bitmap); if (dirty) { diff --git a/OpenRA.Game/Graphics/SheetBuilder.cs b/OpenRA.Game/Graphics/SheetBuilder.cs index e5cb2e0b6e..e83b2b30b2 100644 --- a/OpenRA.Game/Graphics/SheetBuilder.cs +++ b/OpenRA.Game/Graphics/SheetBuilder.cs @@ -15,14 +15,13 @@ namespace OpenRA.Graphics public class SheetBuilder { public static SheetBuilder SharedInstance; - internal static void Initialize(Renderer r) + internal static void Initialize() { - SharedInstance = new SheetBuilder(r, TextureChannel.Red); + SharedInstance = new SheetBuilder(TextureChannel.Red); } - internal SheetBuilder(Renderer r, TextureChannel ch) + internal SheetBuilder(TextureChannel ch) { - renderer = r; current = null; rowHeight = 0; channel = null; @@ -45,9 +44,8 @@ namespace OpenRA.Graphics return Add(data, size); } - Sheet NewSheet() { return new Sheet( renderer, new Size( Renderer.SheetSize, Renderer.SheetSize ) ); } - - Renderer renderer; + Sheet NewSheet() { return new Sheet(new Size( Renderer.SheetSize, Renderer.SheetSize ) ); } + Sheet current = null; int rowHeight = 0; Point p; diff --git a/OpenRA.Game/Graphics/SpriteFont.cs b/OpenRA.Game/Graphics/SpriteFont.cs index e2a573aef8..026c29ec80 100644 --- a/OpenRA.Game/Graphics/SpriteFont.cs +++ b/OpenRA.Game/Graphics/SpriteFont.cs @@ -19,12 +19,10 @@ namespace OpenRA.Graphics { public class SpriteFont { - Renderer renderer; int size; - public SpriteFont(Renderer r, string name, int size) + public SpriteFont(string name, int size) { - this.renderer = r; this.size = size; if (0 != FT.FT_New_Face(library, name, 0, out face)) @@ -34,7 +32,7 @@ namespace OpenRA.Graphics glyphs = new Cache, GlyphInfo>(CreateGlyph); // setup a 1-channel SheetBuilder for our private use - if (builder == null) builder = new SheetBuilder(r, TextureChannel.Alpha); + if (builder == null) builder = new SheetBuilder(TextureChannel.Alpha); PrecacheColor(Color.White); PrecacheColor(Color.Red); @@ -63,7 +61,7 @@ namespace OpenRA.Graphics } var g = glyphs[Pair.New(s, c)]; - renderer.RgbaSpriteRenderer.DrawSprite(g.Sprite, + Game.Renderer.RgbaSpriteRenderer.DrawSprite(g.Sprite, new float2( (int)Math.Round(p.X + g.Offset.X, 0), p.Y + g.Offset.Y), diff --git a/OpenRA.Game/Graphics/TerrainRenderer.cs b/OpenRA.Game/Graphics/TerrainRenderer.cs index d4fc8f8dcb..63289a0cd6 100644 --- a/OpenRA.Game/Graphics/TerrainRenderer.cs +++ b/OpenRA.Game/Graphics/TerrainRenderer.cs @@ -23,13 +23,11 @@ namespace OpenRA.Graphics Sheet terrainSheet; World world; - Renderer renderer; Map map; - public TerrainRenderer(World world, Renderer renderer, WorldRenderer wr) + public TerrainRenderer(World world, WorldRenderer wr) { this.world = world; - this.renderer = renderer; this.map = world.Map; Size tileSize = new Size( Game.CellSize, Game.CellSize ); @@ -58,10 +56,10 @@ namespace OpenRA.Graphics throw new InvalidOperationException("Terrain sprites span multiple sheets"); } - vertexBuffer = renderer.Device.CreateVertexBuffer( vertices.Length ); + vertexBuffer = Game.Renderer.Device.CreateVertexBuffer( vertices.Length ); vertexBuffer.SetData( vertices ); - indexBuffer = renderer.Device.CreateIndexBuffer( indices.Length ); + indexBuffer = Game.Renderer.Device.CreateIndexBuffer( indices.Length ); indexBuffer.SetData( indices ); } @@ -93,12 +91,12 @@ namespace OpenRA.Graphics if( lastRow < firstRow ) lastRow = firstRow; - renderer.SpriteShader.SetValue( "DiffuseTexture", terrainSheet.Texture ); - renderer.SpriteShader.Render(() => - renderer.DrawBatch(vertexBuffer, indexBuffer, + Game.Renderer.SpriteShader.SetValue( "DiffuseTexture", terrainSheet.Texture ); + Game.Renderer.SpriteShader.Render(() => + Game.Renderer.DrawBatch(vertexBuffer, indexBuffer, new Range(verticesPerRow * firstRow, verticesPerRow * lastRow), new Range(indicesPerRow * firstRow, indicesPerRow * lastRow), - PrimitiveType.TriangleList, renderer.SpriteShader)); + PrimitiveType.TriangleList, Game.Renderer.SpriteShader)); foreach (var r in world.WorldActor.traits.WithInterface()) r.Render(); diff --git a/OpenRA.Game/Graphics/WorldRenderer.cs b/OpenRA.Game/Graphics/WorldRenderer.cs index 91f2c35ee7..3be2eef74b 100644 --- a/OpenRA.Game/Graphics/WorldRenderer.cs +++ b/OpenRA.Game/Graphics/WorldRenderer.cs @@ -28,9 +28,9 @@ namespace OpenRA.Graphics { this.world = world; - terrainRenderer = new TerrainRenderer(world, Game.Renderer, this); - uiOverlay = new UiOverlay(Game.Renderer.SpriteRenderer); - palette = new HardwarePalette(Game.Renderer, world.Map); + terrainRenderer = new TerrainRenderer(world, this); + uiOverlay = new UiOverlay(); + palette = new HardwarePalette(world.Map); } public void DrawLine(float2 start, float2 end, Color startColor, Color endColor) @@ -134,7 +134,7 @@ namespace OpenRA.Graphics Game.controller.orderGenerator.Render(world); if (world.LocalPlayer != null) - world.LocalPlayer.Shroud.Draw(Game.Renderer.SpriteRenderer); + world.LocalPlayer.Shroud.Draw(); Game.Renderer.SpriteRenderer.Flush(); diff --git a/OpenRA.Game/ShroudRenderer.cs b/OpenRA.Game/ShroudRenderer.cs index 841a1ebf5c..a91104dca5 100644 --- a/OpenRA.Game/ShroudRenderer.cs +++ b/OpenRA.Game/ShroudRenderer.cs @@ -122,7 +122,7 @@ namespace OpenRA return shadowBits[SpecialShroudTiles[u ^ uSides][v]]; } - internal void Draw(SpriteRenderer r) + internal void Draw() { if (disabled) return; @@ -157,21 +157,21 @@ namespace OpenRA if (starti != i) { - r.DrawSprite(fogSprites[starti, j], + Game.Renderer.SpriteRenderer.DrawSprite(fogSprites[starti, j], Game.CellSize * new float2(starti, j), shroudPalette, new float2(Game.CellSize * (i - starti), Game.CellSize)); starti = i+1; } - r.DrawSprite(fogSprites[i, j], + Game.Renderer.SpriteRenderer.DrawSprite(fogSprites[i, j], Game.CellSize * new float2(i, j), shroudPalette); starti = i+1; } if (starti < maxx) - r.DrawSprite(fogSprites[starti, j], + Game.Renderer.SpriteRenderer.DrawSprite(fogSprites[starti, j], Game.CellSize * new float2(starti, j), shroudPalette, new float2(Game.CellSize * (maxx - starti), Game.CellSize)); @@ -189,21 +189,21 @@ namespace OpenRA if (starti != i) { - r.DrawSprite(sprites[starti, j], + Game.Renderer.SpriteRenderer.DrawSprite(sprites[starti, j], Game.CellSize * new float2(starti, j), shroudPalette, new float2(Game.CellSize * (i - starti), Game.CellSize)); starti = i + 1; } - r.DrawSprite(sprites[i, j], + Game.Renderer.SpriteRenderer.DrawSprite(sprites[i, j], Game.CellSize * new float2(i, j), shroudPalette); starti = i + 1; } if (starti < maxx) - r.DrawSprite(sprites[starti, j], + Game.Renderer.SpriteRenderer.DrawSprite(sprites[starti, j], Game.CellSize * new float2(starti, j), shroudPalette, new float2(Game.CellSize * (maxx - starti), Game.CellSize)); diff --git a/OpenRA.Game/Traits/World/BibLayer.cs b/OpenRA.Game/Traits/World/BibLayer.cs index 5baa57a91d..65d51e3428 100644 --- a/OpenRA.Game/Traits/World/BibLayer.cs +++ b/OpenRA.Game/Traits/World/BibLayer.cs @@ -25,7 +25,6 @@ namespace OpenRA.Traits class BibLayer: IRenderOverlay, ILoadWorldHook { - SpriteRenderer spriteRenderer; World world; BibLayerInfo info; @@ -34,7 +33,6 @@ namespace OpenRA.Traits public BibLayer(Actor self, BibLayerInfo info) { - spriteRenderer = Game.Renderer.SpriteRenderer; this.info = info; bibSprites = info.BibTypes.Select(x => SpriteSheetBuilder.LoadAllSprites(x)).ToArray(); @@ -90,7 +88,7 @@ namespace OpenRA.Traits var t = new int2(x, y); if (world.LocalPlayer != null && !world.LocalPlayer.Shroud.IsExplored(t) || tiles[x,y].type == 0) continue; - spriteRenderer.DrawSprite(bibSprites[tiles[x, y].type - 1][tiles[x, y].image], + Game.Renderer.SpriteRenderer.DrawSprite(bibSprites[tiles[x, y].type - 1][tiles[x, y].image], Game.CellSize * t, "terrain"); } } diff --git a/OpenRA.Game/Traits/World/ResourceLayer.cs b/OpenRA.Game/Traits/World/ResourceLayer.cs index 347da8f028..5a8fcd37a9 100644 --- a/OpenRA.Game/Traits/World/ResourceLayer.cs +++ b/OpenRA.Game/Traits/World/ResourceLayer.cs @@ -18,17 +18,11 @@ namespace OpenRA.Traits public class ResourceLayerInfo : TraitInfo { } public class ResourceLayer: IRenderOverlay, ILoadWorldHook, ITerrainTypeModifier - { - SpriteRenderer sr; + { World world; public ResourceType[] resourceTypes; CellContents[,] content; - - public ResourceLayer() - { - sr = Game.Renderer.SpriteRenderer; - } public void Render() { @@ -50,7 +44,7 @@ namespace OpenRA.Traits var c = content[x, y]; if (c.image != null) - sr.DrawSprite(c.image[c.density], + Game.Renderer.SpriteRenderer.DrawSprite(c.image[c.density], Game.CellSize * new int2(x, y), c.type.info.Palette); } diff --git a/OpenRA.Game/Traits/World/SmudgeLayer.cs b/OpenRA.Game/Traits/World/SmudgeLayer.cs index 7ed86588c7..0f15213e04 100644 --- a/OpenRA.Game/Traits/World/SmudgeLayer.cs +++ b/OpenRA.Game/Traits/World/SmudgeLayer.cs @@ -27,14 +27,12 @@ namespace OpenRA.Traits public class SmudgeLayer: IRenderOverlay, ILoadWorldHook { public SmudgeLayerInfo Info; - SpriteRenderer spriteRenderer; TileReference[,] tiles; Sprite[][] smudgeSprites; World world; public SmudgeLayer(SmudgeLayerInfo info) { - spriteRenderer = Game.Renderer.SpriteRenderer; this.Info = info; smudgeSprites = Info.Types.Select(x => SpriteSheetBuilder.LoadAllSprites(x)).ToArray(); } @@ -86,7 +84,7 @@ namespace OpenRA.Traits var t = new int2(x, y); if (world.LocalPlayer != null && !world.LocalPlayer.Shroud.IsExplored(t) || tiles[x,y].type == 0) continue; - spriteRenderer.DrawSprite(smudgeSprites[tiles[x,y].type- 1][tiles[x,y].image], + Game.Renderer.SpriteRenderer.DrawSprite(smudgeSprites[tiles[x,y].type- 1][tiles[x,y].image], Game.CellSize * t, "terrain"); } } diff --git a/OpenRA.Game/UiOverlay.cs b/OpenRA.Game/UiOverlay.cs index 89662e47a8..796a6eaff9 100644 --- a/OpenRA.Game/UiOverlay.cs +++ b/OpenRA.Game/UiOverlay.cs @@ -19,13 +19,10 @@ namespace OpenRA { class UiOverlay { - SpriteRenderer spriteRenderer; Sprite buildOk, buildBlocked, unitDebug; - public UiOverlay(SpriteRenderer spriteRenderer) + public UiOverlay() { - this.spriteRenderer = spriteRenderer; - buildOk = SynthesizeTile(0x0f); buildBlocked = SynthesizeTile(0x08); unitDebug = SynthesizeTile(0x04); @@ -51,7 +48,7 @@ namespace OpenRA for (var i = world.Map.Bounds.Left; i < world.Map.Bounds.Right; i++) for (var j = world.Map.Bounds.Top; j < world.Map.Bounds.Bottom; j++) if (uim.GetUnitsAt(new int2(i, j)).Any()) - spriteRenderer.DrawSprite(unitDebug, Game.CellSize * new float2(i, j), "terrain"); + Game.Renderer.SpriteRenderer.DrawSprite(unitDebug, Game.CellSize * new float2(i, j), "terrain"); } } @@ -65,7 +62,7 @@ namespace OpenRA if (Rules.Info[name].Traits.Contains()) { foreach (var t in LineBuildUtils.GetLineBuildCells(world, topLeft, name, bi)) - spriteRenderer.DrawSprite(world.IsCloseEnoughToBase(world.LocalPlayer, name, bi, t) + Game.Renderer.SpriteRenderer.DrawSprite(world.IsCloseEnoughToBase(world.LocalPlayer, name, bi, t) ? buildOk : buildBlocked, Game.CellSize * t, "terrain"); } else @@ -73,11 +70,11 @@ namespace OpenRA var res = world.WorldActor.traits.Get(); var isCloseEnough = world.IsCloseEnoughToBase(world.LocalPlayer, name, bi, topLeft); foreach (var t in Footprint.Tiles(name, bi, topLeft)) - spriteRenderer.DrawSprite((isCloseEnough && world.IsCellBuildable(t, bi.WaterBound) && res.GetResource(t) == null) + Game.Renderer.SpriteRenderer.DrawSprite((isCloseEnough && world.IsCellBuildable(t, bi.WaterBound) && res.GetResource(t) == null) ? buildOk : buildBlocked, Game.CellSize * t, "terrain"); } - spriteRenderer.Flush(); + Game.Renderer.SpriteRenderer.Flush(); } } diff --git a/OpenRA.Game/Widgets/BuildPaletteWidget.cs b/OpenRA.Game/Widgets/BuildPaletteWidget.cs index 4b44a561ec..7e9095db75 100644 --- a/OpenRA.Game/Widgets/BuildPaletteWidget.cs +++ b/OpenRA.Game/Widgets/BuildPaletteWidget.cs @@ -201,13 +201,12 @@ namespace OpenRA.Widgets var numActualRows = Math.Max((allBuildables.Length + Columns - 1) / Columns, Rows); // Palette Background - WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9)); + WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "top"), new float2(origin.X - 9, origin.Y - 9)); for (var w = 0; w < numActualRows; w++) WidgetUtils.DrawRGBA( - ChromeProvider.GetImage(Game.Renderer, paletteCollection, - "bg-" + (w % 4).ToString()), + ChromeProvider.GetImage(paletteCollection, "bg-" + (w % 4).ToString()), new float2(origin.X - 9, origin.Y + 48 * w)); - WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "bottom"), + WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "bottom"), new float2(origin.X - 9, origin.Y - 1 + 48 * numActualRows)); Game.Renderer.RgbaSpriteRenderer.Flush(); @@ -283,14 +282,14 @@ namespace OpenRA.Widgets new float2(Game.viewport.Width, origin.Y + numActualRows * 48 + 9).ToInt2()); // Palette Dock - WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-top"), + WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-top"), new float2(Game.viewport.Width - 14, origin.Y - 23)); for (int i = 0; i < numActualRows; i++) - WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-" + (i % 4).ToString()), + WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-" + (i % 4).ToString()), new float2(Game.viewport.Width - 14, origin.Y + 48 * i)); - WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer, paletteCollection, "dock-bottom"), + WidgetUtils.DrawRGBA(ChromeProvider.GetImage(paletteCollection, "dock-bottom"), new float2(Game.viewport.Width - 14, origin.Y - 1 + 48 * numActualRows)); Game.Renderer.RgbaSpriteRenderer.Flush(); @@ -416,7 +415,7 @@ namespace OpenRA.Widgets var producing = queue.CurrentItem(groupName); var index = q.Key == currentTab ? 2 : (producing != null && producing.Done) ? 1 : 0; var race = world.LocalPlayer.Country.Race; - WidgetUtils.DrawRGBA(ChromeProvider.GetImage(Game.Renderer,"tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y)); + WidgetUtils.DrawRGBA(ChromeProvider.GetImage("tabs-"+tabKeys[index], race+"-"+q.Key), new float2(x, y)); var rect = new Rectangle((int)x,(int)y,(int)tabWidth,(int)tabHeight); tabs.Add(Pair.New(rect, HandleTabClick(groupName, world))); diff --git a/OpenRA.Game/Widgets/ChatDisplayWidget.cs b/OpenRA.Game/Widgets/ChatDisplayWidget.cs index f8d9ba4a5e..8fc074b283 100644 --- a/OpenRA.Game/Widgets/ChatDisplayWidget.cs +++ b/OpenRA.Game/Widgets/ChatDisplayWidget.cs @@ -37,23 +37,20 @@ namespace OpenRA.Widgets if (DrawBackground) WidgetUtils.DrawPanel("dialog3", chatLogArea); - - var renderer = Game.Renderer; - var font = renderer.RegularFont; - renderer.RgbaSpriteRenderer.Flush(); - renderer.Device.EnableScissor(chatLogArea.Left, chatLogArea.Top, chatLogArea.Width, chatLogArea.Height); + Game.Renderer.RgbaSpriteRenderer.Flush(); + Game.Renderer.Device.EnableScissor(chatLogArea.Left, chatLogArea.Top, chatLogArea.Width, chatLogArea.Height); foreach (var line in recentLines.AsEnumerable().Reverse()) { chatpos.Y -= 20; var owner = line.Owner + ":"; - var inset = font.Measure(owner).X + 10; - font.DrawText(owner, chatpos, line.Color); - font.DrawText(line.Text, chatpos + new int2(inset, 0), Color.White); + var inset = Game.Renderer.RegularFont.Measure(owner).X + 10; + Game.Renderer.RegularFont.DrawText(owner, chatpos, line.Color); + Game.Renderer.RegularFont.DrawText(line.Text, chatpos + new int2(inset, 0), Color.White); } - renderer.RgbaSpriteRenderer.Flush(); - renderer.Device.DisableScissor(); + Game.Renderer.RgbaSpriteRenderer.Flush(); + Game.Renderer.Device.DisableScissor(); } public void AddLine(Color c, string from, string text) diff --git a/OpenRA.Game/Widgets/ImageWidget.cs b/OpenRA.Game/Widgets/ImageWidget.cs index aa4d0613d9..e31a77494c 100644 --- a/OpenRA.Game/Widgets/ImageWidget.cs +++ b/OpenRA.Game/Widgets/ImageWidget.cs @@ -43,7 +43,7 @@ namespace OpenRA.Widgets var name = GetImageName(); var collection = GetImageCollection(); WidgetUtils.DrawRGBA( - ChromeProvider.GetImage(Game.Renderer, collection, name), + ChromeProvider.GetImage(collection, name), RenderOrigin); } } diff --git a/OpenRA.Game/Widgets/MapPreviewWidget.cs b/OpenRA.Game/Widgets/MapPreviewWidget.cs index 81ef04e8fa..b8743d70bf 100644 --- a/OpenRA.Game/Widgets/MapPreviewWidget.cs +++ b/OpenRA.Game/Widgets/MapPreviewWidget.cs @@ -73,9 +73,9 @@ namespace OpenRA.Widgets public override void DrawInner( World world ) { if (UnownedSpawn == null) - UnownedSpawn = ChromeProvider.GetImage(Game.Renderer, "spawnpoints", "unowned"); + UnownedSpawn = ChromeProvider.GetImage("spawnpoints", "unowned"); if (OwnedSpawn == null) - OwnedSpawn = ChromeProvider.GetImage(Game.Renderer, "spawnpoints", "owned"); + OwnedSpawn = ChromeProvider.GetImage("spawnpoints", "owned"); var map = Map(); if( map == null ) return; @@ -87,7 +87,7 @@ namespace OpenRA.Widgets // Update image data var preview = PreviewCache[map]; if( mapChooserSheet == null || mapChooserSheet.Size.Width != preview.Width || mapChooserSheet.Size.Height != preview.Height ) - mapChooserSheet = new Sheet( Game.Renderer, new Size( preview.Width, preview.Height ) ); + mapChooserSheet = new Sheet(new Size( preview.Width, preview.Height ) ); mapChooserSheet.Texture.SetData( preview ); mapChooserSprite = new Sprite( mapChooserSheet, new Rectangle( 0, 0, map.Width, map.Height ), TextureChannel.Alpha ); diff --git a/OpenRA.Game/Widgets/MoneyBinWidget.cs b/OpenRA.Game/Widgets/MoneyBinWidget.cs index a1c81eca22..3c54443eee 100644 --- a/OpenRA.Game/Widgets/MoneyBinWidget.cs +++ b/OpenRA.Game/Widgets/MoneyBinWidget.cs @@ -40,7 +40,7 @@ namespace OpenRA.Widgets var chromeCollection = "chrome-" + world.LocalPlayer.Country.Race; Game.Renderer.RgbaSpriteRenderer.DrawSprite( - ChromeProvider.GetImage(Game.Renderer, chromeCollection, "moneybin"), + ChromeProvider.GetImage(chromeCollection, "moneybin"), new float2(Bounds.Left, 0), "chrome"); // Cash @@ -51,7 +51,7 @@ namespace OpenRA.Widgets foreach (var d in cashDigits.Reverse()) { Game.Renderer.RgbaSpriteRenderer.DrawSprite( - ChromeProvider.GetImage(Game.Renderer, digitCollection, (d - '0').ToString()), + ChromeProvider.GetImage(digitCollection, (d - '0').ToString()), new float2(x, 6), "chrome"); x -= 14; } @@ -65,7 +65,7 @@ namespace OpenRA.Widgets foreach (var d in oreDigits.Reverse()) { Game.Renderer.RgbaSpriteRenderer.DrawSprite( - ChromeProvider.GetImage(Game.Renderer, digitCollection, (d - '0').ToString()), + ChromeProvider.GetImage( digitCollection, (d - '0').ToString()), new float2(x, 6), "chrome"); x -= 14; } diff --git a/OpenRA.Game/Widgets/OrderButtonWidget.cs b/OpenRA.Game/Widgets/OrderButtonWidget.cs index f7bfb69926..75a6aba063 100644 --- a/OpenRA.Game/Widgets/OrderButtonWidget.cs +++ b/OpenRA.Game/Widgets/OrderButtonWidget.cs @@ -21,7 +21,7 @@ namespace OpenRA.Widgets public override void DrawInner (World world) { - var image = ChromeProvider.GetImage(Game.Renderer, Image + "-button", GetImage()); + var image = ChromeProvider.GetImage(Image + "-button", GetImage()); var rect = new Rectangle(RenderBounds.X, RenderBounds.Y, (int)image.size.X, (int)image.size.Y); if (rect.Contains(Widget.LastMousePos.ToPoint())) diff --git a/OpenRA.Game/Widgets/PowerBinWidget.cs b/OpenRA.Game/Widgets/PowerBinWidget.cs index cfbc01131c..ea442d8334 100644 --- a/OpenRA.Game/Widgets/PowerBinWidget.cs +++ b/OpenRA.Game/Widgets/PowerBinWidget.cs @@ -35,10 +35,6 @@ namespace OpenRA.Widgets && resources.PowerDrained == 0) return; - var renderer = Game.Renderer; - var lineRenderer = Game.Renderer.LineRenderer; - var rgbaRenderer = renderer.RgbaSpriteRenderer; - // Draw bar horizontally var barStart = powerOrigin + RadarBinWidget.radarOrigin; var barEnd = barStart + new float2(powerSize.Width, 0); @@ -70,18 +66,18 @@ namespace OpenRA.Widgets leftOffset.X += 1; rightOffset.X -= 1; } - lineRenderer.DrawLine(Game.viewport.Location + barStart + leftOffset, Game.viewport.Location + powerLevel + rightOffset, color, color); + Game.Renderer.LineRenderer.DrawLine(Game.viewport.Location + barStart + leftOffset, Game.viewport.Location + powerLevel + rightOffset, color, color); } - lineRenderer.Flush(); + Game.Renderer.LineRenderer.Flush(); // Power usage indicator - var indicator = ChromeProvider.GetImage(renderer, powerCollection, "power-indicator"); + var indicator = ChromeProvider.GetImage( powerCollection, "power-indicator"); var powerDrainedTemp = barStart.X + (barEnd.X - barStart.X) * (resources.PowerDrained / powerScaleBy); lastPowerDrainedPos = float2.Lerp(lastPowerDrainedPos.GetValueOrDefault(powerDrainedTemp), powerDrainedTemp, .3f); float2 powerDrainLevel = new float2(lastPowerDrainedPos.Value - indicator.size.X / 2, barStart.Y - 1); - rgbaRenderer.DrawSprite(indicator, powerDrainLevel, "chrome"); - rgbaRenderer.Flush(); + Game.Renderer.RgbaSpriteRenderer.DrawSprite(indicator, powerDrainLevel, "chrome"); + Game.Renderer.RgbaSpriteRenderer.Flush(); } } } diff --git a/OpenRA.Game/Widgets/RadarBinWidget.cs b/OpenRA.Game/Widgets/RadarBinWidget.cs index cd6914b1df..5409aa0995 100644 --- a/OpenRA.Game/Widgets/RadarBinWidget.cs +++ b/OpenRA.Game/Widgets/RadarBinWidget.cs @@ -105,17 +105,14 @@ namespace OpenRA.Widgets hasRadar = hasNewRadar; - var renderer = Game.Renderer; - var rgbaRenderer = renderer.RgbaSpriteRenderer; - - rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "left"), radarOrigin, "chrome"); - rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "right"), radarOrigin + new float2(201, 0), "chrome"); - rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "bottom"), radarOrigin + new float2(0, 192), "chrome"); + Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "left"), radarOrigin, "chrome"); + Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "right"), radarOrigin + new float2(201, 0), "chrome"); + Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "bottom"), radarOrigin + new float2(0, 192), "chrome"); if (radarAnimating) - rgbaRenderer.DrawSprite(ChromeProvider.GetImage(renderer, radarCollection, "bg"), radarOrigin + new float2(9, 0), "chrome"); + Game.Renderer.RgbaSpriteRenderer.DrawSprite(ChromeProvider.GetImage(radarCollection, "bg"), radarOrigin + new float2(9, 0), "chrome"); - rgbaRenderer.Flush(); + Game.Renderer.RgbaSpriteRenderer.Flush(); if (radarAnimationFrame >= radarSlideAnimationLength) { diff --git a/OpenRA.Game/Widgets/TimerWidget.cs b/OpenRA.Game/Widgets/TimerWidget.cs index 4ec6c72336..d2c441b9be 100644 --- a/OpenRA.Game/Widgets/TimerWidget.cs +++ b/OpenRA.Game/Widgets/TimerWidget.cs @@ -25,9 +25,8 @@ namespace OpenRA.Widgets public override void DrawInner(World world) { var s = WorldUtils.FormatTime(Game.LocalTick); - var f = Game.Renderer.TitleFont; - var size = f.Measure(s); - f.DrawText(s, new float2(RenderBounds.Left - size.X / 2, RenderBounds.Top - 20), Color.White); + var size = Game.Renderer.TitleFont.Measure(s); + Game.Renderer.TitleFont.DrawText(s, new float2(RenderBounds.Left - size.X / 2, RenderBounds.Top - 20), Color.White); } } } diff --git a/OpenRA.Game/Widgets/WidgetUtils.cs b/OpenRA.Game/Widgets/WidgetUtils.cs index d01d47e276..17bed4c983 100644 --- a/OpenRA.Game/Widgets/WidgetUtils.cs +++ b/OpenRA.Game/Widgets/WidgetUtils.cs @@ -19,7 +19,7 @@ namespace OpenRA.Widgets { public static Sprite GetChromeImage(World world, string name) { - return ChromeProvider.GetImage(Game.Renderer, "chrome-" + world.LocalPlayer.Country.Race, name); + return ChromeProvider.GetImage("chrome-" + world.LocalPlayer.Country.Race, name); } public static void DrawRGBA(Sprite s, float2 pos) @@ -64,7 +64,7 @@ namespace OpenRA.Widgets public static int[] GetBorderSizes(string collection) { var images = new[] { "border-t", "border-b", "border-l", "border-r" }; - var ss = images.Select(i => ChromeProvider.GetImage(Game.Renderer, "dialog4", i)).ToArray(); + var ss = images.Select(i => ChromeProvider.GetImage("dialog4", i)).ToArray(); return new[] { (int)ss[0].size.Y, (int)ss[1].size.Y, (int)ss[2].size.X, (int)ss[3].size.X }; } @@ -78,7 +78,7 @@ namespace OpenRA.Widgets public static void DrawPanelPartial(string collection, Rectangle Bounds, PanelSides ps) { var images = new[] { "border-t", "border-b", "border-l", "border-r", "corner-tl", "corner-tr", "corner-bl", "corner-br", "background" }; - var ss = images.Select(i => ChromeProvider.GetImage(Game.Renderer, collection, i)).ToArray(); + var ss = images.Select(i => ChromeProvider.GetImage(collection, i)).ToArray(); // Background FillRectWithSprite(new Rectangle(Bounds.Left + (int)ss[2].size.X, diff --git a/OpenRA.Game/Widgets/WorldTooltipWidget.cs b/OpenRA.Game/Widgets/WorldTooltipWidget.cs index 3711f1181f..534c93f38a 100644 --- a/OpenRA.Game/Widgets/WorldTooltipWidget.cs +++ b/OpenRA.Game/Widgets/WorldTooltipWidget.cs @@ -37,11 +37,10 @@ namespace OpenRA.Widgets ? "" : "{0}".F(actor.Owner.PlayerName); var text3 = (actor.Owner == world.LocalPlayer || actor.Owner.NonCombatant) ? "" : " ({0})".F(world.LocalPlayer.Stances[actor.Owner]); - var renderer = Game.Renderer; - var sz = renderer.BoldFont.Measure(text); - var sz2 = renderer.RegularFont.Measure(text2); - var sz3 = renderer.RegularFont.Measure(text3); + var sz = Game.Renderer.BoldFont.Measure(text); + var sz2 = Game.Renderer.RegularFont.Measure(text2); + var sz3 = Game.Renderer.RegularFont.Measure(text3); sz.X = Math.Max(sz.X, sz2.X + sz3.X + 35); @@ -54,23 +53,23 @@ namespace OpenRA.Widgets Widget.LastMousePos.X + 20, Widget.LastMousePos.Y + 20, Widget.LastMousePos.X + sz.X + 20, Widget.LastMousePos.Y + sz.Y + 20)); - renderer.BoldFont.DrawText(text, + Game.Renderer.BoldFont.DrawText(text, new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 30), Color.White); if (text2 != "") { - renderer.RegularFont.DrawText(text2, + Game.Renderer.RegularFont.DrawText(text2, new float2(Widget.LastMousePos.X + 65, Widget.LastMousePos.Y + 50), actor.Owner.Color); - renderer.RegularFont.DrawText(text3, + Game.Renderer.RegularFont.DrawText(text3, new float2(Widget.LastMousePos.X + 65 + sz2.X, Widget.LastMousePos.Y + 50), Color.White); WidgetUtils.DrawRGBA( - ChromeProvider.GetImage(Game.Renderer, "flags", actor.Owner.Country.Race), + ChromeProvider.GetImage("flags", actor.Owner.Country.Race), new float2(Widget.LastMousePos.X + 30, Widget.LastMousePos.Y + 50)); } - renderer.RgbaSpriteRenderer.Flush(); + Game.Renderer.RgbaSpriteRenderer.Flush(); } } } diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index 510be72236..38c11aced4 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -104,7 +104,7 @@ namespace OpenRA PathFinder = new PathFinder(this); Timer.Time( "hooks, pathing: {0}" ); - Minimap = new Minimap(this, Game.Renderer); + Minimap = new Minimap(this); Timer.Time( "minimap: {0}" ); Timer.Time( "----end World.ctor" );