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