#pragma MSP stage(vertex) uniform mat4 mvp; uniform sampler2D heightmap; layout(location=0) in vec2 position; layout(location=1) in vec2 texcoord; void main() { gl_Position = mvp*vec4(position, texture(heightmap, texcoord).r, 1.0); passthrough; } #pragma MSP stage(fragment) layout(location=0) uniform sampler2D heightmap; uniform vec4 color; out vec4 frag_color; void main() { frag_color = color*vec4(texture(heightmap, texcoord).rrr, 1.0); } /* Expected output: vertex layout(location=1) uniform mat4 mvp; layout(location=0) uniform sampler2D heightmap; layout(location=0) in vec2 position; layout(location=1) in vec2 texcoord; layout(location=0) out vec2 _vs_out_texcoord; void main() { gl_Position = mvp*vec4(position, texture(heightmap, texcoord).r, 1.0); _vs_out_texcoord = texcoord; } */ /* Expected output: fragment layout(location=0) uniform sampler2D heightmap; layout(location=5) uniform vec4 color; layout(location=0) out vec4 frag_color; layout(location=0) in vec2 _vs_out_texcoord; void main() { frag_color = color*vec4(texture(heightmap, _vs_out_texcoord).rrr, 1.0); } */