Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qregion.cpp File Reference

(1c26d20b3f87a3b59eb6eb12a00c17d35df736f1)

#include "qregion.h"
#include "qpainterpath.h"
#include "qpolygon.h"
#include "qbuffer.h"
#include "qdatastream.h"
#include "qvariant.h"
#include "qvarlengtharray.h"
#include "qimage.h"
#include "qbitmap.h"
#include "qtransform.h"
#include <memory>
#include <private/qdebug_p.h>
#include <limits.h>
Include dependency graph for qregion.cpp:

Go to the source code of this file.

Classes

struct  QRegionPrivate
struct  _POINTBLOCK
struct  BRESINFO
struct  _EdgeTableEntry
struct  _ScanLineList
struct  EdgeTable
struct  _ScanLineListBlock
struct  QRegionSpan

Macros

#define QRGN_SETRECT   1
#define QRGN_SETELLIPSE   2
#define QRGN_SETPTARRAY_ALT   3
#define QRGN_SETPTARRAY_WIND   4
#define QRGN_TRANSLATE   5
#define QRGN_OR   6
#define QRGN_AND   7
#define QRGN_SUB   8
#define QRGN_XOR   9
#define QRGN_RECTS   10
#define RectangleOut   0
#define RectangleIn   1
#define RectanglePart   2
#define EvenOddRule   0
#define WindingRule   1
#define _XREGION_H
#define EXTENTCHECK(r1, r2)
#define EXTENTS(r, idRect)
#define MEMCHECK(dest, rect, firstrect)
#define NUMPTSTOBUFFER   200
#define MERGERECT(r)
#define BRESINITPGON(dy, x1, x2, xStart, d, m, m1, incr1, incr2)
#define BRESINCRPGON(d, minval, m, m1, incr1, incr2)
#define BRESINITPGONSTRUCT(dmaj, min1, min2, bres)
#define BRESINCRPGONSTRUCT(bres)
#define CLOCKWISE   1
#define COUNTERCLOCKWISE   -1
#define SLLSPERBLOCK   25
#define EVALUATEEDGEWINDING(pAET, pPrevAET, y, fixWAET)
#define EVALUATEEDGEEVENODD(pAET, pPrevAET, y)
#define LARGE_COORDINATE   INT_MAX
#define SMALL_COORDINATE   INT_MIN
#define AddSpan

Typedefs

typedef void(* OverlapFunc) (QRegionPrivate &dest, const QRect *r1, const QRect *r1End, const QRect *r2, const QRect *r2End, int y1, int y2)
typedef void(* NonOverlapFunc) (QRegionPrivate &dest, const QRect *r, const QRect *rEnd, int y1, int y2)
typedef struct _POINTBLOCK POINTBLOCK
typedef struct _EdgeTableEntry EdgeTableEntry
typedef struct _ScanLineList ScanLineList
typedef struct _ScanLineListBlock ScanLineListBlock

Functions

QDebug operator<< (QDebug s, const QRegion &r)
bool rect_intersects (const QRect &r1, const QRect &r2)
 Q_DECLARE_TYPEINFO (Segment, Q_PRIMITIVE_TYPE)
Q_GUI_EXPORT QPainterPath qt_regionToPath (const QRegion &region)
static bool isEmptyHelper (const QRegionPrivate *preg)
static bool canMergeFromRight (const QRect *left, const QRect *right)
static bool canMergeFromLeft (const QRect *right, const QRect *left)
static bool canMergeFromBelow (const QRect *top, const QRect *bottom, const QRect *nextToTop, const QRect *nextToBottom)
static QRect qt_rect_intersect_normalized (const QRect &r1, const QRect &r2)
static bool EqualRegion (const QRegionPrivate *r1, const QRegionPrivate *r2)
static void UnionRegion (const QRegionPrivate *reg1, const QRegionPrivate *reg2, QRegionPrivate &dest)
static void miRegionOp (QRegionPrivate &dest, const QRegionPrivate *reg1, const QRegionPrivate *reg2, OverlapFunc overlapFunc, NonOverlapFunc nonOverlap1Func, NonOverlapFunc nonOverlap2Func)
static void UnionRectWithRegion (const QRect *rect, const QRegionPrivate *source, QRegionPrivate &dest)
static void miSetExtents (QRegionPrivate &dest)
static void OffsetRegion (QRegionPrivate &region, int x, int y)
static void miIntersectO (QRegionPrivate &dest, const QRect *r1, const QRect *r1End, const QRect *r2, const QRect *r2End, int y1, int y2)
static int miCoalesce (QRegionPrivate &dest, int prevStart, int curStart)
static void miUnionNonO (QRegionPrivate &dest, const QRect *r, const QRect *rEnd, int y1, int y2)
static void miUnionO (QRegionPrivate &dest, const QRect *r1, const QRect *r1End, const QRect *r2, const QRect *r2End, int y1, int y2)
static void miSubtractNonO1 (QRegionPrivate &dest, const QRect *r, const QRect *rEnd, int y1, int y2)
static void miSubtractO (QRegionPrivate &dest, const QRect *r1, const QRect *r1End, const QRect *r2, const QRect *r2End, int y1, int y2)
static void SubtractRegion (QRegionPrivate *regM, QRegionPrivate *regS, QRegionPrivate &dest)
static void XorRegion (QRegionPrivate *sra, QRegionPrivate *srb, QRegionPrivate &dest)
static bool PointInRegion (QRegionPrivate *pRegion, int x, int y)
static bool RectInRegion (QRegionPrivate *region, int rx, int ry, uint rwidth, uint rheight)
static void InsertEdgeInET (EdgeTable *ET, EdgeTableEntry *ETE, int scanline, ScanLineListBlock **SLLBlock, int *iSLLBlock)
static void CreateETandAET (int count, const QPoint *pts, EdgeTable *ET, EdgeTableEntry *AET, EdgeTableEntry *pETEs, ScanLineListBlock *pSLLBlock)
static void loadAET (EdgeTableEntry *AET, EdgeTableEntry *ETEs)
static void computeWAET (EdgeTableEntry *AET)
static int InsertionSort (EdgeTableEntry *AET)
static void FreeStorage (ScanLineListBlock *pSLLBlock)
 Q_DECLARE_TYPEINFO (QRegionSpan, Q_PRIMITIVE_TYPE)
static void flushRow (const QRegionSpan *spans, int y, int numSpans, QRegionPrivate *reg, int *lastRow, int *extendTo, bool *needsExtend)
static void PtsToRegion (int numFullPtBlocks, int iCurPtBlock, POINTBLOCK *FirstPtBlock, QRegionPrivate *reg)
static QRegionPrivatePolygonRegion (const QPoint *Pts, int Count, int rule)
QRegionPrivateqt_bitmapToRegion (const QBitmap &bitmap)
Q_GUI_EXPORT bool qt_region_strictContains (const QRegion &region, const QRect &rect)
static Q_DECL_COLD_FUNCTION void set_rects_warn (const char *what)

Variables

static Q_CONSTINIT QRegionPrivate qrp

Macro Definition Documentation

◆ _XREGION_H

#define _XREGION_H

Definition at line 1658 of file qregion.cpp.

◆ AddSpan

#define AddSpan
Value:
{ \
xr.setCoords(prev1, y, x-1, y); \
UnionRectWithRegion(&xr, region, *region); \
}
GLint GLint GLint GLint GLint x
GLint y

◆ BRESINCRPGON

#define BRESINCRPGON ( d,
minval,
m,
m1,
incr1,
incr2 )
Value:
{ \
if (m1 > 0) { \
if (d > 0) { \
minval += m1; \
d += incr1; \
} \
else { \
minval += m; \
d += incr2; \
} \
} else {\
if (d >= 0) { \
minval += m1; \
d += incr1; \
} \
else { \
minval += m; \
d += incr2; \
} \
} \
}
const GLfloat * m
[1]

Definition at line 2850 of file qregion.cpp.

◆ BRESINCRPGONSTRUCT

#define BRESINCRPGONSTRUCT ( bres)
Value:
BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2)
#define BRESINCRPGON(d, minval, m, m1, incr1, incr2)
Definition qregion.cpp:2850

Definition at line 2892 of file qregion.cpp.

◆ BRESINITPGON

#define BRESINITPGON ( dy,
x1,
x2,
xStart,
d,
m,
m1,
incr1,
incr2 )
Value:
{ \
int dx; /* local storage */ \
\
/* \
* if the edge is horizontal, then it is ignored \
* and assumed not to be processed. Otherwise, do this stuff. \
*/ \
if ((dy) != 0) { \
xStart = (x1); \
dx = (x2) - xStart; \
if (dx < 0) { \
m = dx / (dy); \
m1 = m - 1; \
incr1 = -2 * dx + 2 * (dy) * m1; \
incr2 = -2 * dx + 2 * (dy) * m; \
d = 2 * m * (dy) - 2 * dx - 2 * (dy); \
} else { \
m = dx / (dy); \
m1 = m + 1; \
incr1 = 2 * dx - 2 * (dy) * m1; \
incr2 = 2 * dx - 2 * (dy) * m; \
d = -2 * m * (dy) + 2 * dx; \
} \
} \
}
GLuint GLfloat GLfloat GLfloat x1
GLfixed GLfixed x2

Definition at line 2827 of file qregion.cpp.

◆ BRESINITPGONSTRUCT

#define BRESINITPGONSTRUCT ( dmaj,
min1,
min2,
bres )
Value:
BRESINITPGON(dmaj, min1, min2, bres.minor_axis, bres.d, \
bres.m, bres.m1, bres.incr1, bres.incr2)
#define BRESINITPGON(dy, x1, x2, xStart, d, m, m1, incr1, incr2)
Definition qregion.cpp:2827

Definition at line 2888 of file qregion.cpp.

◆ CLOCKWISE

#define CLOCKWISE   1

Definition at line 2946 of file qregion.cpp.

◆ COUNTERCLOCKWISE

#define COUNTERCLOCKWISE   -1

Definition at line 2947 of file qregion.cpp.

◆ EVALUATEEDGEEVENODD

#define EVALUATEEDGEEVENODD ( pAET,
pPrevAET,
y )
Value:
{ \
if (pAET->ymax == y) { /* leaving this edge */ \
pPrevAET->next = pAET->next; \
pAET = pPrevAET->next; \
if (pAET) \
pAET->back = pPrevAET; \
} \
else { \
BRESINCRPGONSTRUCT(pAET->bres) \
pPrevAET = pAET; \
pAET = pAET->next; \
} \
}

Definition at line 3023 of file qregion.cpp.

◆ EVALUATEEDGEWINDING

#define EVALUATEEDGEWINDING ( pAET,
pPrevAET,
y,
fixWAET )
Value:
{ \
if (pAET->ymax == y) { /* leaving this edge */ \
pPrevAET->next = pAET->next; \
pAET = pPrevAET->next; \
fixWAET = 1; \
if (pAET) \
pAET->back = pPrevAET; \
} \
else { \
BRESINCRPGONSTRUCT(pAET->bres) \
pPrevAET = pAET; \
pAET = pAET->next; \
} \
}

Definition at line 3000 of file qregion.cpp.

◆ EvenOddRule

#define EvenOddRule   0

Definition at line 1604 of file qregion.cpp.

◆ EXTENTCHECK

#define EXTENTCHECK ( r1,
r2 )
Value:
((r1)->right() >= (r2)->left() && \
(r1)->left() <= (r2)->right() && \
(r1)->bottom() >= (r2)->top() && \
(r1)->top() <= (r2)->bottom())
GLdouble GLdouble right
GLint GLint bottom
GLdouble GLdouble GLdouble GLdouble top
GLint left

Definition at line 1668 of file qregion.cpp.

◆ EXTENTS

#define EXTENTS ( r,
idRect )
Value:
{\
if((r)->left() < (idRect)->extents.left())\
(idRect)->extents.setLeft((r)->left());\
if((r)->top() < (idRect)->extents.top())\
(idRect)->extents.setTop((r)->top());\
if((r)->right() > (idRect)->extents.right())\
(idRect)->extents.setRight((r)->right());\
if((r)->bottom() > (idRect)->extents.bottom())\
(idRect)->extents.setBottom((r)->bottom());\
}
GLboolean r

Definition at line 1677 of file qregion.cpp.

◆ LARGE_COORDINATE

#define LARGE_COORDINATE   INT_MAX

Definition at line 3088 of file qregion.cpp.

◆ MEMCHECK

#define MEMCHECK ( dest,
rect,
firstrect )
Value:
{\
if ((dest).numRects >= ((dest).rects.size()-1)){\
firstrect.resize(firstrect.size() * 2); \
(rect) = (firstrect).data() + (dest).numRects;\
}\
}
QGraphicsRectItem rect
[3]

Definition at line 1691 of file qregion.cpp.

◆ MERGERECT

#define MERGERECT ( r)
Value:
if ((dest.numRects != 0) && \
(pNextRect[-1].top() == y1) && \
(pNextRect[-1].bottom() == y2) && \
(pNextRect[-1].right() >= r->left()-1)) { \
if (pNextRect[-1].right() < r->right()) { \
pNextRect[-1].setRight(r->right()); \
dest.updateInnerRect(pNextRect[-1]); \
Q_ASSERT(pNextRect[-1].left() <= pNextRect[-1].right()); \
} \
} else { \
MEMCHECK(dest, pNextRect, dest.rects) \
pNextRect->setCoords(r->left(), y1, r->right(), y2); \
dest.updateInnerRect(*pNextRect); \
dest.numRects++; \
pNextRect++; \
} \
r++;
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLfixed GLfixed GLfixed y2

◆ NUMPTSTOBUFFER

#define NUMPTSTOBUFFER   200

Definition at line 1703 of file qregion.cpp.

◆ QRGN_AND

#define QRGN_AND   7

Definition at line 187 of file qregion.cpp.

◆ QRGN_OR

#define QRGN_OR   6

Definition at line 186 of file qregion.cpp.

◆ QRGN_RECTS

#define QRGN_RECTS   10

Definition at line 190 of file qregion.cpp.

◆ QRGN_SETELLIPSE

#define QRGN_SETELLIPSE   2

Definition at line 182 of file qregion.cpp.

◆ QRGN_SETPTARRAY_ALT

#define QRGN_SETPTARRAY_ALT   3

Definition at line 183 of file qregion.cpp.

◆ QRGN_SETPTARRAY_WIND

#define QRGN_SETPTARRAY_WIND   4

Definition at line 184 of file qregion.cpp.

◆ QRGN_SETRECT

#define QRGN_SETRECT   1

Definition at line 181 of file qregion.cpp.

◆ QRGN_SUB

#define QRGN_SUB   8

Definition at line 188 of file qregion.cpp.

◆ QRGN_TRANSLATE

#define QRGN_TRANSLATE   5

Definition at line 185 of file qregion.cpp.

◆ QRGN_XOR

#define QRGN_XOR   9

Definition at line 189 of file qregion.cpp.

◆ RectangleIn

#define RectangleIn   1

Definition at line 1602 of file qregion.cpp.

◆ RectangleOut

#define RectangleOut   0

Definition at line 1601 of file qregion.cpp.

◆ RectanglePart

#define RectanglePart   2

Definition at line 1603 of file qregion.cpp.

◆ SLLSPERBLOCK

#define SLLSPERBLOCK   25

Definition at line 2978 of file qregion.cpp.

◆ SMALL_COORDINATE

#define SMALL_COORDINATE   INT_MIN

Definition at line 3089 of file qregion.cpp.

◆ WindingRule

#define WindingRule   1

Definition at line 1605 of file qregion.cpp.

Typedef Documentation

◆ EdgeTableEntry

◆ NonOverlapFunc

typedef void(* NonOverlapFunc)(QRegionPrivate &dest, const QRect *r, const QRect *rEnd, int y1, int y2)

Definition at line 1592 of file qregion.cpp.

◆ OverlapFunc

typedef void(* OverlapFunc)(QRegionPrivate &dest, const QRect *r1, const QRect *r1End, const QRect *r2, const QRect *r2End, int y1, int y2)

Definition at line 1590 of file qregion.cpp.

◆ POINTBLOCK

typedef struct _POINTBLOCK POINTBLOCK

◆ ScanLineList

typedef struct _ScanLineList ScanLineList

◆ ScanLineListBlock

Function Documentation

◆ canMergeFromBelow()

bool canMergeFromBelow ( const QRect * top,
const QRect * bottom,
const QRect * nextToTop,
const QRect * nextToBottom )
inlinestatic

Definition at line 1194 of file qregion.cpp.

Referenced by QRegionPrivate::mergeFromAbove(), and QRegionPrivate::mergeFromBelow().

Here is the caller graph for this function:

◆ canMergeFromLeft()

bool canMergeFromLeft ( const QRect * right,
const QRect * left )
inlinestatic

Definition at line 1169 of file qregion.cpp.

References canMergeFromRight().

Referenced by QRegionPrivate::mergeFromLeft().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ canMergeFromRight()

bool canMergeFromRight ( const QRect * left,
const QRect * right )
inlinestatic

Definition at line 1162 of file qregion.cpp.

Referenced by canMergeFromLeft(), and QRegionPrivate::mergeFromRight().

Here is the caller graph for this function:

◆ computeWAET()

void computeWAET ( EdgeTableEntry * AET)
static

Definition at line 3311 of file qregion.cpp.

◆ CreateETandAET()

void CreateETandAET ( int count,
const QPoint * pts,
EdgeTable * ET,
EdgeTableEntry * AET,
EdgeTableEntry * pETEs,
ScanLineListBlock * pSLLBlock )
static

Definition at line 3181 of file qregion.cpp.

◆ EqualRegion()

bool EqualRegion ( const QRegionPrivate * r1,
const QRegionPrivate * r2 )
static

Definition at line 2639 of file qregion.cpp.

References QRegionPrivate::numRects.

Referenced by SubtractRegion(), UnionRectWithRegion(), UnionRegion(), and XorRegion().

Here is the caller graph for this function:

◆ flushRow()

void flushRow ( const QRegionSpan * spans,
int y,
int numSpans,
QRegionPrivate * reg,
int * lastRow,
int * extendTo,
bool * needsExtend )
inlinestatic

Definition at line 3400 of file qregion.cpp.

◆ FreeStorage()

void FreeStorage ( ScanLineListBlock * pSLLBlock)
static

Definition at line 3378 of file qregion.cpp.

◆ InsertEdgeInET()

void InsertEdgeInET ( EdgeTable * ET,
EdgeTableEntry * ETE,
int scanline,
ScanLineListBlock ** SLLBlock,
int * iSLLBlock )
static

Definition at line 3100 of file qregion.cpp.

◆ InsertionSort()

int InsertionSort ( EdgeTableEntry * AET)
static

Definition at line 3345 of file qregion.cpp.

◆ isEmptyHelper()

bool isEmptyHelper ( const QRegionPrivate * preg)
inlinestatic

Definition at line 1157 of file qregion.cpp.

References QRegionPrivate::numRects.

Referenced by QRegionPrivate::append(), PointInRegion(), QRegionPrivate::prepend(), SubtractRegion(), UnionRegion(), and XorRegion().

Here is the caller graph for this function:

◆ loadAET()

void loadAET ( EdgeTableEntry * AET,
EdgeTableEntry * ETEs )
static

Definition at line 3267 of file qregion.cpp.

◆ miCoalesce()

int miCoalesce ( QRegionPrivate & dest,
int prevStart,
int curStart )
static

Definition at line 1972 of file qregion.cpp.

References QRegionPrivate::numRects, and QRegionPrivate::updateInnerRect().

Referenced by miRegionOp().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ miIntersectO()

void miIntersectO ( QRegionPrivate & dest,
const QRect * r1,
const QRect * r1End,
const QRect * r2,
const QRect * r2End,
int y1,
int y2 )
static

Definition at line 1907 of file qregion.cpp.

References QRegionPrivate::numRects.

◆ miRegionOp()

void miRegionOp ( QRegionPrivate & dest,
const QRegionPrivate * reg1,
const QRegionPrivate * reg2,
OverlapFunc overlapFunc,
NonOverlapFunc nonOverlap1Func,
NonOverlapFunc nonOverlap2Func )
static

Definition at line 2101 of file qregion.cpp.

References miCoalesce(), QRegionPrivate::numRects, and QRegionPrivate::vectorize().

Referenced by SubtractRegion(), and UnionRegion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ miSetExtents()

void miSetExtents ( QRegionPrivate & dest)
static

Definition at line 1827 of file qregion.cpp.

References QRegionPrivate::innerArea, QRegionPrivate::numRects, and QRegionPrivate::updateInnerRect().

Referenced by SubtractRegion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ miSubtractNonO1()

void miSubtractNonO1 ( QRegionPrivate & dest,
const QRect * r,
const QRect * rEnd,
int y1,
int y2 )
static

Definition at line 2449 of file qregion.cpp.

References QRegionPrivate::numRects.

Referenced by SubtractRegion().

Here is the caller graph for this function:

◆ miSubtractO()

void miSubtractO ( QRegionPrivate & dest,
const QRect * r1,
const QRect * r1End,
const QRect * r2,
const QRect * r2End,
int y1,
int y2 )
static

Definition at line 2483 of file qregion.cpp.

References QRegionPrivate::numRects.

Referenced by SubtractRegion().

Here is the caller graph for this function:

◆ miUnionNonO()

void miUnionNonO ( QRegionPrivate & dest,
const QRect * r,
const QRect * rEnd,
int y1,
int y2 )
static

Definition at line 2324 of file qregion.cpp.

References QRegionPrivate::numRects.

Referenced by UnionRegion().

Here is the caller graph for this function:

◆ miUnionO()

void miUnionO ( QRegionPrivate & dest,
const QRect * r1,
const QRect * r1End,
const QRect * r2,
const QRect * r2End,
int y1,
int y2 )
static

Definition at line 2360 of file qregion.cpp.

References QRegionPrivate::numRects.

Referenced by UnionRegion().

Here is the caller graph for this function:

◆ OffsetRegion()

void OffsetRegion ( QRegionPrivate & region,
int x,
int y )
static

Definition at line 1876 of file qregion.cpp.

References QRegionPrivate::numRects.

◆ operator<<()

QDebug operator<< ( QDebug s,
const QRegion & r )

Definition at line 355 of file qregion.cpp.

◆ PointInRegion()

bool PointInRegion ( QRegionPrivate * pRegion,
int x,
int y )
static

Definition at line 2661 of file qregion.cpp.

References isEmptyHelper(), and QRegionPrivate::numRects.

Here is the call graph for this function:

◆ PolygonRegion()

QRegionPrivate * PolygonRegion ( const QPoint * Pts,
int Count,
int rule )
static

Definition at line 3514 of file qregion.cpp.

References QRegionPrivate::innerArea, _POINTBLOCK::next, QRegionPrivate::numRects, _POINTBLOCK::pts, and QRegionPrivate::vectorize().

Here is the call graph for this function:

◆ PtsToRegion()

void PtsToRegion ( int numFullPtBlocks,
int iCurPtBlock,
POINTBLOCK * FirstPtBlock,
QRegionPrivate * reg )
static

Definition at line 3444 of file qregion.cpp.

References QRegionPrivate::innerArea, _POINTBLOCK::next, QRegionPrivate::numRects, _POINTBLOCK::pts, and QRegionPrivate::updateInnerRect().

Here is the call graph for this function:

◆ Q_DECLARE_TYPEINFO() [1/2]

Q_DECLARE_TYPEINFO ( QRegionSpan ,
Q_PRIMITIVE_TYPE  )

◆ Q_DECLARE_TYPEINFO() [2/2]

Q_DECLARE_TYPEINFO ( Segment ,
Q_PRIMITIVE_TYPE  )

◆ qt_bitmapToRegion()

QRegionPrivate * qt_bitmapToRegion ( const QBitmap & bitmap)

Definition at line 3718 of file qregion.cpp.

◆ qt_rect_intersect_normalized()

QRect qt_rect_intersect_normalized ( const QRect & r1,
const QRect & r2 )
inlinestatic

Definition at line 1232 of file qregion.cpp.

◆ qt_region_strictContains()

Q_GUI_EXPORT bool qt_region_strictContains ( const QRegion & region,
const QRect & rect )

Returns true if rect is guaranteed to be fully contained in region. A false return value does not guarantee the opposite.

Definition at line 4170 of file qregion.cpp.

◆ qt_regionToPath()

Q_GUI_EXPORT QPainterPath qt_regionToPath ( const QRegion & region)

Definition at line 1010 of file qregion.cpp.

Referenced by QX11PaintEngine::updateState().

Here is the caller graph for this function:

◆ rect_intersects()

bool rect_intersects ( const QRect & r1,
const QRect & r2 )
inline

Definition at line 593 of file qregion.cpp.

◆ RectInRegion()

bool RectInRegion ( QRegionPrivate * region,
int rx,
int ry,
uint rwidth,
uint rheight )
static

Definition at line 2680 of file qregion.cpp.

References QRegionPrivate::numRects.

◆ set_rects_warn()

Q_DECL_COLD_FUNCTION void set_rects_warn ( const char * what)
static

Definition at line 4213 of file qregion.cpp.

◆ SubtractRegion()

void SubtractRegion ( QRegionPrivate * regM,
QRegionPrivate * regS,
QRegionPrivate & dest )
static

Definition at line 2584 of file qregion.cpp.

References QRegionPrivate::contains(), EqualRegion(), isEmptyHelper(), miRegionOp(), miSetExtents(), miSubtractNonO1(), and miSubtractO().

Referenced by XorRegion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UnionRectWithRegion()

void UnionRectWithRegion ( const QRect * rect,
const QRegionPrivate * source,
QRegionPrivate & dest )
static

Definition at line 1794 of file qregion.cpp.

References QRegionPrivate::QRegionPrivate(), QRegionPrivate::append(), QRegionPrivate::canAppend(), EqualRegion(), QRegionPrivate::numRects, and UnionRegion().

Here is the call graph for this function:

◆ UnionRegion()

void UnionRegion ( const QRegionPrivate * reg1,
const QRegionPrivate * reg2,
QRegionPrivate & dest )
static

Definition at line 2406 of file qregion.cpp.

References QRegionPrivate::canAppend(), QRegionPrivate::contains(), EqualRegion(), QRegionPrivate::innerArea, isEmptyHelper(), miRegionOp(), miUnionNonO(), and miUnionO().

Referenced by UnionRectWithRegion(), and XorRegion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ XorRegion()

void XorRegion ( QRegionPrivate * sra,
QRegionPrivate * srb,
QRegionPrivate & dest )
static

Definition at line 2605 of file qregion.cpp.

References QRegionPrivate::append(), QRegionPrivate::canAppend(), QRegionPrivate::contains(), EqualRegion(), isEmptyHelper(), SubtractRegion(), and UnionRegion().

Here is the call graph for this function:

Variable Documentation

◆ qrp

Q_CONSTINIT QRegionPrivate qrp
static

Definition at line 1587 of file qregion.cpp.