diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 41f99ebfb9..9454e1d0d9 100755 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -258,7 +258,6 @@ namespace OpenRA FileSystem.Mount("."); // Needed to access shaders Renderer.Initialize( Game.Settings.Graphics.Mode ); - Renderer.SheetSize = Settings.Game.SheetSize; Renderer = new Renderer(); Console.WriteLine("Available mods:"); diff --git a/OpenRA.Game/GameRules/Settings.cs b/OpenRA.Game/GameRules/Settings.cs index c858b8810e..af17eaef73 100755 --- a/OpenRA.Game/GameRules/Settings.cs +++ b/OpenRA.Game/GameRules/Settings.cs @@ -61,6 +61,9 @@ namespace OpenRA.GameRules public int2 FullscreenSize = new int2(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); public int2 WindowedSize = new int2(1024, 768); public readonly int2 MinResolution = new int2(800, 600); + + public int BatchSize = 8192; + public int NumTempBuffers = 8; } public class SoundSettings diff --git a/OpenRA.Game/Graphics/Renderer.cs b/OpenRA.Game/Graphics/Renderer.cs index 49cafb912e..ff34b09f57 100644 --- a/OpenRA.Game/Graphics/Renderer.cs +++ b/OpenRA.Game/Graphics/Renderer.cs @@ -24,6 +24,8 @@ namespace OpenRA.Graphics public class Renderer { internal static int SheetSize; + internal static int TempBufferSize; + internal static int TempBufferCount; internal IShader SpriteShader { get; private set; } /* note: shared shader params */ internal IShader LineShader { get; private set; } @@ -37,15 +39,16 @@ namespace OpenRA.Graphics public ITexture PaletteTexture; - internal const int TempBufferSize = 8192; - const int TempBufferCount = 8; - - Queue> tempBuffersV = new Queue>(); + Queue> tempBuffers = new Queue>(); public Dictionary Fonts; public Renderer() { + TempBufferSize = Game.Settings.Graphics.BatchSize; + TempBufferCount = Game.Settings.Graphics.NumTempBuffers; + SheetSize = Game.Settings.Game.SheetSize; // TODO: move to Graphics. + SpriteShader = device.CreateShader("world-shp"); LineShader = device.CreateShader("world-line"); RgbaSpriteShader = device.CreateShader("chrome-rgba"); @@ -57,7 +60,7 @@ namespace OpenRA.Graphics LineRenderer = new LineRenderer(this); for( int i = 0 ; i < TempBufferCount ; i++ ) - tempBuffersV.Enqueue( device.CreateVertexBuffer( TempBufferSize ) ); + tempBuffers.Enqueue( device.CreateVertexBuffer( TempBufferSize ) ); } public void InitializeFonts(Manifest m) @@ -149,15 +152,12 @@ namespace OpenRA.Graphics internal IVertexBuffer GetTempVertexBuffer() { - var ret = tempBuffersV.Dequeue(); - tempBuffersV.Enqueue( ret ); + var ret = tempBuffers.Dequeue(); + tempBuffers.Enqueue( ret ); return ret; } - public interface IBatchRenderer - { - void Flush(); - } + public interface IBatchRenderer { void Flush(); } static IBatchRenderer currentBatchRenderer; public static IBatchRenderer CurrentBatchRenderer