From e4271b35dc7969cafcc24b7e134656080fe3da04 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Tue, 24 Aug 2010 23:08:10 +1200 Subject: [PATCH] shader params can stay inside Renderer --- OpenRA.Game/Game.cs | 5 +---- OpenRA.Game/Graphics/Renderer.cs | 5 ++++- OpenRA.Game/Graphics/Viewport.cs | 5 +---- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 250fe78b67..219a2b099f 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -41,14 +41,13 @@ namespace OpenRA public static XRandom CosmeticRandom = new XRandom(); // not synced public static Renderer Renderer; - static int2 clientSize; public static Session LobbyInfo = new Session(); static void LoadMap(string uid) { var map = modData.PrepareMap(uid); - viewport = new Viewport(clientSize, map.TopLeft, map.BottomRight, Renderer); + viewport = new Viewport(new float2(Renderer.Resolution), map.TopLeft, map.BottomRight, Renderer); world = null; // trying to access the old world will NRE, rather than silently doing it wrong. Timer.Time("viewport: {0}"); world = new World(modData.Manifest, map); @@ -268,7 +267,6 @@ namespace OpenRA modData = new ModData( LobbyInfo.GlobalSettings.Mods ); Renderer.SheetSize = Settings.Game.SheetSize; - Renderer.Initialize( Game.Settings.Graphics.Mode ); Sound.Initialize(); @@ -278,7 +276,6 @@ namespace OpenRA PerfHistory.items["cursor"].hasNormalTick = false; Renderer = new Renderer(); - clientSize = new int2(Renderer.Resolution); JoinLocal(); StartGame(modData.Manifest.ShellmapUid); diff --git a/OpenRA.Game/Graphics/Renderer.cs b/OpenRA.Game/Graphics/Renderer.cs index fde69be2c5..3998710e09 100644 --- a/OpenRA.Game/Graphics/Renderer.cs +++ b/OpenRA.Game/Graphics/Renderer.cs @@ -56,11 +56,14 @@ namespace OpenRA.Graphics public IGraphicsDevice Device { get { return device; } } - public void BeginFrame(float2 r1, float2 r2, float2 scroll) + public void BeginFrame(float2 scroll) { device.Begin(); device.Clear(Color.Black); + float2 r1 = new float2(2f/Resolution.Width, -2f/Resolution.Height); + float2 r2 = new float2(-1, 1); + SetShaderParams( SpriteShader, r1, r2, scroll ); SetShaderParams( LineShader, r1, r2, scroll ); SetShaderParams( RgbaSpriteShader, r1, r2, scroll ); diff --git a/OpenRA.Game/Graphics/Viewport.cs b/OpenRA.Game/Graphics/Viewport.cs index 83c982729d..d40691d74b 100644 --- a/OpenRA.Game/Graphics/Viewport.cs +++ b/OpenRA.Game/Graphics/Viewport.cs @@ -50,10 +50,7 @@ namespace OpenRA.Graphics { Timer.Time( "DrawRegions start" ); - float2 r1 = new float2(2, -2) / screenSize; - float2 r2 = new float2(-1, 1); - - renderer.BeginFrame(r1, r2, scrollPosition.ToInt2()); + renderer.BeginFrame(scrollPosition.ToInt2()); world.WorldRenderer.Draw(); Timer.Time( "worldRenderer: {0}" );