uniform int         texture_Count;
uniform sampler2D   Textures        [16];
uniform float       Fade            [16];
uniform bool        texture_Applies [16];


vec4
apply_Texturing (vec2   Coords)
{
    vec4   Color = vec4 (0);


    for (int i = 0;   i < texture_Count;   ++i)
    {
        if (texture_Applies [i])
        {
            Color.rgb +=   texture (Textures [i], Coords).rgb
                         * texture (Textures [i], Coords).a
                         * (1.0 - Fade [i]);
                                      
//            Color.a    += texture (Textures [i],  Coords).a * (1.0 - Fade [1]);

            Color.a    = max (Color.a,
                              texture (Textures [i],Coords).a * (1.0 - Fade [i]));

//            Color.a    = max (Color.a,
//                              texture (Textures [i],Coords).a);
        }
    }
    
    
    return Color;
}
