- SheetSize is configurable. - TerrainRenderer gets to load it's sprites first, meaning we need one less texture.
This commit is contained in:
@@ -60,7 +60,10 @@ namespace OpenRa.Game
|
|||||||
|
|
||||||
Rules.Map.InitOreDensity();
|
Rules.Map.InitOreDensity();
|
||||||
|
|
||||||
viewport = new Viewport(clientSize, Rules.Map.Offset, Rules.Map.Offset + Rules.Map.Size, renderer);
|
controller = new Controller();
|
||||||
|
worldRenderer = new WorldRenderer( renderer );
|
||||||
|
|
||||||
|
viewport = new Viewport( clientSize, Rules.Map.Offset, Rules.Map.Offset + Rules.Map.Size, renderer );
|
||||||
|
|
||||||
world = new World();
|
world = new World();
|
||||||
treeCache = new TreeCache(Rules.Map);
|
treeCache = new TreeCache(Rules.Map);
|
||||||
@@ -74,9 +77,6 @@ namespace OpenRa.Game
|
|||||||
LoadMapBuildings(Rules.AllRules);
|
LoadMapBuildings(Rules.AllRules);
|
||||||
LoadMapUnits(Rules.AllRules);
|
LoadMapUnits(Rules.AllRules);
|
||||||
|
|
||||||
controller = new Controller();
|
|
||||||
worldRenderer = new WorldRenderer(renderer);
|
|
||||||
|
|
||||||
PathFinder = new PathFinder(Rules.Map);
|
PathFinder = new PathFinder(Rules.Map);
|
||||||
|
|
||||||
soundEngine = new ISoundEngine();
|
soundEngine = new ISoundEngine();
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ namespace OpenRa.Game.Graphics
|
|||||||
{
|
{
|
||||||
class Renderer
|
class Renderer
|
||||||
{
|
{
|
||||||
|
internal static int SheetSize;
|
||||||
|
|
||||||
readonly GraphicsDevice device;
|
readonly GraphicsDevice device;
|
||||||
Texture[] palettes;
|
Texture[] palettes;
|
||||||
public Shader SpriteShader { get; private set; } /* note: shared shader params */
|
public Shader SpriteShader { get; private set; } /* note: shared shader params */
|
||||||
|
|||||||
@@ -27,11 +27,13 @@ namespace OpenRa.Game.Graphics
|
|||||||
|
|
||||||
public static void ForceNewSheet()
|
public static void ForceNewSheet()
|
||||||
{
|
{
|
||||||
|
if( p == Point.Empty )
|
||||||
|
return;
|
||||||
current = NewSheet();
|
current = NewSheet();
|
||||||
channel = NextChannel(null);
|
channel = NextChannel(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Sheet NewSheet() { return new Sheet(renderer, new Size(512, 512)); }
|
static Sheet NewSheet() { return new Sheet( renderer, new Size( Renderer.SheetSize, Renderer.SheetSize ) ); }
|
||||||
|
|
||||||
static Renderer renderer;
|
static Renderer renderer;
|
||||||
static Sheet current = null;
|
static Sheet current = null;
|
||||||
|
|||||||
@@ -20,10 +20,9 @@ namespace OpenRa.Game.Graphics
|
|||||||
{
|
{
|
||||||
this.renderer = renderer;
|
this.renderer = renderer;
|
||||||
this.map = map;
|
this.map = map;
|
||||||
overlayRenderer = new OverlayRenderer( renderer, map );
|
|
||||||
|
|
||||||
Size tileSize = new Size( Game.CellSize, Game.CellSize );
|
|
||||||
|
|
||||||
|
Size tileSize = new Size( Game.CellSize, Game.CellSize );
|
||||||
|
|
||||||
SheetBuilder.ForceNewSheet();
|
SheetBuilder.ForceNewSheet();
|
||||||
|
|
||||||
var tileMapping = new Cache<TileReference, Sprite>(
|
var tileMapping = new Cache<TileReference, Sprite>(
|
||||||
@@ -49,7 +48,9 @@ namespace OpenRa.Game.Graphics
|
|||||||
vertexBuffer.SetData( vertices );
|
vertexBuffer.SetData( vertices );
|
||||||
|
|
||||||
indexBuffer = new IndexBuffer( renderer.Device, indices.Length );
|
indexBuffer = new IndexBuffer( renderer.Device, indices.Length );
|
||||||
indexBuffer.SetData( indices );
|
indexBuffer.SetData( indices );
|
||||||
|
|
||||||
|
overlayRenderer = new OverlayRenderer( renderer, map );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Draw( Viewport viewport )
|
public void Draw( Viewport viewport )
|
||||||
|
|||||||
@@ -57,6 +57,8 @@ namespace OpenRa.Game
|
|||||||
Game.NetworkHost = settings.GetValue( "host", "" );
|
Game.NetworkHost = settings.GetValue( "host", "" );
|
||||||
Game.NetworkPort = int.Parse( settings.GetValue( "port", "0" ) );
|
Game.NetworkPort = int.Parse( settings.GetValue( "port", "0" ) );
|
||||||
|
|
||||||
|
Renderer.SheetSize = int.Parse( settings.GetValue( "sheetsize", "512" ) );
|
||||||
|
|
||||||
Game.Initialize(settings.GetValue("map", "scm12ea.ini"), renderer, new int2(ClientSize),
|
Game.Initialize(settings.GetValue("map", "scm12ea.ini"), renderer, new int2(ClientSize),
|
||||||
settings.GetValue("player", 1));
|
settings.GetValue("player", 1));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user