diff options
| author | Adrian Ulbrich <adrian.ulbrich.2003@gmail.com> | 2019-11-08 23:56:17 +0100 |
|---|---|---|
| committer | Adrian Ulbrich <adrian.ulbrich.2003@gmail.com> | 2019-11-08 23:56:17 +0100 |
| commit | 3b214e75effaca1ba67daaf29d0a94e5b0129386 (patch) | |
| tree | ee0ccd43f193f2bdaedd36dcdc944f01a75e37e3 /Unicity.Renderer/RenderWindow.cs | |
| parent | e63155370c817a1d9c16ef798b0a55e6fe328941 (diff) | |
| download | Unicity-3b214e75effaca1ba67daaf29d0a94e5b0129386.tar.gz Unicity-3b214e75effaca1ba67daaf29d0a94e5b0129386.tar.bz2 Unicity-3b214e75effaca1ba67daaf29d0a94e5b0129386.zip | |
Started work on actual engine
Diffstat (limited to 'Unicity.Renderer/RenderWindow.cs')
| -rw-r--r-- | Unicity.Renderer/RenderWindow.cs | 89 |
1 files changed, 30 insertions, 59 deletions
diff --git a/Unicity.Renderer/RenderWindow.cs b/Unicity.Renderer/RenderWindow.cs index 2026780..4566295 100644 --- a/Unicity.Renderer/RenderWindow.cs +++ b/Unicity.Renderer/RenderWindow.cs @@ -1,6 +1,4 @@ using System; -using System.Diagnostics; -using System.Drawing; using OpenTK; using OpenTK.Graphics; using OpenTK.Graphics.OpenGL4; @@ -9,93 +7,67 @@ namespace Unicity.Renderer { public class RenderWindow : IDisposable { - const int UPS = 60; - - internal GameWindow window = null; - - Stopwatch loopTimer = new Stopwatch(); - - public event EventHandler Init; public event EventHandler Update; public event EventHandler Render; - public event EventHandler Destroy; - public int Width - { - get => window.ClientSize.Width; - set => window.ClientSize = new Size(value, window.ClientSize.Height); - } + GameWindow window = null; - public int Height - { - get => window.ClientSize.Height; - set => window.ClientSize = new Size(window.ClientSize.Width, value); - } + public int Width { get => window.Width; set => window.Width = value; } + public int Height { get => window.Height; set => window.Height = value; } - public string Title - { - get => window.Title; - set => window.Title = value; - } + public string Title { get => window.Title; set => window.Title = value; } - bool running = false; + bool disposed = false; public RenderWindow(int width, int height, string title) { - window = new GameWindow(width, height, GraphicsMode.Default, title, GameWindowFlags.Default); - + window = new GameWindow(width, height, GraphicsMode.Default, title, GameWindowFlags.Default, DisplayDevice.Default, 4, 0, GraphicsContextFlags.ForwardCompatible); + window.Load += Window_Load; + window.Resize += Window_Resize; window.UpdateFrame += Window_UpdateFrame; window.RenderFrame += Window_RenderFrame; - window.Unload += Window_Unload; - window.Resize += Window_Resize; } - - private void Window_UpdateFrame(object sender, FrameEventArgs e) + private void Window_Load(object sender, EventArgs e) { - Update?.Invoke(this, EventArgs.Empty); + GL.Viewport(0, 0, Width, Height); + GL.ClearColor(1.0f, 0.0f, 0.0f, 1.0f); } - private void Window_RenderFrame(object sender, FrameEventArgs e) + private void Window_Resize(object sender, EventArgs e) { - Render?.Invoke(this, EventArgs.Empty); - window.SwapBuffers(); + GL.Viewport(0, 0, Width, Height); } - private void Window_Unload(object sender, EventArgs e) + private void Window_UpdateFrame(object sender, FrameEventArgs e) { - Destroy?.Invoke(this, EventArgs.Empty); + Update?.Invoke(this, EventArgs.Empty); } - private void Window_Resize(object sender, EventArgs e) + private void Window_RenderFrame(object sender, FrameEventArgs e) { - GL.Viewport(0, 0, Width, Height); - Render?.Invoke(this, EventArgs.Empty); + GL.Clear(ClearBufferMask.ColorBufferBit); + + Update?.Invoke(this, EventArgs.Empty); + window.SwapBuffers(); } + + public void Open(double ups, double fps) + { + window.Run(ups, fps); + } - public void Open() + public void MakeCurrent() { - if (running) + if (window.IsExiting) { return; } - - Init?.Invoke(this, EventArgs.Empty); - window.VSync = VSyncMode.Off; - window.Run(UPS, 0); - - running = true; + window.MakeCurrent(); } - public double GetFPS() - { - return window.RenderFrequency; - } - - bool disposed = false; protected virtual void Dispose(bool disposing) { - // Return of already disposed if (disposed) { return; @@ -103,13 +75,12 @@ namespace Unicity.Renderer if (disposing) { - // Free managed objects here + // Dispose of managed resources } - // Dispose of any unmanaged resources + // Dispose of unmanaged resources window?.Dispose(); - // Set disposed flag to true disposed = true; } |
