2021-08-09 12:42:51 +00:00
|
|
|
#version 300 es
|
|
|
|
precision mediump float;
|
|
|
|
|
2021-08-10 03:08:54 +00:00
|
|
|
#include "compat.h"
|
|
|
|
|
2021-08-11 08:53:36 +00:00
|
|
|
in vec2 fragCoord;
|
2021-08-09 12:42:51 +00:00
|
|
|
out vec4 fragColor;
|
|
|
|
|
2021-08-11 08:53:36 +00:00
|
|
|
uniform sampler2D texture;
|
2021-08-09 14:54:54 +00:00
|
|
|
uniform float uSharpness;
|
2021-08-09 12:42:51 +00:00
|
|
|
|
|
|
|
#define A_GPU 1
|
|
|
|
#define A_GLSL 1
|
|
|
|
|
|
|
|
#include "ffx_a.h"
|
|
|
|
|
|
|
|
vec3 imageLoad(ivec2 point)
|
|
|
|
{
|
2021-08-11 08:53:36 +00:00
|
|
|
return texelFetch(texture, point, 0).rgb;
|
2021-08-09 12:42:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
AF3 CasLoad(ASU2 p)
|
|
|
|
{
|
|
|
|
return imageLoad(p).rgb;
|
|
|
|
}
|
|
|
|
|
|
|
|
void CasInput(inout AF1 r,inout AF1 g,inout AF1 b) {}
|
|
|
|
|
|
|
|
#include "ffx_cas.h"
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
2021-08-11 08:53:36 +00:00
|
|
|
vec2 res = vec2(textureSize(texture, 0));
|
|
|
|
uvec2 point = uvec2(fragCoord * res);
|
2021-08-09 12:42:51 +00:00
|
|
|
|
|
|
|
vec4 color;
|
|
|
|
uvec4 const0;
|
|
|
|
uvec4 const1;
|
|
|
|
|
2021-08-09 14:54:54 +00:00
|
|
|
CasSetup(const0, const1, uSharpness,
|
2021-08-11 08:53:36 +00:00
|
|
|
res.x, res.y, res.x, res.y);
|
2021-08-09 12:42:51 +00:00
|
|
|
|
|
|
|
CasFilter(
|
|
|
|
fragColor.r, fragColor.g, fragColor.b,
|
|
|
|
point,
|
|
|
|
const0, const1,
|
|
|
|
true);
|
|
|
|
}
|