#version 330 core in vec2 TexCoords; out vec4 color; uniform sampler2D image; uniform float posX; uniform float posY; uniform int animRow; uniform int animCol; uniform int rows; uniform int cols; uniform int spriteWidth; uniform int spriteHeight; uniform int atlasWidth; uniform int atlasHeight; // Unused for now uniform vec3 spriteColor; void main() { float rw = (float(spriteWidth) / float(atlasWidth)); float rh = (float(spriteHeight) / float(atlasHeight)); float x = TexCoords.x * rw + posX + animRow * rw; float y = TexCoords.y * rh + (posY / float(atlasHeight)) + animCol * rh; float minb = 0.005; float maxb = 0.995; bool drawDebugBorders = TexCoords.x <= minb || TexCoords.x >= maxb || TexCoords.y <= minb || TexCoords.y >= maxb; if (drawDebugBorders) { color = vec4(1,0,0,1); } else { color = texture(image, vec2(x, y)); } }