blob: 7e2829c2aeddee539418a8e1ea99a4c6859a29a4 [file] [log] [blame]
Michael Ludwig4f94ef62018-09-12 15:22:16 -04001/*
2 * Copyright 2018 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8in half4x4 gradientMatrix;
9
10@coordTransform {
11 gradientMatrix
12}
13
14void main() {
15 sk_OutColor = half4(sk_TransformedCoords2D[0].x);
16}
17
18//////////////////////////////////////////////////////////////////////////////
19
20@header {
21 #include "SkLinearGradient.h"
22}
23
24@make {
25 static std::unique_ptr<GrFragmentProcessor> Make(const SkLinearGradient& gradient,
26 const GrFPArgs& args);
27}
28
29@cppEnd {
30 std::unique_ptr<GrFragmentProcessor> GrLinearGradientLayout::Make(
31 const SkLinearGradient& grad, const GrFPArgs& args) {
32 SkMatrix matrix;
33 if (!grad.totalLocalMatrix(args.fPreLocalMatrix, args.fPostLocalMatrix)->invert(&matrix)) {
34 return nullptr;
35 }
36 matrix.postConcat(grad.getGradientMatrix());
37 return std::unique_ptr<GrFragmentProcessor>(new GrLinearGradientLayout(matrix));
38 }
39}