| Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/gui/painting/qregion.cpp |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | QRegion::QRegion(int x, int y, int w, int h, RegionType t) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | QRegion tmp(QRect(x, y, w, h), t); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | tmp.d->ref.ref(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | d = tmp.d; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 9 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | void QRegion::detach() | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | if (d->ref.isShared()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | * never executed: this = copy();*this = copy();never executed: *this = copy(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | void QRegion::exec(const QByteArray &buffer, int ver, QDataStream::ByteOrder byteOrder) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | QByteArray copy = buffer; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18 | QDataStream s(©, QIODevice::ReadOnly); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | if (ver
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20 | s.setVersion(ver); never executed: s.setVersion(ver); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21 | s.setByteOrder(byteOrder); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22 | QRegion rgn; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 23 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24 | int test_cnt = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 25 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 26 | while (!s.atEnd()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27 | qint32 id; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 28 | if (s.version() == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 29 | int id_int; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 30 | s >> id_int; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 31 | id = id_int; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 32 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 33 | s >> id; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 34 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 35 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 36 | if (test_cnt > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 37 | QMessageLogger(__FILE__, 309, __PRETTY_FUNCTION__).warning("QRegion::exec: Internal error"); never executed: QMessageLogger(__FILE__, 309, __PRETTY_FUNCTION__).warning("QRegion::exec: Internal error"); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 38 | test_cnt++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 39 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 40 | if (id == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 41 | QRect r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 42 | s >> r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 43 | rgn = QRegion(r, id == 1 ? Rectangle : Ellipse); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 44 | } never executed: else if (id == 3end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 45 | QPolygon a; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 46 | s >> a; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 47 | rgn = QRegion(a, id == 4 ? Qt::WindingFill : Qt::OddEvenFill); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 48 | } never executed: else if (id == 5end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 49 | QPoint p; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 50 | s >> p; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 51 | rgn.translate(p.x(), p.y()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 52 | } never executed: else if (id >= 6end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 53 | QByteArray bop1, bop2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 54 | QRegion r1, r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 55 | s >> bop1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 56 | r1.exec(bop1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 57 | s >> bop2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 58 | r2.exec(bop2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 59 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 60 | switch (id) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 61 | case never executed: 6:case 6:never executed: case 6: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 62 | rgn = r1.united(r2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 63 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 64 | case never executed: 7:case 7:never executed: case 7: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 65 | rgn = r1.intersected(r2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 66 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 67 | case never executed: 8:case 8:never executed: case 8: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 68 | rgn = r1.subtracted(r2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 69 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 70 | case never executed: 9:case 9:never executed: case 9: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 71 | rgn = r1.xored(r2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 72 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 73 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 74 | } never executed: else if (id == 10end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 75 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 76 | quint32 n; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 77 | s >> n; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 78 | QRect r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 79 | for (int i=0; i<(int)n
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 80 | s >> r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 81 | rgn = rgn.united(QRegion(r)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 82 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 83 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 84 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 85 | *this = rgn; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 86 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 87 | QDataStream &operator<<(QDataStream &s, const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 88 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 89 | QVector<QRect> a = r.rects(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 90 | if (a.isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 91 | s << (quint32)0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 92 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 93 | if (s.version() == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 94 | int i; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 95 | for (i = a.size() - 1; i > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 96 | s << (quint32)(12 + i * 24); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 97 | s << (int)6; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 98 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 99 | for (i = 0; i < a.size()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 100 | s << (quint32)(4+8) << (int)1 << a[i]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 101 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 102 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 103 | s << (quint32)(4 + 4 + 16 * a.size()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 104 | s << (qint32)10; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 105 | s << a; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 106 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 107 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 108 | return never executed: s;return s;never executed: return s; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 109 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 110 | QDataStream &operator>>(QDataStream &s, QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 111 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 112 | QByteArray b; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 113 | s >> b; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 114 | r.exec(b, s.version(), s.byteOrder()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 115 | return never executed: s;return s;never executed: return s; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 116 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 117 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 118 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 119 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 120 | QDebug operator<<(QDebug s, const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 121 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 122 | QDebugStateSaver saver(s); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 123 | s.nospace(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 124 | s << "QRegion("; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 125 | if (r.isNull()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 126 | s << "null"; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 127 | } never executed: else if (r.isEmpty()end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 128 | s << "empty"; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 129 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 130 | const QVector<QRect> rects = r.rects(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 131 | const int count = rects.size(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 132 | if (count > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 133 | s << "size=" << count << ", bounds=("; never executed: s << "size=" << count << ", bounds=("; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 134 | QtDebugUtils::formatQRect(s, r.boundingRect()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 135 | if (count > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 136 | s << ") - ["; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 137 | for (int i = 0; i < count
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 138 | if (i
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 139 | s << ", "; never executed: s << ", "; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 140 | s << '('; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 141 | QtDebugUtils::formatQRect(s, rects.at(i)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 142 | s << ')'; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 143 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 144 | s << ']'; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 145 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 146 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 147 | s << ')'; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 148 | return never executed: s;return s;never executed: return s; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 149 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 150 | QRegion QRegion::operator|(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 151 | { return never executed: united(r);return united(r);never executed: }return united(r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 152 | QRegion QRegion::operator+(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 153 | { return never executed: united(r);return united(r);never executed: }return united(r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 154 | QRegion QRegion::operator+(const QRect &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 155 | { return never executed: united(r);return united(r);never executed: }return united(r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 156 | QRegion QRegion::operator&(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 157 | { return never executed: intersected(r);return intersected(r);never executed: }return intersected(r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 158 | QRegion QRegion::operator&(const QRect &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 159 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 160 | return never executed: intersected(r);return intersected(r);never executed: return intersected(r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 161 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 162 | QRegion QRegion::operator-(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 163 | { return never executed: subtracted(r);return subtracted(r);never executed: }return subtracted(r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 164 | QRegion QRegion::operator^(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 165 | { return never executed: xored(r);return xored(r);never executed: }return xored(r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 166 | QRegion& QRegion::operator|=(const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 167 | { return never executed: *this = *this | r;return *this = *this | r;never executed: }return *this = *this | r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 168 | QRegion& QRegion::operator&=(const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 169 | { return never executed: *this = *this & r;return *this = *this & r;never executed: }return *this = *this & r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 170 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 171 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 172 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 173 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 174 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 175 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 176 | QRegion& QRegion::operator&=(const QRect &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 177 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 178 | return never executed: *this = *this & r;return *this = *this & r;never executed: return *this = *this & r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 179 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 180 | QRegion& QRegion::operator-=(const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 181 | { return never executed: *this = *this - r;return *this = *this - r;never executed: }return *this = *this - r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 182 | QRegion& QRegion::operator^=(const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 183 | { return never executed: *this = *this ^ r;return *this = *this ^ r;never executed: }return *this = *this ^ r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 184 | QRegion::operator QVariant() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 185 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 186 | return never executed: QVariant(QVariant::Region, this);return QVariant(QVariant::Region, this);never executed: return QVariant(QVariant::Region, this); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 187 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 188 | QRegion | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 189 | QRegion::translated(int dx, int dy) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 190 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 191 | QRegion ret(*this); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 192 | ret.translate(dx, dy); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 193 | return never executed: ret;return ret;never executed: return ret; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 194 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 195 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 196 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 197 | inline bool rect_intersects(const QRect &r1, const QRect &r2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 198 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 199 | return never executed: (r1.right() >= r2.left() && r1.left() <= r2.right() &&return (r1.right() >= r2.left() && r1.left() <= r2.right() && r1.bottom() >= r2.top() && r1.top() <= r2.bottom());never executed: return (r1.right() >= r2.left() && r1.left() <= r2.right() && r1.bottom() >= r2.top() && r1.top() <= r2.bottom()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 200 | r1.bottom() >= r2.top() && r1.top() <= r2.bottom()); never executed: return (r1.right() >= r2.left() && r1.left() <= r2.right() && r1.bottom() >= r2.top() && r1.top() <= r2.bottom()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 201 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 202 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 203 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 204 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 205 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 206 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 207 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 208 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 209 | bool QRegion::intersects(const QRegion ®ion) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 210 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 211 | if (isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 212 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 213 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 214 | if (!rect_intersects(boundingRect(), region.boundingRect())
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 215 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 216 | if (rectCount() == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 217 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 218 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 219 | const QVector<QRect> myRects = rects(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 220 | const QVector<QRect> otherRects = region.rects(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 221 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 222 | for (QVector<QRect>::const_iterator i1 = myRects.constBegin(); i1 < myRects.constEnd()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 223 | for (QVector<QRect>::const_iterator i2 = otherRects.constBegin(); i2 < otherRects.constEnd()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 224 | if (rect_intersects(*i1, *i2)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 225 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 226 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 227 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 228 | namespace { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 229 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 230 | struct Segment | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 231 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 232 | Segment() {} | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 233 | Segment(const QPoint &p) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 234 | : added(false) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 235 | , point(p) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 236 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 237 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 238 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 239 | int left() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 240 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 241 | return never executed: qMin(point.x(), next->point.x());return qMin(point.x(), next->point.x());never executed: return qMin(point.x(), next->point.x()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 242 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 243 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 244 | int right() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 245 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 246 | return never executed: qMax(point.x(), next->point.x());return qMax(point.x(), next->point.x());never executed: return qMax(point.x(), next->point.x()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 247 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 248 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 249 | bool overlaps(const Segment &other) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 250 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 251 | return never executed: left() < other.right() && other.left() < right();return left() < other.right() && other.left() < right();never executed: return left() < other.right() && other.left() < right(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 252 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 253 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 254 | void connect(Segment &other) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 255 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 256 | next = &other; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 257 | other.prev = this; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 258 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 259 | horizontal = (point.y() == other.point.y()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 260 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 261 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 262 | void merge(Segment &other) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 263 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 264 | if (right() <= other.right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 265 | QPoint p = other.point; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 266 | Segment *oprev = other.prev; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 267 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 268 | other.point = point; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 269 | other.prev = prev; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 270 | prev->next = &other; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 271 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 272 | point = p; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 273 | prev = oprev; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 274 | oprev->next = this; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 275 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 276 | Segment *onext = other.next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 277 | other.next = next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 278 | next->prev = &other; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 279 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 280 | next = onext; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 281 | next->prev = this; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 282 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 283 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 284 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 285 | int horizontal : 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 286 | int added : 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 287 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 288 | QPoint point; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 289 | Segment *prev; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 290 | Segment *next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 291 | }; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 292 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 293 | void mergeSegments(Segment *a, int na, Segment *b, int nb) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 294 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 295 | int i = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 296 | int j = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 297 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 298 | while (i != na
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 299 | Segment &sa = a[i]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 300 | Segment &sb = b[j]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 301 | const int ra = sa.right(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 302 | const int rb = sb.right(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 303 | if (sa.overlaps(sb)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 304 | sa.merge(sb); never executed: sa.merge(sb); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 305 | i += (rb >= ra); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 306 | j += (ra >= rb); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 307 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 308 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 309 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 310 | void addSegmentsToPath(Segment *segment, QPainterPath &path) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 311 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 312 | Segment *current = segment; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 313 | path.moveTo(current->point); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 314 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 315 | current->added = true; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 316 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 317 | Segment *last = current; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 318 | current = current->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 319 | while (current != segment
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 320 | if (current->horizontal != last->horizontal
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 321 | path.lineTo(current->point); never executed: path.lineTo(current->point); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 322 | current->added = true; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 323 | last = current; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 324 | current = current->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 325 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 326 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 327 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 328 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 329 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 330 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 331 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 332 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 333 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 334 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 335 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 336 | template<> class QTypeInfo<Segment > { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(Segment)>sizeof(void*)), isPointer = false, isIntegral = QtPrivate::is_integral< Segment >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(Segment) }; static inline const char *name() { return "Segment"; } }; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 337 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 338 | __attribute__((visibility("default"))) QPainterPath qt_regionToPath(const QRegion ®ion) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 339 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 340 | QPainterPath result; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 341 | if (region.rectCount() == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 342 | result.addRect(region.boundingRect()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 343 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 344 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 345 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 346 | const QVector<QRect> rects = region.rects(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 347 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 348 | QVarLengthArray<Segment> segments; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 349 | segments.resize(4 * rects.size()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 350 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 351 | const QRect *rect = rects.constData(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 352 | const QRect *end = rect + rects.size(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 353 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 354 | int lastRowSegmentCount = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 355 | Segment *lastRowSegments = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 356 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 357 | int lastSegment = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 358 | int lastY = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 359 | while (rect != end
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 360 | const int y = rect[0].y(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 361 | int count = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 362 | while (&rect[count] != end
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 363 | ++ never executed: count;++count;never executed: ++count; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 364 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 365 | for (int i = 0; i < count
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 366 | int offset = lastSegment + i; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 367 | segments[offset] = Segment(rect[i].topLeft()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 368 | segments[offset += count] = Segment(rect[i].topRight() + QPoint(1, 0)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 369 | segments[offset += count] = Segment(rect[i].bottomRight() + QPoint(1, 1)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 370 | segments[offset += count] = Segment(rect[i].bottomLeft() + QPoint(0, 1)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 371 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 372 | offset = lastSegment + i; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 373 | for (int j = 0; j < 4
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 374 | segments[offset + j * count].connect(segments[offset + ((j + 1) % 4) * count]); never executed: segments[offset + j * count].connect(segments[offset + ((j + 1) % 4) * count]); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 375 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 376 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 377 | if (lastRowSegments
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 378 | mergeSegments(lastRowSegments, lastRowSegmentCount, &segments[lastSegment], count); never executed: mergeSegments(lastRowSegments, lastRowSegmentCount, &segments[lastSegment], count); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 379 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 380 | lastRowSegments = &segments[lastSegment + 2 * count]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 381 | lastRowSegmentCount = count; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 382 | lastSegment += 4 * count; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 383 | lastY = y + rect[0].height(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 384 | rect += count; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 385 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 386 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 387 | for (int i = 0; i < lastSegment
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 388 | Segment *segment = &segments[i]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 389 | if (!segment->added
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 390 | addSegmentsToPath(segment, result); never executed: addSegmentsToPath(segment, result); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 391 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 392 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 393 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 394 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 395 | struct QRegionPrivate { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 396 | int numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 397 | int innerArea; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 398 | QVector<QRect> rects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 399 | QRect extents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 400 | QRect innerRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 401 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 402 | inline QRegionPrivate() : numRects(0), innerArea(-1) {} never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 403 | inline QRegionPrivate(const QRect &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 404 | : numRects(1), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 405 | innerArea(r.width() * r.height()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 406 | extents(r), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 407 | innerRect(r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 408 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 409 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 410 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 411 | void intersect(const QRect &r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 412 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 413 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 414 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 415 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 416 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 417 | inline bool contains(const QRegionPrivate &r) const { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 418 | return never executed: contains(r.extents);return contains(r.extents);never executed: return contains(r.extents); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 419 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 420 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 421 | inline bool contains(const QRect &r2) const { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 422 | const QRect &r1 = innerRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 423 | return never executed: r2.left() >= r1.left() && r2.right() <= r1.right()return r2.left() >= r1.left() && r2.right() <= r1.right() && r2.top() >= r1.top() && r2.bottom() <= r1.bottom();never executed: return r2.left() >= r1.left() && r2.right() <= r1.right() && r2.top() >= r1.top() && r2.bottom() <= r1.bottom(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 424 | && r2.top() >= r1.top() && r2.bottom() <= r1.bottom(); never executed: return r2.left() >= r1.left() && r2.right() <= r1.right() && r2.top() >= r1.top() && r2.bottom() <= r1.bottom(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 425 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 426 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 427 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 428 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 429 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 430 | inline bool within(const QRect &r1) const { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 431 | const QRect &r2 = extents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 432 | return never executed: r2.left() >= r1.left() && r2.right() <= r1.right()return r2.left() >= r1.left() && r2.right() <= r1.right() && r2.top() >= r1.top() && r2.bottom() <= r1.bottom();never executed: return r2.left() >= r1.left() && r2.right() <= r1.right() && r2.top() >= r1.top() && r2.bottom() <= r1.bottom(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 433 | && r2.top() >= r1.top() && r2.bottom() <= r1.bottom(); never executed: return r2.left() >= r1.left() && r2.right() <= r1.right() && r2.top() >= r1.top() && r2.bottom() <= r1.bottom(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 434 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 435 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 436 | inline void updateInnerRect(const QRect &rect) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 437 | const int area = rect.width() * rect.height(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 438 | if (area > innerArea
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 439 | innerArea = area; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 440 | innerRect = rect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 441 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 442 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 443 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 444 | inline void vectorize() { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 445 | if (numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 446 | if (!rects.size()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 447 | rects.resize(1); never executed: rects.resize(1); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 448 | rects[0] = extents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 449 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 450 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 451 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 452 | inline void append(const QRect *r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 453 | void append(const QRegionPrivate *r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 454 | void prepend(const QRect *r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 455 | void prepend(const QRegionPrivate *r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 456 | inline bool canAppend(const QRect *r) const; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 457 | inline bool canAppend(const QRegionPrivate *r) const; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 458 | inline bool canPrepend(const QRect *r) const; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 459 | inline bool canPrepend(const QRegionPrivate *r) const; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 460 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 461 | inline bool mergeFromRight(QRect *left, const QRect *right); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 462 | inline bool mergeFromLeft(QRect *left, const QRect *right); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 463 | inline bool mergeFromBelow(QRect *top, const QRect *bottom, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 464 | const QRect *nextToTop, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 465 | const QRect *nextToBottom); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 466 | inline bool mergeFromAbove(QRect *bottom, const QRect *top, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 467 | const QRect *nextToBottom, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 468 | const QRect *nextToTop); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 469 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 470 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 471 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 472 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 473 | }; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 474 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 475 | static inline bool isEmptyHelper(const QRegionPrivate *preg) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 476 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 477 | return never executed: !preg || preg->numRects == 0;return !preg || preg->numRects == 0;never executed: return !preg || preg->numRects == 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 478 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 479 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 480 | static inline bool canMergeFromRight(const QRect *left, const QRect *right) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 481 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 482 | return never executed: (right->top() == left->top()return (right->top() == left->top() && right->bottom() == left->bottom() && right->left() <= (left->right() + 1));never executed: return (right->top() == left->top() && right->bottom() == left->bottom() && right->left() <= (left->right() + 1)); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 483 | && right->bottom() == left->bottom() never executed: return (right->top() == left->top() && right->bottom() == left->bottom() && right->left() <= (left->right() + 1)); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 484 | && right->left() <= (left->right() + 1)); never executed: return (right->top() == left->top() && right->bottom() == left->bottom() && right->left() <= (left->right() + 1)); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 485 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 486 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 487 | static inline bool canMergeFromLeft(const QRect *right, const QRect *left) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 488 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 489 | return never executed: canMergeFromRight(left, right);return canMergeFromRight(left, right);never executed: return canMergeFromRight(left, right); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 490 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 491 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 492 | bool QRegionPrivate::mergeFromRight(QRect *left, const QRect *right) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 493 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 494 | if (canMergeFromRight(left, right)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 495 | left->setRight(right->right()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 496 | updateInnerRect(*left); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 497 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 498 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 499 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 500 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 501 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 502 | bool QRegionPrivate::mergeFromLeft(QRect *right, const QRect *left) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 503 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 504 | if (canMergeFromLeft(right, left)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 505 | right->setLeft(left->left()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 506 | updateInnerRect(*right); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 507 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 508 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 509 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 510 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 511 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 512 | static inline bool canMergeFromBelow(const QRect *top, const QRect *bottom, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 513 | const QRect *nextToTop, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 514 | const QRect *nextToBottom) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 515 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 516 | if (nextToTop
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 517 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 518 | if (nextToBottom
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 519 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 520 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 521 | return never executed: ((top->bottom() >= (bottom->top() - 1))return ((top->bottom() >= (bottom->top() - 1)) && top->left() == bottom->left() && top->right() == bottom->right());never executed: return ((top->bottom() >= (bottom->top() - 1)) && top->left() == bottom->left() && top->right() == bottom->right()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 522 | && top->left() == bottom->left() never executed: return ((top->bottom() >= (bottom->top() - 1)) && top->left() == bottom->left() && top->right() == bottom->right()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 523 | && top->right() == bottom->right()); never executed: return ((top->bottom() >= (bottom->top() - 1)) && top->left() == bottom->left() && top->right() == bottom->right()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 524 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 525 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 526 | bool QRegionPrivate::mergeFromBelow(QRect *top, const QRect *bottom, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 527 | const QRect *nextToTop, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 528 | const QRect *nextToBottom) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 529 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 530 | if (canMergeFromBelow(top, bottom, nextToTop, nextToBottom)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 531 | top->setBottom(bottom->bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 532 | updateInnerRect(*top); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 533 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 534 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 535 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 536 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 537 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 538 | bool QRegionPrivate::mergeFromAbove(QRect *bottom, const QRect *top, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 539 | const QRect *nextToBottom, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 540 | const QRect *nextToTop) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 541 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 542 | if (canMergeFromBelow(top, bottom, nextToTop, nextToBottom)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 543 | bottom->setTop(top->top()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 544 | updateInnerRect(*bottom); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 545 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 546 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 547 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 548 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 549 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 550 | static inline QRect qt_rect_intersect_normalized(const QRect &r1, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 551 | const QRect &r2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 552 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 553 | QRect r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 554 | r.setLeft(qMax(r1.left(), r2.left())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 555 | r.setRight(qMin(r1.right(), r2.right())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 556 | r.setTop(qMax(r1.top(), r2.top())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 557 | r.setBottom(qMin(r1.bottom(), r2.bottom())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 558 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 559 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 560 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 561 | void QRegionPrivate::intersect(const QRect &rect) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 562 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 563 | ((!(extents.intersects(rect))) ? qt_assert("extents.intersects(rect)",__FILE__,1293) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 564 | ((!(numRects > 1)) ? qt_assert("numRects > 1",__FILE__,1294) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 565 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 566 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 567 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 568 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 569 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 570 | const QRect r = rect.normalized(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 571 | extents = QRect(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 572 | innerRect = QRect(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 573 | innerArea = -1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 574 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 575 | QRect *dest = rects.data(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 576 | const QRect *src = dest; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 577 | int n = numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 578 | numRects = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 579 | while (n--
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 580 | *dest = qt_rect_intersect_normalized(*src++, r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 581 | if (dest->isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 582 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 583 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 584 | if (numRects == 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 585 | extents = *dest; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 586 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 587 | extents.setLeft(qMin(extents.left(), dest->left())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 588 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 589 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 590 | extents.setRight(qMax(extents.right(), dest->right())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 591 | extents.setBottom(qMax(extents.bottom(), dest->bottom())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 592 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 593 | const QRect *nextToLast = (numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 594 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 595 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 596 | if (canMergeFromBelow(dest - 1, dest, nextToLast, 0)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 597 | if (!n
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 598 | QRect *prev = dest - 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 599 | prev->setBottom(dest->bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 600 | updateInnerRect(*prev); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 601 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 602 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 603 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 604 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 605 | updateInnerRect(*dest); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 606 | ++dest; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 607 | ++numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 608 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 609 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 610 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 611 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 612 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 613 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 614 | void QRegionPrivate::append(const QRect *r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 615 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 616 | ((!(!r->isEmpty())) ? qt_assert("!r->isEmpty()",__FILE__,1346) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 617 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 618 | QRect *myLast = (numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 619 | if (mergeFromRight(myLast, r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 620 | if (numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 621 | const QRect *nextToTop = (numRects > 2
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 622 | if (mergeFromBelow(myLast - 1, myLast, nextToTop, 0)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 623 | -- never executed: numRects;--numRects;never executed: --numRects; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 624 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 625 | } never executed: else if (mergeFromBelow(myLast, r, (numRects > 1 ? myLast - 1 : 0), 0)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 626 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 627 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 628 | vectorize(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 629 | ++numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 630 | updateInnerRect(*r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 631 | if (rects.size() < numRects
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 632 | rects.resize(numRects); never executed: rects.resize(numRects); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 633 | rects[numRects - 1] = *r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 634 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 635 | extents.setCoords(qMin(extents.left(), r->left()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 636 | qMin(extents.top(), r->top()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 637 | qMax(extents.right(), r->right()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 638 | qMax(extents.bottom(), r->bottom())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 639 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 640 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 641 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 642 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 643 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 644 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 645 | void QRegionPrivate::append(const QRegionPrivate *r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 646 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 647 | ((!(!isEmptyHelper(r))) ? qt_assert("!isEmptyHelper(r)",__FILE__,1377) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 648 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 649 | if (r->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 650 | append(&r->extents); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 651 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 652 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 653 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 654 | vectorize(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 655 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 656 | QRect *destRect = rects.data() + numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 657 | const QRect *srcRect = r->rects.constData(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 658 | int numAppend = r->numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 659 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 660 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 661 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 662 | const QRect *rFirst = srcRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 663 | QRect *myLast = destRect - 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 664 | const QRect *nextToLast = (numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 665 | if (mergeFromRight(myLast, rFirst)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 666 | ++srcRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 667 | --numAppend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 668 | const QRect *rNextToFirst = (numAppend > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 669 | if (mergeFromBelow(myLast, rFirst + 1, nextToLast, rNextToFirst)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 670 | ++srcRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 671 | --numAppend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 672 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 673 | if (numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 674 | nextToLast = (numRects > 2
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 675 | rNextToFirst = (numAppend > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 676 | if (mergeFromBelow(myLast - 1, myLast, nextToLast, rNextToFirst)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 677 | --destRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 678 | --numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 679 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 680 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 681 | } never executed: else if (mergeFromBelow(myLast, rFirst, nextToLast, rFirst + 1)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 682 | ++srcRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 683 | --numAppend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 684 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 685 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 686 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 687 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 688 | if (numAppend > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 689 | const int newNumRects = numRects + numAppend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 690 | if (newNumRects > rects.size()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 691 | rects.resize(newNumRects); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 692 | destRect = rects.data() + numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 693 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 694 | memcpy(destRect, srcRect, numAppend * sizeof(QRect)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 695 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 696 | numRects = newNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 697 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 698 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 699 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 700 | if (innerArea < r->innerArea
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 701 | innerArea = r->innerArea; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 702 | innerRect = r->innerRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 703 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 704 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 705 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 706 | destRect = &extents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 707 | srcRect = &r->extents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 708 | extents.setCoords(qMin(destRect->left(), srcRect->left()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 709 | qMin(destRect->top(), srcRect->top()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 710 | qMax(destRect->right(), srcRect->right()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 711 | qMax(destRect->bottom(), srcRect->bottom())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 712 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 713 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 714 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 715 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 716 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 717 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 718 | void QRegionPrivate::prepend(const QRegionPrivate *r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 719 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 720 | ((!(!isEmptyHelper(r))) ? qt_assert("!isEmptyHelper(r)",__FILE__,1450) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 721 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 722 | if (r->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 723 | prepend(&r->extents); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 724 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 725 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 726 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 727 | vectorize(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 728 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 729 | int numPrepend = r->numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 730 | int numSkip = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 731 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 732 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 733 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 734 | QRect *myFirst = rects.data(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 735 | const QRect *nextToFirst = (numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 736 | const QRect *rLast = r->rects.constData() + r->numRects - 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 737 | const QRect *rNextToLast = (r->numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 738 | if (mergeFromLeft(myFirst, rLast)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 739 | --numPrepend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 740 | --rLast; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 741 | rNextToLast = (numPrepend > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 742 | if (mergeFromAbove(myFirst, rLast, nextToFirst, rNextToLast)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 743 | --numPrepend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 744 | --rLast; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 745 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 746 | if (numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 747 | nextToFirst = (numRects > 2
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 748 | rNextToLast = (numPrepend > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 749 | if (mergeFromAbove(myFirst + 1, myFirst, nextToFirst, rNextToLast)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 750 | --numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 751 | ++numSkip; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 752 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 753 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 754 | } never executed: else if (mergeFromAbove(myFirst, rLast, nextToFirst, rNextToLast)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 755 | --numPrepend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 756 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 757 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 758 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 759 | if (numPrepend > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 760 | const int newNumRects = numRects + numPrepend; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 761 | if (newNumRects > rects.size()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 762 | rects.resize(newNumRects); never executed: rects.resize(newNumRects); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 763 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 764 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 765 | memmove(rects.data() + numPrepend, rects.constData() + numSkip, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 766 | numRects * sizeof(QRect)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 767 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 768 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 769 | memcpy(rects.data(), r->rects.constData(), numPrepend * sizeof(QRect)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 770 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 771 | numRects = newNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 772 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 773 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 774 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 775 | if (innerArea < r->innerArea
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 776 | innerArea = r->innerArea; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 777 | innerRect = r->innerRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 778 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 779 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 780 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 781 | extents.setCoords(qMin(extents.left(), r->extents.left()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 782 | qMin(extents.top(), r->extents.top()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 783 | qMax(extents.right(), r->extents.right()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 784 | qMax(extents.bottom(), r->extents.bottom())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 785 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 786 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 787 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 788 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 789 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 790 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 791 | void QRegionPrivate::prepend(const QRect *r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 792 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 793 | ((!(!r->isEmpty())) ? qt_assert("!r->isEmpty()",__FILE__,1523) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 794 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 795 | QRect *myFirst = (numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 796 | if (mergeFromLeft(myFirst, r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 797 | if (numRects > 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 798 | const QRect *nextToFirst = (numRects > 2
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 799 | if (mergeFromAbove(myFirst + 1, myFirst, nextToFirst, 0)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 800 | --numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 801 | memmove(rects.data(), rects.constData() + 1, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 802 | numRects * sizeof(QRect)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 803 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 804 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 805 | } never executed: else if (mergeFromAbove(myFirst, r, (numRects > 1 ? myFirst + 1 : 0), 0)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 806 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 807 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 808 | vectorize(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 809 | ++numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 810 | updateInnerRect(*r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 811 | rects.prepend(*r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 812 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 813 | extents.setCoords(qMin(extents.left(), r->left()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 814 | qMin(extents.top(), r->top()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 815 | qMax(extents.right(), r->right()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 816 | qMax(extents.bottom(), r->bottom())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 817 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 818 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 819 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 820 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 821 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 822 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 823 | bool QRegionPrivate::canAppend(const QRect *r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 824 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 825 | ((!(!r->isEmpty())) ? qt_assert("!r->isEmpty()",__FILE__,1555) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 826 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 827 | const QRect *myLast = (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 828 | if (r->top() > myLast->bottom()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 829 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 830 | if (r->top() == myLast->top()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 831 | && r->height() == myLast->height()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 832 | && r->left() > myLast->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 833 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 834 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 835 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 836 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 837 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 838 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 839 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 840 | bool QRegionPrivate::canAppend(const QRegionPrivate *r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 841 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 842 | return never executed: canAppend(r->numRects == 1 ? &r->extents : r->rects.constData());return canAppend(r->numRects == 1 ? &r->extents : r->rects.constData());never executed: return canAppend(r->numRects == 1 ? &r->extents : r->rects.constData()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 843 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 844 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 845 | bool QRegionPrivate::canPrepend(const QRect *r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 846 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 847 | ((!(!r->isEmpty())) ? qt_assert("!r->isEmpty()",__FILE__,1577) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 848 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 849 | const QRect *myFirst = (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 850 | if (r->bottom() < myFirst->top()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 851 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 852 | if (r->top() == myFirst->top()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 853 | && r->height() == myFirst->height()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 854 | && r->right() < myFirst->left()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 855 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 856 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 857 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 858 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 859 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 860 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 861 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 862 | bool QRegionPrivate::canPrepend(const QRegionPrivate *r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 863 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 864 | return never executed: canPrepend(r->numRects == 1 ? &r->extents : r->rects.constData() + r->numRects - 1);return canPrepend(r->numRects == 1 ? &r->extents : r->rects.constData() + r->numRects - 1);never executed: return canPrepend(r->numRects == 1 ? &r->extents : r->rects.constData() + r->numRects - 1); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 865 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 866 | static QRegionPrivate qrp; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 867 | const QRegion::QRegionData QRegion::shared_empty = {{ { -1 } }, &qrp}; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 868 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 869 | typedef void (*OverlapFunc)(QRegionPrivate &dest, const QRect *r1, const QRect *r1End, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 870 | const QRect *r2, const QRect *r2End, int y1, int y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 871 | typedef void (*NonOverlapFunc)(QRegionPrivate &dest, const QRect *r, const QRect *rEnd, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 872 | int y1, int y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 873 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 874 | static bool EqualRegion(const QRegionPrivate *r1, const QRegionPrivate *r2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 875 | static void UnionRegion(const QRegionPrivate *reg1, const QRegionPrivate *reg2, QRegionPrivate &dest); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 876 | static void miRegionOp(QRegionPrivate &dest, const QRegionPrivate *reg1, const QRegionPrivate *reg2, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 877 | OverlapFunc overlapFunc, NonOverlapFunc nonOverlap1Func, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 878 | NonOverlapFunc nonOverlap2Func); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 879 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 880 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 881 | typedef struct _POINTBLOCK { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 882 | char data[200 * sizeof(QPoint)]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 883 | QPoint *pts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 884 | struct _POINTBLOCK *next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 885 | } POINTBLOCK; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 886 | static void UnionRectWithRegion(const QRect *rect, const QRegionPrivate *source, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 887 | QRegionPrivate &dest) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 888 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 889 | if (rect->isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 890 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 891 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 892 | ((!(EqualRegion(source, &dest))) ? qt_assert("EqualRegion(source, &dest)",__FILE__,1848) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 893 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 894 | if (dest.numRects == 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 895 | dest = QRegionPrivate(*rect); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 896 | } never executed: else if (dest.canAppend(rect)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 897 | dest.append(rect); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 898 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 899 | QRegionPrivate p(*rect); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 900 | UnionRegion(&p, source, dest); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 901 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 902 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 903 | static void miSetExtents(QRegionPrivate &dest) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 904 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 905 | const QRect *pBox, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 906 | *pBoxEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 907 | QRect *pExtents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 908 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 909 | dest.innerRect.setCoords(0, 0, -1, -1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 910 | dest.innerArea = -1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 911 | if (dest.numRects == 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 912 | dest.extents.setCoords(0, 0, -1, -1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 913 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 914 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 915 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 916 | pExtents = &dest.extents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 917 | if (dest.rects.isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 918 | pBox = &dest.extents; never executed: pBox = &dest.extents; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 919 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 920 | pBox = dest.rects.constData(); never executed: pBox = dest.rects.constData(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 921 | pBoxEnd = pBox + dest.numRects - 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 922 | pExtents->setLeft(pBox->left()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 923 | pExtents->setTop(pBox->top()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 924 | pExtents->setRight(pBoxEnd->right()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 925 | pExtents->setBottom(pBoxEnd->bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 926 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 927 | ((!(pExtents->top() <= pExtents->bottom())) ? qt_assert("pExtents->top() <= pExtents->bottom()",__FILE__,1907) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 928 | while (pBox <= pBoxEnd
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 929 | if (pBox->left() < pExtents->left()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 930 | pExtents->setLeft(pBox->left()); never executed: pExtents->setLeft(pBox->left()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 931 | if (pBox->right() > pExtents->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 932 | pExtents->setRight(pBox->right()); never executed: pExtents->setRight(pBox->right()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 933 | dest.updateInnerRect(*pBox); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 934 | ++pBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 935 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 936 | ((!(pExtents->left() <= pExtents->right())) ? qt_assert("pExtents->left() <= pExtents->right()",__FILE__,1916) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 937 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 938 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 939 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 940 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 941 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 942 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 943 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 944 | static void OffsetRegion(QRegionPrivate ®ion, int x, int y) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 945 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 946 | if (region.rects.size()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 947 | QRect *pbox = region.rects.data(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 948 | int nbox = region.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 949 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 950 | while (nbox--
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 951 | pbox->translate(x, y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 952 | ++pbox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 953 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 954 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 955 | region.extents.translate(x, y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 956 | region.innerRect.translate(x, y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 957 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 958 | static void miIntersectO(QRegionPrivate &dest, const QRect *r1, const QRect *r1End, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 959 | const QRect *r2, const QRect *r2End, int y1, int y2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 960 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 961 | int x1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 962 | int x2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 963 | QRect *pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 964 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 965 | pNextRect = dest.rects.data() + dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 966 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 967 | while (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 968 | x1 = qMax(r1->left(), r2->left()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 969 | x2 = qMin(r1->right(), r2->right()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 970 | if (x1 <= x2
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 971 | ((!(y1 <= y2)) ? qt_assert("y1 <= y2",__FILE__,1976) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 972 | { if ((
never executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 973 | pNextRect->setCoords(x1, y1, x2, y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 974 | ++dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 975 | ++pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 976 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 977 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 978 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 979 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 980 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 981 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 982 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 983 | if (r1->right() < r2->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 984 | ++r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 985 | } never executed: else if (r2->right() < r1->right()end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 986 | ++r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 987 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 988 | ++r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 989 | ++r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 990 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 991 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 992 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 993 | static int miCoalesce(QRegionPrivate &dest, int prevStart, int curStart) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 994 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 995 | QRect *pPrevBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 996 | QRect *pCurBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 997 | QRect *pRegEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 998 | int curNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 999 | int prevNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1000 | int bandY1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1001 | QRect *rData = dest.rects.data(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1002 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1003 | pRegEnd = rData + dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1004 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1005 | pPrevBox = rData + prevStart; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1006 | prevNumRects = curStart - prevStart; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1007 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1008 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1009 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1010 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1011 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1012 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1013 | pCurBox = rData + curStart; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1014 | bandY1 = pCurBox->top(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1015 | for (curNumRects = 0; pCurBox != pRegEnd
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1016 | ++pCurBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1017 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1018 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1019 | if (pCurBox != pRegEnd
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1020 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1021 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1022 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1023 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1024 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1025 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1026 | --pRegEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1027 | while ((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1028 | -- never executed: pRegEnd;--pRegEnd;never executed: --pRegEnd; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1029 | curStart = pRegEnd - rData; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1030 | pRegEnd = rData + dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1031 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1032 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1033 | if (curNumRects == prevNumRects
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1034 | pCurBox -= curNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1035 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1036 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1037 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1038 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1039 | if (pPrevBox->bottom() == pCurBox->top() - 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1040 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1041 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1042 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1043 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1044 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1045 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1046 | do { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1047 | if (pPrevBox->left() != pCurBox->left()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1048 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1049 | return never executed: curStart;return curStart;never executed: return curStart; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1050 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1051 | ++pPrevBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1052 | ++pCurBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1053 | --prevNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1054 | } never executed: while (prevNumRects != 0end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1055 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1056 | dest.numRects -= curNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1057 | pCurBox -= curNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1058 | pPrevBox -= curNumRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1059 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1060 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1061 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1062 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1063 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1064 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1065 | do { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1066 | pPrevBox->setBottom(pCurBox->bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1067 | dest.updateInnerRect(*pPrevBox); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1068 | ++pPrevBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1069 | ++pCurBox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1070 | curNumRects -= 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1071 | } never executed: while (curNumRects != 0end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1072 | if (pCurBox == pRegEnd
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1073 | curStart = prevStart; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1074 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1075 | do { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1076 | *pPrevBox++ = *pCurBox++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1077 | dest.updateInnerRect(*pPrevBox); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1078 | } never executed: while (pCurBox != pRegEndend of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1079 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1080 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1081 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1082 | return never executed: curStart;return curStart;never executed: return curStart; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1083 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1084 | static void miRegionOp(QRegionPrivate &dest, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1085 | const QRegionPrivate *reg1, const QRegionPrivate *reg2, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1086 | OverlapFunc overlapFunc, NonOverlapFunc nonOverlap1Func, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1087 | NonOverlapFunc nonOverlap2Func) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1088 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1089 | const QRect *r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1090 | const QRect *r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1091 | const QRect *r1End; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1092 | const QRect *r2End; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1093 | int ybot; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1094 | int ytop; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1095 | int prevBand; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1096 | int curBand; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1097 | const QRect *r1BandEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1098 | const QRect *r2BandEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1099 | int top; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1100 | int bot; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1101 | if (reg1->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1102 | r1 = ®1->extents; never executed: r1 = ®1->extents; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1103 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1104 | r1 = reg1->rects.constData(); never executed: r1 = reg1->rects.constData(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1105 | if (reg2->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1106 | r2 = ®2->extents; never executed: r2 = ®2->extents; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1107 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1108 | r2 = reg2->rects.constData(); never executed: r2 = reg2->rects.constData(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1109 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1110 | r1End = r1 + reg1->numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1111 | r2End = r2 + reg2->numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1112 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1113 | dest.vectorize(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1114 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1115 | QVector<QRect> oldRects = dest.rects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1116 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1117 | dest.numRects = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1118 | dest.rects.resize(qMax(reg1->numRects,reg2->numRects) * 2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1119 | if (reg1->extents.top() < reg2->extents.top()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1120 | ybot = reg1->extents.top() - 1; never executed: ybot = reg1->extents.top() - 1; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1121 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1122 | ybot = reg2->extents.top() - 1; never executed: ybot = reg2->extents.top() - 1; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1123 | prevBand = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1124 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1125 | do { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1126 | curBand = dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1127 | r1BandEnd = r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1128 | while (r1BandEnd != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1129 | ++ never executed: r1BandEnd;++r1BandEnd;never executed: ++r1BandEnd; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1130 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1131 | r2BandEnd = r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1132 | while (r2BandEnd != r2End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1133 | ++ never executed: r2BandEnd;++r2BandEnd;never executed: ++r2BandEnd; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1134 | if (r1->top() < r2->top()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1135 | top = qMax(r1->top(), ybot + 1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1136 | bot = qMin(r1->bottom(), r2->top() - 1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1137 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1138 | if (nonOverlap1Func != 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1139 | (* never executed: nonOverlap1Func)(dest, r1, r1BandEnd, top, bot);(*nonOverlap1Func)(dest, r1, r1BandEnd, top, bot);never executed: (*nonOverlap1Func)(dest, r1, r1BandEnd, top, bot); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1140 | ytop = r2->top(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1141 | } never executed: else if (r2->top() < r1->top()end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1142 | top = qMax(r2->top(), ybot + 1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1143 | bot = qMin(r2->bottom(), r1->top() - 1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1144 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1145 | if (nonOverlap2Func != 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1146 | (* never executed: nonOverlap2Func)(dest, r2, r2BandEnd, top, bot);(*nonOverlap2Func)(dest, r2, r2BandEnd, top, bot);never executed: (*nonOverlap2Func)(dest, r2, r2BandEnd, top, bot); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1147 | ytop = r1->top(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1148 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1149 | ytop = r1->top(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1150 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1151 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1152 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1153 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1154 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1155 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1156 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1157 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1158 | if (dest.numRects != curBand
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1159 | prevBand = miCoalesce(dest, prevBand, curBand); never executed: prevBand = miCoalesce(dest, prevBand, curBand); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1160 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1161 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1162 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1163 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1164 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1165 | ybot = qMin(r1->bottom(), r2->bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1166 | curBand = dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1167 | if (ybot >= ytop
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1168 | (* never executed: overlapFunc)(dest, r1, r1BandEnd, r2, r2BandEnd, ytop, ybot);(*overlapFunc)(dest, r1, r1BandEnd, r2, r2BandEnd, ytop, ybot);never executed: (*overlapFunc)(dest, r1, r1BandEnd, r2, r2BandEnd, ytop, ybot); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1169 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1170 | if (dest.numRects != curBand
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1171 | prevBand = miCoalesce(dest, prevBand, curBand); never executed: prevBand = miCoalesce(dest, prevBand, curBand); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1172 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1173 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1174 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1175 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1176 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1177 | if (r1->bottom() == ybot
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1178 | r1 = r1BandEnd; never executed: r1 = r1BandEnd; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1179 | if (r2->bottom() == ybot
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1180 | r2 = r2BandEnd; never executed: r2 = r2BandEnd; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1181 | } never executed: while (r1 != r1Endend of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1182 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1183 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1184 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1185 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1186 | curBand = dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1187 | if (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1188 | if (nonOverlap1Func != 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1189 | do { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1190 | r1BandEnd = r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1191 | while (r1BandEnd < r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1192 | ++ never executed: r1BandEnd;++r1BandEnd;never executed: ++r1BandEnd; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1193 | (*nonOverlap1Func)(dest, r1, r1BandEnd, qMax(r1->top(), ybot + 1), r1->bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1194 | r1 = r1BandEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1195 | } never executed: while (r1 != r1Endend of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1196 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1197 | } never executed: else if ((end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1198 | do { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1199 | r2BandEnd = r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1200 | while (r2BandEnd < r2End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1201 | ++ never executed: r2BandEnd;++r2BandEnd;never executed: ++r2BandEnd; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1202 | (*nonOverlap2Func)(dest, r2, r2BandEnd, qMax(r2->top(), ybot + 1), r2->bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1203 | r2 = r2BandEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1204 | } never executed: while (r2 != r2Endend of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1205 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1206 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1207 | if (dest.numRects != curBand
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1208 | ( never executed: void)miCoalesce(dest, prevBand, curBand);(void)miCoalesce(dest, prevBand, curBand);never executed: (void)miCoalesce(dest, prevBand, curBand); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1209 | if (qMax(4, dest.numRects) < (dest.rects.size() >> 1)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1210 | dest.rects.resize(dest.numRects); never executed: dest.rects.resize(dest.numRects); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1211 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1212 | static void miUnionNonO(QRegionPrivate &dest, const QRect *r, const QRect *rEnd, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1213 | int y1, int y2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1214 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1215 | QRect *pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1216 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1217 | pNextRect = dest.rects.data() + dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1218 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1219 | ((!(y1 <= y2)) ? qt_assert("y1 <= y2",__FILE__,2372) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1220 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1221 | while (r != rEnd
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1222 | ((!(r->left() <= r->right())) ? qt_assert("r->left() <= r->right()",__FILE__,2375) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1223 | { if ((
never executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1224 | pNextRect->setCoords(r->left(), y1, r->right(), y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1225 | dest.numRects++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1226 | ++pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1227 | ++r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1228 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1229 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1230 | static void miUnionO(QRegionPrivate &dest, const QRect *r1, const QRect *r1End, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1231 | const QRect *r2, const QRect *r2End, int y1, int y2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1232 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1233 | QRect *pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1234 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1235 | pNextRect = dest.rects.data() + dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1236 | ((!(y1 <= y2)) ? qt_assert("y1 <= y2",__FILE__,2427) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1237 | while (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1238 | if (r1->left() < r2->left()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1239 | if ((
never executed: }end of blocknever executed: else { { if ((end of block
never executed: } pNextRect->setCoords(r1->left(), y1, r1->right(), y2); dest.updateInnerRect(*pNextRect); dest.numRects++; pNextRect++; }end of blocknever executed: r1++;end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1240 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1241 | if ((
never executed: }end of blocknever executed: else { { if ((end of block
never executed: } pNextRect->setCoords(r2->left(), y1, r2->right(), y2); dest.updateInnerRect(*pNextRect); dest.numRects++; pNextRect++; }end of blocknever executed: r2++;end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1242 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1243 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1244 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1245 | if (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1246 | do { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1247 | if ((
never executed: }end of blocknever executed: else { { if ((end of block
never executed: } pNextRect->setCoords(r1->left(), y1, r1->right(), y2); dest.updateInnerRect(*pNextRect); dest.numRects++; pNextRect++; }end of blocknever executed: r1++;end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1248 | } never executed: while (r1 != r1Endend of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1249 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1250 | while (r2 != r2End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1251 | if ((
never executed: }end of blocknever executed: else { { if ((end of block
never executed: } pNextRect->setCoords(r2->left(), y1, r2->right(), y2); dest.updateInnerRect(*pNextRect); dest.numRects++; pNextRect++; }end of blocknever executed: r2++;end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1252 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1253 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1254 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1255 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1256 | static void UnionRegion(const QRegionPrivate *reg1, const QRegionPrivate *reg2, QRegionPrivate &dest) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1257 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1258 | ((!(!isEmptyHelper(reg1) && !isEmptyHelper(reg2))) ? qt_assert("!isEmptyHelper(reg1) && !isEmptyHelper(reg2)",__FILE__,2449) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1259 | ((!(!reg1->contains(*reg2))) ? qt_assert("!reg1->contains(*reg2)",__FILE__,2450) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1260 | ((!(!reg2->contains(*reg1))) ? qt_assert("!reg2->contains(*reg1)",__FILE__,2451) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1261 | ((!(!EqualRegion(reg1, reg2))) ? qt_assert("!EqualRegion(reg1, reg2)",__FILE__,2452) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1262 | ((!(!reg1->canAppend(reg2))) ? qt_assert("!reg1->canAppend(reg2)",__FILE__,2453) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1263 | ((!(!reg2->canAppend(reg1))) ? qt_assert("!reg2->canAppend(reg1)",__FILE__,2454) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1264 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1265 | if (reg1->innerArea > reg2->innerArea
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1266 | dest.innerArea = reg1->innerArea; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1267 | dest.innerRect = reg1->innerRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1268 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1269 | dest.innerArea = reg2->innerArea; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1270 | dest.innerRect = reg2->innerRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1271 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1272 | miRegionOp(dest, reg1, reg2, miUnionO, miUnionNonO, miUnionNonO); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1273 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1274 | dest.extents.setCoords(qMin(reg1->extents.left(), reg2->extents.left()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1275 | qMin(reg1->extents.top(), reg2->extents.top()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1276 | qMax(reg1->extents.right(), reg2->extents.right()), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1277 | qMax(reg1->extents.bottom(), reg2->extents.bottom())); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1278 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1279 | static void miSubtractNonO1(QRegionPrivate &dest, const QRect *r, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1280 | const QRect *rEnd, int y1, int y2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1281 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1282 | QRect *pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1283 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1284 | pNextRect = dest.rects.data() + dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1285 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1286 | ((!(y1<=y2)) ? qt_assert("y1<=y2",__FILE__,2497) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1287 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1288 | while (r != rEnd
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1289 | ((!(r->left() <= r->right())) ? qt_assert("r->left() <= r->right()",__FILE__,2500) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1290 | { if ((
never executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1291 | pNextRect->setCoords(r->left(), y1, r->right(), y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1292 | ++dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1293 | ++pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1294 | ++r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1295 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1296 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1297 | static void miSubtractO(QRegionPrivate &dest, const QRect *r1, const QRect *r1End, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1298 | const QRect *r2, const QRect *r2End, int y1, int y2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1299 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1300 | QRect *pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1301 | int x1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1302 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1303 | x1 = r1->left(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1304 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1305 | ((!(y1 <= y2)) ? qt_assert("y1 <= y2",__FILE__,2532) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1306 | pNextRect = dest.rects.data() + dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1307 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1308 | while (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1309 | if (r2->right() < x1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1310 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1311 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1312 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1313 | ++r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1314 | } never executed: else if (r2->left() <= x1end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1315 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1316 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1317 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1318 | x1 = r2->right() + 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1319 | if (x1 > r1->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1320 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1321 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1322 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1323 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1324 | ++r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1325 | if (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1326 | x1 = r1->left(); never executed: x1 = r1->left(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1327 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1328 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1329 | ++r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1330 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1331 | } else if (r2->left() <= r1->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1332 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1333 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1334 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1335 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1336 | ((!(x1 < r2->left())) ? qt_assert("x1 < r2->left()",__FILE__,2563) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1337 | { if ((
never executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1338 | pNextRect->setCoords(x1, y1, r2->left() - 1, y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1339 | ++dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1340 | ++pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1341 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1342 | x1 = r2->right() + 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1343 | if (x1 > r1->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1344 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1345 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1346 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1347 | ++r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1348 | if (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1349 | x1 = r1->left(); never executed: x1 = r1->left(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1350 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1351 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1352 | ++r2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1353 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1354 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1355 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1356 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1357 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1358 | if (r1->right() >= x1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1359 | { if ((
never executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1360 | pNextRect->setCoords(x1, y1, r1->right(), y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1361 | ++dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1362 | ++pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1363 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1364 | ++r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1365 | if (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1366 | x1 = r1->left(); never executed: x1 = r1->left(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1367 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1368 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1369 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1370 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1371 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1372 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1373 | while (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1374 | ((!(x1 <= r1->right())) ? qt_assert("x1 <= r1->right()",__FILE__,2601) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1375 | { if ((
never executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1376 | pNextRect->setCoords(x1, y1, r1->right(), y2); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1377 | ++dest.numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1378 | ++pNextRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1379 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1380 | ++r1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1381 | if (r1 != r1End
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1382 | x1 = r1->left(); never executed: x1 = r1->left(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1383 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1384 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1385 | static void SubtractRegion(QRegionPrivate *regM, QRegionPrivate *regS, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1386 | QRegionPrivate &dest) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1387 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1388 | ((!(!isEmptyHelper(regM))) ? qt_assert("!isEmptyHelper(regM)",__FILE__,2628) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1389 | ((!(!isEmptyHelper(regS))) ? qt_assert("!isEmptyHelper(regS)",__FILE__,2629) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1390 | ((!(((®M->extents)->right() >= (®S->extents)->left() && (®M->extents)->left() <= (®S->extents)->right() && (®M->extents)->bottom() >= (®S->extents)->top() && (®M->extents)->top() <= (®S->extents)->bottom()))) ? qt_assert("EXTENTCHECK(®M->extents, ®S->extents)",__FILE__,2630) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1391 | ((!(!regS->contains(*regM))) ? qt_assert("!regS->contains(*regM)",__FILE__,2631) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1392 | ((!(!EqualRegion(regM, regS))) ? qt_assert("!EqualRegion(regM, regS)",__FILE__,2632) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1393 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1394 | miRegionOp(dest, regM, regS, miSubtractO, miSubtractNonO1, 0); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1395 | miSetExtents(dest); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1396 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1397 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1398 | static void XorRegion(QRegionPrivate *sra, QRegionPrivate *srb, QRegionPrivate &dest) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1399 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1400 | ((!(!isEmptyHelper(sra) && !isEmptyHelper(srb))) ? qt_assert("!isEmptyHelper(sra) && !isEmptyHelper(srb)",__FILE__,2648) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1401 | ((!(((&sra->extents)->right() >= (&srb->extents)->left() && (&sra->extents)->left() <= (&srb->extents)->right() && (&sra->extents)->bottom() >= (&srb->extents)->top() && (&sra->extents)->top() <= (&srb->extents)->bottom()))) ? qt_assert("EXTENTCHECK(&sra->extents, &srb->extents)",__FILE__,2649) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1402 | ((!(!EqualRegion(sra, srb))) ? qt_assert("!EqualRegion(sra, srb)",__FILE__,2650) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1403 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1404 | QRegionPrivate tra, trb; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1405 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1406 | if (!srb->contains(*sra)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1407 | SubtractRegion(sra, srb, tra); never executed: SubtractRegion(sra, srb, tra); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1408 | if (!sra->contains(*srb)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1409 | SubtractRegion(srb, sra, trb); never executed: SubtractRegion(srb, sra, trb); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1410 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1411 | ((!(isEmptyHelper(&trb) || !tra.contains(trb))) ? qt_assert("isEmptyHelper(&trb) || !tra.contains(trb)",__FILE__,2659) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1412 | ((!(isEmptyHelper(&tra) || !trb.contains(tra))) ? qt_assert("isEmptyHelper(&tra) || !trb.contains(tra)",__FILE__,2660) : qt_noop()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1413 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1414 | if (isEmptyHelper(&tra)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1415 | dest = trb; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1416 | } never executed: else if (isEmptyHelper(&trb)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1417 | dest = tra; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1418 | } never executed: else if (tra.canAppend(&trb)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1419 | dest = tra; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1420 | dest.append(&trb); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1421 | } never executed: else if (trb.canAppend(&tra)end of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1422 | dest = trb; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1423 | dest.append(&tra); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1424 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1425 | UnionRegion(&tra, &trb, dest); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1426 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1427 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1428 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1429 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1430 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1431 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1432 | static bool EqualRegion(const QRegionPrivate *r1, const QRegionPrivate *r2) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1433 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1434 | if (r1->numRects != r2->numRects
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1435 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1436 | } else if (r1->numRects == 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1437 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1438 | } else if (r1->extents != r2->extents
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1439 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1440 | } else if (r1->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1441 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1442 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1443 | const QRect *rr1 = (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1444 | const QRect *rr2 = (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1445 | for (int i = 0; i < r1->numRects
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1446 | if (*
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1447 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1448 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1449 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1450 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1451 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1452 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1453 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1454 | static bool PointInRegion(QRegionPrivate *pRegion, int x, int y) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1455 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1456 | int i; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1457 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1458 | if (isEmptyHelper(pRegion)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1459 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1460 | if (!pRegion->extents.contains(x, y)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1461 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1462 | if (pRegion->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1463 | return never executed: pRegion->extents.contains(x, y);return pRegion->extents.contains(x, y);never executed: return pRegion->extents.contains(x, y); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1464 | if (pRegion->innerRect.contains(x, y)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1465 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1466 | for (i = 0; i < pRegion->numRects
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1467 | if (pRegion->rects[i].contains(x, y)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1468 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1469 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1470 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1471 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1472 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1473 | static bool RectInRegion(QRegionPrivate *region, int rx, int ry, uint rwidth, uint rheight) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1474 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1475 | const QRect *pbox; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1476 | const QRect *pboxEnd; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1477 | QRect rect(rx, ry, rwidth, rheight); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1478 | QRect *prect = ▭ | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1479 | int partIn, partOut; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1480 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1481 | if (!region
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1482 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1483 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1484 | partOut = false; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1485 | partIn = false; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1486 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1487 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1488 | pbox = (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1489 | pboxEnd = pbox + region->numRects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1490 | for (; pbox < pboxEnd
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1491 | if (pbox->bottom() < ry
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1492 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1493 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1494 | if (pbox->top() > ry
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1495 | partOut = true; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1496 | if (partIn
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1497 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1498 | ry = pbox->top(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1499 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1500 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1501 | if (pbox->right() < rx
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1502 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1503 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1504 | if (pbox->left() > rx
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1505 | partOut = true; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1506 | if (partIn
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1507 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1508 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1509 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1510 | if (pbox->left() <= prect->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1511 | partIn = true; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1512 | if (partOut
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1513 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1514 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1515 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1516 | if (pbox->right() >= prect->right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1517 | ry = pbox->bottom() + 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1518 | if (ry > prect->bottom()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1519 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1520 | rx = prect->left(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1521 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1522 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1523 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1524 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1525 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1526 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1527 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1528 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1529 | break; never executed: break; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1530 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1531 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1532 | return never executed: partIn ? ((ry <= prect->bottom()) ? 2 : 1) : 0;return partIn ? ((ry <= prect->bottom()) ? 2 : 1) : 0;never executed: return partIn ? ((ry <= prect->bottom()) ? 2 : 1) : 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1533 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1534 | typedef struct { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1535 | int minor_axis; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1536 | int d; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1537 | int m, m1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1538 | int incr1, incr2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1539 | } BRESINFO; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1540 | typedef struct _EdgeTableEntry { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1541 | int ymax; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1542 | int ClockWise; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1543 | BRESINFO bres; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1544 | struct _EdgeTableEntry *next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1545 | struct _EdgeTableEntry *back; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1546 | struct _EdgeTableEntry *nextWETE; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1547 | } EdgeTableEntry; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1548 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1549 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1550 | typedef struct _ScanLineList{ | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1551 | int scanline; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1552 | EdgeTableEntry *edgelist; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1553 | struct _ScanLineList *next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1554 | } ScanLineList; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1555 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1556 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1557 | typedef struct { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1558 | int ymax; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1559 | int ymin; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1560 | ScanLineList scanlines; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1561 | } EdgeTable; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1562 | typedef struct _ScanLineListBlock { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1563 | ScanLineList SLLs[25]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1564 | struct _ScanLineListBlock *next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1565 | } ScanLineListBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1566 | static void InsertEdgeInET(EdgeTable *ET, EdgeTableEntry *ETE, int scanline, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1567 | ScanLineListBlock **SLLBlock, int *iSLLBlock) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1568 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1569 | EdgeTableEntry *start, *prev; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1570 | ScanLineList *pSLL, *pPrevSLL; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1571 | ScanLineListBlock *tmpSLLBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1572 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1573 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1574 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1575 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1576 | pPrevSLL = &ET->scanlines; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1577 | pSLL = pPrevSLL->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1578 | while (pSLL
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1579 | pPrevSLL = pSLL; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1580 | pSLL = pSLL->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1581 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1582 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1583 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1584 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1585 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1586 | if ((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1587 | if (*
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1588 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1589 | tmpSLLBlock = | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1590 | (ScanLineListBlock *)malloc(sizeof(ScanLineListBlock)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1591 | do {if(!(tmpSLLBlock)
never executed: } while (0);qt_check_pointer(__FILE__,3169); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1592 | (*SLLBlock)->next = tmpSLLBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1593 | tmpSLLBlock->next = (ScanLineListBlock *)__null; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1594 | *SLLBlock = tmpSLLBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1595 | *iSLLBlock = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1596 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1597 | pSLL = &((*SLLBlock)->SLLs[(*iSLLBlock)++]); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1598 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1599 | pSLL->next = pPrevSLL->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1600 | pSLL->edgelist = (EdgeTableEntry *)__null; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1601 | pPrevSLL->next = pSLL; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1602 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1603 | pSLL->scanline = scanline; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1604 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1605 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1606 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1607 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1608 | prev = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1609 | start = pSLL->edgelist; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1610 | while (start
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1611 | prev = start; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1612 | start = start->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1613 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1614 | ETE->next = start; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1615 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1616 | if (prev
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1617 | prev->next = ETE; never executed: prev->next = ETE; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1618 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1619 | pSLL->edgelist = ETE; never executed: pSLL->edgelist = ETE; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1620 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1621 | static void CreateETandAET(int count, const QPoint *pts, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1622 | EdgeTable *ET, EdgeTableEntry *AET, EdgeTableEntry *pETEs, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1623 | ScanLineListBlock *pSLLBlock) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1624 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1625 | const QPoint *top, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1626 | *bottom, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1627 | *PrevPt, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1628 | *CurrPt; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1629 | int iSLLBlock = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1630 | int dy; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1631 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1632 | if (count < 2
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1633 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1634 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1635 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1636 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1637 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1638 | AET->next = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1639 | AET->back = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1640 | AET->nextWETE = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1641 | AET->bres.minor_axis = (-2147483647 - 1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1642 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1643 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1644 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1645 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1646 | ET->scanlines.next = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1647 | ET->ymax = (-2147483647 - 1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1648 | ET->ymin = 2147483647; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1649 | pSLLBlock->next = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1650 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1651 | PrevPt = &pts[count - 1]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1652 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1653 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1654 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1655 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1656 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1657 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1658 | while (count--
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1659 | CurrPt = pts++; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1660 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1661 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1662 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1663 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1664 | if (PrevPt->y() > CurrPt->y()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1665 | bottom = PrevPt; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1666 | top = CurrPt; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1667 | pETEs->ClockWise = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1668 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1669 | bottom = CurrPt; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1670 | top = PrevPt; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1671 | pETEs->ClockWise = 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1672 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1673 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1674 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1675 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1676 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1677 | if (bottom->y() != top->y()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1678 | pETEs->ymax = bottom->y() - 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1679 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1680 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1681 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1682 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1683 | dy = bottom->y() - top->y(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1684 | { int dx; if ((
never executed: else { pETEs->bres.m = dx / (dy); pETEs->bres.m1 = pETEs->bres.m + 1; pETEs->bres.incr1 = 2 * dx - 2 * (dy) * pETEs->bres.m1; pETEs->bres.incr2 = 2 * dx - 2 * (dy) * pETEs->bres.m; pETEs->bres.d = -2 * pETEs->bres.m * (dy) + 2 * dx; }end of blocknever executed: } }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1685 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1686 | InsertEdgeInET(ET, pETEs, top->y(), &pSLLBlock, &iSLLBlock); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1687 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1688 | if (PrevPt->y() > ET->ymax
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1689 | ET->ymax = PrevPt->y(); never executed: ET->ymax = PrevPt->y(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1690 | if (PrevPt->y() < ET->ymin
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1691 | ET->ymin = PrevPt->y(); never executed: ET->ymin = PrevPt->y(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1692 | ++pETEs; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1693 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1694 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1695 | PrevPt = CurrPt; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1696 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1697 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1698 | static void loadAET(EdgeTableEntry *AET, EdgeTableEntry *ETEs) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1699 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1700 | EdgeTableEntry *pPrevAET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1701 | EdgeTableEntry *tmp; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1702 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1703 | pPrevAET = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1704 | AET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1705 | while (ETEs
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1706 | while (AET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1707 | pPrevAET = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1708 | AET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1709 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1710 | tmp = ETEs->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1711 | ETEs->next = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1712 | if (AET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1713 | AET->back = ETEs; never executed: AET->back = ETEs; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1714 | ETEs->back = pPrevAET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1715 | pPrevAET->next = ETEs; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1716 | pPrevAET = ETEs; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1717 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1718 | ETEs = tmp; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1719 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1720 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1721 | static void computeWAET(EdgeTableEntry *AET) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1722 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1723 | EdgeTableEntry *pWETE; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1724 | int inside = 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1725 | int isInside = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1726 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1727 | AET->nextWETE = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1728 | pWETE = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1729 | AET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1730 | while (AET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1731 | if (AET->ClockWise
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1732 | ++ never executed: isInside;++isInside;never executed: ++isInside; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1733 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1734 | -- never executed: isInside;--isInside;never executed: --isInside; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1735 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1736 | if ((!inside
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1737 | pWETE->nextWETE = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1738 | pWETE = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1739 | inside = !inside; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1740 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1741 | AET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1742 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1743 | pWETE->nextWETE = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1744 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1745 | static int InsertionSort(EdgeTableEntry *AET) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1746 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1747 | EdgeTableEntry *pETEchase; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1748 | EdgeTableEntry *pETEinsert; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1749 | EdgeTableEntry *pETEchaseBackTMP; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1750 | int changed = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1751 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1752 | AET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1753 | while (AET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1754 | pETEinsert = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1755 | pETEchase = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1756 | while (pETEchase->back->bres.minor_axis > AET->bres.minor_axis
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1757 | pETEchase = pETEchase->back; never executed: pETEchase = pETEchase->back; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1758 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1759 | AET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1760 | if (pETEchase != pETEinsert
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1761 | pETEchaseBackTMP = pETEchase->back; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1762 | pETEinsert->back->next = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1763 | if (AET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1764 | AET->back = pETEinsert->back; never executed: AET->back = pETEinsert->back; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1765 | pETEinsert->next = pETEchase; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1766 | pETEchase->back->next = pETEinsert; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1767 | pETEchase->back = pETEinsert; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1768 | pETEinsert->back = pETEchaseBackTMP; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1769 | changed = 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1770 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1771 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1772 | return never executed: changed;return changed;never executed: return changed; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1773 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1774 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1775 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1776 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1777 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1778 | static void FreeStorage(ScanLineListBlock *pSLLBlock) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1779 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1780 | ScanLineListBlock *tmpSLLBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1781 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1782 | while (pSLLBlock
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1783 | tmpSLLBlock = pSLLBlock->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1784 | free(pSLLBlock); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1785 | pSLLBlock = tmpSLLBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1786 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1787 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1788 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1789 | struct QRegionSpan { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1790 | QRegionSpan() {} | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1791 | QRegionSpan(int x1_, int x2_) : x1(x1_), x2(x2_) {} never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1792 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1793 | int x1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1794 | int x2; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1795 | int width() const { return never executed: x2 - x1;return x2 - x1;never executed: }return x2 - x1; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1796 | }; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1797 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1798 | template<> class QTypeInfo<QRegionSpan > { public: enum { isComplex = (((Q_PRIMITIVE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_PRIMITIVE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isRelocatable = !isStatic || ((Q_PRIMITIVE_TYPE) & Q_RELOCATABLE_TYPE), isLarge = (sizeof(QRegionSpan)>sizeof(void*)), isPointer = false, isIntegral = QtPrivate::is_integral< QRegionSpan >::value, isDummy = (((Q_PRIMITIVE_TYPE) & Q_DUMMY_TYPE) != 0), sizeOf = sizeof(QRegionSpan) }; static inline const char *name() { return "QRegionSpan"; } }; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1799 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1800 | static inline void flushRow(const QRegionSpan *spans, int y, int numSpans, QRegionPrivate *reg, int *lastRow, int *extendTo, bool *needsExtend) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1801 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1802 | QRect *regRects = reg->rects.data() + *lastRow; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1803 | bool canExtend = reg->rects.size() - *lastRow == numSpans
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1804 | && !(*
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1805 | && (*
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1806 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1807 | for (int i = 0; i < numSpans
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1808 | if (regRects[i].x() != spans[i].x1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1809 | canExtend = false; never executed: canExtend = false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1810 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1811 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1812 | if (canExtend
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1813 | *extendTo = y; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1814 | *needsExtend = true; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1815 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1816 | if (*
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1817 | for (int i = 0; i < reg->rects.size() - *lastRow
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1818 | regRects[i].setBottom(*extendTo); never executed: regRects[i].setBottom(*extendTo); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1819 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1820 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1821 | *lastRow = reg->rects.size(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1822 | reg->rects.reserve(*lastRow + numSpans); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1823 | for (int i = 0; i < numSpans
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1824 | reg->rects << QRect(spans[i].x1, y, spans[i].width(), 1); never executed: reg->rects << QRect(spans[i].x1, y, spans[i].width(), 1); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1825 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1826 | if (spans[0].x1 < reg->extents.left()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1827 | reg->extents.setLeft(spans[0].x1); never executed: reg->extents.setLeft(spans[0].x1); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1828 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1829 | if (spans[numSpans-1].x2 - 1 > reg->extents.right()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1830 | reg->extents.setRight(spans[numSpans-1].x2 - 1); never executed: reg->extents.setRight(spans[numSpans-1].x2 - 1); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1831 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1832 | *needsExtend = false; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1833 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1834 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1835 | static void PtsToRegion(int numFullPtBlocks, int iCurPtBlock, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1836 | POINTBLOCK *FirstPtBlock, QRegionPrivate *reg) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1837 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1838 | int lastRow = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1839 | int extendTo = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1840 | bool needsExtend = false; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1841 | QVarLengthArray<QRegionSpan> row; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1842 | int rowSize = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1843 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1844 | reg->extents.setLeft(2147483647); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1845 | reg->extents.setRight((-2147483647 - 1)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1846 | reg->innerArea = -1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1847 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1848 | POINTBLOCK *CurPtBlock = FirstPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1849 | for (; numFullPtBlocks >= 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1850 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1851 | int i = 200 >> 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1852 | if (!numFullPtBlocks
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1853 | i = iCurPtBlock >> 1; never executed: i = iCurPtBlock >> 1; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1854 | if(i
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1855 | row.resize(qMax(row.size(), rowSize + i)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1856 | for (QPoint *pts = CurPtBlock->pts; i--
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1857 | const int width = pts[1].x() - pts[0].x(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1858 | if (width
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1859 | if (rowSize
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1860 | row[rowSize-1].x2 = pts[1].x(); never executed: row[rowSize-1].x2 = pts[1].x(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1861 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1862 | row[rowSize++] = QRegionSpan(pts[0].x(), pts[1].x()); never executed: row[rowSize++] = QRegionSpan(pts[0].x(), pts[1].x()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1863 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1864 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1865 | if (rowSize
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1866 | QPoint *next = i
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1867 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1868 | if (!next
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1869 | flushRow(row.data(), pts[0].y(), rowSize, reg, &lastRow, &extendTo, &needsExtend); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1870 | rowSize = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1871 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1872 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1873 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1874 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1875 | CurPtBlock = CurPtBlock->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1876 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1877 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1878 | if (needsExtend
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1879 | for (int i = lastRow; i < reg->rects.size()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1880 | reg->rects[i].setBottom(extendTo); never executed: reg->rects[i].setBottom(extendTo); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1881 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1882 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1883 | reg->numRects = reg->rects.size(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1884 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1885 | if (reg->numRects
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1886 | reg->extents.setTop(reg->rects[0].top()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1887 | reg->extents.setBottom(reg->rects[lastRow].bottom()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1888 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1889 | for (int i = 0; i < reg->rects.size()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1890 | reg->updateInnerRect(reg->rects[i]); never executed: reg->updateInnerRect(reg->rects[i]); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1891 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1892 | reg->extents.setCoords(0, 0, 0, 0); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1893 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1894 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1895 | static QRegionPrivate *PolygonRegion(const QPoint *Pts, int Count, int rule) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1896 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1897 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1898 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1899 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1900 | QRegionPrivate *region; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1901 | EdgeTableEntry *pAET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1902 | int y; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1903 | int iPts = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1904 | EdgeTableEntry *pWETE; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1905 | ScanLineList *pSLL; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1906 | QPoint *pts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1907 | EdgeTableEntry *pPrevAET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1908 | EdgeTable ET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1909 | EdgeTableEntry *AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1910 | EdgeTableEntry *pETEs; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1911 | ScanLineListBlock SLLBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1912 | int fixWAET = false; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1913 | POINTBLOCK FirstPtBlock, *curPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1914 | FirstPtBlock.pts = reinterpret_cast<QPoint *>(FirstPtBlock.data); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1915 | POINTBLOCK *tmpPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1916 | int numFullPtBlocks = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1917 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1918 | region = new QRegionPrivate; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1919 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1920 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1921 | if (((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1922 | ((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1923 | && (((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1924 | && (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1925 | && (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1926 | && (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1927 | int x = qMin(Pts[0].x(), Pts[2].x()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1928 | region->extents.setLeft(x); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1929 | int y = qMin(Pts[0].y(), Pts[2].y()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1930 | region->extents.setTop(y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1931 | region->extents.setWidth(qMax(Pts[0].x(), Pts[2].x()) - x); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1932 | region->extents.setHeight(qMax(Pts[0].y(), Pts[2].y()) - y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1933 | if ((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1934 | (
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1935 | region->numRects = 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1936 | region->innerRect = region->extents; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1937 | region->innerArea = region->innerRect.width() * region->innerRect.height(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1938 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1939 | return never executed: region;return region;never executed: return region; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1940 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1941 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1942 | if (!(pETEs = static_cast<EdgeTableEntry *>(malloc(sizeof(EdgeTableEntry) * Count)))
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1943 | delete region; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1944 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1945 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1946 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1947 | region->vectorize(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1948 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1949 | AET = new EdgeTableEntry; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1950 | pts = FirstPtBlock.pts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1951 | CreateETandAET(Count, Pts, &ET, AET, pETEs, &SLLBlock); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1952 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1953 | pSLL = ET.scanlines.next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1954 | curPtBlock = &FirstPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1955 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1956 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1957 | if (ET.ymax - ET.ymin > 100000
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1958 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1959 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1960 | QMessageLogger(__FILE__, 3624, __PRETTY_FUNCTION__).warning("QRegion: creating region from big polygon failed...!"); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1961 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1962 | delete AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1963 | delete region; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1964 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1965 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1966 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1967 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1968 | if (true) { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1969 | if (rule == 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1970 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1971 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1972 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1973 | for (y = ET.ymin; y < ET.ymax
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1974 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1975 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1976 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1977 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1978 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1979 | if (pSLL
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1980 | loadAET(AET, pSLL->edgelist); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1981 | pSLL = pSLL->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1982 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1983 | pPrevAET = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1984 | pAET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1985 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1986 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1987 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1988 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1989 | while (pAET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1990 | pts->setX(pAET->bres.minor_axis); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1991 | pts->setY(y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1992 | ++pts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1993 | ++iPts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1994 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1995 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1996 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1997 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1998 | if (iPts == 200
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1999 | tmpPtBlock = (POINTBLOCK *)malloc(sizeof(POINTBLOCK)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2000 | do {if(!(tmpPtBlock)
never executed: } while (0);qt_check_pointer(__FILE__,3664); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2001 | tmpPtBlock->pts = reinterpret_cast<QPoint *>(tmpPtBlock->data); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2002 | curPtBlock->next = tmpPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2003 | curPtBlock = tmpPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2004 | pts = curPtBlock->pts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2005 | ++numFullPtBlocks; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2006 | iPts = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2007 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2008 | { if (pAET->ymax == y
never executed: }pAET->back = pPrevAET;never executed: else { { if (pAET->bres.m1 > 0end of block
never executed: else { pAET->bres.minor_axis += pAET->bres.m; pAET->bres.d += pAET->bres.incr2; }end of blocknever executed: } else { if (pAET->bres.d >= 0end of block
never executed: else { pAET->bres.minor_axis += pAET->bres.m; pAET->bres.d += pAET->bres.incr2; }end of blocknever executed: } } pPrevAET = pAET; pAET = pAET->next; }end of blocknever executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2009 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2010 | InsertionSort(AET); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2011 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2012 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2013 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2014 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2015 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2016 | for (y = ET.ymin; y < ET.ymax
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2017 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2018 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2019 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2020 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2021 | if (pSLL
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2022 | loadAET(AET, pSLL->edgelist); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2023 | computeWAET(AET); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2024 | pSLL = pSLL->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2025 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2026 | pPrevAET = AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2027 | pAET = AET->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2028 | pWETE = pAET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2029 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2030 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2031 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2032 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2033 | while (pAET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2034 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2035 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2036 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2037 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2038 | if (pWETE == pAET
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2039 | pts->setX(pAET->bres.minor_axis); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2040 | pts->setY(y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2041 | ++pts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2042 | ++iPts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2043 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2044 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2045 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2046 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2047 | if (iPts == 200
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2048 | tmpPtBlock = static_cast<POINTBLOCK *>(malloc(sizeof(POINTBLOCK))); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2049 | tmpPtBlock->pts = reinterpret_cast<QPoint *>(tmpPtBlock->data); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2050 | curPtBlock->next = tmpPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2051 | curPtBlock = tmpPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2052 | pts = curPtBlock->pts; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2053 | ++numFullPtBlocks; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2054 | iPts = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2055 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2056 | pWETE = pWETE->nextWETE; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2057 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2058 | { if (pAET->ymax == y
never executed: }pAET->back = pPrevAET;never executed: else { { if (pAET->bres.m1 > 0end of block
never executed: else { pAET->bres.minor_axis += pAET->bres.m; pAET->bres.d += pAET->bres.incr2; }end of blocknever executed: } else { if (pAET->bres.d >= 0end of block
never executed: else { pAET->bres.minor_axis += pAET->bres.m; pAET->bres.d += pAET->bres.incr2; }end of blocknever executed: } } pPrevAET = pAET; pAET = pAET->next; }end of blocknever executed: }end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2059 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2060 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2061 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2062 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2063 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2064 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2065 | if (InsertionSort(AET)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2066 | computeWAET(AET); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2067 | fixWAET = false; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2068 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2069 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2070 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2071 | } else { dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2072 | FreeStorage(SLLBlock.next); dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2073 | PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2074 | for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2075 | tmpPtBlock = curPtBlock->next; dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2076 | free(curPtBlock); dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2077 | curPtBlock = tmpPtBlock; dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2078 | } dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2079 | free(pETEs); dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2080 | return 0; dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2081 | } dead code: { FreeStorage(SLLBlock.next); PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); for (curPtBlock = FirstPtBlock.next; --numFullPtBlocks >= 0;) { tmpPtBlock = curPtBlock->next; free(curPtBlock); curPtBlock = tmpPtBlock; } free(pETEs); return 0; } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2082 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2083 | FreeStorage(SLLBlock.next); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2084 | PtsToRegion(numFullPtBlocks, iPts, &FirstPtBlock, region); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2085 | for (curPtBlock = FirstPtBlock.next; --
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2086 | tmpPtBlock = curPtBlock->next; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2087 | free(curPtBlock); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2088 | curPtBlock = tmpPtBlock; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2089 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2090 | delete AET; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2091 | free(pETEs); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2092 | return never executed: region;return region;never executed: return region; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2093 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2094 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2095 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2096 | QRegionPrivate *qt_bitmapToRegion(const QBitmap& bitmap) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2097 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2098 | const QImage image = bitmap.toImage(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2099 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2100 | QRegionPrivate *region = new QRegionPrivate; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2101 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2102 | QRect xr; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2103 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2104 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2105 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2106 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2107 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2108 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2109 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2110 | const uchar zero = 0; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2111 | bool little = image.format() == QImage::Format_MonoLSB; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2112 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2113 | int x, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2114 | y; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2115 | for (y = 0; y < image.height()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2116 | const uchar *line = image.constScanLine(y); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2117 | int w = image.width(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2118 | uchar all = zero; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2119 | int prev1 = -1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2120 | for (x = 0; x < w
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2121 | uchar byte = line[x / 8]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2122 | if (x > w - 8
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2123 | if (little
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2124 | for (int b = 8; b > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2125 | if (!(byte & 0x01) == !all
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2126 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2127 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2128 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2129 | if (all!=zero
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2130 | { xr.setCoords(prev1, y, x-1, y); UnionRectWithRegion(&xr, region, *region); } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2131 | all = zero; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2132 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2133 | prev1 = x; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2134 | all = ~zero; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2135 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2136 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2137 | byte >>= 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2138 | ++x; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2139 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2140 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2141 | for (int b = 8; b > 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2142 | if (!(byte & 0x80) == !all
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2143 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2144 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2145 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2146 | if (all != zero
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2147 | { xr.setCoords(prev1, y, x-1, y); UnionRectWithRegion(&xr, region, *region); } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2148 | all = zero; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2149 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2150 | prev1 = x; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2151 | all = ~zero; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2152 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2153 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2154 | byte <<= 1; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2155 | ++x; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2156 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2157 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2158 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2159 | x += 8; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2160 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2161 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2162 | if (all != zero
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2163 | { xr.setCoords(prev1, y, x-1, y); UnionRectWithRegion(&xr, region, *region); } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2164 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2165 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2166 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2167 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2168 | return never executed: region;return region;never executed: return region; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2169 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2170 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2171 | QRegion::QRegion() | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2172 | : d(const_cast<QRegionData*>(&shared_empty)) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2173 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2174 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2175 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2176 | QRegion::QRegion(const QRect &r, RegionType t) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2177 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2178 | if (r.isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2179 | d = const_cast<QRegionData*>(&shared_empty); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2180 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2181 | d = new QRegionData; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2182 | d->ref.initializeOwned(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2183 | if (t == Rectangle
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2184 | d->qt_rgn = new QRegionPrivate(r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2185 | } never executed: else if (t == Ellipseend of block
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2186 | QPainterPath path; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2187 | path.addEllipse(r.x(), r.y(), r.width(), r.height()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2188 | QPolygon a = path.toSubpathPolygons().at(0).toPolygon(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2189 | d->qt_rgn = PolygonRegion(a.constData(), a.size(), 0); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2190 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2191 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2192 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2193 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2194 | QRegion::QRegion(const QPolygon &a, Qt::FillRule fillRule) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2195 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2196 | if (a.count() > 2
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2197 | QRegionPrivate *qt_rgn = PolygonRegion(a.constData(), a.size(), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2198 | fillRule == Qt::WindingFill ? 1 : 0); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2199 | if (qt_rgn
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2200 | d = new QRegionData; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2201 | d->ref.initializeOwned(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2202 | d->qt_rgn = qt_rgn; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2203 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2204 | d = const_cast<QRegionData*>(&shared_empty); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2205 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2206 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2207 | d = const_cast<QRegionData*>(&shared_empty); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2208 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2209 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2210 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2211 | QRegion::QRegion(const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2212 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2213 | d = r.d; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2214 | d->ref.ref(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2215 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2216 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2217 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2218 | QRegion::QRegion(const QBitmap &bm) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2219 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2220 | if (bm.isNull()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2221 | d = const_cast<QRegionData*>(&shared_empty); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2222 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2223 | d = new QRegionData; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2224 | d->ref.initializeOwned(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2225 | d->qt_rgn = qt_bitmapToRegion(bm); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2226 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2227 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2228 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2229 | void QRegion::cleanUp(QRegion::QRegionData *x) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2230 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2231 | delete x->qt_rgn; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2232 | delete x; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2233 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2234 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2235 | QRegion::~QRegion() | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2236 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2237 | if (!d->ref.deref()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2238 | cleanUp(d); never executed: cleanUp(d); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2239 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2240 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2241 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2242 | QRegion &QRegion::operator=(const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2243 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2244 | r.d->ref.ref(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2245 | if (!d->ref.deref()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2246 | cleanUp(d); never executed: cleanUp(d); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2247 | d = r.d; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2248 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2249 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2250 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2251 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2252 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2253 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2254 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2255 | QRegion QRegion::copy() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2256 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2257 | QRegion r; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2258 | QScopedPointer<QRegionData> x(new QRegionData); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2259 | x->ref.initializeOwned(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2260 | if (d->qt_rgn
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2261 | x->qt_rgn = new QRegionPrivate(*d->qt_rgn); never executed: x->qt_rgn = new QRegionPrivate(*d->qt_rgn); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2262 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2263 | x->qt_rgn = new QRegionPrivate; never executed: x->qt_rgn = new QRegionPrivate; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2264 | if (!r.d->ref.deref()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2265 | cleanUp(r.d); never executed: cleanUp(r.d); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2266 | r.d = x.take(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2267 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2268 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2269 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2270 | bool QRegion::isEmpty() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2271 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2272 | return never executed: d == &shared_empty || d->qt_rgn->numRects == 0;return d == &shared_empty || d->qt_rgn->numRects == 0;never executed: return d == &shared_empty || d->qt_rgn->numRects == 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2273 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2274 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2275 | bool QRegion::isNull() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2276 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2277 | return never executed: d == &shared_empty || d->qt_rgn->numRects == 0;return d == &shared_empty || d->qt_rgn->numRects == 0;never executed: return d == &shared_empty || d->qt_rgn->numRects == 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2278 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2279 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2280 | bool QRegion::contains(const QPoint &p) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2281 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2282 | return never executed: PointInRegion(d->qt_rgn, p.x(), p.y());return PointInRegion(d->qt_rgn, p.x(), p.y());never executed: return PointInRegion(d->qt_rgn, p.x(), p.y()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2283 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2284 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2285 | bool QRegion::contains(const QRect &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2286 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2287 | return never executed: RectInRegion(d->qt_rgn, r.left(), r.top(), r.width(), r.height()) != 0;return RectInRegion(d->qt_rgn, r.left(), r.top(), r.width(), r.height()) != 0;never executed: return RectInRegion(d->qt_rgn, r.left(), r.top(), r.width(), r.height()) != 0; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2288 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2289 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2290 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2291 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2292 | void QRegion::translate(int dx, int dy) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2293 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2294 | if ((dx == 0
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2295 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2296 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2297 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2298 | OffsetRegion(*d->qt_rgn, dx, dy); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2299 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2300 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2301 | QRegion QRegion::united(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2302 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2303 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2304 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2305 | if (isEmptyHelper(r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2306 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2307 | if (d == r.d
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2308 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2309 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2310 | if (d->qt_rgn->contains(*r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2311 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2312 | } else if (r.d->qt_rgn->contains(*d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2313 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2314 | } else if (d->qt_rgn->canAppend(r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2315 | QRegion result(*this); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2316 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2317 | result.d->qt_rgn->append(r.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2318 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2319 | } else if (d->qt_rgn->canPrepend(r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2320 | QRegion result(*this); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2321 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2322 | result.d->qt_rgn->prepend(r.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2323 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2324 | } else if (EqualRegion(d->qt_rgn, r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2325 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2326 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2327 | QRegion result; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2328 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2329 | UnionRegion(d->qt_rgn, r.d->qt_rgn, *result.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2330 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2331 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2332 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2333 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2334 | QRegion& QRegion::operator+=(const QRegion &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2335 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2336 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2337 | return never executed: *this = r;return *this = r;never executed: return *this = r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2338 | if (isEmptyHelper(r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2339 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2340 | if (d == r.d
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2341 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2342 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2343 | if (d->qt_rgn->contains(*r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2344 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2345 | } else if (r.d->qt_rgn->contains(*d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2346 | return never executed: *this = r;return *this = r;never executed: return *this = r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2347 | } else if (d->qt_rgn->canAppend(r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2348 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2349 | d->qt_rgn->append(r.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2350 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2351 | } else if (d->qt_rgn->canPrepend(r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2352 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2353 | d->qt_rgn->prepend(r.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2354 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2355 | } else if (EqualRegion(d->qt_rgn, r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2356 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2357 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2358 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2359 | UnionRegion(d->qt_rgn, r.d->qt_rgn, *d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2360 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2361 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2362 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2363 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2364 | QRegion QRegion::united(const QRect &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2365 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2366 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2367 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2368 | if (r.isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2369 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2370 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2371 | if (d->qt_rgn->contains(r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2372 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2373 | } else if (d->qt_rgn->within(r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2374 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2375 | } else if (d->qt_rgn->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2376 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2377 | } else if (d->qt_rgn->canAppend(&r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2378 | QRegion result(*this); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2379 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2380 | result.d->qt_rgn->append(&r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2381 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2382 | } else if (d->qt_rgn->canPrepend(&r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2383 | QRegion result(*this); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2384 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2385 | result.d->qt_rgn->prepend(&r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2386 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2387 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2388 | QRegion result; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2389 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2390 | QRegionPrivate rp(r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2391 | UnionRegion(d->qt_rgn, &rp, *result.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2392 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2393 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2394 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2395 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2396 | QRegion& QRegion::operator+=(const QRect &r) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2397 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2398 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2399 | return never executed: *this = r;return *this = r;never executed: return *this = r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2400 | if (r.isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2401 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2402 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2403 | if (d->qt_rgn->contains(r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2404 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2405 | } else if (d->qt_rgn->within(r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2406 | return never executed: *this = r;return *this = r;never executed: return *this = r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2407 | } else if (d->qt_rgn->canAppend(&r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2408 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2409 | d->qt_rgn->append(&r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2410 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2411 | } else if (d->qt_rgn->canPrepend(&r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2412 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2413 | d->qt_rgn->prepend(&r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2414 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2415 | } else if (d->qt_rgn->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2416 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2417 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2418 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2419 | QRegionPrivate p(r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2420 | UnionRegion(d->qt_rgn, &p, *d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2421 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2422 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2423 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2424 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2425 | QRegion QRegion::intersected(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2426 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2427 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2428 | || !((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2429 | return never executed: QRegion();return QRegion();never executed: return QRegion(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2430 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2431 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2432 | if (r.d->qt_rgn->contains(*d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2433 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2434 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2435 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2436 | if (d->qt_rgn->contains(*r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2437 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2438 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2439 | if (r.d->qt_rgn->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2440 | const QRect rect = qt_rect_intersect_normalized(r.d->qt_rgn->extents, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2441 | d->qt_rgn->extents); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2442 | return never executed: QRegion(rect);return QRegion(rect);never executed: return QRegion(rect); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2443 | } else if (r.d->qt_rgn->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2444 | QRegion result(*this); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2445 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2446 | result.d->qt_rgn->intersect(r.d->qt_rgn->extents); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2447 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2448 | } else if (d->qt_rgn->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2449 | QRegion result(r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2450 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2451 | result.d->qt_rgn->intersect(d->qt_rgn->extents); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2452 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2453 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2454 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2455 | QRegion result; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2456 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2457 | miRegionOp(*result.d->qt_rgn, d->qt_rgn, r.d->qt_rgn, miIntersectO, 0, 0); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2458 | miSetExtents(*result.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2459 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2460 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2461 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2462 | QRegion QRegion::intersected(const QRect &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2463 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2464 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2465 | || !((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2466 | return never executed: QRegion();return QRegion();never executed: return QRegion(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2467 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2468 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2469 | if (d->qt_rgn->within(r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2470 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2471 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2472 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2473 | if (d->qt_rgn->contains(r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2474 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2475 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2476 | if (d->qt_rgn->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2477 | const QRect rect = qt_rect_intersect_normalized(d->qt_rgn->extents, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2478 | r.normalized()); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2479 | return never executed: QRegion(rect);return QRegion(rect);never executed: return QRegion(rect); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2480 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2481 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2482 | QRegion result(*this); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2483 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2484 | result.d->qt_rgn->intersect(r); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2485 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2486 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2487 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2488 | QRegion QRegion::subtracted(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2489 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2490 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2491 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2492 | if (r.d->qt_rgn->contains(*d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2493 | return never executed: QRegion();return QRegion();never executed: return QRegion(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2494 | if (!((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2495 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2496 | if (d == r.d
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2497 | return never executed: QRegion();return QRegion();never executed: return QRegion(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2498 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2499 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2500 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2501 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2502 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2503 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2504 | QRegion result; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2505 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2506 | SubtractRegion(d->qt_rgn, r.d->qt_rgn, *result.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2507 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2508 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2509 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2510 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2511 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2512 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2513 | QRegion QRegion::xored(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2514 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2515 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2516 | return never executed: r;return r;never executed: return r; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2517 | } else if (isEmptyHelper(r.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2518 | return never executed: *this;return *this;never executed: return *this; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2519 | } else if (!((
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2520 | return never executed: (*this + r);return (*this + r);never executed: return (*this + r); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2521 | } else if (d == r.d
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2522 | return never executed: QRegion();return QRegion();never executed: return QRegion(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2523 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2524 | QRegion result; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2525 | result.detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2526 | XorRegion(d->qt_rgn, r.d->qt_rgn, *result.d->qt_rgn); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2527 | return never executed: result;return result;never executed: return result; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2528 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2529 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2530 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2531 | QRect QRegion::boundingRect() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2532 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2533 | if (isEmpty()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2534 | return never executed: QRect();return QRect();never executed: return QRect(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2535 | return never executed: d->qt_rgn->extents;return d->qt_rgn->extents;never executed: return d->qt_rgn->extents; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2536 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2537 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2538 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2539 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2540 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2541 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2542 | __attribute__((visibility("default"))) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2543 | bool qt_region_strictContains(const QRegion ®ion, const QRect &rect) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2544 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2545 | if (isEmptyHelper(region.d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2546 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2547 | const QRect r1 = region.d->qt_rgn->innerRect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2548 | return never executed: (rect.left() >= r1.left() && rect.right() <= r1.right()return (rect.left() >= r1.left() && rect.right() <= r1.right() && rect.top() >= r1.top() && rect.bottom() <= r1.bottom());never executed: return (rect.left() >= r1.left() && rect.right() <= r1.right() && rect.top() >= r1.top() && rect.bottom() <= r1.bottom()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2549 | && rect.top() >= r1.top() && rect.bottom() <= r1.bottom()); never executed: return (rect.left() >= r1.left() && rect.right() <= r1.right() && rect.top() >= r1.top() && rect.bottom() <= r1.bottom()); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2550 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2551 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2552 | QVector<QRect> QRegion::rects() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2553 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2554 | if (d->qt_rgn
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2555 | d->qt_rgn->vectorize(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2556 | d->qt_rgn->rects.reserve(d->qt_rgn->numRects); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2557 | d->qt_rgn->rects.resize(d->qt_rgn->numRects); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2558 | return never executed: d->qt_rgn->rects;return d->qt_rgn->rects;never executed: return d->qt_rgn->rects; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2559 | } else { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2560 | return never executed: QVector<QRect>();return QVector<QRect>();never executed: return QVector<QRect>(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2561 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2562 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2563 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2564 | void QRegion::setRects(const QRect *rects, int num) | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2565 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2566 | *this = QRegion(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2567 | if (!rects
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2568 | return; never executed: return; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2569 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2570 | detach(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2571 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2572 | d->qt_rgn->numRects = num; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2573 | if (num == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2574 | d->qt_rgn->extents = *rects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2575 | d->qt_rgn->innerRect = *rects; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2576 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2577 | d->qt_rgn->rects.resize(num); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2578 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2579 | int left = 2147483647, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2580 | right = (-2147483647 - 1), | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2581 | top = 2147483647, | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2582 | bottom = (-2147483647 - 1); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2583 | for (int i = 0; i < num
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2584 | const QRect &rect = rects[i]; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2585 | d->qt_rgn->rects[i] = rect; | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2586 | left = qMin(rect.left(), left); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2587 | right = qMax(rect.right(), right); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2588 | top = qMin(rect.top(), top); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2589 | bottom = qMax(rect.bottom(), bottom); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2590 | d->qt_rgn->updateInnerRect(rect); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2591 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2592 | d->qt_rgn->extents = QRect(QPoint(left, top), QPoint(right, bottom)); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2593 | } never executed: end of block | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2594 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2595 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2596 | int QRegion::rectCount() const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2597 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2598 | return never executed: (d->qt_rgn ? d->qt_rgn->numRects : 0);return (d->qt_rgn ? d->qt_rgn->numRects : 0);never executed: return (d->qt_rgn ? d->qt_rgn->numRects : 0); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2599 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2600 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2601 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2602 | bool QRegion::operator==(const QRegion &r) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2603 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2604 | if (!d->qt_rgn
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2605 | return never executed: r.isEmpty();return r.isEmpty();never executed: return r.isEmpty(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2606 | if (!r.d->qt_rgn
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2607 | return never executed: isEmpty();return isEmpty();never executed: return isEmpty(); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2608 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2609 | if (d == r.d
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2610 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2611 | else | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2612 | return never executed: EqualRegion(d->qt_rgn, r.d->qt_rgn);return EqualRegion(d->qt_rgn, r.d->qt_rgn);never executed: return EqualRegion(d->qt_rgn, r.d->qt_rgn); | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2613 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2614 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2615 | bool QRegion::intersects(const QRect &rect) const | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2616 | { | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2617 | if (isEmptyHelper(d->qt_rgn)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2618 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2619 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2620 | const QRect r = rect.normalized(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2621 | if (!rect_intersects(d->qt_rgn->extents, r)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2622 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2623 | if (d->qt_rgn->numRects == 1
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2624 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2625 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2626 | const QVector<QRect> myRects = rects(); | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2627 | for (QVector<QRect>::const_iterator it = myRects.constBegin(); it < myRects.constEnd()
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2628 | if (rect_intersects(r, *it)
| 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2629 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2630 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2631 | } | - | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2632 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2633 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2634 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2635 | - | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |