Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Side by Side Diff: cc/paint/paint_shader.cc

Issue 2893083002: cc: Move SkShader construction to a single spot in PaintShader (Closed)
Patch Set: update Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "cc/paint/paint_shader.h"
6 #include "cc/paint/paint_record.h"
7
8 #include "third_party/skia/include/effects/SkGradientShader.h"
9
10 namespace cc {
11
12 PaintShader::PaintShader(SkColor color) : PaintShader(nullptr, color) {}
13 PaintShader::PaintShader(const SkPoint points[],
14 const SkColor colors[],
15 const SkScalar pos[],
16 int count,
17 SkShader::TileMode mode,
18 uint32_t flags,
19 const SkMatrix* local_matrix,
20 SkColor fallback_color)
21 : PaintShader(SkGradientShader::MakeLinear(points,
22 colors,
23 pos,
24 count,
25 mode,
26 flags,
27 local_matrix),
28 fallback_color) {}
29 PaintShader::PaintShader(const SkPoint& center,
30 SkScalar radius,
31 const SkColor colors[],
32 const SkScalar pos[],
33 int color_count,
34 SkShader::TileMode mode,
35 uint32_t flags,
36 const SkMatrix* local_matrix,
37 SkColor fallback_color)
38 : PaintShader(SkGradientShader::MakeRadial(center,
39 radius,
40 colors,
41 pos,
42 color_count,
43 mode,
44 flags,
45 local_matrix),
46 fallback_color) {}
47 PaintShader::PaintShader(const SkPoint& start,
48 SkScalar start_radius,
49 const SkPoint& end,
50 SkScalar end_radius,
51 const SkColor colors[],
52 const SkScalar pos[],
53 int color_count,
54 SkShader::TileMode mode,
55 uint32_t flags,
56 const SkMatrix* local_matrix,
57 SkColor fallback_color)
58 : PaintShader(SkGradientShader::MakeTwoPointConical(start,
59 start_radius,
60 end,
61 end_radius,
62 colors,
63 pos,
64 color_count,
65 mode,
66 flags,
67 local_matrix),
68 fallback_color) {}
69 PaintShader::PaintShader(SkScalar cx,
70 SkScalar cy,
71 const SkColor colors[],
72 const SkScalar pos[],
73 int color_count,
74 uint32_t flags,
75 const SkMatrix* local_matrix,
76 SkColor fallback_color)
77 : PaintShader(SkGradientShader::MakeSweep(cx,
78 cy,
79 colors,
80 pos,
81 color_count,
82 flags,
83 local_matrix),
84 fallback_color) {}
85 PaintShader::PaintShader(sk_sp<const SkImage> image,
86 SkShader::TileMode tx,
87 SkShader::TileMode ty,
88 const SkMatrix* local_matrix)
89 : PaintShader(image->makeShader(tx, ty, local_matrix),
90 SK_ColorTRANSPARENT) {}
91 PaintShader::PaintShader(sk_sp<PaintRecord> record,
92 const SkRect& tile,
93 SkShader::TileMode tx,
94 SkShader::TileMode ty,
95 const SkMatrix* local_matrix)
96 : PaintShader(
97 SkShader::MakePictureShader(ToSkPicture(std::move(record), tile),
98 tx,
99 ty,
100 local_matrix,
101 nullptr),
102 SK_ColorTRANSPARENT) {}
103 PaintShader::PaintShader(sk_sp<SkShader> shader, SkColor fallback_color)
104 : sk_shader_(shader ? std::move(shader)
105 : SkShader::MakeColorShader(fallback_color)) {
106 DCHECK(sk_shader_);
107 }
108 PaintShader::PaintShader(const PaintShader& other) = default;
109 PaintShader::PaintShader(PaintShader&& other) = default;
110 PaintShader::~PaintShader() = default;
111
112 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698