kernel vec4 compareKernel(sampler src1, sampler src2, sampler src3, sampler src4, float tolerance)
{
    vec4 p1, p2, p3, p4, pOut, delta;
    float deltaAll, value;
    p1 = sample(src1, samplerCoord(src1));
    p2 = sample(src2, samplerCoord(src2));
    p3 = sample(src3, samplerCoord(src3));
    p4 = sample(src4, samplerCoord(src4));

    delta = p1 - p2;
    value = sqrt((delta.r * delta.r + delta.g * delta.g + delta.b * delta.b) / 3.0);
    deltaAll = tolerance - value;
    pOut.r = compare(deltaAll, value, 0.0);

    delta = p1 - p3;
    value = sqrt((delta.r * delta.r + delta.g * delta.g + delta.b * delta.b) / 3.0);
    deltaAll = tolerance - value;
    pOut.g = compare(deltaAll, value, 0.0);

    delta = p1 - p4;
    value = sqrt((delta.r * delta.r + delta.g * delta.g + delta.b * delta.b) / 3.0);
    deltaAll = tolerance - value;
    pOut.b = compare(deltaAll, value, 0.0);
    
    pOut.a = 1.0;
    return pOut;
}
