~ Moved code around in files. SM.Base: + PostProcessing-system + OnInitialization() for Scenes. + Shader-Extensions + Added option to not react while unfocused to the window. + Added Screenshots to the window. + Connected the log system to the SM.OGL-action system. ~ Replaced IShader with abstract MaterialShader. ~ When a log compression folder doesn't exist, it will create one. SM.OGL: + Added support for UniformArrays + Added ShaderPreProcessing + Added Shader Extensions. + Added Debug actions. + SM.OGL settings ~ Framebuffer Size is automaticly changed, when the window and scale is set. SM2D: + Added easy shader drawing.
66 lines
No EOL
1.7 KiB
C#
66 lines
No EOL
1.7 KiB
C#
#region usings
|
|
|
|
using System;
|
|
using OpenTK;
|
|
using OpenTK.Graphics.OpenGL4;
|
|
using OpenTK.Input;
|
|
using SM.Base;
|
|
using SM2D.Controls;
|
|
using SM2D.Pipelines;
|
|
using SM2D.Scene;
|
|
using SM2D.Shader;
|
|
|
|
#endregion
|
|
|
|
namespace SM2D
|
|
{
|
|
public class GLWindow2D : GenericWindow<Scene.Scene, Camera>
|
|
{
|
|
public GLWindow2D()
|
|
{
|
|
Mouse = new Mouse2D(this);
|
|
}
|
|
|
|
public Vector2? Scaling { get; set; }
|
|
public Vector2 WorldScale => _worldScale;
|
|
|
|
public Mouse2D Mouse { get; }
|
|
|
|
protected override void OnLoad(EventArgs e)
|
|
{
|
|
base.OnLoad(e);
|
|
GL.Enable(EnableCap.Blend);
|
|
GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha);
|
|
}
|
|
|
|
protected override void OnLoaded()
|
|
{
|
|
base.OnLoaded();
|
|
SMRenderer.DefaultMaterialShader = Default2DShader.MaterialShader;
|
|
|
|
SetRenderPipeline(new Basic2DPipeline());
|
|
}
|
|
|
|
protected override void OnRenderFrame(FrameEventArgs e)
|
|
{
|
|
GL.Disable(EnableCap.DepthTest);
|
|
base.OnRenderFrame(e);
|
|
}
|
|
|
|
protected override void SetWorldScale()
|
|
{
|
|
if (Scaling.HasValue)
|
|
{
|
|
if (Scaling.Value.X > 0 && Scaling.Value.Y > 0) _worldScale = Scaling.Value;
|
|
else if (Scaling.Value.X > 0) _worldScale = new Vector2(Scaling.Value.X, Scaling.Value.X / Aspect);
|
|
else if (Scaling.Value.Y > 0) _worldScale = new Vector2(Aspect * Scaling.Value.Y, Scaling.Value.Y);
|
|
}
|
|
}
|
|
|
|
protected override void OnMouseMove(MouseMoveEventArgs e)
|
|
{
|
|
base.OnMouseMove(e);
|
|
Mouse.MouseMoveEvent(e);
|
|
}
|
|
}
|
|
} |