diff options
Diffstat (limited to 'advanced_opengl/8.geometry_shader/shaders/base.gs')
-rw-r--r-- | advanced_opengl/8.geometry_shader/shaders/base.gs | 27 |
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(); +} |