mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
[Win32SS]
- Remove old GDI structure and use the new one. svn path=/trunk/; revision=75326
This commit is contained in:
@@ -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) ||
|
||||
|
||||
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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));
|
||||
} EWNDOBJ, *PEWNDOBJ;
|
||||
|
||||
// HACK, until we use the original structure
|
||||
#define XCLIPOBJ CLIPGDI
|
||||
|
||||
extern XCLIPOBJ gxcoTrivial;
|
||||
|
||||
/*ei What is this for? */
|
||||
typedef struct _DRVFUNCTIONSGDI {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -491,7 +491,7 @@ EngGradientFill(
|
||||
if (pco == NULL)
|
||||
{
|
||||
/* Use the trivial one instead */
|
||||
pco = &gxcoTrivial.ClipObj;
|
||||
pco = (CLIPOBJ *)&gxcoTrivial;//.coClient;
|
||||
}
|
||||
|
||||
switch(ulMode)
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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, \
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -1288,7 +1288,7 @@ IntFillRect( DC *dc,
|
||||
&psurf->SurfObj,
|
||||
NULL,
|
||||
NULL,
|
||||
&dc->co.ClipObj,
|
||||
(CLIPOBJ *)&dc->co,
|
||||
NULL,
|
||||
&DestRect,
|
||||
NULL,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user