Lines Matching refs:rgn
209 bool SkRegion::op(const SkIRect& rect, const SkRegion& rgn, Op op) {
212 return this->op(tmp, rgn, op);
215 bool SkRegion::op(const SkRegion& rgn, const SkIRect& rect, Op op) {
218 return this->op(rgn, tmp, op);
438 bool SkRegion::contains(const SkRegion& rgn) const {
440 SkDEBUGCODE(SkRegionPriv::Validate(rgn));
442 if (this->isEmpty() || rgn.isEmpty() || !fBounds.contains(rgn.fBounds)) {
448 if (rgn.isRect()) {
449 return this->contains(rgn.getBounds());
456 return !Oper(rgn, *this, kDifference_Op, nullptr);
523 bool SkRegion::intersects(const SkRegion& rgn) const {
524 if (this->isEmpty() || rgn.isEmpty()) {
528 if (!SkIRect::Intersects(fBounds, rgn.fBounds)) {
533 bool theyAreARect = rgn.isRect();
539 return rgn.intersects(this->getBounds());
542 return this->intersects(rgn.getBounds());
546 return Oper(*this, rgn, kIntersect_Op, nullptr);
1028 static bool setRegionCheck(SkRegion* result, const SkRegion& rgn) {
1029 return result ? result->setRegion(rgn) : !rgn.isEmpty();
1334 desc += split + " rgn: empty\n";
1336 desc += split + " rgn:\n";
1355 void SkRegionPriv::Validate(const SkRegion& rgn) { SkASSERT(rgn.isValid()); }
1359 SkDebugf(" rgn: empty\n");
1361 SkDebugf(" rgn: [%d %d %d %d]", fBounds.fLeft, fBounds.fTop, fBounds.fRight, fBounds.fBottom);
1375 SkRegion::Iterator::Iterator(const SkRegion& rgn) {
1376 this->reset(rgn);
1387 void SkRegion::Iterator::reset(const SkRegion& rgn) {
1388 fRgn = &rgn;
1389 if (rgn.isEmpty()) {
1393 if (rgn.isRect()) {
1394 fRect = rgn.fBounds;
1397 fRuns = rgn.fRunHead->readonly_runs();
1438 } else { // end of rgn
1445 SkRegion::Cliperator::Cliperator(const SkRegion& rgn, const SkIRect& clip)
1446 : fIter(rgn), fClip(clip), fDone(true) {
1484 SkRegion::Spanerator::Spanerator(const SkRegion& rgn, int y, int left,
1486 SkDEBUGCODE(SkRegionPriv::Validate(rgn));
1488 const SkIRect& r = rgn.getBounds();
1491 if (!rgn.isEmpty() && y >= r.fTop && y < r.fBottom &&
1493 if (rgn.isRect()) {
1502 fRuns = nullptr; // means we're a rect, not a rgn
1505 const SkRegion::RunType* runs = rgn.fRunHead->findScanline(y);
1573 void SkRegionPriv::VisitSpans(const SkRegion& rgn,
1575 if (rgn.isEmpty()) {
1578 if (rgn.isRect()) {
1579 visitor(rgn.getBounds());
1581 const int32_t* p = rgn.fRunHead->readonly_runs();