Index: cc/paint/paint_shader.cc |
diff --git a/cc/paint/paint_shader.cc b/cc/paint/paint_shader.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5a7763564309acdbd8e8961170879948339acdd9 |
--- /dev/null |
+++ b/cc/paint/paint_shader.cc |
@@ -0,0 +1,99 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "cc/paint/paint_shader.h" |
+#include "cc/paint/paint_record.h" |
+ |
+#include "third_party/skia/include/effects/SkGradientShader.h" |
+ |
+namespace cc { |
+ |
+PaintShader::PaintShader(SkColor color) |
+ : PaintShader(SkShader::MakeColorShader(SK_ColorTRANSPARENT)) {} |
+PaintShader::PaintShader(const SkPoint points[], |
+ const SkColor colors[], |
+ const SkScalar pos[], |
+ int count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, |
+ const SkMatrix* local_matrix) |
+ : PaintShader(SkGradientShader::MakeLinear(points, |
+ colors, |
+ pos, |
+ count, |
+ mode, |
+ flags, |
+ local_matrix)) {} |
+PaintShader::PaintShader(const SkPoint& center, |
+ SkScalar radius, |
+ const SkColor colors[], |
+ const SkScalar pos[], |
+ int color_count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, |
+ const SkMatrix* local_matrix) |
+ : PaintShader(SkGradientShader::MakeRadial(center, |
+ radius, |
+ colors, |
+ pos, |
+ color_count, |
+ mode, |
+ flags, |
+ local_matrix)) {} |
+PaintShader::PaintShader(const SkPoint& start, |
+ SkScalar start_radius, |
+ const SkPoint& end, |
+ SkScalar end_radius, |
+ const SkColor colors[], |
+ const SkScalar pos[], |
+ int color_count, |
+ SkShader::TileMode mode, |
+ uint32_t flags, |
+ const SkMatrix* local_matrix) |
+ : PaintShader(SkGradientShader::MakeTwoPointConical(start, |
+ start_radius, |
+ end, |
+ end_radius, |
+ colors, |
+ pos, |
+ color_count, |
+ mode, |
+ flags, |
+ local_matrix)) {} |
+PaintShader::PaintShader(SkScalar cx, |
+ SkScalar cy, |
+ const SkColor colors[], |
+ const SkScalar pos[], |
+ int color_count, |
+ uint32_t flags, |
+ const SkMatrix* local_matrix) |
+ : PaintShader(SkGradientShader::MakeSweep(cx, |
+ cy, |
+ colors, |
+ pos, |
+ color_count, |
+ flags, |
+ local_matrix)) {} |
+PaintShader::PaintShader(sk_sp<const SkImage> image, |
+ SkShader::TileMode tx, |
+ SkShader::TileMode ty, |
+ const SkMatrix* local_matrix) |
+ : PaintShader(image->makeShader(tx, ty, local_matrix)) {} |
+PaintShader::PaintShader(sk_sp<PaintRecord> record, |
+ SkShader::TileMode tx, |
+ SkShader::TileMode ty, |
+ const SkMatrix* local_matrix, |
+ const SkRect* tile) |
+ : PaintShader(SkShader::MakePictureShader(ToSkPicture(std::move(record)), |
+ tx, |
+ ty, |
+ local_matrix, |
+ tile)) {} |
+PaintShader::PaintShader(sk_sp<SkShader> shader) |
+ : sk_shader_(std::move(shader)) {} |
+PaintShader::PaintShader(const PaintShader& other) = default; |
+PaintShader::PaintShader(PaintShader&& other) = default; |
+PaintShader::~PaintShader() = default; |
+ |
+} // namespace cc |