Index: shaders/ColorFragmentShader.fragmentshader
===================================================================
--- shaders/ColorFragmentShader.fragmentshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ 	(revision )
@@ -1,15 +1,0 @@
-#version 330 core
-
-// Interpolated values from the vertex shaders
-in vec3 fragmentColor;
-
-// Ouput data
-out vec3 color;
-
-void main(){
-
-	// Output color = color specified in the vertex shader, 
-	// interpolated between all 3 surrounding vertices
-	color = fragmentColor;
-
-}
Index: shaders/SimpleFragmentShader.fragmentshader
===================================================================
--- shaders/SimpleFragmentShader.fragmentshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-#version 330 core
-
-// Ouput data
-out vec3 color;
-
-void main()
-{
-
-	// Output color = red 
-	color = vec3(1,0,0);
-
-}
Index: shaders/SimpleVertexShader.vertexshader
===================================================================
--- shaders/SimpleVertexShader.vertexshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ 	(revision )
@@ -1,12 +1,0 @@
-#version 330 core
-
-// Input vertex data, different for all executions of this shader.
-layout(location = 0) in vec3 vertexPosition_modelspace;
-
-void main(){
-
-    gl_Position.xyz = vertexPosition_modelspace;
-    gl_Position.w = 1.0;
-
-}
-
Index: shaders/TextureFragmentShader.fragmentshader
===================================================================
--- shaders/TextureFragmentShader.fragmentshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ 	(revision )
@@ -1,16 +1,0 @@
-#version 330 core
-
-// Interpolated values from the vertex shaders
-in vec2 UV;
-
-// Ouput data
-out vec3 color;
-
-// Values that stay constant for the whole mesh.
-uniform sampler2D myTextureSampler;
-
-void main(){
-
-	// Output color = color of the texture at the specified UV
-	color = texture( myTextureSampler, UV ).rgb;
-}
Index: shaders/TransformVertexShader-color.vertexshader
===================================================================
--- shaders/TransformVertexShader-color.vertexshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-#version 330 core
-
-// Input vertex data, different for all executions of this shader.
-layout(location = 0) in vec3 vertexPosition_modelspace;
-layout(location = 1) in vec3 vertexColor;
-
-// Output data ; will be interpolated for each fragment.
-out vec3 fragmentColor;
-// Values that stay constant for the whole mesh.
-uniform mat4 MVP;
-
-void main(){	
-
-	// Output position of the vertex, in clip space : MVP * position
-	gl_Position =  MVP * vec4(vertexPosition_modelspace,1);
-
-	// The color of each vertex will be interpolated
-	// to produce the color of each fragment
-	fragmentColor = vertexColor;
-}
-
Index: shaders/TransformVertexShader.vertexshader
===================================================================
--- shaders/TransformVertexShader.vertexshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ 	(revision )
@@ -1,21 +1,0 @@
-#version 330 core
-
-// Input vertex data, different for all executions of this shader.
-layout(location = 0) in vec3 vertexPosition_modelspace;
-layout(location = 1) in vec2 vertexUV;
-
-// Output data ; will be interpolated for each fragment.
-out vec2 UV;
-
-// Values that stay constant for the whole mesh.
-uniform mat4 MVP;
-
-void main(){
-
-	// Output position of the vertex, in clip space : MVP * position
-	gl_Position =  MVP * vec4(vertexPosition_modelspace,1);
-	
-	// UV of the vertex. No special space for this one.
-	UV = vertexUV;
-}
-
Index: shaders/shader.frag
===================================================================
--- shaders/shader.frag	(revision ebeb3aa06c69b63f0483c8192aaa3e976a9eb364)
+++ shaders/shader.frag	(revision ebeb3aa06c69b63f0483c8192aaa3e976a9eb364)
@@ -0,0 +1,10 @@
+#version 450
+#extension GL_ARB_separate_shader_objects : enable
+
+layout(location = 0) in vec3 fragColor;
+
+layout(location = 0) out vec4 outColor;
+
+void main() {
+    outColor = vec4(fragColor, 1.0);
+}
Index: shaders/shader.vert
===================================================================
--- shaders/shader.vert	(revision ebeb3aa06c69b63f0483c8192aaa3e976a9eb364)
+++ shaders/shader.vert	(revision ebeb3aa06c69b63f0483c8192aaa3e976a9eb364)
@@ -0,0 +1,20 @@
+#version 450
+
+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];
+}
