aboutsummaryrefslogtreecommitdiff
path: root/Unicity.Renderer/GraphicsRenderer.cs
diff options
context:
space:
mode:
authorAdrian Ulbrich <adrian.ulbrich.2003@gmail.com>2019-11-09 02:44:29 +0100
committerAdrian Ulbrich <adrian.ulbrich.2003@gmail.com>2019-11-09 02:44:29 +0100
commit573eb0dc44da073462e24f15a253a51a4013ee58 (patch)
tree2866ef331702e36a0d4be6cb53c3799106ca4a85 /Unicity.Renderer/GraphicsRenderer.cs
parent6fd78657f010bcc48c746a7b1e6ae9a0589adf5b (diff)
downloadUnicity-573eb0dc44da073462e24f15a253a51a4013ee58.tar.gz
Unicity-573eb0dc44da073462e24f15a253a51a4013ee58.tar.bz2
Unicity-573eb0dc44da073462e24f15a253a51a4013ee58.zip
Added support for colored triangles
Diffstat (limited to 'Unicity.Renderer/GraphicsRenderer.cs')
-rw-r--r--Unicity.Renderer/GraphicsRenderer.cs24
1 files changed, 23 insertions, 1 deletions
diff --git a/Unicity.Renderer/GraphicsRenderer.cs b/Unicity.Renderer/GraphicsRenderer.cs
index 1df8bfb..513439e 100644
--- a/Unicity.Renderer/GraphicsRenderer.cs
+++ b/Unicity.Renderer/GraphicsRenderer.cs
@@ -57,6 +57,23 @@ namespace Unicity.Renderer
}
}
+ for (int i = 0; i < shapes.Length; i++)
+ {
+ if (typeof(Triangle) == shapes[i].GetType())
+ {
+ Vector3 color = ((Triangle)shapes[i]).Color;
+ triangleVerts.Add(color.X);
+ triangleVerts.Add(color.Y);
+ triangleVerts.Add(color.Z);
+ triangleVerts.Add(color.X);
+ triangleVerts.Add(color.Y);
+ triangleVerts.Add(color.Z);
+ triangleVerts.Add(color.X);
+ triangleVerts.Add(color.Y);
+ triangleVerts.Add(color.Z);
+ }
+ }
+
if (triangleVAO != -1)
{
GL.DeleteVertexArray(triangleVAO);
@@ -67,9 +84,11 @@ namespace Unicity.Renderer
GL.DeleteBuffer(triangleVBO);
}
+ foreach (float v in triangleVerts) System.Console.WriteLine(v);
+
triangleVAO = GL.GenVertexArray();
triangleVBO = GL.GenBuffer();
-
+
GL.BindVertexArray(triangleVAO);
GL.BindBuffer(BufferTarget.ArrayBuffer, triangleVBO);
GL.BufferData(BufferTarget.ArrayBuffer, triangleVerts.Count * sizeof(float), triangleVerts.ToArray(), BufferUsageHint.DynamicDraw);
@@ -77,6 +96,9 @@ namespace Unicity.Renderer
GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), 0);
GL.EnableVertexAttribArray(0);
+ GL.VertexAttribPointer(1, 3, VertexAttribPointerType.Float, false, 3 * sizeof(float), triangleVerts.Count / 2 * sizeof(float));
+ GL.EnableVertexAttribArray(1);
+
GL.BindBuffer(BufferTarget.ArrayBuffer, 0);
GL.BindVertexArray(0);
}