Add GM case for arc truncation error bug
https://codereview.chromium.org/23532082/ git-svn-id: http://skia.googlecode.com/svn/trunk@11466 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
441433e9c4
commit
6c000321f2
@ -21,3 +21,7 @@
|
||||
## Added by edisonn as part of https://codereview.chromium.org/23851037/
|
||||
#gradients
|
||||
|
||||
# Added by robertphillips as part of https://codereview.chromium.org/23532082/
|
||||
hairlines
|
||||
|
||||
|
||||
|
@ -133,6 +133,31 @@ protected:
|
||||
bug2->lineTo(5.5f, 0.5f);
|
||||
bug2->lineTo(0.5f, 0.5f);
|
||||
}
|
||||
|
||||
{
|
||||
// Arc example to test imperfect truncation bug (crbug.com/295626)
|
||||
static const SkScalar kRad = SkIntToScalar(2000);
|
||||
static const SkScalar kStartAngle = SkFloatToScalar(262.59717f);
|
||||
static const SkScalar kSweepAngle = SkScalarHalf(SkFloatToScalar(17.188717f));
|
||||
|
||||
SkPath* bug = &fPaths.push_back();
|
||||
|
||||
// Add a circular arc
|
||||
SkRect circle = SkRect::MakeLTRB(-kRad, -kRad, kRad, kRad);
|
||||
bug->addArc(circle, kStartAngle, kSweepAngle);
|
||||
|
||||
// Now add the chord that should cap the circular arc
|
||||
SkScalar cosV, sinV = SkScalarSinCos(SkDegreesToRadians(kStartAngle), &cosV);
|
||||
|
||||
SkPoint p0 = SkPoint::Make(kRad * cosV, kRad * sinV);
|
||||
|
||||
sinV = SkScalarSinCos(SkDegreesToRadians(kStartAngle + kSweepAngle), &cosV);
|
||||
|
||||
SkPoint p1 = SkPoint::Make(kRad * cosV, kRad * sinV);
|
||||
|
||||
bug->moveTo(p0);
|
||||
bug->lineTo(p1);
|
||||
}
|
||||
}
|
||||
|
||||
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
|
||||
|
Loading…
Reference in New Issue
Block a user