85 lines
1.1 KiB
Plaintext
85 lines
1.1 KiB
Plaintext
#version 400
|
|
|
|
//layout (location = 0) in vec3 position;
|
|
|
|
/*
|
|
layout (std140) uniform global
|
|
{
|
|
vec2 document;
|
|
|
|
vec2 other;
|
|
};
|
|
*/
|
|
layout (std140) uniform events
|
|
{
|
|
vec2 mouse;
|
|
|
|
vec2 window;
|
|
};
|
|
|
|
|
|
//uniform vec2 mouse;
|
|
|
|
//uniform vec2 window;
|
|
|
|
|
|
|
|
layout(location = 0) in vec3 position;
|
|
|
|
layout(location = 1) in vec2 textureCoordinates;
|
|
|
|
layout(location = 2) in int meshIndex;
|
|
|
|
|
|
|
|
out vec2 vertex_textureCoordinates;
|
|
|
|
|
|
void main() {
|
|
|
|
vec2 mousePosition = mouse / window;
|
|
|
|
mousePosition -= .5;
|
|
|
|
mousePosition.y *= -1.;
|
|
|
|
mousePosition *= 2.0;
|
|
|
|
gl_Position.xyz = position / vec3(40, 1, 10);
|
|
|
|
if( meshIndex == 0 ) {
|
|
|
|
gl_Position.xy += mousePosition;
|
|
|
|
} else {
|
|
|
|
vec2 normalizedPosition = 1.0 / window;
|
|
|
|
normalizedPosition -= 0.5;
|
|
|
|
normalizedPosition.y *= -1.;
|
|
|
|
normalizedPosition *= 2.0;
|
|
|
|
|
|
normalizedPosition.x += .1;
|
|
|
|
normalizedPosition.x += mod( float(meshIndex), 30 ) * ( .08 );
|
|
|
|
normalizedPosition.y -= 1;
|
|
|
|
normalizedPosition.y -= floor( float(meshIndex) / 30 ) * .5;
|
|
|
|
gl_Position.xy += vec2( normalizedPosition );
|
|
|
|
}
|
|
|
|
//gl_Position.xy /= window;
|
|
|
|
vertex_textureCoordinates = textureCoordinates;
|
|
|
|
gl_Position.w = 1.0;
|
|
|
|
}
|
|
|