* Remember, x2 and y2 are not in the region
*/
#define EXTENTCHECK(r1, r2) \
- ((r1)->right() >= (r2)->left() && \
- (r1)->left() <= (r2)->right() && \
- (r1)->bottom() >= (r2)->top() && \
- (r1)->top() <= (r2)->bottom())
-
+ (r1.right() >= r2.left() && \
+ r1.left() <= r2.right() && \
+ r1.bottom() >= r2.top() && \
+ r1.top() <= r2.bottom())
/*
* Check to see if there is enough memory in the present region.
{
Q_ASSERT(!isEmptyHelper(regM));
Q_ASSERT(!isEmptyHelper(regS));
- Q_ASSERT(EXTENTCHECK(®M->extents, ®S->extents));
+ Q_ASSERT(EXTENTCHECK(regM->extents, regS->extents));
Q_ASSERT(!regS->contains(*regM));
Q_ASSERT(!EqualRegion(regM, regS));
static void XorRegion(QRegionPrivate *sra, QRegionPrivate *srb, QRegionPrivate &dest)
{
Q_ASSERT(!isEmptyHelper(sra) && !isEmptyHelper(srb));
- Q_ASSERT(EXTENTCHECK(&sra->extents, &srb->extents));
+ Q_ASSERT(EXTENTCHECK(sra->extents, srb->extents));
Q_ASSERT(!EqualRegion(sra, srb));
QRegionPrivate tra, trb;
static bool RectInRegion(QRegionPrivate *region, int rx, int ry, uint rwidth, uint rheight)
{
- const QRect *pbox;
- const QRect *pboxEnd;
QRect rect(rx, ry, rwidth, rheight);
- QRect *prect = ▭
- int partIn, partOut;
- if (!region || region->numRects == 0 || !EXTENTCHECK(®ion->extents, prect))
+ if (!region || region->numRects == 0 || !EXTENTCHECK(region->extents, rect))
return RectangleOut;
- partOut = false;
- partIn = false;
+ bool partOut = false;
+ bool partIn = false;
- /* can stop when both partOut and partIn are true, or we reach prect->y2 */
- pbox = (region->numRects == 1) ? ®ion->extents : region->rects.constData();
- pboxEnd = pbox + region->numRects;
+ /* can stop when both partOut and partIn are true, or we reach rect->y2 */
+ const QRect *pbox = (region->numRects == 1) ? ®ion->extents : region->rects.constData();
+ const QRect *pboxEnd = pbox + region->numRects;
for (; pbox < pboxEnd; ++pbox) {
if (pbox->bottom() < ry)
continue;
if (pbox->top() > ry) {
partOut = true;
- if (partIn || pbox->top() > prect->bottom())
+ if (partIn || pbox->top() > rect.bottom())
break;
ry = pbox->top();
}
break;
}
- if (pbox->left() <= prect->right()) {
+ if (pbox->left() <= rect.right()) {
partIn = true; /* definitely overlap */
if (partOut)
break;
}
- if (pbox->right() >= prect->right()) {
+ if (pbox->right() >= rect.right()) {
ry = pbox->bottom() + 1; /* finished with this band */
- if (ry > prect->bottom())
+ if (ry > rect.bottom())
break;
- rx = prect->left(); /* reset x out to left again */
+ rx = rect.left(); /* reset x out to left again */
} else {
/*
* Because boxes in a band are maximal width, if the first box
QRegion QRegion::intersect(const QRegion &r) const
{
if (isEmptyHelper(d->qt_rgn) || isEmptyHelper(r.d->qt_rgn)
- || !EXTENTCHECK(&d->qt_rgn->extents, &r.d->qt_rgn->extents))
+ || !EXTENTCHECK(d->qt_rgn->extents, r.d->qt_rgn->extents))
return QRegion();
/* this is fully contained in r */
QRegion QRegion::intersect(const QRect &r) const
{
if (isEmptyHelper(d->qt_rgn) || r.isEmpty()
- || !EXTENTCHECK(&d->qt_rgn->extents, &r))
+ || !EXTENTCHECK(d->qt_rgn->extents, r))
return QRegion();
/* this is fully contained in r */
return *this;
if (r.d->qt_rgn->contains(*d->qt_rgn))
return QRegion();
- if (!EXTENTCHECK(&d->qt_rgn->extents, &r.d->qt_rgn->extents))
+ if (!EXTENTCHECK(d->qt_rgn->extents, r.d->qt_rgn->extents))
return *this;
if (d == r.d || EqualRegion(d->qt_rgn, r.d->qt_rgn))
return QRegion();
return r;
} else if (isEmptyHelper(r.d->qt_rgn)) {
return *this;
- } else if (!EXTENTCHECK(&d->qt_rgn->extents, &r.d->qt_rgn->extents)) {
+ } else if (!EXTENTCHECK(d->qt_rgn->extents, r.d->qt_rgn->extents)) {
return (*this + r);
} else if (d == r.d || EqualRegion(d->qt_rgn, r.d->qt_rgn)) {
return QRegion();