aboutsummaryrefslogtreecommitdiff
path: root/Unicity.Renderer/GraphicsRenderer.cs
diff options
context:
space:
mode:
authorAdrian Ulbrich <adrian.ulbrich.2003@gmail.com>2019-11-04 00:36:44 +0100
committerAdrian Ulbrich <adrian.ulbrich.2003@gmail.com>2019-11-04 00:36:44 +0100
commit5d4b4023bddd12e27c6756793aea2ff36d49e124 (patch)
tree7d66eac7b7b2d7ffe647aa8a34bc544fd770a23b /Unicity.Renderer/GraphicsRenderer.cs
parent0fec6725547868de242aaf9035eedf99f7be3233 (diff)
downloadUnicity-5d4b4023bddd12e27c6756793aea2ff36d49e124.tar.gz
Unicity-5d4b4023bddd12e27c6756793aea2ff36d49e124.tar.bz2
Unicity-5d4b4023bddd12e27c6756793aea2ff36d49e124.zip
Upload code
Diffstat (limited to 'Unicity.Renderer/GraphicsRenderer.cs')
-rw-r--r--Unicity.Renderer/GraphicsRenderer.cs63
1 files changed, 63 insertions, 0 deletions
diff --git a/Unicity.Renderer/GraphicsRenderer.cs b/Unicity.Renderer/GraphicsRenderer.cs
new file mode 100644
index 0000000..f417e14
--- /dev/null
+++ b/Unicity.Renderer/GraphicsRenderer.cs
@@ -0,0 +1,63 @@
+using GLFW;
+using SharpGL;
+using System;
+using Unicity.Renderer.Shapes;
+using static SharpGL.OpenGL;
+
+namespace Unicity.Renderer
+{
+ public class GraphicsRenderer : IDisposable
+ {
+ internal static OpenGL GL = new OpenGL();
+
+ public RenderWindow window { get; }
+
+ public GraphicsRenderer(RenderWindow window)
+ {
+ this.window = window;
+ }
+
+ public void SetClearColor(float red, float green, float blue, float alpha)
+ {
+ GL.ClearColor(red, green, blue, alpha);
+ }
+
+ public void ClearScreen()
+ {
+ Glfw.MakeContextCurrent(window.window);
+ GL.Clear(GL_COLOR_BUFFER_BIT);
+ }
+
+ public void RenderShape(Shape shape)
+ {
+ shape.Render();
+ }
+
+ bool disposed = false;
+ protected virtual void Dispose(bool disposing)
+ {
+ // Return of already disposed
+ if (disposed)
+ {
+ return;
+ }
+
+ if (disposing)
+ {
+ // Free managed objects here
+ }
+
+ // Dispose of any unmanaged resources
+ window?.Dispose();
+
+ // Set disposed flag to true
+ disposed = true;
+ }
+
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+ }
+}