#version 400

uniform sampler s;
uniform samplerShadow sShadow;
uniform sampler sA[4];
uniform texture2D t2d;
uniform texture3D t3d[4];
flat in int i;

out vec4 color;

void main()
{
    color = texture(sampler2D(t2d, s), vec2(0.5));
    color += texture(sampler3D(t3d[i], sA[2]), vec3(0.5));
    color += texture(sampler2D(t2d, s), vec2(0.5));
}

uniform texture2D                 tex2D;
uniform textureCube               texCube;
uniform textureCubeArray          texCubeArray;
uniform itextureCubeArray         itexCubeArray;
uniform utextureCubeArray         utexCubeArray;
uniform itexture1DArray           itex1DArray;
uniform utexture1D                utex1D;
uniform itexture1D                itex1D;
uniform utexture1DArray           utex1DArray;
uniform textureBuffer             texBuffer;
uniform texture2DArray            tex2DArray;
uniform itexture2D                itex2D;
uniform itexture3D                itex3D;
uniform itextureCube              itexCube;
uniform itexture2DArray           itex2DArray;
uniform utexture2D                utex2D;
uniform utexture3D                utex3D;
uniform utextureCube              utexCube;
uniform utexture2DArray           utex2DArray;
uniform itexture2DRect            itex2DRect;
uniform utexture2DRect            utex2DRect;
uniform itextureBuffer            itexBuffer;
uniform utextureBuffer            utexBuffer;
uniform texture2DMS               tex2DMS;
uniform itexture2DMS              itex2DMS;
uniform utexture2DMS              utex2DMS;
uniform texture2DMSArray          tex2DMSArray;
uniform itexture2DMSArray         itex2DMSArray;
uniform utexture2DMSArray         utex2DMSArray;
uniform texture1D                 tex1D;
uniform texture3D                 tex3D;
uniform texture2DRect             tex2DRect;
uniform texture1DArray            tex1DArray;

void foo()
{
    sampler2D              (tex2D, s);
    samplerCube            (texCube, s);
    samplerCubeArray       (texCubeArray, s);
    samplerCubeArrayShadow (texCubeArray, sShadow);
    isamplerCubeArray      (itexCubeArray, s);
    usamplerCubeArray      (utexCubeArray, s);
    sampler1DArrayShadow   (tex1DArray, sShadow);
    isampler1DArray        (itex1DArray, s);
    usampler1D             (utex1D, s);
    isampler1D             (itex1D, s);
    usampler1DArray        (utex1DArray, s);
    samplerBuffer          (texBuffer, s);
    samplerCubeShadow      (texCube, sShadow);
    sampler2DArray         (tex2DArray, s);
    sampler2DArrayShadow   (tex2DArray, sShadow);
    isampler2D             (itex2D, s);
    isampler3D             (itex3D, s);
    isamplerCube           (itexCube, s);
    isampler2DArray        (itex2DArray, s);
    usampler2D             (utex2D, s);
    usampler3D             (utex3D, s);
    usamplerCube           (utexCube, s);
    usampler2DArray        (utex2DArray, s);
    isampler2DRect         (itex2DRect, s);
    usampler2DRect         (utex2DRect, s);
    isamplerBuffer         (itexBuffer, s);
    usamplerBuffer         (utexBuffer, s);
    sampler2DMS            (tex2DMS, s);
    isampler2DMS           (itex2DMS, s);
    usampler2DMS           (utex2DMS, s);
    sampler2DMSArray       (tex2DMSArray, s);
    isampler2DMSArray      (itex2DMSArray, s);
    usampler2DMSArray      (utex2DMSArray, s);
    sampler1D              (tex1D, s);
    sampler1DShadow        (tex1D, sShadow);
    sampler3D              (tex3D, s);
    sampler2DShadow        (tex2D, sShadow);
    sampler2DRect          (tex2DRect, s);
    sampler2DRectShadow    (tex2DRect, sShadow);
    sampler1DArray         (tex1DArray, s);
}
