| Index: sky/engine/core/painting/CanvasGradient.cpp
|
| diff --git a/sky/engine/core/painting/CanvasGradient.cpp b/sky/engine/core/painting/CanvasGradient.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5e356ef03b0820c8b9dd2e0f4508698e824622ed
|
| --- /dev/null
|
| +++ b/sky/engine/core/painting/CanvasGradient.cpp
|
| @@ -0,0 +1,40 @@
|
| +// Copyright 2015 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 "sky/engine/config.h"
|
| +#include "sky/engine/core/painting/CanvasGradient.h"
|
| +
|
| +#include "base/logging.h"
|
| +#include "sky/engine/core/painting/Picture.h"
|
| +
|
| +namespace blink {
|
| +
|
| +PassRefPtr<CanvasGradient> CanvasGradient::create(
|
| + int type,
|
| + const Vector<Point>& end_points,
|
| + const Vector<SkColor>& colors,
|
| + const Vector<float>& color_stops) {
|
| + ASSERT(type == 0); // Only 1 supported type so far.
|
| + ASSERT(end_points.size() == 2);
|
| + ASSERT(colors.size() == color_stops.size() || color_stops.data() == nullptr);
|
| + SkPoint sk_end_points[2];
|
| + for (int i = 0; i < 2; ++i)
|
| + sk_end_points[i] = end_points[i].sk_point;
|
| +
|
| + SkShader* shader = SkGradientShader::CreateLinear(
|
| + sk_end_points, colors.data(), color_stops.data(), colors.size(),
|
| + SkShader::kClamp_TileMode);
|
| + return adoptRef(new CanvasGradient(adoptRef(shader)));
|
| +}
|
| +
|
| +CanvasGradient::CanvasGradient(PassRefPtr<SkShader> shader)
|
| + : Shader(shader)
|
| +{
|
| +}
|
| +
|
| +CanvasGradient::~CanvasGradient()
|
| +{
|
| +}
|
| +
|
| +} // namespace blink
|
|
|