increase subdivision for very large cubics
Allow 512 subdivisions for hairline cubics instead of 64 to allow very large cubics to be properly approximated with lines. R=reed@google.com BUG=339297 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1674813002 Review URL: https://codereview.chromium.org/1674813002
This commit is contained in:
parent
2fba809120
commit
52b64619d9
@ -331,3 +331,29 @@ DEF_SIMPLE_GM_BG_NAME(strokefill, canvas, 640, 480, SK_ColorWHITE,
|
||||
path4.moveTo(0, 0); // test for crbug.com/247770
|
||||
canvas->drawPath(path4, paint);
|
||||
}
|
||||
|
||||
DEF_SIMPLE_GM(bug339297, canvas, 640, 480) {
|
||||
SkPath path;
|
||||
path.moveTo(-469515, -10354890);
|
||||
path.cubicTo(771919.62f, -10411179, 2013360.1f, -10243774, 3195542.8f, -9860664);
|
||||
path.lineTo(3195550, -9860655);
|
||||
path.lineTo(3195539, -9860652);
|
||||
path.lineTo(3195539, -9860652);
|
||||
path.lineTo(3195539, -9860652);
|
||||
path.cubicTo(2013358.1f, -10243761, 771919.25f, -10411166, -469513.84f, -10354877);
|
||||
path.lineTo(-469515, -10354890);
|
||||
path.close();
|
||||
|
||||
canvas->translate(258, 10365663);
|
||||
|
||||
SkPaint paint;
|
||||
paint.setAntiAlias(true);
|
||||
paint.setColor(SK_ColorBLACK);
|
||||
paint.setStyle(SkPaint::kFill_Style);
|
||||
canvas->drawPath(path, paint);
|
||||
|
||||
paint.setColor(SK_ColorRED);
|
||||
paint.setStyle(SkPaint::kStroke_Style);
|
||||
paint.setStrokeWidth(1);
|
||||
canvas->drawPath(path, paint);
|
||||
}
|
||||
|
@ -192,7 +192,7 @@ void SkScan::HairRect(const SkRect& rect, const SkRasterClip& clip,
|
||||
#include "SkGeometry.h"
|
||||
#include "SkNx.h"
|
||||
|
||||
#define kMaxCubicSubdivideLevel 6
|
||||
#define kMaxCubicSubdivideLevel 9
|
||||
#define kMaxQuadSubdivideLevel 5
|
||||
|
||||
static int compute_int_quad_dist(const SkPoint pts[3]) {
|
||||
|
Loading…
Reference in New Issue
Block a user