#version 320 es

// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

precision highp float;

layout(location = 0) out vec4 fragColor;

layout(location = 0) uniform float a;

void main() {
    fragColor = vec4(
        0.0,
        // dot product of incident vector (2nd param) and reference vector (3rd param) is non-negative,
        // so the negated first param is returned, and its first value is 1.0.
        faceforward(vec2(-a, 5.0), vec2(1.0, 2.0), vec2(3.0, 4.0))[0],
        0.0,
        // dot product of incident vector (2nd param) and reference vector (3rd param) is negative,
        // so the original first param is returned, and its second value is 5.0, so subtract 4.0 to get 1.0.
        faceforward(vec2(a, 5.0), vec2(1.0, -2.0), vec2(3.0, 4.0))[1] - 4.0
    );
}
