47 pdc->pdcattr->VisRectRegion.iComplexity =
REGION_GetRgnBox(pdc->prgnVis, &pdc->pdcattr->VisRectRegion.Rect);
49 pEntry->Flags &= ~GDI_ENTRY_VALIDATE_VIS;
71 DPRINT1(
"SVR: Setting NULL Region\n");
98 PREGION prgnNClip, prgnOrigClip =
dc->dclevel.prgnClip;
103 if (fnMode !=
RGN_COPY && (fnMode !=
RGN_AND || !prgn || prgnOrigClip))
116 dc->dclevel.prgnClip = prgnNClip;
133 rcl.
right =
dc->dclevel.sizl.cx;
142 rcl.
left +=
dc->ppdev->ptlOrigion.x;
143 rcl.
top +=
dc->ppdev->ptlOrigion.y;
144 rcl.
right +=
dc->ppdev->ptlOrigion.x;
145 rcl.
bottom +=
dc->ppdev->ptlOrigion.y;
150 rcl.
left +=
dc->ptlDCOrig.x;
151 rcl.
top +=
dc->ptlDCOrig.y;
163 dc->dclevel.prgnClip = prgnNClip;
184 dc->dclevel.prgnClip =
NULL;
203 dc->dclevel.prgnClip = prgnNClip;
229 fnMode &= ~GDIBS_NORECT;
261 Ret = IntSelectClipRgn(
dc, prgn, fnMode);
294 if ((Ret = IntSelectClipRgn(
dc, prgn, fnMode)))
296 DPRINT(
"IntGdiExtSelectClipRgn A %d\n",Ret);
302 DPRINT(
"IntGdiExtSelectClipRgn B %d\n",Ret);
319 if ( fnMode < RGN_AND || fnMode >
RGN_COPY )
416 iComplexity = GdiGetClipBox(
hdc, &
rect);
418 if (iComplexity !=
ERROR)
462 rect.bottom = yBottom;
469 iComplexity = IntSelectClipRgn( pdc, prgn,
RGN_DIFF );
498 DPRINT(
"NtGdiIntersectClipRect(%p, %d,%d-%d,%d)\n",
499 hdc, xLeft, yTop, xRight, yBottom);
513 rect.bottom = yBottom;
520 iComplexity = IntSelectClipRgn( pdc, prgn,
RGN_AND );
555 if (pdc->dclevel.prgnClip !=
NULL)
568 apt[1].
y - apt[0].
y))
607 prgn =
dc->prgnRao ?
dc->prgnRao :
dc->prgnVis;
662 prgn =
dc->prgnRao ?
dc->prgnRao :
dc->prgnVis;
679 if ( pDC->dclevel.prgnMeta )
681 if ( pDC->dclevel.prgnClip )
690 pDC->dclevel.prgnMeta = prgn;
693 pDC->dclevel.prgnClip =
NULL;
707 if ( pDC->dclevel.prgnClip )
710 pDC->dclevel.prgnMeta = pDC->dclevel.prgnClip;
711 pDC->dclevel.prgnClip =
NULL;
747 if ( !pDC->dclevel.prgnClip &&
748 !pDC->dclevel.prgnMeta &&
758 &pDC->prgnVis->rdh.rcBound,
762 pDC->prgnVis->rdh.nCount,
763 pDC->prgnVis->Buffer,
768 pDC->fs &= ~DC_DIRTY_RAO;
786 if (pDC->dclevel.prgnMeta || pDC->dclevel.prgnClip)
789 if (!pDC->dclevel.prgnMeta)
792 pDC->dclevel.prgnClip);
794 else if (!pDC->dclevel.prgnClip)
797 pDC->dclevel.prgnMeta);
802 pDC->dclevel.prgnClip,
803 pDC->dclevel.prgnMeta);
823 &pDC->prgnRao->rdh.rcBound,
826 pDC->fs &= ~DC_DIRTY_RAO;
835 pDC->prgnRao->rdh.nCount,
836 pDC->prgnRao->Buffer,
INT APIENTRY NtGdiOffsetClipRgn(_In_ HDC hdc, _In_ INT xOffset, _In_ INT yOffset)
INT APIENTRY NtGdiExcludeClipRect(_In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)
int APIENTRY NtGdiExtSelectClipRgn(HDC hDC, HRGN hrgn, int fnMode)
VOID FASTCALL CLIPPING_UpdateGCRegion(PDC pDC)
BOOL APIENTRY NtGdiPtVisible(HDC hDC, int X, int Y)
VOID FASTCALL GdiSelectVisRgn(HDC hdc, PREGION prgn)
VOID FASTCALL IntGdiReleaseVisRgn(PDC pDC)
BOOL APIENTRY NtGdiRectVisible(HDC hDC, LPRECT UnsafeRect)
VOID FASTCALL IntGdiReleaseRaoRgn(PDC pDC)
int APIENTRY NtGdiSetMetaRgn(HDC hDC)
int FASTCALL IntGdiSetMetaRgn(PDC pDC)
VOID FASTCALL UpdateVisRgn(PDC pdc)
INT APIENTRY NtGdiIntersectClipRect(_In_ HDC hdc, _In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)
int FASTCALL IntGdiExtSelectClipRect(PDC, PRECTL, int)
INT FASTCALL IntGdiExtSelectClipRgn(PDC dc, PREGION prgn, int fnMode)
BOOL FASTCALL REGION_bCopy(PREGION, PREGION)
BOOL FASTCALL REGION_bIntersectRegion(PREGION, PREGION, PREGION)
static BOOLEAN IntDPtoLP(DC *pdc, PPOINTL ppt, UINT count)
static BOOLEAN IntLPtoDP(DC *pdc, PPOINTL ppt, UINT count)
BOOL FASTCALL IntSetDefaultRegion(PDC)
FORCEINLINE VOID DC_UnlockDc(PDC pdc)
FORCEINLINE PDC DC_LockDc(HDC hdc)
#define NT_SUCCESS(StatCode)
#define ERROR_INVALID_PARAMETER
#define ERROR_INVALID_HANDLE
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
#define GDI_HANDLE_GET_INDEX(h)
#define EXCEPTION_EXECUTE_HANDLER
#define GDI_ENTRY_VALIDATE_VIS
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define IntSysCreateRectpRgnIndirect(prc)
base of all file and directory entries
#define RtlCopyMemory(Destination, Source, Length)
_In_ WDFCOLLECTION _In_ ULONG Index
VOID FASTCALL IntEngUpdateClipRegion(XCLIPOBJ *Clip, ULONG count, const RECTL *pRect, const RECTL *rcBounds)
VOID FASTCALL SetLastNtError(NTSTATUS Status)
VOID FASTCALL RECTL_vMakeWellOrdered(_Inout_ RECTL *prcl)
FORCEINLINE VOID RECTL_vSetEmptyRect(_Out_ RECTL *prcl)
INT FASTCALL REGION_Complexity(PREGION prgn)
VOID FASTCALL REGION_Delete(PREGION pRgn)
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
BOOL FASTCALL REGION_RectInRegion(PREGION Rgn, const RECTL *rect)
VOID FASTCALL REGION_UnlockRgn(_In_ PREGION prgn)
BOOL FASTCALL REGION_PtInRegion(PREGION prgn, INT X, INT Y)
INT FASTCALL REGION_GetRgnBox(PREGION Rgn, PRECTL pRect)
PREGION FASTCALL IntSysCreateRectpRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
BOOL FASTCALL REGION_bOffsetRgn(_Inout_ PREGION prgn, _In_ INT cx, _In_ INT cy)
INT FASTCALL IntGdiCombineRgn(PREGION prgnDest, PREGION prgnSrc1, PREGION prgnSrc2, INT iCombineMode)
_In_ DD_SURFACE_LOCAL * pSurface
_In_ ULONG _In_ CLIPOBJ _In_ RECTL * prcl
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO