Ennix/shaders/main.frag

38 lines
912 B
GLSL

#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));
}
}