#version 140

uniform sampler1D       texSampler1D;
uniform sampler2D       texSampler2D;
uniform sampler3D       texSampler3D;
uniform samplerCube	    texSamplerCube;
uniform sampler1DShadow shadowSampler1D;
uniform sampler2DShadow shadowSampler2D;

varying float blend;
varying vec2 scale;
varying vec4 u;

in  vec2 t;
in  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 += texture    (texSampler1D, coords1D);
    color += texture    (texSampler1D, coords1D, bias);
    color += textureProj(texSampler1D, coords2D);
    color += textureProj(texSampler1D, coords4D);
    color += textureProj(texSampler1D, coords2D, bias);
    color += textureProj(texSampler1D, coords4D, bias);
    
    color += texture        (texSampler2D, coords2D);
    color += texture        (texSampler2D, coords2D, bias);
    color += textureProj    (texSampler2D, coords3D);
    color += textureProj    (texSampler2D, coords4D, bias);

    color += texture        (texSampler3D, coords3D);
    color += texture        (texSampler3D, coords3D, bias);
    color += textureProj    (texSampler3D, coords4D);
    color += textureProj    (texSampler3D, coords4D, bias);

    color += texture    (texSamplerCube, coords3D);
    color += texture    (texSamplerCube, coords3D, bias);
    
    color += texture       (shadowSampler1D, coords3D);
    color += texture       (shadowSampler1D, coords3D, bias);
    color += texture       (shadowSampler2D, coords3D);
    color += texture       (shadowSampler2D, coords3D, bias);
    color += textureProj   (shadowSampler1D, coords4D);
    color += textureProj   (shadowSampler1D, coords4D, bias);
    color += textureProj   (shadowSampler2D, coords4D);
    color += textureProj   (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);
}