using System; using System.Collections.Generic; using Microsoft.Xna.Framework.Graphics; using MonoGame.Extended; namespace Foresight.Engine.Renderer { public class Renderer2d : IDisposable { private readonly RendererManager _manager; private readonly SpriteBatch _spriteBatch; public Renderer2d(RendererManager manager) { _manager = manager; _spriteBatch = new SpriteBatch(manager.Game.GraphicsDevice); } public void Render(IEnumerable renderables) { var cam = new OrthographicCamera(_manager.ResolutionManager.ViewportAdapter); _spriteBatch.Begin(samplerState: SamplerState.PointClamp, transformMatrix: cam.GetViewMatrix()); foreach (var renderable in renderables) { renderable.Draw(_spriteBatch); } _spriteBatch.End(); } public void Dispose() { _spriteBatch?.Dispose(); } } }