49 pdc->pdcattr->VisRectRegion.iComplexity =
REGION_GetRgnBox(pdc->prgnVis, &pdc->pdcattr->VisRectRegion.Rect);
51 pEntry->Flags &= ~GDI_ENTRY_VALIDATE_VIS;
73 DPRINT1(
"SVR: Setting NULL Region\n");
100 PREGION prgnNClip, prgnOrigClip =
dc->dclevel.prgnClip;
105 if (fnMode !=
RGN_COPY && (fnMode !=
RGN_AND || !prgn || prgnOrigClip))
118 dc->dclevel.prgnClip = prgnNClip;
135 rcl.
right =
dc->dclevel.sizl.cx;
144 rcl.
left +=
dc->ppdev->ptlOrigion.x;
145 rcl.
top +=
dc->ppdev->ptlOrigion.y;
146 rcl.
right +=
dc->ppdev->ptlOrigion.x;
147 rcl.
bottom +=
dc->ppdev->ptlOrigion.y;
152 rcl.
left +=
dc->ptlDCOrig.x;
153 rcl.
top +=
dc->ptlDCOrig.y;
165 dc->dclevel.prgnClip = prgnNClip;
186 dc->dclevel.prgnClip =
NULL;
205 dc->dclevel.prgnClip = prgnNClip;
231 fnMode &= ~GDIBS_NORECT;
263 Ret = IntSelectClipRgn(
dc, prgn, fnMode);
296 if ((Ret = IntSelectClipRgn(
dc, prgn, fnMode)))
298 DPRINT(
"IntGdiExtSelectClipRgn A %d\n",Ret);
304 DPRINT(
"IntGdiExtSelectClipRgn B %d\n",Ret);
321 if ( fnMode < RGN_AND || fnMode >
RGN_COPY )
418 iComplexity = GdiGetClipBox(
hdc, &
rect);
420 if (iComplexity !=
ERROR)
464 rect.bottom = yBottom;
471 iComplexity = IntSelectClipRgn( pdc, prgn,
RGN_DIFF );
500 DPRINT(
"NtGdiIntersectClipRect(%p, %d,%d-%d,%d)\n",
501 hdc, xLeft, yTop, xRight, yBottom);
515 rect.bottom = yBottom;
522 iComplexity = IntSelectClipRgn( pdc, prgn,
RGN_AND );
557 if (pdc->dclevel.prgnClip !=
NULL)
570 apt[1].
y - apt[0].
y))
609 prgn =
dc->prgnRao ?
dc->prgnRao :
dc->prgnVis;
664 prgn =
dc->prgnRao ?
dc->prgnRao :
dc->prgnVis;
681 if ( pDC->dclevel.prgnMeta )
683 if ( pDC->dclevel.prgnClip )
692 pDC->dclevel.prgnMeta = prgn;
695 pDC->dclevel.prgnClip =
NULL;
709 if ( pDC->dclevel.prgnClip )
712 pDC->dclevel.prgnMeta = pDC->dclevel.prgnClip;
713 pDC->dclevel.prgnClip =
NULL;
749 if ( !pDC->dclevel.prgnClip &&
750 !pDC->dclevel.prgnMeta &&
760 &pDC->prgnVis->rdh.rcBound,
764 pDC->prgnVis->rdh.nCount,
765 pDC->prgnVis->Buffer,
770 pDC->fs &= ~DC_DIRTY_RAO;
781 if (pDC->dclevel.prgnMeta || pDC->dclevel.prgnClip)
787 ERR(
"Failed to allocate prgnAPI! Expect drawing issues!\n");
791 if (!pDC->dclevel.prgnMeta)
794 pDC->dclevel.prgnClip);
796 else if (!pDC->dclevel.prgnClip)
799 pDC->dclevel.prgnMeta);
804 pDC->dclevel.prgnClip,
805 pDC->dclevel.prgnMeta);
816 ERR(
"Failed to allocate prgnRao! Expect drawing issues!\n");
836 &pDC->prgnRao->rdh.rcBound,
839 pDC->fs &= ~DC_DIRTY_RAO;
848 pDC->prgnRao->rdh.nCount,
849 pDC->prgnRao->Buffer,
#define DBG_DEFAULT_CHANNEL(ch)
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(_In_ 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