Commit 1d55eb3d authored by Dmitry Gozman's avatar Dmitry Gozman Committed by Commit Bot

Remove FloatPoint::Data

- Use operator SkPoint() instead.
- Wrap values with FloatToSkScalar to handle infinite values.
- Removed dependency from platform/geometry to platform/graphics.

Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iac69e353e46d48744a80a9c845bf1aedda80c209
Reviewed-on: https://chromium-review.googlesource.com/1067733Reviewed-by: default avatarPhilip Rogers <pdr@chromium.org>
Commit-Queue: Dmitry Gozman <dgozman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560841}
parent af53c613
......@@ -12,6 +12,7 @@
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
#include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
#include "third_party/blink/renderer/platform/wtf/vector.h"
namespace blink {
......@@ -417,10 +418,10 @@ void ClipQuad(GraphicsContext& context,
const FloatPoint quad[],
bool antialiased) {
SkPath path;
path.moveTo(quad[0]);
path.lineTo(quad[1]);
path.lineTo(quad[2]);
path.lineTo(quad[3]);
path.moveTo(FloatPointToSkPoint(quad[0]));
path.lineTo(FloatPointToSkPoint(quad[1]));
path.lineTo(FloatPointToSkPoint(quad[2]));
path.lineTo(FloatPointToSkPoint(quad[3]));
context.ClipPath(path, antialiased ? kAntiAliased : kNotAntiAliased);
}
......
......@@ -12,6 +12,7 @@
#include "third_party/blink/renderer/platform/graphics/color.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
#include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
namespace blink {
......@@ -203,10 +204,10 @@ void FillQuad(GraphicsContext& context,
const Color& color,
bool antialias) {
SkPath path;
path.moveTo(quad[0]);
path.lineTo(quad[1]);
path.lineTo(quad[2]);
path.lineTo(quad[3]);
path.moveTo(FloatPointToSkPoint(quad[0]));
path.lineTo(FloatPointToSkPoint(quad[1]));
path.lineTo(FloatPointToSkPoint(quad[2]));
path.lineTo(FloatPointToSkPoint(quad[3]));
PaintFlags flags(context.FillFlags());
flags.setAntiAlias(antialias);
flags.setColor(color.Rgb());
......
......@@ -7,7 +7,6 @@ include_rules = [
# Dependencies.
"+cc/base/region.h",
"+third_party/blink/renderer/platform/graphics",
"+third_party/blink/renderer/platform/json",
"+third_party/blink/renderer/platform/layout_unit.h",
"+third_party/blink/renderer/platform/platform_export.h",
......
......@@ -34,7 +34,6 @@
#include "third_party/blink/renderer/platform/geometry/double_point.h"
#include "third_party/blink/renderer/platform/geometry/layout_point.h"
#include "third_party/blink/renderer/platform/geometry/layout_size.h"
#include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/blink/renderer/platform/wtf/text/text_stream.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
......@@ -82,11 +81,6 @@ void FloatPoint::MoveBy(const LayoutPoint& point) {
y_ += point.Y();
}
SkPoint FloatPoint::Data() const {
SkPoint p = {WebCoreFloatToSkScalar(x_), WebCoreFloatToSkScalar(y_)};
return p;
}
FloatPoint FloatPoint::NarrowPrecision(double x, double y) {
return FloatPoint(clampTo<float>(x), clampTo<float>(y));
}
......@@ -114,10 +108,6 @@ bool FindIntersection(const FloatPoint& p1,
return true;
}
FloatPoint::operator SkPoint() const {
return SkPoint::Make(x_, y_);
}
FloatPoint::operator gfx::PointF() const {
return gfx::PointF(x_, y_);
}
......
......@@ -133,10 +133,6 @@ class PLATFORM_EXPORT FloatPoint {
operator CGPoint() const;
#endif
// Can we remove this one?
SkPoint Data() const;
operator SkPoint() const;
operator gfx::PointF() const;
explicit operator gfx::ScrollOffset() const;
......
......@@ -199,7 +199,7 @@ class LinearGradient final : public Gradient {
uint32_t flags,
const SkMatrix& local_matrix,
SkColor fallback_color) const override {
SkPoint pts[2] = {p0_.Data(), p1_.Data()};
SkPoint pts[2] = {FloatPointToSkPoint(p0_), FloatPointToSkPoint(p1_)};
return PaintShader::MakeLinearGradient(
pts, colors.data(), pos.data(), static_cast<int>(colors.size()),
tile_mode, flags, &local_matrix, fallback_color);
......@@ -247,9 +247,9 @@ class RadialGradient final : public Gradient {
const SkScalar radius0 = std::max(WebCoreFloatToSkScalar(r0_), 0.0f);
const SkScalar radius1 = std::max(WebCoreFloatToSkScalar(r1_), 0.0f);
return PaintShader::MakeTwoPointConicalGradient(
p0_.Data(), radius0, p1_.Data(), radius1, colors.data(), pos.data(),
static_cast<int>(colors.size()), tile_mode, flags,
adjusted_local_matrix, fallback_color);
FloatPointToSkPoint(p0_), radius0, FloatPointToSkPoint(p1_), radius1,
colors.data(), pos.data(), static_cast<int>(colors.size()), tile_mode,
flags, adjusted_local_matrix, fallback_color);
}
private:
......
......@@ -309,25 +309,27 @@ void Path::SetWindRule(const WindRule rule) {
}
void Path::MoveTo(const FloatPoint& point) {
path_.moveTo(point.Data());
path_.moveTo(FloatPointToSkPoint(point));
}
void Path::AddLineTo(const FloatPoint& point) {
path_.lineTo(point.Data());
path_.lineTo(FloatPointToSkPoint(point));
}
void Path::AddQuadCurveTo(const FloatPoint& cp, const FloatPoint& ep) {
path_.quadTo(cp.Data(), ep.Data());
path_.quadTo(FloatPointToSkPoint(cp), FloatPointToSkPoint(ep));
}
void Path::AddBezierCurveTo(const FloatPoint& p1,
const FloatPoint& p2,
const FloatPoint& ep) {
path_.cubicTo(p1.Data(), p2.Data(), ep.Data());
path_.cubicTo(FloatPointToSkPoint(p1), FloatPointToSkPoint(p2),
FloatPointToSkPoint(ep));
}
void Path::AddArcTo(const FloatPoint& p1, const FloatPoint& p2, float radius) {
path_.arcTo(p1.Data(), p2.Data(), WebCoreFloatToSkScalar(radius));
path_.arcTo(FloatPointToSkPoint(p1), FloatPointToSkPoint(p2),
WebCoreFloatToSkScalar(radius));
}
void Path::AddArcTo(const FloatPoint& p,
......
......@@ -41,6 +41,7 @@
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkColor.h"
#include "third_party/skia/include/core/SkPoint.h"
#include "third_party/skia/include/core/SkRefCnt.h"
#include "third_party/skia/include/core/SkScalar.h"
......@@ -105,6 +106,11 @@ inline WindRule SkFillTypeToWindRule(SkPath::FillType fill_type) {
return RULE_NONZERO;
}
inline SkPoint FloatPointToSkPoint(const FloatPoint& point) {
return SkPoint::Make(WebCoreFloatToSkScalar(point.X()),
WebCoreFloatToSkScalar(point.Y()));
}
SkMatrix PLATFORM_EXPORT AffineTransformToSkMatrix(const AffineTransform&);
bool NearlyIntegral(float value);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment