summaryrefslogtreecommitdiff
path: root/advanced_opengl/8.geometry_shader/shaders/base.geom
diff options
context:
space:
mode:
Diffstat (limited to 'advanced_opengl/8.geometry_shader/shaders/base.geom')
-rw-r--r--advanced_opengl/8.geometry_shader/shaders/base.geom26
1 files changed, 26 insertions, 0 deletions
diff --git a/advanced_opengl/8.geometry_shader/shaders/base.geom b/advanced_opengl/8.geometry_shader/shaders/base.geom
new file mode 100644
index 0000000..10d5c45
--- /dev/null
+++ b/advanced_opengl/8.geometry_shader/shaders/base.geom
@@ -0,0 +1,26 @@
+#version 330 core
+layout(points) in;
+layout(triangle_strip, max_vertices = 5) out;
+
+in VS_OUT {
+ vec3 color;
+} gs_in[];
+
+out vec3 fcolor;
+
+void main(void)
+{
+ fcolor = gs_in[0].color;
+ gl_Position = gl_in[0].gl_Position+vec4(-0.2, -0.2, 0.0, 0.0);
+ EmitVertex();
+ gl_Position = gl_in[0].gl_Position+vec4(0.2, -0.2, 0.0, 0.0);
+ EmitVertex();
+ gl_Position = gl_in[0].gl_Position+vec4(-0.2, 0.2, 0.0, 0.0);
+ EmitVertex();
+ gl_Position = gl_in[0].gl_Position+vec4(0.2, 0.2, 0.0, 0.0);
+ EmitVertex();
+ fcolor = vec3(1.0, 1.0, 1.0);
+ gl_Position = gl_in[0].gl_Position+vec4(0.0, 0.4, 0.0, 0.0);
+ EmitVertex();
+ EndPrimitive();
+}