Index: shaders/shader.vert
===================================================================
--- shaders/shader.vert	(revision 4befb76b2ad7ffb682eba400baa8c312697804a5)
+++ shaders/shader.vert	(revision d9ef6abf8f84c3924d1d1742f0dd473aac90c71f)
@@ -1,20 +1,11 @@
 #version 450
+
+layout(location = 0) in vec2 inPosition;
+layout(location = 1) in vec3 inColor;
 
 layout(location = 0) out vec3 fragColor;
 
-vec2 positions[3] = vec2[](
-   vec2(0.0, -0.5),
-   vec2(0.5, 0.5),
-   vec2(-0.5, 0.5)
-);
-
-vec3 colors[3] = vec3[](
-   vec3(1.0, 0.0, 0.0),
-   vec3(0.0, 1.0, 0.0),
-   vec3(0.0, 0.0, 1.0)
-);
-
 void main() {
-   gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
-   fragColor = colors[gl_VertexIndex];
+   gl_Position = vec4(inPosition, 0.0, 1.0);
+   fragColor = inColor;
 }
