20 if (
r1->top <
r2->top)
24 else if (
r2->top <
r1->top)
31 if (
r1->left <
r2->left)
35 else if (
r2->left <
r1->left)
56 if (
r1->bottom <
r2->bottom)
60 else if (
r2->bottom <
r1->bottom)
67 if (
r1->left <
r2->left)
71 else if (
r2->left <
r1->left)
92 if (
r1->top <
r2->top)
96 else if (
r2->top <
r1->top)
103 if (
r1->right <
r2->right)
107 else if (
r2->right <
r1->right)
128 if (
r1->bottom <
r2->bottom)
132 else if (
r2->bottom <
r1->bottom)
139 if (
r1->right <
r2->right)
143 else if (
r2->right <
r1->right)
166 if (
Clip->Rects != &
Clip->rclBounds)
177 const RECTL* rcBounds)
192 Clip->rclBounds = *rcBounds;
194 if (
Clip->Rects != &
Clip->rclBounds)
196 Clip->Rects = NewRects;
203 Clip->iDComplexity = (((rcBounds->
top == rcBounds->
bottom) &&
209 Clip->rclBounds = *rcBounds;
211 if (
Clip->Rects != &
Clip->rclBounds)
232 ERR(
"Clip object allocation failed!\n");
268 Clip->EnumMax = (cMaxRects > 0) ? cMaxRects :
Clip->RectCount;
270 if (
CD_ANY != iDirection &&
Clip->iDirection != iDirection)
291 ERR(
"Invalid iDirection %lu\n", iDirection);
292 iDirection =
Clip->iDirection;
302 Clip->iDirection = iDirection;
306 if ((cMaxRects > 0) && (
Clip->RectCount > cMaxRects))
311 return Clip->RectCount;
345 Clip->EnumPos+=nCopy;
347 return Clip->EnumPos <
Clip->RectCount;
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
VOID FASTCALL IntEngInitClipObj(XCLIPOBJ *Clip)
static __inline int CompareRightDown(const RECTL *r1, const RECTL *r2)
ULONG APIENTRY CLIPOBJ_cEnumStart(_Inout_ CLIPOBJ *pco, _In_ BOOL bAll, _In_ ULONG iType, _In_ ULONG iDirection, _In_ ULONG cMaxRects)
static __inline int CompareLeftDown(const RECTL *r1, const RECTL *r2)
GLuint GLuint GLsizei count
DBG_DEFAULT_CHANNEL(EngClip)
VOID FASTCALL IntEngFreeClipResources(XCLIPOBJ *Clip)
CLIPOBJ *APIENTRY EngCreateClip(VOID)
static __inline int CompareLeftUp(const RECTL *r1, const RECTL *r2)
ENGAPI VOID APIENTRY EngSort(_Inout_updates_bytes_(c *cjElem) PBYTE pjBuf, _In_ ULONG c, _In_ ULONG cjElem, _In_ SORTCOMP pfnComp)
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
void * EngAllocMem(int zero, unsigned long size, int tag=0)
_In_ SURFOBJ _In_ CLIPOBJ * pco
VOID APIENTRY EngDeleteClip(_In_ _Post_ptr_invalid_ CLIPOBJ *pco)
#define _Post_ptr_invalid_
static __inline int CompareRightUp(const RECTL *r1, const RECTL *r2)
BOOL APIENTRY CLIPOBJ_bEnum(_In_ CLIPOBJ *pco, _In_ ULONG cj, _Out_bytecap_(cj) ULONG *pulEnumRects)
static INT CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
#define FIELD_OFFSET(t, f)
#define _Out_bytecap_(size)
VOID FASTCALL IntEngUpdateClipRegion(XCLIPOBJ *Clip, ULONG count, const RECTL *pRect, const RECTL *rcBounds)