#version 450
// SIMPLE TEXTURE : FRAGMENT SHADER

// These come in from the previous shader (vertex)
layout(location = 0) in vec2 image_position;

// This goes out to the bound image in window_size_dependent setup
layout(location = 0) out vec4 f_color;

// This is bound by the descriptor set
// Currently handled by the individual buffer and are 1:1
layout(set = 0, binding = 0, rgba32ui) readonly uniform uimage2D img;

void main() {

    ivec2 pos = ivec2(gl_FragCoord.x, gl_FragCoord.y);

    f_color = imageLoad(img, ivec2(image_position)) / (255.0);

    float gamma = 0.5;
    f_color.rgb = pow(f_color.rgb, vec3(1.0/gamma));

}