Avoid initialization of graphical elements for a server.

Avoid allocating memory and resources for graphical elements that will never be drawn when starting a dedicated server. This reduces the server memory footprint by approx 17 MiB.
This commit is contained in:
RoosterDragon
2015-01-04 19:22:41 +00:00
parent 58dc61e6ed
commit 2c34358372
4 changed files with 13 additions and 8 deletions

View File

@@ -300,10 +300,11 @@ namespace OpenRA
Sound.StopVideo();
Sound.Initialize();
ModData = new ModData(mod, true);
Renderer.InitializeFonts(ModData.Manifest);
ModData = new ModData(mod, !Settings.Server.Dedicated);
ModData.InitializeLoaders();
if (!Settings.Server.Dedicated)
Renderer.InitializeFonts(ModData.Manifest);
using (new PerfTimer("LoadMaps"))
ModData.MapCache.LoadMaps();

View File

@@ -70,6 +70,7 @@ namespace OpenRA.Graphics
static void LoadCollection(string name, MiniYaml yaml)
{
if (Game.ModData.LoadScreen != null)
Game.ModData.LoadScreen.Display();
var collection = new Collection()
{

View File

@@ -52,9 +52,12 @@ namespace OpenRA.Graphics
Device = CreateDevice(Assembly.LoadFile(rendererPath), resolution.Width, resolution.Height, graphicSettings.Mode);
if (!serverSettings.Dedicated)
{
TempBufferSize = graphicSettings.BatchSize;
TempBufferCount = graphicSettings.NumTempBuffers;
SheetSize = graphicSettings.SheetSize;
}
WorldSpriteRenderer = new SpriteRenderer(this, Device.CreateShader("shp"));
WorldRgbaSpriteRenderer = new SpriteRenderer(this, Device.CreateShader("rgba"));

View File

@@ -52,7 +52,7 @@ namespace OpenRA.Graphics
if (allocated)
throw new SheetOverflowException("");
allocated = true;
return SheetBuilder.AllocateSheet(Game.Renderer.SheetSize);
return SheetBuilder.AllocateSheet(Game.Settings.Graphics.SheetSize);
};
return new SheetBuilder(SheetType.DualIndexed, allocate);