ddnet/data/shader/bordertiletex.vert

31 lines
854 B
GLSL
Raw Normal View History

#version 330
layout (location = 0) in vec2 inVertex;
layout (location = 1) in vec2 inVertexTexCoord;
layout (location = 2) in ivec2 inVertexTexRightOrBottom;
2017-09-27 10:15:30 +00:00
uniform mat4x2 Pos;
2018-03-13 20:41:37 +00:00
uniform float TexelOffset;
uniform vec2 Offset;
uniform vec2 Dir;
uniform int JumpIndex;
noperspective out vec2 texCoord;
void main()
{
2017-09-27 10:15:30 +00:00
vec4 VertPos = vec4(inVertex, 0.0, 1.0);
int XCount = gl_InstanceID - (int(gl_InstanceID/JumpIndex) * JumpIndex);
int YCount = (int(gl_InstanceID/JumpIndex));
VertPos.x += Offset.x + Dir.x * XCount;
VertPos.y += Offset.y + Dir.y * YCount;
2017-09-27 10:15:30 +00:00
gl_Position = vec4(Pos * VertPos, 0.0, 1.0);
2018-03-13 20:41:37 +00:00
2017-10-09 17:44:22 +00:00
float tx = (inVertexTexCoord.x/(16.0));
float ty = (inVertexTexCoord.y/(16.0));
2018-03-13 20:41:37 +00:00
texCoord = vec2(tx + (inVertexTexRightOrBottom.x == 0 ? TexelOffset : -TexelOffset), ty + (inVertexTexRightOrBottom.y == 0 ? TexelOffset : -TexelOffset));
}