// -*- mode: c -*- #ifdef GLSL330 layout (location = 0) in vec3 position; layout (location = 1) in vec3 normal; layout (location = 2) in vec2 texcoord0; layout (location = 3) in vec2 texcoord1; layout (location = 4) in vec4 color0; #elif defined(GLSL130) in vec3 position; in vec3 normal; in vec2 texcoord0; in vec2 texcoord1; in vec4 color0; #elif defined(GLSL120) attribute vec3 position; attribute vec2 texcoord0; attribute vec2 texcoord1; attribute vec4 color0; #endif #ifdef GLSL120 varying vec3 fragWorldPos; varying vec3 fragCamPos; varying vec3 fragNormal; varying vec2 fragTexcoord0; varying vec2 fragTexcoord1; varying vec4 fragColor0; #else out vec3 fragWorldPos; out vec3 fragCamPos; out vec3 fragNormal; out vec2 fragTexcoord0; out vec2 fragTexcoord1; out vec4 fragColor0; #endif uniform mat4 model; uniform mat4 view; uniform mat4 projection; void main(void) { fragWorldPos = (model * vec4(position.xyz, 1.0)).xyz; fragCamPos = (view * vec4(0.0, 0.0, 0.0, 1.0)).xyz; fragNormal = normal; fragTexcoord0 = texcoord0; fragTexcoord1 = texcoord1; fragColor0 = color0; gl_Position = projection * view * model * vec4(position.xyz, 1.0); }