未验证 提交 e35fbbd9 编写于 作者: Y Yegor 提交者: GitHub

switch to non-overloaded arcTo methods (#20341)

上级 99b05e4d
...@@ -973,12 +973,21 @@ class SkPath { ...@@ -973,12 +973,21 @@ class SkPath {
external void addRect( external void addRect(
SkRect rect, SkRect rect,
); );
external void arcTo( external void arcToOval(
SkRect oval, SkRect oval,
double startAngleDegrees, double startAngleDegrees,
double sweepAngleDegrees, double sweepAngleDegrees,
bool forceMoveTo, bool forceMoveTo,
); );
external void arcToRotated(
double radiusX,
double radiusY,
double rotation,
bool useSmallArc,
bool counterClockWise,
double x,
double y,
);
external void close(); external void close();
external void conicTo( external void conicTo(
double x1, double x1,
...@@ -1057,21 +1066,6 @@ class SkPath { ...@@ -1057,21 +1066,6 @@ class SkPath {
); );
} }
/// A different view on [SkPath] used to overload [SkPath.arcTo].
// TODO(yjbanov): this is a hack to get around https://github.com/flutter/flutter/issues/61305
@JS()
class SkPathArcToPointOverload {
external void arcTo(
double radiusX,
double radiusY,
double rotation,
bool useSmallArc,
bool counterClockWise,
double x,
double y,
);
}
@JS('window.flutter_canvas_kit.SkContourMeasureIter') @JS('window.flutter_canvas_kit.SkContourMeasureIter')
class SkContourMeasureIter { class SkContourMeasureIter {
external SkContourMeasureIter(SkPath path, bool forceClosed, int startIndex); external SkContourMeasureIter(SkPath path, bool forceClosed, int startIndex);
......
...@@ -116,7 +116,7 @@ class CkPath implements ui.Path { ...@@ -116,7 +116,7 @@ class CkPath implements ui.Path {
void arcTo( void arcTo(
ui.Rect rect, double startAngle, double sweepAngle, bool forceMoveTo) { ui.Rect rect, double startAngle, double sweepAngle, bool forceMoveTo) {
const double toDegrees = 180.0 / math.pi; const double toDegrees = 180.0 / math.pi;
_skPath.arcTo( _skPath.arcToOval(
toSkRect(rect), toSkRect(rect),
startAngle * toDegrees, startAngle * toDegrees,
sweepAngle * toDegrees, sweepAngle * toDegrees,
...@@ -130,7 +130,7 @@ class CkPath implements ui.Path { ...@@ -130,7 +130,7 @@ class CkPath implements ui.Path {
double rotation = 0.0, double rotation = 0.0,
bool largeArc = false, bool largeArc = false,
bool clockwise = true}) { bool clockwise = true}) {
(_skPath as SkPathArcToPointOverload).arcTo( _skPath.arcToRotated(
radius.x, radius.x,
radius.y, radius.y,
rotation, rotation,
......
...@@ -602,7 +602,7 @@ void _pathTests() { ...@@ -602,7 +602,7 @@ void _pathTests() {
}); });
test('arcTo', () { test('arcTo', () {
path.arcTo( path.arcToOval(
SkRect(fLeft: 1, fTop: 2, fRight: 3, fBottom: 4), SkRect(fLeft: 1, fTop: 2, fRight: 3, fBottom: 4),
5, 5,
40, 40,
...@@ -611,7 +611,7 @@ void _pathTests() { ...@@ -611,7 +611,7 @@ void _pathTests() {
}); });
test('overloaded arcTo (used for arcToPoint)', () { test('overloaded arcTo (used for arcToPoint)', () {
(path as SkPathArcToPointOverload).arcTo( path.arcToRotated(
1, 1,
2, 2,
3, 3,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册