clip paths in perspective (as needed)

Change-Id: I3807312a20e8c9699b9ede8706a6e47bb354480a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/258243
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
This commit is contained in:
Mike Reed 2019-12-05 12:30:18 -05:00 committed by Skia Commit-Bot
parent c9ab3ff632
commit 76c5192db7

View File

@ -956,6 +956,12 @@ void SkDraw::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint,
// avoid possibly allocating a new path in transform if we can // avoid possibly allocating a new path in transform if we can
SkPath* devPathPtr = pathIsMutable ? pathPtr : tmpPath; SkPath* devPathPtr = pathIsMutable ? pathPtr : tmpPath;
// pre-clip if needed right before we apply the CTM
SkPath perspectiveClippedPath;
if (SkPathPriv::PerspectiveClip(*pathPtr, *matrix, &perspectiveClippedPath)) {
pathPtr = &perspectiveClippedPath;
}
// transform the path into device space // transform the path into device space
pathPtr->transform(*matrix, devPathPtr); pathPtr->transform(*matrix, devPathPtr);