Qt 4.8
|
#include "qregion.h"
#include "qpainterpath.h"
#include "qpolygon.h"
#include "qbuffer.h"
#include "qimage.h"
#include <qdebug.h>
#include "qbitmap.h"
#include <stdlib.h>
#include <qatomic.h>
#include <qsemaphore.h>
#include "qregion_x11.cpp"
#include <limits.h>
Go to the source code of this file.
Classes | |
struct | _EdgeTableEntry |
struct | _POINTBLOCK |
struct | _ScanLineList |
struct | _ScanLineListBlock |
struct | BRESINFO |
struct | EdgeTable |
class | QFastMutex |
struct | QRegionPrivate |
Macros | |
#define | _XREGION_H |
#define | AddSpan |
#define | BRESINCRPGON(d, minval, m, m1, incr1, incr2) |
#define | BRESINCRPGONSTRUCT(bres) BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2) |
#define | BRESINITPGON(dy, x1, x2, xStart, d, m, m1, incr1, incr2) |
#define | BRESINITPGONSTRUCT(dmaj, min1, min2, bres) |
#define | CLOCKWISE 1 |
#define | CONTAINSCHECK(r1, r2) |
#define | COUNTERCLOCKWISE -1 |
#define | EVALUATEEDGEEVENODD(pAET, pPrevAET, y) |
#define | EVALUATEEDGEWINDING(pAET, pPrevAET, y, fixWAET) |
#define | EvenOddRule 0 |
#define | EXTENTCHECK(r1, r2) |
#define | EXTENTS(r, idRect) |
#define | LARGE_COORDINATE 1000000 |
#define | MEMCHECK(dest, rect, firstrect) |
#define | MERGERECT(r) |
#define | NUMPTSTOBUFFER 200 |
#define | private public |
#define | RectangleIn 1 |
#define | RectangleOut 0 |
#define | RectanglePart 2 |
#define | SLLSPERBLOCK 25 |
#define | SMALL_COORDINATE -LARGE_COORDINATE |
#define | WindingRule 1 |
Typedefs | |
typedef struct _EdgeTableEntry | EdgeTableEntry |
typedef void(* | NonOverlapFunc) (register QRegionPrivate &dest, register const QRect *r, const QRect *rEnd, register int y1, register int y2) |
typedef void(* | OverlapFunc) (register QRegionPrivate &dest, register const QRect *r1, const QRect *r1End, register const QRect *r2, const QRect *r2End, register int y1, register int y2) |
typedef struct _POINTBLOCK | POINTBLOCK |
typedef struct _ScanLineList | ScanLineList |
typedef struct _ScanLineListBlock | ScanLineListBlock |
Functions | |
static void | computeWAET (register EdgeTableEntry *AET) |
static void | CreateETandAET (register int count, register const QPoint *pts, EdgeTable *ET, EdgeTableEntry *AET, register EdgeTableEntry *pETEs, ScanLineListBlock *pSLLBlock) |
static bool | EqualRegion (const QRegionPrivate *r1, const QRegionPrivate *r2) |
static void | FreeStorage (register ScanLineListBlock *pSLLBlock) |
static void | InsertEdgeInET (EdgeTable *ET, EdgeTableEntry *ETE, int scanline, ScanLineListBlock **SLLBlock, int *iSLLBlock) |
static int | InsertionSort (register EdgeTableEntry *AET) |
static bool | isEmptyHelper (const QRegionPrivate *preg) |
static void | loadAET (register EdgeTableEntry *AET, register EdgeTableEntry *ETEs) |
static int | miCoalesce (register QRegionPrivate &dest, int prevStart, int curStart) |
static void | miIntersectO (register QRegionPrivate &dest, register const QRect *r1, const QRect *r1End, register const QRect *r2, const QRect *r2End, int y1, int y2) |
static void | miRegionOp (register QRegionPrivate &dest, const QRegionPrivate *reg1, const QRegionPrivate *reg2, OverlapFunc overlapFunc, NonOverlapFunc nonOverlap1Func, NonOverlapFunc nonOverlap2Func) |
static void | miSetExtents (QRegionPrivate &dest) |
static void | miSubtractNonO1 (register QRegionPrivate &dest, register const QRect *r, const QRect *rEnd, register int y1, register int y2) |
static void | miSubtractO (register QRegionPrivate &dest, register const QRect *r1, const QRect *r1End, register const QRect *r2, const QRect *r2End, register int y1, register int y2) |
static void | miUnionNonO (register QRegionPrivate &dest, register const QRect *r, const QRect *rEnd, register int y1, register int y2) |
static void | miUnionO (register QRegionPrivate &dest, register const QRect *r1, const QRect *r1End, register const QRect *r2, const QRect *r2End, register int y1, register int y2) |
static void | OffsetRegion (register QRegionPrivate ®ion, register int x, register int y) |
static bool | PointInRegion (QRegionPrivate *pRegion, int x, int y) |
static QRegionPrivate * | PolygonRegion (const QPoint *Pts, int Count, int rule, QRegionPrivate *region) |
static void | PtsToRegion (register int numFullPtBlocks, register int iCurPtBlock, POINTBLOCK *FirstPtBlock, QRegionPrivate *reg) |
static QRegionPrivate * | qt_allocRegion () |
static QRegionPrivate * | qt_allocRegion (const QRect &r) |
static QRegionPrivate * | qt_allocRegion (const QRegionPrivate &r) |
static QRegionPrivate * | qt_allocRegionMemory () |
QRegionPrivate * | qt_bitmapToRegion (const QBitmap &bitmap, QRegionPrivate *region) |
void | qt_freeRegion (QRegionPrivate *rp) |
static void | qt_freeRegionMemory (QRegionPrivate *rp) |
bool | qt_region_strictContains (const QRegion ®ion, const QRect &rect) |
static bool | RectInRegion (register QRegionPrivate *region, int rx, int ry, uint rwidth, uint rheight) |
static void | SubtractRegion (QRegionPrivate *regM, QRegionPrivate *regS, register QRegionPrivate &dest) |
static void | UnionRectWithRegion (register const QRect *rect, const QRegionPrivate *source, QRegionPrivate &dest) |
static void | UnionRegion (const QRegionPrivate *reg1, const QRegionPrivate *reg2, QRegionPrivate &dest) |
static void | XorRegion (QRegionPrivate *sra, QRegionPrivate *srb, QRegionPrivate &dest) |
Variables | |
static QFastMutex | qt_nextRegionLock |
static QRegionPrivate * | qt_nextRegionPtr = 0 |
#define _XREGION_H |
Definition at line 433 of file qregion_qws.cpp.
#define AddSpan |
Referenced by qt_bitmapToRegion().
#define BRESINCRPGON | ( | d, | |
minval, | |||
m, | |||
m1, | |||
incr1, | |||
incr2 | |||
) |
Definition at line 1613 of file qregion_qws.cpp.
#define BRESINCRPGONSTRUCT | ( | bres | ) | BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2) |
Definition at line 1655 of file qregion_qws.cpp.
#define BRESINITPGON | ( | dy, | |
x1, | |||
x2, | |||
xStart, | |||
d, | |||
m, | |||
m1, | |||
incr1, | |||
incr2 | |||
) |
Definition at line 1587 of file qregion_qws.cpp.
#define BRESINITPGONSTRUCT | ( | dmaj, | |
min1, | |||
min2, | |||
bres | |||
) |
Definition at line 1651 of file qregion_qws.cpp.
Referenced by CreateETandAET().
#define CLOCKWISE 1 |
Definition at line 1709 of file qregion_qws.cpp.
#define CONTAINSCHECK | ( | r1, | |
r2 | |||
) |
Definition at line 89 of file qregion_qws.cpp.
Referenced by QRegionPrivate::contains(), and qt_bitmapToRegion().
#define COUNTERCLOCKWISE -1 |
Definition at line 1710 of file qregion_qws.cpp.
#define EVALUATEEDGEEVENODD | ( | pAET, | |
pPrevAET, | |||
y | |||
) |
Definition at line 1786 of file qregion_qws.cpp.
Referenced by PolygonRegion().
#define EVALUATEEDGEWINDING | ( | pAET, | |
pPrevAET, | |||
y, | |||
fixWAET | |||
) |
Definition at line 1763 of file qregion_qws.cpp.
Referenced by PolygonRegion().
#define EvenOddRule 0 |
Definition at line 379 of file qregion_qws.cpp.
Referenced by PolygonRegion(), and qt_bitmapToRegion().
#define EXTENTCHECK | ( | r1, | |
r2 | |||
) |
Definition at line 443 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion(), RectInRegion(), SubtractRegion(), and XorRegion().
#define EXTENTS | ( | r, | |
idRect | |||
) |
Definition at line 452 of file qregion_qws.cpp.
#define LARGE_COORDINATE 1000000 |
Definition at line 1851 of file qregion_qws.cpp.
Referenced by CreateETandAET().
#define MEMCHECK | ( | dest, | |
rect, | |||
firstrect | |||
) |
Definition at line 466 of file qregion_qws.cpp.
Referenced by miIntersectO(), miSubtractNonO1(), miSubtractO(), and miUnionNonO().
#define MERGERECT | ( | r | ) |
Referenced by miUnionO().
#define NUMPTSTOBUFFER 200 |
Definition at line 478 of file qregion_qws.cpp.
Referenced by PolygonRegion(), and PtsToRegion().
#define private public |
Definition at line 43 of file qregion_qws.cpp.
#define RectangleIn 1 |
Definition at line 377 of file qregion_qws.cpp.
Referenced by RectInRegion().
#define RectangleOut 0 |
Definition at line 376 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion(), and RectInRegion().
#define RectanglePart 2 |
Definition at line 378 of file qregion_qws.cpp.
Referenced by RectInRegion().
#define SLLSPERBLOCK 25 |
Definition at line 1741 of file qregion_qws.cpp.
Referenced by InsertEdgeInET().
#define SMALL_COORDINATE -LARGE_COORDINATE |
Definition at line 1852 of file qregion_qws.cpp.
Referenced by CreateETandAET().
#define WindingRule 1 |
Definition at line 380 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
typedef struct _EdgeTableEntry EdgeTableEntry |
typedef void(* NonOverlapFunc) (register QRegionPrivate &dest, register const QRect *r, const QRect *rEnd, register int y1, register int y2) |
Definition at line 367 of file qregion_qws.cpp.
typedef void(* OverlapFunc) (register QRegionPrivate &dest, register const QRect *r1, const QRect *r1End, register const QRect *r2, const QRect *r2End, register int y1, register int y2) |
Definition at line 365 of file qregion_qws.cpp.
typedef struct _POINTBLOCK POINTBLOCK |
typedef struct _ScanLineList ScanLineList |
typedef struct _ScanLineListBlock ScanLineListBlock |
|
static |
Definition at line 2074 of file qregion_qws.cpp.
Referenced by PolygonRegion().
|
static |
Definition at line 1943 of file qregion_qws.cpp.
Referenced by PolygonRegion().
|
static |
Definition at line 1400 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion(), qt_region_strictContains(), SubtractRegion(), UnionRectWithRegion(), UnionRegion(), and XorRegion().
|
static |
Definition at line 2141 of file qregion_qws.cpp.
Referenced by PolygonRegion().
|
static |
Definition at line 1863 of file qregion_qws.cpp.
Referenced by CreateETandAET().
|
static |
Definition at line 2108 of file qregion_qws.cpp.
Referenced by PolygonRegion().
|
inlinestatic |
Definition at line 235 of file qregion_qws.cpp.
Referenced by PointInRegion(), qt_bitmapToRegion(), qt_region_strictContains(), SubtractRegion(), UnionRectWithRegion(), UnionRegion(), and XorRegion().
|
static |
Definition at line 2030 of file qregion_qws.cpp.
Referenced by PolygonRegion().
|
static |
Definition at line 749 of file qregion_qws.cpp.
Referenced by miRegionOp().
|
static |
Definition at line 684 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
Definition at line 878 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion(), SubtractRegion(), and UnionRegion().
|
static |
Definition at line 602 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion(), and SubtractRegion().
|
static |
Definition at line 1210 of file qregion_qws.cpp.
Referenced by SubtractRegion().
|
static |
Definition at line 1244 of file qregion_qws.cpp.
Referenced by SubtractRegion().
|
static |
Definition at line 1085 of file qregion_qws.cpp.
Referenced by UnionRegion().
|
static |
Definition at line 1121 of file qregion_qws.cpp.
Referenced by UnionRegion().
|
static |
Definition at line 648 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
Definition at line 1422 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
Definition at line 2227 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
Definition at line 2160 of file qregion_qws.cpp.
Referenced by PolygonRegion().
|
static |
Definition at line 210 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
Definition at line 216 of file qregion_qws.cpp.
|
static |
Definition at line 222 of file qregion_qws.cpp.
|
static |
Definition at line 175 of file qregion_qws.cpp.
Referenced by qt_allocRegion().
QRegionPrivate* qt_bitmapToRegion | ( | const QBitmap & | bitmap, |
QRegionPrivate * | region | ||
) |
Definition at line 2393 of file qregion_qws.cpp.
void qt_freeRegion | ( | QRegionPrivate * | rp | ) |
Definition at line 228 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
A false return value does not guarantee the opposite.
Definition at line 3057 of file qregion_qws.cpp.
|
static |
Definition at line 1441 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
Definition at line 1345 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion(), and XorRegion().
|
static |
Definition at line 568 of file qregion_qws.cpp.
|
static |
Definition at line 1167 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion(), UnionRectWithRegion(), and XorRegion().
|
static |
Definition at line 1366 of file qregion_qws.cpp.
Referenced by qt_bitmapToRegion().
|
static |
Definition at line 173 of file qregion_qws.cpp.
|
static |
Definition at line 172 of file qregion_qws.cpp.
Referenced by qt_allocRegionMemory(), and qt_freeRegionMemory().