using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using testdrid.SdlWrapper;

namespace SDL2Demo.Screenhacks
{
    abstract class ScreenHack : IDisposable, IRenderable
    {
        protected Renderer renderer;
        protected Random rng;
        protected Rectangle windowRectangle;
        protected static Point topLeft;

        public void Setup(Rectangle window, Renderer renderer)
        {
            this.windowRectangle = new Rectangle(0, 0, window.Width, window.Height);
            this.renderer = renderer;
            this.rng = new Random();
            topLeft = new Point(0, 0);
            this.Setup();
        }

        protected abstract void Setup();
        public abstract void MousePressed();
        public abstract void Dispose();
        public abstract void Render();
    }
}
