Remove SkPath::asRect

AFAICT the asRect entry point is not needed.

Greg: GPU
Reed: API
Cary: Path

Review URL: https://codereview.chromium.org/833193002
This commit is contained in:
robertphillips 2015-01-05 12:22:14 -08:00 committed by Commit bot
parent 5a2315e750
commit 2b6ab61e22
4 changed files with 3 additions and 42 deletions

View File

@ -564,25 +564,6 @@ public:
return computedDir == dir;
}
enum PathAsRect {
/** The path can not draw the same as its bounds. */
kNone_PathAsRect,
/** The path draws the same as its bounds when filled. */
kFill_PathAsRect,
/** The path draws the same as its bounds when stroked or filled. */
kStroke_PathAsRect,
};
/** Returns kFill_PathAsRect or kStroke_PathAsRect if drawing the path (either filled or
stroked) will be equivalent to filling/stroking the path's bounding rect. If
either is true, and direction is not null, sets the direction of the contour. If the
path is not drawn equivalent to a rect, returns kNone_PathAsRect and ignores direction.
@param direction If not null, set to the contour's direction when it is drawn as a rect
@return the path's PathAsRect type
*/
PathAsRect asRect(Direction* direction = NULL) const;
/**
* Returns true if the path specifies a rectangle.
*

View File

@ -112,8 +112,9 @@ void SkClipStack::Element::invertShapeFillType() {
void SkClipStack::Element::initPath(int saveCount, const SkPath& path, SkRegion::Op op,
bool doAA) {
if (!path.isInverseFillType()) {
if (SkPath::kNone_PathAsRect != path.asRect()) {
this->initRect(saveCount, path.getBounds(), op, doAA);
SkRect r;
if (path.isRect(&r)) {
this->initRect(saveCount, r, op, doAA);
return;
}
SkRect ovalRect;

View File

@ -526,14 +526,6 @@ bool SkPath::isRectContour(bool allowPartial, int* currVerb, const SkPoint** pts
return result;
}
SkPath::PathAsRect SkPath::asRect(Direction* direction) const {
SK_COMPILE_ASSERT(0 == kNone_PathAsRect, path_as_rect_mismatch);
SK_COMPILE_ASSERT(1 == kFill_PathAsRect, path_as_rect_mismatch);
SK_COMPILE_ASSERT(2 == kStroke_PathAsRect, path_as_rect_mismatch);
bool isClosed = false;
return (PathAsRect) (this->isRect(NULL, &isClosed, direction) + isClosed);
}
bool SkPath::isRect(SkRect* rect, bool* isClosed, Direction* direction) const {
SkDEBUGCODE(this->validate();)
int currVerb = 0;

View File

@ -1689,7 +1689,6 @@ static void test_isRect_open_close(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, path.isRect(NULL, &isClosed, NULL));
REPORTER_ASSERT(reporter, isClosed);
REPORTER_ASSERT(reporter, SkPath::kStroke_PathAsRect == path.asRect(NULL));
}
// Simple isRect test is inline TestPath, below.
@ -1804,15 +1803,6 @@ static void test_isRect(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, expected == computed);
REPORTER_ASSERT(reporter, isClosed == tests[testIndex].fClose);
REPORTER_ASSERT(reporter, direction == cheapDirection);
direction = (SkPath::Direction) -1;
if (!tests[testIndex].fClose) {
REPORTER_ASSERT(reporter, SkPath::kFill_PathAsRect == path.asRect());
REPORTER_ASSERT(reporter, SkPath::kFill_PathAsRect == path.asRect(&direction));
} else {
REPORTER_ASSERT(reporter, SkPath::kStroke_PathAsRect == path.asRect());
REPORTER_ASSERT(reporter, SkPath::kStroke_PathAsRect == path.asRect(&direction));
}
REPORTER_ASSERT(reporter, direction == cheapDirection);
} else {
SkRect computed;
computed.set(123, 456, 789, 1011);
@ -1823,9 +1813,6 @@ static void test_isRect(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, computed.fRight == 789 && computed.fBottom == 1011);
REPORTER_ASSERT(reporter, isClosed == (bool) -1);
REPORTER_ASSERT(reporter, direction == (SkPath::Direction) -1);
REPORTER_ASSERT(reporter, SkPath::kNone_PathAsRect == path.asRect());
REPORTER_ASSERT(reporter, SkPath::kNone_PathAsRect == path.asRect(&direction));
REPORTER_ASSERT(reporter, direction == (SkPath::Direction) -1);
}
}