mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-11-22 12:58:33 +01:00
use SortedDictionary for StaticSpriteBatch
This commit is contained in:
parent
856d67b6cf
commit
eadabf3919
2 changed files with 13 additions and 4 deletions
|
@ -43,7 +43,7 @@ namespace MLEM.Graphics {
|
||||||
private readonly SpriteEffect spriteEffect;
|
private readonly SpriteEffect spriteEffect;
|
||||||
private readonly List<DynamicVertexBuffer> vertexBuffers = new List<DynamicVertexBuffer>();
|
private readonly List<DynamicVertexBuffer> vertexBuffers = new List<DynamicVertexBuffer>();
|
||||||
private readonly List<Texture2D> textures = new List<Texture2D>();
|
private readonly List<Texture2D> textures = new List<Texture2D>();
|
||||||
private readonly SortedList<float, ISet<Item>> items = new SortedList<float, ISet<Item>>();
|
private readonly SortedDictionary<float, ISet<Item>> items = new SortedDictionary<float, ISet<Item>>();
|
||||||
|
|
||||||
private IndexBuffer indices;
|
private IndexBuffer indices;
|
||||||
private bool batching;
|
private bool batching;
|
||||||
|
|
|
@ -355,15 +355,24 @@ public class GameImpl : MlemGame {
|
||||||
this.UiSystem.Add("WidthTest", widthPanel);
|
this.UiSystem.Add("WidthTest", widthPanel);
|
||||||
|
|
||||||
var batch = new StaticSpriteBatch(this.GraphicsDevice);
|
var batch = new StaticSpriteBatch(this.GraphicsDevice);
|
||||||
batch.BeginBatch(SpriteSortMode.Deferred);
|
batch.BeginBatch();
|
||||||
var depth = 0F;
|
var depth = 0F;
|
||||||
var items = new List<StaticSpriteBatch.Item>();
|
var items = new List<StaticSpriteBatch.Item>();
|
||||||
foreach (var r in atlas.Regions)
|
foreach (var r in atlas.Regions)
|
||||||
items.Add(batch.Add(r, new Vector2(50 + r.GetHashCode() % 200, 50), ColorHelper.FromHexRgb(r.GetHashCode()), 0, Vector2.Zero, 1, SpriteEffects.None, depth += 0.0001F));
|
items.Add(batch.Add(r, new Vector2(50 + r.GetHashCode() % 200, 50), ColorHelper.FromHexRgb(r.GetHashCode()), 0, Vector2.Zero, 1, SpriteEffects.None, depth += 0.0001F));
|
||||||
batch.Remove(items[5]);
|
batch.Remove(items[5]);
|
||||||
batch.EndBatch();
|
batch.EndBatch();
|
||||||
batch.BeginBatch(SpriteSortMode.BackToFront);
|
var sortMode = SpriteSortMode.Deferred;
|
||||||
|
this.OnUpdate += (_, _) => {
|
||||||
|
if (MlemGame.Input.IsPressed(Keys.S)) {
|
||||||
|
do {
|
||||||
|
sortMode = (SpriteSortMode) (((int) sortMode + 1) % 5);
|
||||||
|
} while (sortMode == SpriteSortMode.Immediate);
|
||||||
|
Console.WriteLine(sortMode);
|
||||||
|
batch.BeginBatch(sortMode);
|
||||||
batch.EndBatch();
|
batch.EndBatch();
|
||||||
|
}
|
||||||
|
};
|
||||||
this.OnDraw += (_, _) => batch.Draw(null, SamplerState.PointClamp, null, null, null, Matrix.CreateScale(3));
|
this.OnDraw += (_, _) => batch.Draw(null, SamplerState.PointClamp, null, null, null, Matrix.CreateScale(3));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue