• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#version 310 es
2precision mediump float;
3precision highp int;
4
5layout(set = 0, binding = 1) uniform mediump texture2D uTexture[4];
6layout(set = 0, binding = 0) uniform mediump sampler uSampler;
7layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray[4];
8layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube[4];
9layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D[4];
10
11layout(location = 0) in vec2 vTex;
12layout(location = 1) in vec3 vTex3;
13layout(location = 0) out vec4 FragColor;
14
15vec4 sample_func(mediump sampler samp, vec2 uv)
16{
17    return texture(sampler2D(uTexture[2], samp), uv);
18}
19
20vec4 sample_func_dual(mediump sampler samp, mediump texture2D tex, vec2 uv)
21{
22    return texture(sampler2D(tex, samp), uv);
23}
24
25vec4 sample_func_dual_array(mediump sampler samp, mediump texture2D tex[4], vec2 uv)
26{
27    return texture(sampler2D(tex[1], samp), uv);
28}
29
30void main()
31{
32    vec2 off = vec2(1.0) / vec2(textureSize(sampler2D(uTexture[1], uSampler), 0));
33    vec2 off2 = vec2(1.0) / vec2(textureSize(sampler2D(uTexture[2], uSampler), 1));
34    vec2 param = (vTex + off) + off2;
35    vec4 c0 = sample_func(uSampler, param);
36    vec2 param_1 = (vTex + off) + off2;
37    vec4 c1 = sample_func_dual(uSampler, uTexture[1], param_1);
38    vec2 param_2 = (vTex + off) + off2;
39    vec4 c2 = sample_func_dual_array(uSampler, uTexture, param_2);
40    vec4 c3 = texture(sampler2DArray(uTextureArray[3], uSampler), vTex3);
41    vec4 c4 = texture(samplerCube(uTextureCube[1], uSampler), vTex3);
42    vec4 c5 = texture(sampler3D(uTexture3D[2], uSampler), vTex3);
43    FragColor = ((((c0 + c1) + c2) + c3) + c4) + c5;
44}
45
46