expose temp VBO tuning parameters in settings
This commit is contained in:
@@ -258,7 +258,6 @@ namespace OpenRA
|
|||||||
|
|
||||||
FileSystem.Mount("."); // Needed to access shaders
|
FileSystem.Mount("."); // Needed to access shaders
|
||||||
Renderer.Initialize( Game.Settings.Graphics.Mode );
|
Renderer.Initialize( Game.Settings.Graphics.Mode );
|
||||||
Renderer.SheetSize = Settings.Game.SheetSize;
|
|
||||||
Renderer = new Renderer();
|
Renderer = new Renderer();
|
||||||
|
|
||||||
Console.WriteLine("Available mods:");
|
Console.WriteLine("Available mods:");
|
||||||
|
|||||||
@@ -61,6 +61,9 @@ namespace OpenRA.GameRules
|
|||||||
public int2 FullscreenSize = new int2(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
|
public int2 FullscreenSize = new int2(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
|
||||||
public int2 WindowedSize = new int2(1024, 768);
|
public int2 WindowedSize = new int2(1024, 768);
|
||||||
public readonly int2 MinResolution = new int2(800, 600);
|
public readonly int2 MinResolution = new int2(800, 600);
|
||||||
|
|
||||||
|
public int BatchSize = 8192;
|
||||||
|
public int NumTempBuffers = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SoundSettings
|
public class SoundSettings
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ namespace OpenRA.Graphics
|
|||||||
public class Renderer
|
public class Renderer
|
||||||
{
|
{
|
||||||
internal static int SheetSize;
|
internal static int SheetSize;
|
||||||
|
internal static int TempBufferSize;
|
||||||
|
internal static int TempBufferCount;
|
||||||
|
|
||||||
internal IShader SpriteShader { get; private set; } /* note: shared shader params */
|
internal IShader SpriteShader { get; private set; } /* note: shared shader params */
|
||||||
internal IShader LineShader { get; private set; }
|
internal IShader LineShader { get; private set; }
|
||||||
@@ -37,15 +39,16 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
public ITexture PaletteTexture;
|
public ITexture PaletteTexture;
|
||||||
|
|
||||||
internal const int TempBufferSize = 8192;
|
Queue<IVertexBuffer<Vertex>> tempBuffers = new Queue<IVertexBuffer<Vertex>>();
|
||||||
const int TempBufferCount = 8;
|
|
||||||
|
|
||||||
Queue<IVertexBuffer<Vertex>> tempBuffersV = new Queue<IVertexBuffer<Vertex>>();
|
|
||||||
|
|
||||||
public Dictionary<string, SpriteFont> Fonts;
|
public Dictionary<string, SpriteFont> Fonts;
|
||||||
|
|
||||||
public Renderer()
|
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");
|
SpriteShader = device.CreateShader("world-shp");
|
||||||
LineShader = device.CreateShader("world-line");
|
LineShader = device.CreateShader("world-line");
|
||||||
RgbaSpriteShader = device.CreateShader("chrome-rgba");
|
RgbaSpriteShader = device.CreateShader("chrome-rgba");
|
||||||
@@ -57,7 +60,7 @@ namespace OpenRA.Graphics
|
|||||||
LineRenderer = new LineRenderer(this);
|
LineRenderer = new LineRenderer(this);
|
||||||
|
|
||||||
for( int i = 0 ; i < TempBufferCount ; i++ )
|
for( int i = 0 ; i < TempBufferCount ; i++ )
|
||||||
tempBuffersV.Enqueue( device.CreateVertexBuffer( TempBufferSize ) );
|
tempBuffers.Enqueue( device.CreateVertexBuffer( TempBufferSize ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitializeFonts(Manifest m)
|
public void InitializeFonts(Manifest m)
|
||||||
@@ -149,15 +152,12 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
internal IVertexBuffer<Vertex> GetTempVertexBuffer()
|
internal IVertexBuffer<Vertex> GetTempVertexBuffer()
|
||||||
{
|
{
|
||||||
var ret = tempBuffersV.Dequeue();
|
var ret = tempBuffers.Dequeue();
|
||||||
tempBuffersV.Enqueue( ret );
|
tempBuffers.Enqueue( ret );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IBatchRenderer
|
public interface IBatchRenderer { void Flush(); }
|
||||||
{
|
|
||||||
void Flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
static IBatchRenderer currentBatchRenderer;
|
static IBatchRenderer currentBatchRenderer;
|
||||||
public static IBatchRenderer CurrentBatchRenderer
|
public static IBatchRenderer CurrentBatchRenderer
|
||||||
|
|||||||
Reference in New Issue
Block a user