From: James Tabor Date: Thu, 13 Jul 2017 01:59:41 +0000 (+0000) Subject: [Win32SS] X-Git-Tag: ReactOS-0.4.6~98 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=deaa7df8176e5a0c0a20438671ae1a1eb35daa8f [Win32SS] - Remove old GDI structure and use the new one. svn path=/trunk/; revision=75326 --- diff --git a/reactos/win32ss/gdi/eng/alphablend.c b/reactos/win32ss/gdi/eng/alphablend.c index f9bbf6db731..869698989ba 100644 --- a/reactos/win32ss/gdi/eng/alphablend.c +++ b/reactos/win32ss/gdi/eng/alphablend.c @@ -212,7 +212,7 @@ IntEngAlphaBlend( //ASSERT(pBlendObj); /* If no clip object is given, use trivial one */ - if (!pco) pco = &gxcoTrivial.ClipObj; + if (!pco) pco = (CLIPOBJ *)&gxcoTrivial; /* Check if there is anything to draw */ if ((pco->rclBounds.left >= pco->rclBounds.right) || diff --git a/reactos/win32ss/gdi/eng/bitblt.c b/reactos/win32ss/gdi/eng/bitblt.c index bd1512fe9e6..9c3e1d1183a 100644 --- a/reactos/win32ss/gdi/eng/bitblt.c +++ b/reactos/win32ss/gdi/eng/bitblt.c @@ -16,16 +16,15 @@ XCLIPOBJ gxcoTrivial = { /* CLIPOBJ */ { - { - 0, /* iUniq */ - {LONG_MIN, LONG_MIN, LONG_MAX, LONG_MAX}, /* rclBounds */ - DC_TRIVIAL, /* idCOmplexity */ - FC_RECT, /* iFComplexity */ - TC_RECTANGLES, /* iMode */ - 0 /* fjOptions */ - }, + 0, /* iUniq */ + {LONG_MIN, LONG_MIN, LONG_MAX, LONG_MAX}, /* rclBounds */ + DC_TRIVIAL, /* idCOmplexity */ + FC_RECT, /* iFComplexity */ + TC_RECTANGLES, /* iMode */ + 0 /* fjOptions */ }, - 0, 0, 0 + { 0, {0,0,0,0}, 0}, + 0, {0,0,0,0}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; typedef BOOLEAN (APIENTRY *PBLTRECTFUNC)(SURFOBJ* OutputObj, @@ -649,7 +648,7 @@ IntEngBitBlt( pco = NULL; } else - pco = &gxcoTrivial.ClipObj; + pco = (CLIPOBJ *)&gxcoTrivial; if (ROP4_USES_SOURCE(Rop4)) { diff --git a/reactos/win32ss/gdi/eng/clip.c b/reactos/win32ss/gdi/eng/clip.c index 3aa8ded08dc..e91a099700e 100644 --- a/reactos/win32ss/gdi/eng/clip.c +++ b/reactos/win32ss/gdi/eng/clip.c @@ -157,13 +157,13 @@ VOID FASTCALL IntEngInitClipObj(XCLIPOBJ *Clip) { - Clip->Rects = &Clip->ClipObj.rclBounds; + Clip->Rects = &Clip->rclBounds; } VOID FASTCALL IntEngFreeClipResources(XCLIPOBJ *Clip) { - if (Clip->Rects != &Clip->ClipObj.rclBounds) + if (Clip->Rects != &Clip->rclBounds) EngFreeMem(Clip->Rects); } @@ -183,34 +183,34 @@ IntEngUpdateClipRegion( if(NewRects != NULL) { Clip->RectCount = count; - Clip->EnumOrder = CD_ANY; + Clip->iDirection = CD_ANY; RtlCopyMemory(NewRects, pRect, count * sizeof(RECTL)); - Clip->ClipObj.iDComplexity = DC_COMPLEX; - Clip->ClipObj.iFComplexity = ((Clip->RectCount <= 4) ? FC_RECT4 : FC_COMPLEX); - Clip->ClipObj.iMode = TC_RECTANGLES; - Clip->ClipObj.rclBounds = *rcBounds; + Clip->iDComplexity = DC_COMPLEX; + Clip->iFComplexity = ((Clip->RectCount <= 4) ? FC_RECT4 : FC_COMPLEX); + Clip->iMode = TC_RECTANGLES; + Clip->rclBounds = *rcBounds; - if (Clip->Rects != &Clip->ClipObj.rclBounds) + if (Clip->Rects != &Clip->rclBounds) EngFreeMem(Clip->Rects); Clip->Rects = NewRects; } } else { - Clip->EnumOrder = CD_ANY; + Clip->iDirection = CD_ANY; - Clip->ClipObj.iDComplexity = (((rcBounds->top == rcBounds->bottom) && + Clip->iDComplexity = (((rcBounds->top == rcBounds->bottom) && (rcBounds->left == rcBounds->right)) ? DC_TRIVIAL : DC_RECT); - Clip->ClipObj.iFComplexity = FC_RECT; - Clip->ClipObj.iMode = TC_RECTANGLES; - Clip->ClipObj.rclBounds = *rcBounds; + Clip->iFComplexity = FC_RECT; + Clip->iMode = TC_RECTANGLES; + Clip->rclBounds = *rcBounds; Clip->RectCount = 1; - if (Clip->Rects != &Clip->ClipObj.rclBounds) + if (Clip->Rects != &Clip->rclBounds) EngFreeMem(Clip->Rects); - Clip->Rects = &Clip->ClipObj.rclBounds; + Clip->Rects = &Clip->rclBounds; } } @@ -226,7 +226,7 @@ EngCreateClip(VOID) { IntEngInitClipObj(Clip); TRACE("Created Clip Obj %p.\n", Clip); - return &Clip->ClipObj; + return (CLIPOBJ *)Clip; } ERR("Clip object allocation failed!\n"); @@ -241,7 +241,7 @@ APIENTRY EngDeleteClip( _In_ _Post_ptr_invalid_ CLIPOBJ *pco) { - XCLIPOBJ* pxco = CONTAINING_RECORD(pco, XCLIPOBJ, ClipObj); + XCLIPOBJ* pxco = (XCLIPOBJ *)pco; TRACE("Deleting %p.\n", pco); IntEngFreeClipResources(pxco); EngFreeMem(pxco); @@ -259,13 +259,15 @@ CLIPOBJ_cEnumStart( _In_ ULONG iDirection, _In_ ULONG cMaxRects) { - XCLIPOBJ* Clip = CONTAINING_RECORD(pco, XCLIPOBJ, ClipObj); + XCLIPOBJ* Clip = (XCLIPOBJ *)pco; SORTCOMP CompareFunc; + Clip->bAll = bAll; + Clip->iType = iType; Clip->EnumPos = 0; Clip->EnumMax = (cMaxRects > 0) ? cMaxRects : Clip->RectCount; - if (CD_ANY != iDirection && Clip->EnumOrder != iDirection) + if (CD_ANY != iDirection && Clip->iDirection != iDirection) { switch (iDirection) { @@ -287,7 +289,7 @@ CLIPOBJ_cEnumStart( default: ERR("Invalid iDirection %lu\n", iDirection); - iDirection = Clip->EnumOrder; + iDirection = Clip->iDirection; CompareFunc = NULL; break; } @@ -297,7 +299,7 @@ CLIPOBJ_cEnumStart( EngSort((PBYTE) Clip->Rects, sizeof(RECTL), Clip->RectCount, CompareFunc); } - Clip->EnumOrder = iDirection; + Clip->iDirection = iDirection; } /* Return the number of rectangles enumerated */ @@ -320,7 +322,7 @@ CLIPOBJ_bEnum( _Out_bytecap_(cj) ULONG *pulEnumRects) { const RECTL* src; - XCLIPOBJ* Clip = CONTAINING_RECORD(pco, XCLIPOBJ, ClipObj); + XCLIPOBJ* Clip = (XCLIPOBJ *)pco; ULONG nCopy; ENUMRECTS* pERects = (ENUMRECTS*)pulEnumRects; diff --git a/reactos/win32ss/gdi/eng/engobjects.h b/reactos/win32ss/gdi/eng/engobjects.h index 31afab05a81..348774bba5b 100644 --- a/reactos/win32ss/gdi/eng/engobjects.h +++ b/reactos/win32ss/gdi/eng/engobjects.h @@ -39,63 +39,68 @@ ---------------------------------------------------------------------------*/ -/* EXtended CLip and Window Region Object */ +typedef struct _RWNDOBJ { + PVOID pvConsumer; + RECTL rclClient; + SURFOBJ *psoOwner; +} RWNDOBJ; + +/* EXtended CLip and Window Region Objects */ #ifdef __cplusplus -typedef struct _XCLIPOBJ : _WNDOBJ +typedef struct _XCLIPOBJ : _CLIPOBJ, _RWNDOBJ { #else typedef struct _XCLIPOBJ { - WNDOBJ; + CLIPOBJ; + RWNDOBJ; #endif - PVOID pClipRgn; /* prgnRao_ or (prgnVis_ if (prgnRao_ == z)) */ + struct _REGION *pClipRgn; /* prgnRao_ or (prgnVis_ if (prgnRao_ == z)) */ + // RECTL rclClipRgn; - PVOID pscanClipRgn; /* Ptr to regions rect buffer based on iDirection. */ + //PVOID pscanClipRgn; /* Ptr to regions rect buffer based on iDirection. */ + RECTL* Rects; DWORD cScan; DWORD reserved; - ULONG ulBSize; + ULONG EnumPos; LONG lscnSize; - ULONG ulObjSize; + ULONG EnumMax; ULONG iDirection; - ULONG ulClipType; + ULONG iType; DWORD reserved1; LONG lUpDown; DWORD reserved2; - BOOL bShouldDoAll; - DWORD nComplexity; /* count/mode based on # of rect in regions scan. */ + BOOL bAll; + // + DWORD RectCount; /* count/mode based on # of rect in regions scan. */ PVOID pDDA; /* Pointer to a large drawing structure. */ } XCLIPOBJ, *PXCLIPOBJ; + /* - EngCreateClip allocates XCLIPOBJ and RGNOBJ, pco->co.pClipRgn = &pco->ro. + EngCreateClip allocates XCLIPOBJ and REGION, pco->co.pClipRgn = &pco->ro. { XCLIPOBJ co; - RGNOBJ ro; + REGION ro; } */ -typedef struct _CLIPGDI { - union - { - CLIPOBJ ClipObj; - WNDOBJ WndObj; - }; - /* WNDOBJ part */ + +extern XCLIPOBJ gxcoTrivial; + +#ifdef __cplusplus +typedef struct _EWNDOBJ : _XCLIPOBJ +{ +#else +typedef struct _EWNDOBJ +{ + XCLIPOBJ; +#endif + /* Extended WNDOBJ part */ HWND Hwnd; WNDOBJCHANGEPROC ChangeProc; FLONG Flags; int PixelFormat; - /* CLIPOBJ part */ - ULONG EnumPos; - ULONG EnumOrder; - ULONG EnumMax; - ULONG RectCount; - RECTL* Rects; -} CLIPGDI, *PCLIPGDI; -C_ASSERT(FIELD_OFFSET(CLIPGDI, ClipObj) == FIELD_OFFSET(CLIPGDI, WndObj.coClient)); - -// HACK, until we use the original structure -#define XCLIPOBJ CLIPGDI +} EWNDOBJ, *PEWNDOBJ; -extern XCLIPOBJ gxcoTrivial; /*ei What is this for? */ typedef struct _DRVFUNCTIONSGDI { diff --git a/reactos/win32ss/gdi/eng/engwindow.c b/reactos/win32ss/gdi/eng/engwindow.c index 42e30a4d976..d23e9744894 100644 --- a/reactos/win32ss/gdi/eng/engwindow.c +++ b/reactos/win32ss/gdi/eng/engwindow.c @@ -18,7 +18,7 @@ INT gcountPWO = 0; VOID FASTCALL IntEngWndCallChangeProc( - _In_ XCLIPOBJ *Clip, + _In_ EWNDOBJ *Clip, _In_ FLONG flChanged) { if (Clip->ChangeProc == NULL) @@ -40,7 +40,7 @@ IntEngWndCallChangeProc( if (flChanged == WOC_CHANGED) Clip->ChangeProc(NULL, flChanged); else - Clip->ChangeProc(&Clip->WndObj, flChanged); + Clip->ChangeProc((WNDOBJ *)Clip, flChanged); } /* @@ -49,7 +49,7 @@ IntEngWndCallChangeProc( BOOLEAN FASTCALL IntEngWndUpdateClipObj( - XCLIPOBJ* Clip, + EWNDOBJ* Clip, PWND Window) { PREGION visRgn; @@ -61,7 +61,7 @@ IntEngWndUpdateClipObj( { if (visRgn->rdh.nCount > 0) { - IntEngUpdateClipRegion(Clip, visRgn->rdh.nCount, visRgn->Buffer, &visRgn->rdh.rcBound); + IntEngUpdateClipRegion((XCLIPOBJ*)Clip, visRgn->rdh.nCount, visRgn->Buffer, &visRgn->rdh.rcBound); TRACE("Created visible region with %lu rects\n", visRgn->rdh.nCount); TRACE(" BoundingRect: %d, %d %d, %d\n", visRgn->rdh.rcBound.left, visRgn->rdh.rcBound.top, @@ -81,12 +81,12 @@ IntEngWndUpdateClipObj( else { /* Fall back to client rect */ - IntEngUpdateClipRegion(Clip, 1, &Window->rcClient, &Window->rcClient); + IntEngUpdateClipRegion((XCLIPOBJ*)Clip, 1, &Window->rcClient, &Window->rcClient); } /* Update the WNDOBJ */ - Clip->WndObj.rclClient = Window->rcClient; - Clip->WndObj.coClient.iUniq++; + Clip->rclClient = Window->rcClient; + Clip->iUniq++; return TRUE; } @@ -100,7 +100,7 @@ IntEngWindowChanged( _In_ PWND Window, _In_ FLONG flChanged) { - XCLIPOBJ *Clip; + EWNDOBJ *Clip; ASSERT_IRQL_LESS_OR_EQUAL(PASSIVE_LEVEL); @@ -111,7 +111,7 @@ IntEngWindowChanged( } ASSERT(Clip->Hwnd == Window->head.h); - // if (Clip->WndObj.pvConsumer != NULL) + // if (Clip->pvConsumer != NULL) { /* Update the WNDOBJ */ switch (flChanged) @@ -149,7 +149,7 @@ EngCreateWnd( FLONG fl, int iPixelFormat) { - XCLIPOBJ *Clip = NULL; + EWNDOBJ *Clip = NULL; WNDOBJ *WndObjUser = NULL; PWND Window; BOOL calledFromUser; @@ -176,13 +176,13 @@ EngCreateWnd( } /* Create WNDOBJ */ - Clip = EngAllocMem(FL_ZERO_MEMORY, sizeof (XCLIPOBJ), GDITAG_WNDOBJ); + Clip = EngAllocMem(FL_ZERO_MEMORY, sizeof (EWNDOBJ), GDITAG_WNDOBJ); if (Clip == NULL) { ERR("Failed to allocate memory for a WND structure!\n"); RETURN( NULL); } - IntEngInitClipObj(Clip); + IntEngInitClipObj((XCLIPOBJ*)Clip); /* Fill the clipobj */ if (!IntEngWndUpdateClipObj(Clip, Window)) @@ -192,7 +192,7 @@ EngCreateWnd( } /* Fill user object */ - WndObjUser = &Clip->WndObj; + WndObjUser = (WNDOBJ *)Clip; WndObjUser->psoOwner = pso; WndObjUser->pvConsumer = NULL; @@ -233,7 +233,7 @@ APIENTRY EngDeleteWnd( IN WNDOBJ *pwo) { - XCLIPOBJ* Clip = CONTAINING_RECORD(pwo, XCLIPOBJ, WndObj); + EWNDOBJ* Clip = (EWNDOBJ *)pwo;//CONTAINING_RECORD(pwo, XCLIPOBJ, WndObj); PWND Window; BOOL calledFromUser; @@ -262,7 +262,7 @@ EngDeleteWnd( } /* Free resources */ - IntEngFreeClipResources(Clip); + IntEngFreeClipResources((XCLIPOBJ*)Clip); EngFreeMem(Clip); } @@ -308,7 +308,7 @@ WNDOBJ_vSetConsumer( IN WNDOBJ *pwo, IN PVOID pvConsumer) { - XCLIPOBJ* Clip = CONTAINING_RECORD(pwo, XCLIPOBJ, WndObj); + EWNDOBJ* Clip = (EWNDOBJ *)pwo;//CONTAINING_RECORD(pwo, XCLIPOBJ, WndObj); BOOL Hack; TRACE("WNDOBJ_vSetConsumer: pwo = 0x%p, pvConsumer = 0x%p\n", pwo, pvConsumer); diff --git a/reactos/win32ss/gdi/eng/gradient.c b/reactos/win32ss/gdi/eng/gradient.c index ce5bd0e4e02..3fb80c19e35 100644 --- a/reactos/win32ss/gdi/eng/gradient.c +++ b/reactos/win32ss/gdi/eng/gradient.c @@ -491,7 +491,7 @@ EngGradientFill( if (pco == NULL) { /* Use the trivial one instead */ - pco = &gxcoTrivial.ClipObj; + pco = (CLIPOBJ *)&gxcoTrivial;//.coClient; } switch(ulMode) diff --git a/reactos/win32ss/gdi/eng/stretchblt.c b/reactos/win32ss/gdi/eng/stretchblt.c index da54ddc4964..2fb1a9afd2b 100644 --- a/reactos/win32ss/gdi/eng/stretchblt.c +++ b/reactos/win32ss/gdi/eng/stretchblt.c @@ -390,7 +390,7 @@ IntEngStretchBlt(SURFOBJ *psoDest, //ASSERT(!RECTL_bIsEmptyRect(SourceRect)); // FIXME! /* If no clip object is given, use trivial one */ - if (!ClipRegion) ClipRegion = &gxcoTrivial.ClipObj; + if (!ClipRegion) ClipRegion = (CLIPOBJ *)&gxcoTrivial; psurfDest = CONTAINING_RECORD(psoDest, SURFACE, SurfObj); diff --git a/reactos/win32ss/gdi/eng/transblt.c b/reactos/win32ss/gdi/eng/transblt.c index 43708da5dbc..862022a5d30 100644 --- a/reactos/win32ss/gdi/eng/transblt.c +++ b/reactos/win32ss/gdi/eng/transblt.c @@ -232,7 +232,7 @@ IntEngTransparentBlt( ASSERT(psurfSource); /* If no clip object is given, use trivial one */ - if (!Clip) Clip = &gxcoTrivial.ClipObj; + if (!Clip) Clip = (CLIPOBJ *)&gxcoTrivial; InputClippedRect = *DestRect; if (InputClippedRect.right < InputClippedRect.left) diff --git a/reactos/win32ss/gdi/ntgdi/arc.c b/reactos/win32ss/gdi/ntgdi/arc.c index 0170263a6f8..7d9f1da7ab8 100644 --- a/reactos/win32ss/gdi/ntgdi/arc.c +++ b/reactos/win32ss/gdi/ntgdi/arc.c @@ -8,7 +8,7 @@ */ #define PUTPIXEL(x,y,BrushInst) \ ret = ret && IntEngLineTo(&psurf->SurfObj, \ - &dc->co.ClipObj, \ + (CLIPOBJ *)&dc->co, \ &BrushInst.BrushObject, \ x, y, (x)+1, y, \ &RectBounds, \ @@ -16,7 +16,7 @@ #define PUTLINE(x1,y1,x2,y2,BrushInst) \ ret = ret && IntEngLineTo(&psurf->SurfObj, \ - &dc->co.ClipObj, \ + (CLIPOBJ *)&dc->co, \ &BrushInst.BrushObject, \ x1, y1, x2, y2, \ &RectBounds, \ diff --git a/reactos/win32ss/gdi/ntgdi/bitblt.c b/reactos/win32ss/gdi/ntgdi/bitblt.c index 99287173993..26d86a0738c 100644 --- a/reactos/win32ss/gdi/ntgdi/bitblt.c +++ b/reactos/win32ss/gdi/ntgdi/bitblt.c @@ -130,7 +130,7 @@ NtGdiAlphaBlend( TRACE("Performing the alpha blend\n"); bResult = IntEngAlphaBlend(&BitmapDest->SurfObj, &BitmapSrc->SurfObj, - &DCDest->co.ClipObj, + (CLIPOBJ *)&DCDest->co, &exlo.xlo, &DestRect, &SourceRect, @@ -295,7 +295,7 @@ NtGdiTransparentBlt( EXLATEOBJ_vInitXlateFromDCs(&exlo, DCSrc, DCDest); Ret = IntEngTransparentBlt(&BitmapDest->SurfObj, &BitmapSrc->SurfObj, - &DCDest->co.ClipObj, &exlo.xlo, &rcDest, &rcSrc, + (CLIPOBJ *)&DCDest->co, &exlo.xlo, &rcDest, &rcSrc, TransparentColor, 0); EXLATEOBJ_vCleanup(&exlo); @@ -485,12 +485,11 @@ NtGdiMaskBlt( XlateObj = &exlo.xlo; } - /* Perform the bitblt operation */ Status = IntEngBitBlt(&BitmapDest->SurfObj, BitmapSrc ? &BitmapSrc->SurfObj : NULL, psurfMask ? &psurfMask->SurfObj : NULL, - &DCDest->co.ClipObj, + (CLIPOBJ *)&DCDest->co, XlateObj, &DestRect, &SourcePoint, @@ -708,7 +707,7 @@ GreStretchBltMask( Status = IntEngStretchBlt(&BitmapDest->SurfObj, BitmapSrc ? &BitmapSrc->SurfObj : NULL, BitmapMask ? &BitmapMask->SurfObj : NULL, - &DCDest->co.ClipObj, + (CLIPOBJ *)&DCDest->co, XlateObj, &DCDest->dclevel.ca, &DestRect, @@ -848,7 +847,7 @@ IntPatBlt( ret = IntEngBitBlt(&psurf->SurfObj, NULL, NULL, - &pdc->co.ClipObj, + (CLIPOBJ *)&pdc->co, NULL, &DestRect, NULL, @@ -1105,7 +1104,7 @@ IntGdiBitBltRgn( bResult = IntEngBitBlt(&pdc->dclevel.pSurface->SurfObj, NULL, NULL, - &xcoClip.ClipObj, + (CLIPOBJ *)&xcoClip, NULL, &prgnClip->rdh.rcBound, NULL, @@ -1210,7 +1209,7 @@ IntGdiFillRgn( /* Call the internal function */ bRet = IntEngPaint(&pdc->dclevel.pSurface->SurfObj, - &xcoClip.ClipObj, + (CLIPOBJ *)&xcoClip, pbo, &pdc->pdcattr->ptlBrushOrigin, mix); diff --git a/reactos/win32ss/gdi/ntgdi/dibobj.c b/reactos/win32ss/gdi/ntgdi/dibobj.c index 461f63d9c26..030dc2512f6 100644 --- a/reactos/win32ss/gdi/ntgdi/dibobj.c +++ b/reactos/win32ss/gdi/ntgdi/dibobj.c @@ -635,7 +635,7 @@ NtGdiSetDIBitsToDeviceInternal( Status = IntEngBitBlt(pDestSurf, pSourceSurf, pMaskSurf, - &pDC->co.ClipObj, + (CLIPOBJ *)&pDC->co, &exlo.xlo, &rcDest, &ptSource, @@ -1333,7 +1333,7 @@ NtGdiStretchDIBitsInternal( bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, - &pdc->co.ClipObj, + (CLIPOBJ *)&pdc->co, &exlo.xlo, &pdc->dclevel.ca, &rcDst, diff --git a/reactos/win32ss/gdi/ntgdi/drawing.c b/reactos/win32ss/gdi/ntgdi/drawing.c index c3050dee11b..3b59527fb1c 100644 --- a/reactos/win32ss/gdi/ntgdi/drawing.c +++ b/reactos/win32ss/gdi/ntgdi/drawing.c @@ -1288,7 +1288,7 @@ IntFillRect( DC *dc, &psurf->SurfObj, NULL, NULL, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, NULL, &DestRect, NULL, diff --git a/reactos/win32ss/gdi/ntgdi/fillshap.c b/reactos/win32ss/gdi/ntgdi/fillshap.c index c23e934b25c..f3663a6eda1 100644 --- a/reactos/win32ss/gdi/ntgdi/fillshap.c +++ b/reactos/win32ss/gdi/ntgdi/fillshap.c @@ -115,7 +115,7 @@ IntGdiPolygon(PDC dc, // Points[1].x, Points[1].y ); ret = IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, Points[i].x, /* From */ Points[i].y, @@ -129,7 +129,7 @@ IntGdiPolygon(PDC dc, if (ret) { ret = IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, Points[Count-1].x, /* From */ Points[Count-1].y, @@ -611,7 +611,7 @@ IntRectangle(PDC dc, ret = IntEngBitBlt(&psurf->SurfObj, NULL, NULL, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, NULL, &DestRect, NULL, @@ -630,28 +630,28 @@ IntRectangle(PDC dc, { Mix = ROP2_TO_MIX(pdcattr->jROP2); ret = ret && IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, DestRect.left, DestRect.top, DestRect.right, DestRect.top, &DestRect, // Bounding rectangle Mix); ret = ret && IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, DestRect.right, DestRect.top, DestRect.right, DestRect.bottom, &DestRect, // Bounding rectangle Mix); ret = ret && IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, DestRect.right, DestRect.bottom, DestRect.left, DestRect.bottom, &DestRect, // Bounding rectangle Mix); ret = ret && IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, DestRect.left, DestRect.bottom, DestRect.left, DestRect.top, &DestRect, // Bounding rectangle @@ -963,7 +963,7 @@ GreGradientFill( EXLATEOBJ_vInitialize(&exlo, &gpalRGB, psurf->ppal, 0, 0, 0); bRet = IntEngGradientFill(&psurf->SurfObj, - &pdc->co.ClipObj, + (CLIPOBJ *)&pdc->co, &exlo.xlo, pVertex, nVertex, diff --git a/reactos/win32ss/gdi/ntgdi/freetype.c b/reactos/win32ss/gdi/ntgdi/freetype.c index 5304f176e37..0f314a4da3d 100644 --- a/reactos/win32ss/gdi/ntgdi/freetype.c +++ b/reactos/win32ss/gdi/ntgdi/freetype.c @@ -5170,7 +5170,7 @@ GreExtTextOutW( &psurf->SurfObj, NULL, NULL, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, NULL, &DestRect, &SourcePoint, @@ -5440,7 +5440,7 @@ GreExtTextOutW( &psurf->SurfObj, NULL, NULL, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, NULL, &DestRect, &SourcePoint, @@ -5576,7 +5576,7 @@ GreExtTextOutW( &psurf->SurfObj, NULL, NULL, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, NULL, &DestRect, &SourcePoint, @@ -5649,7 +5649,7 @@ GreExtTextOutW( if (!IntEngMaskBlt( SurfObj, SourceGlyphSurf, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &exloRGB2Dst.xlo, &exloDst2RGB.xlo, &DestRect, @@ -5686,7 +5686,7 @@ GreExtTextOutW( for (i = -thickness / 2; i < -thickness / 2 + thickness; ++i) { EngLineTo(SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboText.BrushObject, (TextLeft >> 6), TextTop + yoff - position + i, @@ -5702,7 +5702,7 @@ GreExtTextOutW( for (i = -thickness / 2; i < -thickness / 2 + thickness; ++i) { EngLineTo(SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboText.BrushObject, (TextLeft >> 6), TextTop + yoff - (fixAscender >> 6) / 3 + i, diff --git a/reactos/win32ss/gdi/ntgdi/line.c b/reactos/win32ss/gdi/ntgdi/line.c index 35618988a8e..5e53b0b24b4 100644 --- a/reactos/win32ss/gdi/ntgdi/line.c +++ b/reactos/win32ss/gdi/ntgdi/line.c @@ -202,7 +202,7 @@ IntGdiLineTo(DC *dc, if (!(pbrLine->flAttrs & BR_IS_NULL)) { Ret = IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, Points[0].x, Points[0].y, Points[1].x, Points[1].y, @@ -334,7 +334,7 @@ IntGdiPolyline(DC *dc, } Ret = IntEngPolyline(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, &dc->eboLine.BrushObject, Points, Count, diff --git a/reactos/win32ss/gdi/ntgdi/polyfill.c b/reactos/win32ss/gdi/ntgdi/polyfill.c index ca4d381518f..d6bd2bdb73d 100644 --- a/reactos/win32ss/gdi/ntgdi/polyfill.c +++ b/reactos/win32ss/gdi/ntgdi/polyfill.c @@ -417,7 +417,7 @@ POLYGONFILL_FillScanLineAlternate( //DPRINT("Fill Line (%d, %d) to (%d, %d)\n",x1, ScanLine, x2, ScanLine); IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, BrushObj, x1, ScanLine, @@ -489,7 +489,7 @@ POLYGONFILL_FillScanLineWinding( //DPRINT("Fill Line (%d, %d) to (%d, %d)\n",x1, ScanLine, x2, ScanLine); IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, BrushObj, x1, ScanLine, @@ -514,7 +514,7 @@ POLYGONFILL_FillScanLineWinding( //DPRINT("Fill Line (%d, %d) to (%d, %d)\n",x1, ScanLine, x2, ScanLine); IntEngLineTo(&psurf->SurfObj, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, BrushObj, x1, ScanLine, @@ -641,7 +641,7 @@ IntFillPolygon( IntEngBitBlt(&psurf->SurfObj, NULL, NULL, - &dc->co.ClipObj, + (CLIPOBJ *)&dc->co, NULL, &LineRect, NULL, diff --git a/reactos/win32ss/user/ntuser/cursoricon.c b/reactos/win32ss/user/ntuser/cursoricon.c index 457e0cc1d58..a6dd22074e9 100644 --- a/reactos/win32ss/user/ntuser/cursoricon.c +++ b/reactos/win32ss/user/ntuser/cursoricon.c @@ -1863,7 +1863,7 @@ UserDrawIconEx( /* We now have our destination surface */ psurfDest = psurfOffScreen; #else - pdcClipObj = &pdc->co.ClipObj; + pdcClipObj = (CLIPOBJ *)&pdc->co; /* Paint the brush */ EBRUSHOBJ_vInit(&eboFill, pbrush, psurfDest, 0x00FFFFFF, 0, NULL); @@ -1894,7 +1894,7 @@ UserDrawIconEx( { /* We directly draw to the DC */ TRACE("Performing on screen rendering.\n"); - pdcClipObj = &pdc->co.ClipObj; + pdcClipObj = (CLIPOBJ *)&pdc->co; // psurfOffScreen = NULL; } diff --git a/reactos/win32ss/user/ntuser/windc.c b/reactos/win32ss/user/ntuser/windc.c index 96b1f1899e9..5e7ffb99c91 100644 --- a/reactos/win32ss/user/ntuser/windc.c +++ b/reactos/win32ss/user/ntuser/windc.c @@ -951,7 +951,7 @@ UserGetWindowDC(PWND Wnd) HWND FASTCALL UserGethWnd( HDC hdc, PWNDOBJ *pwndo) { - XCLIPOBJ* Clip; + EWNDOBJ* Clip; PWND Wnd; HWND hWnd; @@ -959,11 +959,11 @@ UserGethWnd( HDC hdc, PWNDOBJ *pwndo) if (hWnd && (Wnd = UserGetWindowObject(hWnd))) { - Clip = (XCLIPOBJ*)UserGetProp(Wnd, AtomWndObj, TRUE); + Clip = (EWNDOBJ*)UserGetProp(Wnd, AtomWndObj, TRUE); if ( Clip && Clip->Hwnd == hWnd ) { - if (pwndo) *pwndo = &Clip->WndObj; + if (pwndo) *pwndo = (PWNDOBJ)Clip; } } return hWnd;