mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
switch to non-overloaded arcTo methods (#20341)
This commit is contained in:
parent
99b05e4d08
commit
e35fbbd90d
@ -973,12 +973,21 @@ class SkPath {
|
||||
external void addRect(
|
||||
SkRect rect,
|
||||
);
|
||||
external void arcTo(
|
||||
external void arcToOval(
|
||||
SkRect oval,
|
||||
double startAngleDegrees,
|
||||
double sweepAngleDegrees,
|
||||
bool forceMoveTo,
|
||||
);
|
||||
external void arcToRotated(
|
||||
double radiusX,
|
||||
double radiusY,
|
||||
double rotation,
|
||||
bool useSmallArc,
|
||||
bool counterClockWise,
|
||||
double x,
|
||||
double y,
|
||||
);
|
||||
external void close();
|
||||
external void conicTo(
|
||||
double x1,
|
||||
@ -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')
|
||||
class SkContourMeasureIter {
|
||||
external SkContourMeasureIter(SkPath path, bool forceClosed, int startIndex);
|
||||
|
||||
@ -116,7 +116,7 @@ class CkPath implements ui.Path {
|
||||
void arcTo(
|
||||
ui.Rect rect, double startAngle, double sweepAngle, bool forceMoveTo) {
|
||||
const double toDegrees = 180.0 / math.pi;
|
||||
_skPath.arcTo(
|
||||
_skPath.arcToOval(
|
||||
toSkRect(rect),
|
||||
startAngle * toDegrees,
|
||||
sweepAngle * toDegrees,
|
||||
@ -130,7 +130,7 @@ class CkPath implements ui.Path {
|
||||
double rotation = 0.0,
|
||||
bool largeArc = false,
|
||||
bool clockwise = true}) {
|
||||
(_skPath as SkPathArcToPointOverload).arcTo(
|
||||
_skPath.arcToRotated(
|
||||
radius.x,
|
||||
radius.y,
|
||||
rotation,
|
||||
|
||||
@ -602,7 +602,7 @@ void _pathTests() {
|
||||
});
|
||||
|
||||
test('arcTo', () {
|
||||
path.arcTo(
|
||||
path.arcToOval(
|
||||
SkRect(fLeft: 1, fTop: 2, fRight: 3, fBottom: 4),
|
||||
5,
|
||||
40,
|
||||
@ -611,7 +611,7 @@ void _pathTests() {
|
||||
});
|
||||
|
||||
test('overloaded arcTo (used for arcToPoint)', () {
|
||||
(path as SkPathArcToPointOverload).arcTo(
|
||||
path.arcToRotated(
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user