aboutsummaryrefslogtreecommitdiff
path: root/Unicity.Renderer
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
parent6fd78657f010bcc48c746a7b1e6ae9a0589adf5b (diff)
downloadUnicity-573eb0dc44da073462e24f15a253a51a4013ee58.tar.gz
Unicity-573eb0dc44da073462e24f15a253a51a4013ee58.tar.bz2
Unicity-573eb0dc44da073462e24f15a253a51a4013ee58.zip
Added support for colored triangles
Diffstat (limited to 'Unicity.Renderer')
-rw-r--r--Unicity.Renderer/GraphicsRenderer.cs24
-rw-r--r--Unicity.Renderer/Shapes/Triangle.cs2
-rw-r--r--Unicity.Renderer/shaders/test.frag1
-rw-r--r--Unicity.Renderer/shaders/test.vert4
4 files changed, 26 insertions, 5 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);
}
diff --git a/Unicity.Renderer/Shapes/Triangle.cs b/Unicity.Renderer/Shapes/Triangle.cs
index d0145ff..347650e 100644
--- a/Unicity.Renderer/Shapes/Triangle.cs
+++ b/Unicity.Renderer/Shapes/Triangle.cs
@@ -5,7 +5,7 @@ namespace Unicity.Renderer.Shapes
public class Triangle : Shape
{
internal float[] Vertices;
- Vector3 Color;
+ internal Vector3 Color;
public Triangle(float[] vertices, float red, float green, float blue)
{
diff --git a/Unicity.Renderer/shaders/test.frag b/Unicity.Renderer/shaders/test.frag
index 58db0c6..8deca4b 100644
--- a/Unicity.Renderer/shaders/test.frag
+++ b/Unicity.Renderer/shaders/test.frag
@@ -1,7 +1,6 @@
#version 400 core
out vec4 FragColor;
-
in vec4 vertexColor;
void main()
diff --git a/Unicity.Renderer/shaders/test.vert b/Unicity.Renderer/shaders/test.vert
index c0395f0..99496c0 100644
--- a/Unicity.Renderer/shaders/test.vert
+++ b/Unicity.Renderer/shaders/test.vert
@@ -1,12 +1,12 @@
#version 400 core
layout (location = 0) in vec3 aPos;
+layout (location = 1) in vec3 aColor;
out vec4 vertexColor;
-uniform vec4 inColor;
void main()
{
gl_Position = vec4(aPos, 1.0f);
- vertexColor = inColor;
+ vertexColor = vec4(aColor, 1.0f);
} \ No newline at end of file