38 lines
912 B
GLSL
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));
|
|
}
|
|
}
|