#version 130

uniform sampler1D       texSampler1D;
uniform sampler2D       texSampler2D;
uniform sampler3D       texSampler3D;
uniform samplerCube	    texSamplerCube;
uniform sampler1DShadow shadowSampler1D;
uniform sampler2DShadow shadowSampler2D;

uniform float blend;
uniform vec2 scale;
uniform vec4 u;

varying vec2 t;
varying vec2 coords2D;

void main()
{  
    float blendscale = 1.789;
    float bias       = 2.0;
    float lod		 = 3.0;
    float proj       = 2.0;
    float coords1D   = 1.789;
    vec3  coords3D   = vec3(1.789, 2.718, 3.453);
    vec4  coords4D   = vec4(1.789, 2.718, 3.453, 2.0);
    vec4  color      = vec4(0.0, 0.0, 0.0, 0.0);

    color += texture1D    (texSampler1D, coords1D);
    color += texture1D    (texSampler1D, coords1D, bias);
    color += texture1DProj(texSampler1D, coords2D);
    color += texture1DProj(texSampler1D, coords4D);
    color += texture1DProj(texSampler1D, coords2D, bias);
    color += texture1DProj(texSampler1D, coords4D, bias);
    
    color += texture2D        (texSampler2D, coords2D);
    color += texture2D        (texSampler2D, coords2D, bias);
    color += texture2DProj    (texSampler2D, coords3D);
    color += texture2DProj    (texSampler2D, coords4D, bias);

    color += texture3D        (texSampler3D, coords3D);
    color += texture3D        (texSampler3D, coords3D, bias);
    color += texture3DProj    (texSampler3D, coords4D);
    color += texture3DProj    (texSampler3D, coords4D, bias);

    color += textureCube    (texSamplerCube, coords3D);
    color += textureCube    (texSamplerCube, coords3D, bias);
    
    color += shadow1D       (shadowSampler1D, coords3D);
    color += shadow1D       (shadowSampler1D, coords3D, bias);
    color += shadow2D       (shadowSampler2D, coords3D);
    color += shadow2D       (shadowSampler2D, coords3D, bias);
    color += shadow1DProj   (shadowSampler1D, coords4D);
    color += shadow1DProj   (shadowSampler1D, coords4D, bias);
    color += shadow2DProj   (shadowSampler2D, coords4D);
    color += shadow2DProj   (shadowSampler2D, coords4D, bias);

    ivec2 iCoords2D = ivec2(0, 5);
    int iLod = 1;

    color += texelFetch(texSampler2D, iCoords2D, iLod);

    vec2 gradX = dFdx(coords2D);
    vec2 gradY = dFdy(coords2D);
    const ivec2 offset = ivec2(3, -7);

    color += textureGrad(texSampler2D, coords2D, gradX, gradY);
    color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY);
    color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset);
    color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset);
    color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY);
    
    gl_FragColor = mix(color, u, blend * blendscale);
}