summaryrefslogtreecommitdiff
path: root/advanced_opengl/8.geometry_shader/shaders/base.gs
diff options
context:
space:
mode:
authorpryazha <pryadeiniv@mail.ru>2025-01-23 19:39:54 +0500
committerpryazha <pryadeiniv@mail.ru>2025-01-23 19:39:54 +0500
commitbf1c59565096ac9774493846cfb15e259d3b0e66 (patch)
tree82e8182af128580b6f38437feccba8c0f48abdc1 /advanced_opengl/8.geometry_shader/shaders/base.gs
parent1ee094199af9c169e1ccaa53c7b0c186c4a3639e (diff)
restructure
Diffstat (limited to 'advanced_opengl/8.geometry_shader/shaders/base.gs')
-rw-r--r--advanced_opengl/8.geometry_shader/shaders/base.gs27
1 files changed, 27 insertions, 0 deletions
diff --git a/advanced_opengl/8.geometry_shader/shaders/base.gs b/advanced_opengl/8.geometry_shader/shaders/base.gs
new file mode 100644
index 0000000..6b140c5
--- /dev/null
+++ b/advanced_opengl/8.geometry_shader/shaders/base.gs
@@ -0,0 +1,27 @@
+#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();
+}