17.01.2021
+ WPF-Support + Game Controller System + GameKeybind System + SM_WPF_TEST
This commit is contained in:
parent
af90d617d3
commit
6f23a80f7f
60 changed files with 1536 additions and 143 deletions
48
SMCode/SM2D/Window/GLWPFWindow2D.cs
Normal file
48
SMCode/SM2D/Window/GLWPFWindow2D.cs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
using System;
|
||||
using System.Windows.Media;
|
||||
using OpenTK;
|
||||
using OpenTK.Graphics.ES11;
|
||||
using SM.Base;
|
||||
using SM2D.Controls;
|
||||
using SM2D.Pipelines;
|
||||
using SM2D.Scene;
|
||||
using SM2D.Shader;
|
||||
|
||||
namespace SM2D
|
||||
{
|
||||
public class GLWPFWindow2D : GenericWPFWindow<Scene.Scene, Camera>, IGLWindow2D
|
||||
{
|
||||
public GLWPFWindow2D()
|
||||
{
|
||||
Mouse = new Mouse2D(this);
|
||||
}
|
||||
|
||||
public Vector2? Scaling { get; set; }
|
||||
public Mouse2D Mouse { get; }
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
SMRenderer.DefaultMaterialShader = Default2DShader.MaterialShader;
|
||||
|
||||
SetRenderPipeline(Default2DPipeline.Pipeline);
|
||||
}
|
||||
|
||||
protected override void Rendering(TimeSpan delta)
|
||||
{
|
||||
GL.Disable(EnableCap.DepthTest);
|
||||
base.Rendering(delta);
|
||||
}
|
||||
|
||||
public 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
65
SMCode/SM2D/Window/GLWindow2D.cs
Normal file
65
SMCode/SM2D/Window/GLWindow2D.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
#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>, IGLWindow2D
|
||||
{
|
||||
public GLWindow2D()
|
||||
{
|
||||
Mouse = new Mouse2D(this);
|
||||
}
|
||||
|
||||
public Vector2? Scaling { get; set; }
|
||||
|
||||
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(Default2DPipeline.Pipeline);
|
||||
}
|
||||
|
||||
protected override void OnRenderFrame(FrameEventArgs e)
|
||||
{
|
||||
GL.Disable(EnableCap.DepthTest);
|
||||
base.OnRenderFrame(e);
|
||||
}
|
||||
|
||||
public 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
14
SMCode/SM2D/Window/IGLWindow2D.cs
Normal file
14
SMCode/SM2D/Window/IGLWindow2D.cs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
using OpenTK;
|
||||
using SM.Base;
|
||||
using SM2D.Controls;
|
||||
using SM2D.Scene;
|
||||
|
||||
namespace SM2D
|
||||
{
|
||||
public interface IGLWindow2D : IGenericWindow<Scene.Scene, Camera>
|
||||
{
|
||||
Vector2? Scaling { get; set; }
|
||||
|
||||
Mouse2D Mouse { get; }
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue