1#version 310 es 2precision mediump float; 3 4layout(set = 0, binding = 0) uniform mediump sampler uSampler; 5layout(set = 0, binding = 1) uniform mediump texture2D uTexture; 6layout(set = 0, binding = 2) uniform mediump texture3D uTexture3D; 7layout(set = 0, binding = 3) uniform mediump textureCube uTextureCube; 8layout(set = 0, binding = 4) uniform mediump texture2DArray uTextureArray; 9 10layout(location = 0) out vec4 FragColor; 11layout(location = 0) in vec2 vTex; 12layout(location = 1) in vec3 vTex3; 13 14vec4 sample_func(mediump sampler samp, vec2 uv) 15{ 16 return texture(sampler2D(uTexture, samp), uv); 17} 18 19vec4 sample_func_dual(mediump sampler samp, mediump texture2D tex, vec2 uv) 20{ 21 return texture(sampler2D(tex, samp), uv); 22} 23 24void main() 25{ 26 vec2 off = 1.0 / vec2(textureSize(sampler2D(uTexture, uSampler), 0)); 27 vec2 off2 = 1.0 / vec2(textureSize(sampler2D(uTexture, uSampler), 1)); 28 29 vec4 c0 = sample_func(uSampler, vTex + off + off2); 30 vec4 c1 = sample_func_dual(uSampler, uTexture, vTex + off + off2); 31 vec4 c2 = texture(sampler2DArray(uTextureArray, uSampler), vTex3); 32 vec4 c3 = texture(samplerCube(uTextureCube, uSampler), vTex3); 33 vec4 c4 = texture(sampler3D(uTexture3D, uSampler), vTex3); 34 35 FragColor = c0 + c1 + c2 + c3 + c4; 36} 37