summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/bgfx/shaders/chains/pillarbox_right_horizontal/fs_gaussian.sc
blob: 5375561e8ac1ad7f2e5637519ef9992b4ad11b8d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
$input v_color0, v_texcoord0

// license:BSD-3-Clause
// copyright-holders:Ryan Holtz

#include "common.sh"

// Autos
uniform vec4 u_tex_size0;

// User-supplied
uniform vec4 u_dimension;
uniform vec4 u_radius;

// Samplers
SAMPLER2D(s_tex, 0);

//-----------------------------------------------------------------------------
// Constants
//-----------------------------------------------------------------------------

void main()
{
	vec4 sum = vec4(0.0, 0.0, 0.0, 0.0);
	
	vec2 blur = (u_radius.xx * u_dimension.xy) / u_tex_size0.xy;

	sum += texture2D(s_tex, v_texcoord0 - vec2(12.0, 12.0) * blur) * 0.001133;
	sum += texture2D(s_tex, v_texcoord0 - vec2(11.0, 11.0) * blur) * 0.002316;
	sum += texture2D(s_tex, v_texcoord0 - vec2(10.0, 10.0) * blur) * 0.00445;
	sum += texture2D(s_tex, v_texcoord0 - vec2(9.0, 9.0) * blur) * 0.008033;
	sum += texture2D(s_tex, v_texcoord0 - vec2(8.0, 8.0) * blur) * 0.013627;
	sum += texture2D(s_tex, v_texcoord0 - vec2(7.0, 7.0) * blur) * 0.021724;
	sum += texture2D(s_tex, v_texcoord0 - vec2(6.0, 6.0) * blur) * 0.032542;
	sum += texture2D(s_tex, v_texcoord0 - vec2(5.0, 5.0) * blur) * 0.04581;
	sum += texture2D(s_tex, v_texcoord0 - vec2(4.0, 4.0) * blur) * 0.0606;
	sum += texture2D(s_tex, v_texcoord0 - vec2(3.0, 3.0) * blur) * 0.075333;
	sum += texture2D(s_tex, v_texcoord0 - vec2(2.0, 2.0) * blur) * 0.088001;
	sum += texture2D(s_tex, v_texcoord0 - vec2(1.0, 1.0) * blur) * 0.096603;

	vec4 d0 = texture2D(s_tex, v_texcoord0) * 0.099654;

	sum += texture2D(s_tex, v_texcoord0 + vec2(1.0, 1.0) * blur) * 0.096603;
	sum += texture2D(s_tex, v_texcoord0 + vec2(2.0, 2.0) * blur) * 0.088001;
	sum += texture2D(s_tex, v_texcoord0 + vec2(3.0, 3.0) * blur) * 0.075333;
	sum += texture2D(s_tex, v_texcoord0 + vec2(4.0, 4.0) * blur) * 0.0606;
	sum += texture2D(s_tex, v_texcoord0 - vec2(5.0, 5.0) * blur) * 0.04581;
	sum += texture2D(s_tex, v_texcoord0 - vec2(6.0, 6.0) * blur) * 0.032542;
	sum += texture2D(s_tex, v_texcoord0 - vec2(7.0, 7.0) * blur) * 0.021724;
	sum += texture2D(s_tex, v_texcoord0 - vec2(8.0, 8.0) * blur) * 0.013627;
	sum += texture2D(s_tex, v_texcoord0 - vec2(9.0, 9.0) * blur) * 0.008033;
	sum += texture2D(s_tex, v_texcoord0 - vec2(10.0, 10.0) * blur) * 0.00445;
	sum += texture2D(s_tex, v_texcoord0 - vec2(11.0, 11.0) * blur) * 0.002316;
	sum += texture2D(s_tex, v_texcoord0 - vec2(12.0, 12.0) * blur) * 0.001133;

	gl_FragColor = vec4(sum.rgb, 1.0);
}