mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 02:03:07 +00:00
[WIN32K]
- Update brushes at the good moment in different places svn path=/branches/reactos-yarotows/; revision=46965
This commit is contained in:
parent
650b476440
commit
f2a22bfe7a
5 changed files with 52 additions and 34 deletions
|
@ -219,12 +219,6 @@ IntGdiArcInternal(
|
||||||
|
|
||||||
pdcattr = dc->pdcattr;
|
pdcattr = dc->pdcattr;
|
||||||
|
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
|
||||||
DC_vUpdateFillBrush(dc);
|
|
||||||
|
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
|
||||||
DC_vUpdateLineBrush(dc);
|
|
||||||
|
|
||||||
if (arctype == GdiTypeArcTo)
|
if (arctype == GdiTypeArcTo)
|
||||||
{
|
{
|
||||||
if (dc->dclevel.flPath & DCPATH_CLOCKWISE)
|
if (dc->dclevel.flPath & DCPATH_CLOCKWISE)
|
||||||
|
@ -331,6 +325,10 @@ NtGdiAngleArc(
|
||||||
worker1.l = dwSweepAngle;
|
worker1.l = dwSweepAngle;
|
||||||
DC_vPrepareDCsForBlit(pDC, pDC->rosdc.CombinedClip->rclBounds,
|
DC_vPrepareDCsForBlit(pDC, pDC->rosdc.CombinedClip->rclBounds,
|
||||||
NULL, pDC->rosdc.CombinedClip->rclBounds);
|
NULL, pDC->rosdc.CombinedClip->rclBounds);
|
||||||
|
if (pDC->pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
||||||
|
DC_vUpdateFillBrush(pDC);
|
||||||
|
if (pDC->pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
|
DC_vUpdateLineBrush(pDC);
|
||||||
Ret = IntGdiAngleArc( pDC, x, y, dwRadius, worker.f, worker1.f);
|
Ret = IntGdiAngleArc( pDC, x, y, dwRadius, worker.f, worker1.f);
|
||||||
DC_vFinishBlit(pDC, NULL);
|
DC_vFinishBlit(pDC, NULL);
|
||||||
DC_UnlockDc( pDC );
|
DC_UnlockDc( pDC );
|
||||||
|
@ -370,6 +368,12 @@ NtGdiArcInternal(
|
||||||
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
||||||
NULL, dc->rosdc.CombinedClip->rclBounds);
|
NULL, dc->rosdc.CombinedClip->rclBounds);
|
||||||
|
|
||||||
|
if (dc->pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
||||||
|
DC_vUpdateFillBrush(dc);
|
||||||
|
|
||||||
|
if (dc->pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
|
DC_vUpdateLineBrush(dc);
|
||||||
|
|
||||||
Ret = IntGdiArcInternal(
|
Ret = IntGdiArcInternal(
|
||||||
arctype,
|
arctype,
|
||||||
dc,
|
dc,
|
||||||
|
|
|
@ -64,7 +64,7 @@ typedef struct _Rect
|
||||||
} Rect, *PRect;
|
} Rect, *PRect;
|
||||||
|
|
||||||
int FASTCALL IntFillRect(DC *dc, INT XLeft, INT YLeft, INT Width, INT Height, PBRUSH pbrush, BOOL Pen);
|
int FASTCALL IntFillRect(DC *dc, INT XLeft, INT YLeft, INT Width, INT Height, PBRUSH pbrush, BOOL Pen);
|
||||||
int FASTCALL app_fill_rect(DC *dc, Rect r, PBRUSH pbrush, BOOL Pen);
|
//int FASTCALL app_fill_rect(DC *dc, Rect r, PBRUSH pbrush, BOOL Pen);
|
||||||
|
|
||||||
static
|
static
|
||||||
POINT
|
POINT
|
||||||
|
|
|
@ -481,6 +481,12 @@ NtGdiPolyPolyDraw( IN HDC hDC,
|
||||||
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
||||||
NULL, dc->rosdc.CombinedClip->rclBounds);
|
NULL, dc->rosdc.CombinedClip->rclBounds);
|
||||||
|
|
||||||
|
if (dc->pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
||||||
|
DC_vUpdateFillBrush(dc);
|
||||||
|
|
||||||
|
if (dc->pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
|
DC_vUpdateLineBrush(dc);
|
||||||
|
|
||||||
/* Perform the actual work */
|
/* Perform the actual work */
|
||||||
switch (iFunc)
|
switch (iFunc)
|
||||||
{
|
{
|
||||||
|
@ -681,6 +687,12 @@ NtGdiRectangle(HDC hDC,
|
||||||
}
|
}
|
||||||
|
|
||||||
DC_vPrepareDCsForBlit(dc, rect, NULL, rect);
|
DC_vPrepareDCsForBlit(dc, rect, NULL, rect);
|
||||||
|
if (dc->pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
||||||
|
DC_vUpdateFillBrush(dc);
|
||||||
|
|
||||||
|
if (dc->pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
|
DC_vUpdateLineBrush(dc);
|
||||||
|
|
||||||
ret = IntRectangle ( dc, LeftRect, TopRect, RightRect, BottomRect );
|
ret = IntRectangle ( dc, LeftRect, TopRect, RightRect, BottomRect );
|
||||||
DC_vFinishBlit(dc, NULL);
|
DC_vFinishBlit(dc, NULL);
|
||||||
DC_UnlockDc ( dc );
|
DC_UnlockDc ( dc );
|
||||||
|
|
|
@ -113,9 +113,6 @@ IntGdiLineTo(DC *dc,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
|
||||||
DC_vUpdateLineBrush(dc);
|
|
||||||
|
|
||||||
psurf = dc->dclevel.pSurface;
|
psurf = dc->dclevel.pSurface;
|
||||||
if (NULL == psurf)
|
if (NULL == psurf)
|
||||||
{
|
{
|
||||||
|
@ -250,6 +247,9 @@ IntGdiPolyline(DC *dc,
|
||||||
if (PATH_IsPathOpen(dc->dclevel))
|
if (PATH_IsPathOpen(dc->dclevel))
|
||||||
return PATH_Polyline(dc, pt, Count);
|
return PATH_Polyline(dc, pt, Count);
|
||||||
|
|
||||||
|
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
||||||
|
NULL, dc->rosdc.CombinedClip->rclBounds);
|
||||||
|
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
||||||
DC_vUpdateFillBrush(dc);
|
DC_vUpdateFillBrush(dc);
|
||||||
|
|
||||||
|
@ -265,8 +265,6 @@ IntGdiPolyline(DC *dc,
|
||||||
Points = EngAllocMem(0, Count * sizeof(POINT), TAG_COORD);
|
Points = EngAllocMem(0, Count * sizeof(POINT), TAG_COORD);
|
||||||
if (Points != NULL)
|
if (Points != NULL)
|
||||||
{
|
{
|
||||||
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
|
||||||
NULL, dc->rosdc.CombinedClip->rclBounds);
|
|
||||||
psurf = dc->dclevel.pSurface;
|
psurf = dc->dclevel.pSurface;
|
||||||
/* FIXME - psurf can be NULL!!!!
|
/* FIXME - psurf can be NULL!!!!
|
||||||
Don't assert but handle this case gracefully! */
|
Don't assert but handle this case gracefully! */
|
||||||
|
@ -290,7 +288,6 @@ IntGdiPolyline(DC *dc,
|
||||||
ROP2_TO_MIX(pdcattr->jROP2));
|
ROP2_TO_MIX(pdcattr->jROP2));
|
||||||
|
|
||||||
EngFreeMem(Points);
|
EngFreeMem(Points);
|
||||||
DC_vFinishBlit(dc, NULL);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -298,6 +295,8 @@ IntGdiPolyline(DC *dc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DC_vFinishBlit(dc, NULL);
|
||||||
|
|
||||||
return Ret;
|
return Ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -409,6 +408,9 @@ NtGdiLineTo(HDC hDC,
|
||||||
|
|
||||||
DC_vPrepareDCsForBlit(dc, rcLockRect, NULL, rcLockRect);
|
DC_vPrepareDCsForBlit(dc, rcLockRect, NULL, rcLockRect);
|
||||||
|
|
||||||
|
if (dc->pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
|
DC_vUpdateLineBrush(dc);
|
||||||
|
|
||||||
Ret = IntGdiLineTo(dc, XEnd, YEnd);
|
Ret = IntGdiLineTo(dc, XEnd, YEnd);
|
||||||
|
|
||||||
DC_vFinishBlit(dc, NULL);
|
DC_vFinishBlit(dc, NULL);
|
||||||
|
|
|
@ -2291,6 +2291,9 @@ NtGdiFillPath(HDC hDC)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
||||||
|
NULL, dc->rosdc.CombinedClip->rclBounds);
|
||||||
|
|
||||||
pdcattr = dc->pdcattr;
|
pdcattr = dc->pdcattr;
|
||||||
|
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
|
@ -2299,9 +2302,6 @@ NtGdiFillPath(HDC hDC)
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
||||||
DC_vUpdateFillBrush(dc);
|
DC_vUpdateFillBrush(dc);
|
||||||
|
|
||||||
DC_vPrepareDCsForBlit(dc, dc->rosdc.CombinedClip->rclBounds,
|
|
||||||
NULL, dc->rosdc.CombinedClip->rclBounds);
|
|
||||||
|
|
||||||
ret = PATH_FillPath( dc, pPath );
|
ret = PATH_FillPath( dc, pPath );
|
||||||
if ( ret )
|
if ( ret )
|
||||||
{
|
{
|
||||||
|
@ -2573,6 +2573,9 @@ NtGdiStrokeAndFillPath(HDC hDC)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DC_vPrepareDCsForBlit(pDc, pDc->rosdc.CombinedClip->rclBounds,
|
||||||
|
NULL, pDc->rosdc.CombinedClip->rclBounds);
|
||||||
|
|
||||||
pdcattr = pDc->pdcattr;
|
pdcattr = pDc->pdcattr;
|
||||||
|
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
|
||||||
|
@ -2581,9 +2584,6 @@ NtGdiStrokeAndFillPath(HDC hDC)
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
DC_vUpdateLineBrush(pDc);
|
DC_vUpdateLineBrush(pDc);
|
||||||
|
|
||||||
DC_vPrepareDCsForBlit(pDc, pDc->rosdc.CombinedClip->rclBounds,
|
|
||||||
NULL, pDc->rosdc.CombinedClip->rclBounds);
|
|
||||||
|
|
||||||
bRet = PATH_FillPath(pDc, pPath);
|
bRet = PATH_FillPath(pDc, pPath);
|
||||||
if (bRet) bRet = PATH_StrokePath(pDc, pPath);
|
if (bRet) bRet = PATH_StrokePath(pDc, pPath);
|
||||||
if (bRet) PATH_EmptyPath(pPath);
|
if (bRet) PATH_EmptyPath(pPath);
|
||||||
|
@ -2617,14 +2617,14 @@ NtGdiStrokePath(HDC hDC)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DC_vPrepareDCsForBlit(pDc, pDc->rosdc.CombinedClip->rclBounds,
|
||||||
|
NULL, pDc->rosdc.CombinedClip->rclBounds);
|
||||||
|
|
||||||
pdcattr = pDc->pdcattr;
|
pdcattr = pDc->pdcattr;
|
||||||
|
|
||||||
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
|
||||||
DC_vUpdateLineBrush(pDc);
|
DC_vUpdateLineBrush(pDc);
|
||||||
|
|
||||||
DC_vPrepareDCsForBlit(pDc, pDc->rosdc.CombinedClip->rclBounds,
|
|
||||||
NULL, pDc->rosdc.CombinedClip->rclBounds);
|
|
||||||
|
|
||||||
bRet = PATH_StrokePath(pDc, pPath);
|
bRet = PATH_StrokePath(pDc, pPath);
|
||||||
|
|
||||||
DC_vFinishBlit(pDc, NULL);
|
DC_vFinishBlit(pDc, NULL);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue