#version 450

layout(set = 3, binding = 0) uniform sampler2D camTexture;

#ifdef ENABLE_DEPTH_WRITE
layout(set = 2, binding = 1) uniform sampler2D depthMap;
#endif

layout(location = 0) in vec2 texCoords;
layout(location = 1) in float scale;
layout(location = 0) out vec4 fragColor;

layout(set = 1, binding = 0) uniform CameraData
{
    mat4 viewProjection;
    mat4 view;
    mat4 projection;
    vec4 camPos;
    float near;
    float far;
} cam;

void main()
{
    vec2 rm = (texCoords - 0.5) * 2;
    float intensity = rm.x * rm.x + rm.y * rm.y;
    intensity = (intensity / 1.4) * scale / 2;

    fragColor = texture(camTexture, texCoords);
    fragColor.rgb = fragColor.rgb - intensity;

    #ifdef ENABLE_DEPTH_WRITE
    gl_FragDepth = (texture(depthMap, texCoords).r - cam.near) / (cam.far - cam.near);
    #endif
}
