47 lines
No EOL
1.3 KiB
C#
47 lines
No EOL
1.3 KiB
C#
using System;
|
|
using System.IO;
|
|
using OpenTK;
|
|
using OpenTK.Graphics;
|
|
using OpenTK.Graphics.OpenGL4;
|
|
using SM.OGL.Shaders;
|
|
|
|
namespace SM.Base
|
|
{
|
|
public class GenericWindow : GameWindow
|
|
{
|
|
private TestShader shader;
|
|
private Matrix4 _viewMatrix;
|
|
|
|
public GenericWindow() : base(1280, 720, GraphicsMode.Default, "Testing", GameWindowFlags.Default, DisplayDevice.Default, 0, 0, GraphicsContextFlags.Default, null, true)
|
|
{
|
|
|
|
}
|
|
|
|
protected override void OnLoad(EventArgs e)
|
|
{
|
|
base.OnLoad(e);
|
|
shader = new TestShader(new ShaderFileCollection(File.ReadAllText("test/test.vert"), File.ReadAllText("test/test.frag")));
|
|
shader.Compile();
|
|
}
|
|
|
|
protected override void OnRenderFrame(FrameEventArgs e)
|
|
{
|
|
base.OnRenderFrame(e);
|
|
|
|
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
|
|
|
|
shader.Draw(_viewMatrix);
|
|
|
|
SwapBuffers();
|
|
}
|
|
|
|
protected override void OnResize(EventArgs e)
|
|
{
|
|
base.OnResize(e);
|
|
|
|
GL.Viewport(ClientRectangle);
|
|
_viewMatrix = Matrix4.LookAt(Vector3.UnitZ, Vector3.Zero, Vector3.UnitY) *
|
|
Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(90), Width / Height, 0.1f, 100);
|
|
}
|
|
}
|
|
} |