Expose TerrainSpriteLayer.Sheet and BlendMode.

This commit is contained in:
Paul Chote
2015-07-05 13:51:38 +01:00
parent ae0d9c0e7d
commit f93ad2a9c1

View File

@@ -19,6 +19,9 @@ namespace OpenRA.Graphics
{ {
public sealed class TerrainSpriteLayer : IDisposable public sealed class TerrainSpriteLayer : IDisposable
{ {
public readonly Sheet Sheet;
public readonly BlendMode BlendMode;
readonly Sprite emptySprite; readonly Sprite emptySprite;
readonly IVertexBuffer<Vertex> vertexBuffer; readonly IVertexBuffer<Vertex> vertexBuffer;
@@ -30,17 +33,14 @@ namespace OpenRA.Graphics
readonly WorldRenderer worldRenderer; readonly WorldRenderer worldRenderer;
readonly Map map; readonly Map map;
readonly Sheet sheet;
readonly BlendMode blendMode;
float paletteIndex; float paletteIndex;
public TerrainSpriteLayer(World world, WorldRenderer wr, Sheet sheet, BlendMode blendMode, PaletteReference palette, bool restrictToBounds) public TerrainSpriteLayer(World world, WorldRenderer wr, Sheet sheet, BlendMode blendMode, PaletteReference palette, bool restrictToBounds)
{ {
worldRenderer = wr; worldRenderer = wr;
this.restrictToBounds = restrictToBounds; this.restrictToBounds = restrictToBounds;
this.sheet = sheet; Sheet = sheet;
this.blendMode = blendMode; BlendMode = blendMode;
paletteIndex = palette.TextureIndex; paletteIndex = palette.TextureIndex;
map = world.Map; map = world.Map;
@@ -77,10 +77,10 @@ namespace OpenRA.Graphics
{ {
if (sprite != null) if (sprite != null)
{ {
if (sprite.Sheet != sheet) if (sprite.Sheet != Sheet)
throw new InvalidDataException("Attempted to add sprite from a different sheet"); throw new InvalidDataException("Attempted to add sprite from a different sheet");
if (sprite.BlendMode != blendMode) if (sprite.BlendMode != BlendMode)
throw new InvalidDataException("Attempted to add sprite with a different blend mode"); throw new InvalidDataException("Attempted to add sprite with a different blend mode");
} }
else else
@@ -122,7 +122,7 @@ namespace OpenRA.Graphics
Game.Renderer.WorldSpriteRenderer.DrawVertexBuffer( Game.Renderer.WorldSpriteRenderer.DrawVertexBuffer(
vertexBuffer, rowStride * firstRow, rowStride * (lastRow - firstRow), vertexBuffer, rowStride * firstRow, rowStride * (lastRow - firstRow),
PrimitiveType.QuadList, sheet, blendMode); PrimitiveType.QuadList, Sheet, BlendMode);
Game.Renderer.Flush(); Game.Renderer.Flush();
} }