using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenTK;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL;

namespace s2t1
{
    class MainWindow : GameWindow
    {
        public MainWindow()
            : base(640, 480, GraphicsMode.Default, "s2t1",
                  GameWindowFlags.Default, DisplayDevice.Default, 3, 3, GraphicsContextFlags.ForwardCompatible)
        {
        }

        protected override void OnLoad(EventArgs e)
        {
            CursorVisible = true;
            Location = new System.Drawing.Point(200, 200);
 
            GL.Enable(EnableCap.Blend);
            GL.Enable(EnableCap.DepthTest);
            GL.Disable(EnableCap.CullFace);

            _scene = new MainScene();
        }

        protected override void OnClosed(EventArgs e)
        {
            Exit();
        }

        public override void Exit()
        {
            base.Exit();
        }

        protected override void OnResize(EventArgs e)
        {
            GL.Viewport(0, 0, Width, Height);
        }

        protected override void OnUpdateFrame(FrameEventArgs e)
        {
            _scene.Update(e.Time);
        }

        protected override void OnRenderFrame(FrameEventArgs e)
        {
            GL.ClearColor(0, 0, 0, 1);
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            _scene.Draw();

            SwapBuffers();
        }

        private MainScene _scene;
    }
}