mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
[WIN32K]
Always update surface flags in EngModifySurface svn path=/trunk/; revision=66157
This commit is contained in:
parent
ec76f48f58
commit
910b673508
1 changed files with 15 additions and 13 deletions
|
@ -434,18 +434,20 @@ EngModifySurface(
|
||||||
_In_ FLONG flHooks,
|
_In_ FLONG flHooks,
|
||||||
_In_ FLONG flSurface,
|
_In_ FLONG flSurface,
|
||||||
_In_ DHSURF dhsurf,
|
_In_ DHSURF dhsurf,
|
||||||
_In_ VOID *pvScan0,
|
_In_ PVOID pvScan0,
|
||||||
_In_ LONG lDelta,
|
_In_ LONG lDelta,
|
||||||
_Reserved_ VOID *pvReserved)
|
_Reserved_ PVOID pvReserved)
|
||||||
{
|
{
|
||||||
SURFOBJ *pso;
|
SURFOBJ *pso;
|
||||||
PSURFACE psurf;
|
PSURFACE psurf;
|
||||||
PDEVOBJ* ppdev;
|
PDEVOBJ* ppdev;
|
||||||
PPALETTE ppal;
|
PPALETTE ppal;
|
||||||
|
|
||||||
|
/* Lock the surface */
|
||||||
psurf = SURFACE_ShareLockSurface(hsurf);
|
psurf = SURFACE_ShareLockSurface(hsurf);
|
||||||
if (psurf == NULL)
|
if (psurf == NULL)
|
||||||
{
|
{
|
||||||
|
DPRINT1("Failed to reference surface %p\n", hsurf);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -466,6 +468,16 @@ EngModifySurface(
|
||||||
SURFACE_vSetPalette(psurf, ppal);
|
SURFACE_vSetPalette(psurf, ppal);
|
||||||
PALETTE_ShareUnlockPalette(ppal);
|
PALETTE_ShareUnlockPalette(ppal);
|
||||||
|
|
||||||
|
/* Update surface flags */
|
||||||
|
if (flSurface & MS_NOTSYSTEMMEMORY)
|
||||||
|
pso->fjBitmap |= BMF_NOTSYSMEM;
|
||||||
|
else
|
||||||
|
pso->fjBitmap &= ~BMF_NOTSYSMEM;
|
||||||
|
if (flSurface & MS_SHAREDACCESS)
|
||||||
|
psurf->flags |= SHAREACCESS_SURFACE;
|
||||||
|
else
|
||||||
|
psurf->flags &= ~SHAREACCESS_SURFACE;
|
||||||
|
|
||||||
/* Check if the caller passed bitmap bits */
|
/* Check if the caller passed bitmap bits */
|
||||||
if ((pvScan0 != NULL) && (lDelta != 0))
|
if ((pvScan0 != NULL) && (lDelta != 0))
|
||||||
{
|
{
|
||||||
|
@ -491,16 +503,6 @@ EngModifySurface(
|
||||||
pso->pvBits = (PCHAR)pso->pvScan0 - pso->cjBits - lDelta;
|
pso->pvBits = (PCHAR)pso->pvScan0 - pso->cjBits - lDelta;
|
||||||
pso->fjBitmap &= ~BMF_TOPDOWN;
|
pso->fjBitmap &= ~BMF_TOPDOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update surface flags */
|
|
||||||
if (flSurface & MS_NOTSYSTEMMEMORY)
|
|
||||||
pso->fjBitmap |= BMF_NOTSYSMEM;
|
|
||||||
else
|
|
||||||
pso->fjBitmap &= ~BMF_NOTSYSMEM;
|
|
||||||
if (flSurface & MS_SHAREDACCESS)
|
|
||||||
psurf->flags |= SHAREACCESS_SURFACE;
|
|
||||||
else
|
|
||||||
psurf->flags &= ~SHAREACCESS_SURFACE;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -530,7 +532,7 @@ EngDeleteSurface(
|
||||||
psurf = SURFACE_ShareLockSurface(hsurf);
|
psurf = SURFACE_ShareLockSurface(hsurf);
|
||||||
if (!psurf)
|
if (!psurf)
|
||||||
{
|
{
|
||||||
DPRINT1("Could not reference surface to delete\n");
|
DPRINT1("Could not reference surface %p to delete\n", hsurf);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue