/*
 * Copyright 2018 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

// This only supports a 2-color single interval so it is a simple  linear interpolation between the
// two end points based on t. But it serves as a good test for connecting all of the plumbing into a
// functional gradient shader.

layout(ctype=GrColor4f, tracked) in uniform half4 start;
layout(ctype=GrColor4f, tracked) in uniform half4 end;

void main() {
    half t = sk_InColor.x;

    // Clamping and/or wrapping was already handled by the parent shader so the output color is a
    // simple lerp.
    sk_OutColor = (1 - t) * start + t * end;
}
