1#version 310 es
2precision mediump float;
3precision highp int;
4
5layout(set = 0, binding = 2) uniform mediump texture2D uTexture0;
6layout(set = 0, binding = 3) uniform mediump texture2D uTexture1;
7layout(set = 0, binding = 0) uniform mediump sampler uSampler0;
8layout(set = 0, binding = 1) uniform mediump sampler uSampler1;
9
10layout(location = 0) in vec2 vTex;
11layout(location = 0) out vec4 FragColor;
12
13vec4 sample_dual(mediump sampler samp, mediump texture2D tex)
14{
15    return texture(sampler2D(tex, samp), vTex);
16}
17
18vec4 sample_duals()
19{
20    vec4 a = sample_dual(uSampler0, uTexture0);
21    vec4 b = sample_dual(uSampler1, uTexture1);
22    return a + b;
23}
24
25vec4 sample_global_tex(mediump sampler samp)
26{
27    vec4 a = texture(sampler2D(uTexture0, samp), vTex);
28    vec4 b = sample_dual(samp, uTexture1);
29    return a + b;
30}
31
32vec4 sample_global_sampler(mediump texture2D tex)
33{
34    vec4 a = texture(sampler2D(tex, uSampler0), vTex);
35    vec4 b = sample_dual(uSampler1, tex);
36    return a + b;
37}
38
39void main()
40{
41    vec4 c0 = sample_duals();
42    vec4 c1 = sample_global_tex(uSampler0);
43    vec4 c2 = sample_global_tex(uSampler1);
44    vec4 c3 = sample_global_sampler(uTexture0);
45    vec4 c4 = sample_global_sampler(uTexture1);
46    FragColor = (((c0 + c1) + c2) + c3) + c4;
47}
48
49