Index: shaders/ColorFragmentShader.fragmentshader
===================================================================
--- shaders/ColorFragmentShader.fragmentshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
+++ shaders/ColorFragmentShader.fragmentshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
@@ -0,0 +1,15 @@
+#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)
+++ shaders/SimpleFragmentShader.fragmentshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
@@ -0,0 +1,12 @@
+#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)
+++ shaders/SimpleVertexShader.vertexshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
@@ -0,0 +1,12 @@
+#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)
+++ shaders/TextureFragmentShader.fragmentshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
@@ -0,0 +1,16 @@
+#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)
+++ shaders/TransformVertexShader-color.vertexshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
@@ -0,0 +1,21 @@
+#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)
+++ shaders/TransformVertexShader.vertexshader	(revision 8a6d19d6c4540451e6eec71a5309028c58372af5)
@@ -0,0 +1,21 @@
+#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;
+}
+
