diff options
Diffstat (limited to 'inc/opengl/shaders/theshader.geom')
-rw-r--r-- | inc/opengl/shaders/theshader.geom | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/inc/opengl/shaders/theshader.geom b/inc/opengl/shaders/theshader.geom new file mode 100644 index 0000000..a49e6bc --- /dev/null +++ b/inc/opengl/shaders/theshader.geom @@ -0,0 +1,24 @@ +#version 320 es
+layout(points) in;
+layout(triangle_strip, max_vertices = 64) out;
+
+in highp vec3 vColor[];
+in highp float vSides[];
+out highp vec3 fColor;
+
+const float PI = 3.1415926;
+
+void main()
+{
+ fColor = vColor[0];
+
+ for (float i = 0.0; i <= vSides[0]; i+=1.0) { // Angle between each side in radians
+ float ang = PI * 2.0 / vSides[0] * i;
+ // Offset from center of point (0.3 to accomodate for aspect ratio)
+ vec4 offset = vec4(cos(ang) * 0.3, -sin(ang) * 0.4, 0.0, 0.0);
+ gl_Position = gl_in[0].gl_Position - offset;
+
+ EmitVertex();
+ }
+ EndPrimitive();
+}
\ No newline at end of file |