- SheetSize is configurable. - TerrainRenderer gets to load it's sprites first, meaning we need one less texture.

This commit is contained in:
Bob
2009-11-23 18:53:01 +13:00
parent d5d013ad32
commit c7e95c71b2
5 changed files with 16 additions and 9 deletions

View File

@@ -9,6 +9,8 @@ namespace OpenRa.Game.Graphics
{
class Renderer
{
internal static int SheetSize;
readonly GraphicsDevice device;
Texture[] palettes;
public Shader SpriteShader { get; private set; } /* note: shared shader params */

View File

@@ -27,11 +27,13 @@ namespace OpenRa.Game.Graphics
public static void ForceNewSheet()
{
if( p == Point.Empty )
return;
current = NewSheet();
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 Sheet current = null;

View File

@@ -20,10 +20,9 @@ namespace OpenRa.Game.Graphics
{
this.renderer = renderer;
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();
var tileMapping = new Cache<TileReference, Sprite>(
@@ -49,7 +48,9 @@ namespace OpenRa.Game.Graphics
vertexBuffer.SetData( vertices );
indexBuffer = new IndexBuffer( renderer.Device, indices.Length );
indexBuffer.SetData( indices );
indexBuffer.SetData( indices );
overlayRenderer = new OverlayRenderer( renderer, map );
}
public void Draw( Viewport viewport )