blob: f837e1abe068af9a5272241de543cb74a25222bc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
using System;
using Microsoft.Xna.Framework.Graphics;
namespace MonoGame.Extended.Tiled.Renderers
{
public abstract class TiledMapLayerModel : IDisposable
{
protected TiledMapLayerModel(GraphicsDevice graphicsDevice, Texture2D texture, VertexPositionTexture[] vertices, ushort[] indices)
{
Texture = texture;
// ReSharper disable once VirtualMemberCallInConstructor
VertexBuffer = CreateVertexBuffer(graphicsDevice, vertices.Length);
VertexBuffer.SetData(vertices, 0, vertices.Length);
// ReSharper disable once VirtualMemberCallInConstructor
IndexBuffer = CreateIndexBuffer(graphicsDevice, indices.Length);
IndexBuffer.SetData(indices, 0, indices.Length);
TriangleCount = indices.Length / 3;
}
public void Dispose()
{
IndexBuffer.Dispose();
VertexBuffer.Dispose();
}
public Texture2D Texture { get; }
public VertexBuffer VertexBuffer { get; }
public IndexBuffer IndexBuffer { get; }
public int TriangleCount { get; }
protected abstract VertexBuffer CreateVertexBuffer(GraphicsDevice graphicsDevice, int vertexCount);
protected abstract IndexBuffer CreateIndexBuffer(GraphicsDevice graphicsDevice, int indexCount);
}
}
|