slang-shaders/bezel/koko-aio/shaders/old_unused/vignette_and_spot.slang
2022-12-05 18:48:10 -06:00

50 lines
1.3 KiB
Plaintext

#version 450
#include "config.inc"
#pragma stage vertex
layout(location = 0) in vec4 Position;
layout(location = 1) in vec2 TexCoord;
layout(location = 0) out vec2 vTexCoord;
#include "functions.include"
void main()
{
gl_Position = global.MVP * Position;
vTexCoord = TexCoord;
float aspect_prev = (params.SourceSize.y / params.SourceSize.x);
if (border_needed() ) {
vTexCoord.x = vTexCoord.x * aspect_prev - ((0.5 * aspect_prev) - 0.5);
float in_aspect = get_in_aspect();
vTexCoord.x = vTexCoord.x * in_aspect - ((0.5 * in_aspect) - 0.5);
} else {
vTexCoord.x = vTexCoord.x * aspect_prev - ((0.5 * aspect_prev) - 0.5);
float dasp = global.FinalViewportSize.x/global.FinalViewportSize.y;
vTexCoord.x = (vTexCoord.x* dasp - ((0.5 * dasp) - 0.5)) ;
}
}
#pragma stage fragment
layout(location = 0) in vec2 vTexCoord;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D Source;
#include "functions.include"
void main() {
if ((DO_VIGNETTE != 1.0) && (DO_SPOT != 1.0)) return;
vec3 pixel_out;
if (DO_VIGNETTE == 1.0)
pixel_out.r = gauss_xy(0.0, 0.0, v_size, v_power, 0.0, 1.0);
if (DO_SPOT == 1.0)
pixel_out.g = gauss_xy(s_center_x, s_center_y, s_size, s_power, 0.0, 10.0);
FragColor = vec4(pixel_out,1.0);
}