expose temp VBO tuning parameters in settings

This commit is contained in:
Chris Forbes
2011-05-05 18:49:50 +12:00
parent cd6f77ca7c
commit 90cea9f73d
3 changed files with 14 additions and 12 deletions

View File

@@ -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:");

View File

@@ -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

View File

@@ -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<IVertexBuffer<Vertex>> tempBuffersV = new Queue<IVertexBuffer<Vertex>>();
Queue<IVertexBuffer<Vertex>> tempBuffers = new Queue<IVertexBuffer<Vertex>>();
public Dictionary<string, SpriteFont> 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<Vertex> 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