| 1234567891011121314151617181920212223242526272829303132333435363738 |
- 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);
- }
- }
|