mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
[WIN32K]
- Use shared locks for surfaces and palettes svn path=/trunk/; revision=51392
This commit is contained in:
@@ -66,7 +66,7 @@ BltMask(SURFOBJ* psoDest,
|
||||
pebo = CONTAINING_RECORD(pbo, EBRUSHOBJ, BrushObject);
|
||||
|
||||
hbmPattern = EBRUSHOBJ_pvGetEngBrush(pebo);
|
||||
psurfPattern = SURFACE_LockSurface(hbmPattern);
|
||||
psurfPattern = SURFACE_ShareLockSurface(hbmPattern);
|
||||
if (psurfPattern != NULL)
|
||||
{
|
||||
psoPattern = &psurfPattern->SurfObj;
|
||||
@@ -168,7 +168,7 @@ BltMask(SURFOBJ* psoDest,
|
||||
}
|
||||
|
||||
if (psurfPattern)
|
||||
SURFACE_UnlockSurface(psurfPattern);
|
||||
SURFACE_ShareUnlockSurface(psurfPattern);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -230,7 +230,7 @@ CallDibBitBlt(SURFOBJ* OutputObj,
|
||||
{
|
||||
GdiBrush = CONTAINING_RECORD(pbo, EBRUSHOBJ, BrushObject);
|
||||
hbmPattern = EBRUSHOBJ_pvGetEngBrush(GdiBrush);
|
||||
psurfPattern = SURFACE_LockSurface(hbmPattern);
|
||||
psurfPattern = SURFACE_ShareLockSurface(hbmPattern);
|
||||
if (psurfPattern)
|
||||
{
|
||||
BltInfo.PatternSurface = &psurfPattern->SurfObj;
|
||||
@@ -250,7 +250,7 @@ CallDibBitBlt(SURFOBJ* OutputObj,
|
||||
/* Pattern brush */
|
||||
if (psurfPattern)
|
||||
{
|
||||
SURFACE_UnlockSurface(psurfPattern);
|
||||
SURFACE_ShareUnlockSurface(psurfPattern);
|
||||
}
|
||||
|
||||
return Result;
|
||||
|
||||
@@ -55,7 +55,7 @@ CallDibStretchBlt(SURFOBJ* psoDest,
|
||||
{
|
||||
GdiBrush = CONTAINING_RECORD(pbo, EBRUSHOBJ, BrushObject);
|
||||
hbmPattern = EBRUSHOBJ_pvGetEngBrush(GdiBrush);
|
||||
psurfPattern = SURFACE_LockSurface(hbmPattern);
|
||||
psurfPattern = SURFACE_ShareLockSurface(hbmPattern);
|
||||
if (psurfPattern)
|
||||
{
|
||||
PatternSurface = &psurfPattern->SurfObj;
|
||||
@@ -78,7 +78,7 @@ CallDibStretchBlt(SURFOBJ* psoDest,
|
||||
/* Pattern brush */
|
||||
if (psurfPattern)
|
||||
{
|
||||
SURFACE_UnlockSurface(psurfPattern);
|
||||
SURFACE_ShareUnlockSurface(psurfPattern);
|
||||
}
|
||||
|
||||
return bResult;
|
||||
|
||||
@@ -984,11 +984,11 @@ NtUserSetClipboardData(UINT uFormat, HANDLE hMem, DWORD size)
|
||||
hdc = UserGetDCEx(NULL, NULL, DCX_USESTYLE);
|
||||
|
||||
|
||||
psurf = SURFACE_LockSurface(hMem);
|
||||
psurf = SURFACE_ShareLockSurface(hMem);
|
||||
BITMAP_GetObject(psurf, sizeof(BITMAP), (PVOID)&bm);
|
||||
if(psurf)
|
||||
{
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
}
|
||||
|
||||
bi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
|
||||
@@ -508,11 +508,11 @@ NtUserGetIconInfo(
|
||||
{
|
||||
PSURFACE psurfBmp;
|
||||
|
||||
psurfBmp = SURFACE_LockSurface(CurIcon->IconInfo.hbmColor);
|
||||
psurfBmp = SURFACE_ShareLockSurface(CurIcon->IconInfo.hbmColor);
|
||||
if (psurfBmp)
|
||||
{
|
||||
colorBpp = BitsPerFormat(psurfBmp->SurfObj.iBitmapFormat);
|
||||
SURFACE_UnlockSurface(psurfBmp);
|
||||
SURFACE_ShareUnlockSurface(psurfBmp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1197,7 +1197,7 @@ UserDrawIconEx(
|
||||
|
||||
/* In order to correctly display 32 bit icons Windows first scans the image,
|
||||
because information about transparency is not stored in any image's headers */
|
||||
psurfOff = SURFACE_LockSurface(hbmColor);
|
||||
psurfOff = SURFACE_ShareLockSurface(hbmColor);
|
||||
if (psurfOff)
|
||||
{
|
||||
fnSource_GetPixel = DibFunctionsForBitmapFormat[psurfOff->SurfObj.iBitmapFormat].DIB_GetPixel;
|
||||
@@ -1215,7 +1215,7 @@ UserDrawIconEx(
|
||||
break;
|
||||
}
|
||||
}
|
||||
SURFACE_UnlockSurface(psurfOff);
|
||||
SURFACE_ShareUnlockSurface(psurfOff);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1272,7 +1272,7 @@ UserDrawIconEx(
|
||||
goto CleanupAlpha;
|
||||
}
|
||||
|
||||
psurf = SURFACE_LockSurface(hMemBmp);
|
||||
psurf = SURFACE_ShareLockSurface(hMemBmp);
|
||||
if(!psurf)
|
||||
{
|
||||
DPRINT1("SURFACE_LockSurface failed!\n");
|
||||
@@ -1294,7 +1294,7 @@ UserDrawIconEx(
|
||||
}
|
||||
}
|
||||
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
|
||||
hTmpBmp = NtGdiSelectBitmap(hMemDC, hMemBmp);
|
||||
|
||||
|
||||
@@ -634,7 +634,7 @@ SpiSetWallpaper(PVOID pvParam, FLONG fl)
|
||||
}
|
||||
|
||||
/* Try to get the size of the wallpaper */
|
||||
if(!(psurfBmp = SURFACE_LockSurface(hbmp)))
|
||||
if(!(psurfBmp = SURFACE_ShareLockSurface(hbmp)))
|
||||
{
|
||||
GreDeleteObject(hbmp);
|
||||
return 0;
|
||||
@@ -644,7 +644,7 @@ SpiSetWallpaper(PVOID pvParam, FLONG fl)
|
||||
gpwinstaCurrent->cyWallpaper = psurfBmp->SurfObj.sizlBitmap.cy;
|
||||
gpwinstaCurrent->WallpaperMode = wmCenter;
|
||||
|
||||
SURFACE_UnlockSurface(psurfBmp);
|
||||
SURFACE_ShareUnlockSurface(psurfBmp);
|
||||
|
||||
/* Change the bitmap's ownership */
|
||||
GDIOBJ_SetOwnership(hbmp, NULL);
|
||||
@@ -907,7 +907,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
|
||||
|
||||
case SPI_SETWORKAREA:
|
||||
{
|
||||
/*FIXME: we should set the work area of the monitor
|
||||
/*FIXME: we should set the work area of the monitor
|
||||
that contains the specified rectangle*/
|
||||
PMONITOR pmonitor = IntGetPrimaryMonitor();
|
||||
RECT rcWorkArea;
|
||||
|
||||
@@ -270,7 +270,7 @@ IntCreateCompatibleBitmap(
|
||||
1,
|
||||
dibs.dsBm.bmBitsPixel,
|
||||
NULL);
|
||||
psurfBmp = SURFACE_LockSurface(Bmp);
|
||||
psurfBmp = SURFACE_ShareLockSurface(Bmp);
|
||||
ASSERT(psurfBmp);
|
||||
/* Assign palette */
|
||||
psurfBmp->ppal = psurf->ppal;
|
||||
@@ -278,7 +278,7 @@ IntCreateCompatibleBitmap(
|
||||
/* Set flags */
|
||||
psurfBmp->flags = API_BITMAP;
|
||||
psurfBmp->hdc = NULL; // Fixme
|
||||
SURFACE_UnlockSurface(psurfBmp);
|
||||
SURFACE_ShareUnlockSurface(psurfBmp);
|
||||
}
|
||||
else if (Count == sizeof(DIBSECTION))
|
||||
{
|
||||
@@ -316,7 +316,7 @@ IntCreateCompatibleBitmap(
|
||||
return 0;
|
||||
}
|
||||
|
||||
PalGDI = PALETTE_LockPalette(psurf->ppal->BaseObject.hHmgr);
|
||||
PalGDI = PALETTE_ShareLockPalette(psurf->ppal->BaseObject.hHmgr);
|
||||
|
||||
for (Index = 0;
|
||||
Index < 256 && Index < PalGDI->NumColors;
|
||||
@@ -327,7 +327,7 @@ IntCreateCompatibleBitmap(
|
||||
bi->bmiColors[Index].rgbBlue = PalGDI->IndexedColors[Index].peBlue;
|
||||
bi->bmiColors[Index].rgbReserved = 0;
|
||||
}
|
||||
PALETTE_UnlockPalette(PalGDI);
|
||||
PALETTE_ShareUnlockPalette(PalGDI);
|
||||
}
|
||||
|
||||
Bmp = DIB_CreateDIBSection(Dc,
|
||||
@@ -390,7 +390,7 @@ NtGdiGetBitmapDimension(
|
||||
if (hBitmap == NULL)
|
||||
return FALSE;
|
||||
|
||||
psurfBmp = SURFACE_LockSurface(hBitmap);
|
||||
psurfBmp = SURFACE_ShareLockSurface(hBitmap);
|
||||
if (psurfBmp == NULL)
|
||||
{
|
||||
EngSetLastError(ERROR_INVALID_HANDLE);
|
||||
@@ -408,7 +408,7 @@ NtGdiGetBitmapDimension(
|
||||
}
|
||||
_SEH2_END
|
||||
|
||||
SURFACE_UnlockSurface(psurfBmp);
|
||||
SURFACE_ShareUnlockSurface(psurfBmp);
|
||||
|
||||
return Ret;
|
||||
}
|
||||
@@ -496,12 +496,12 @@ NtGdiGetPixel(HDC hDC, INT XPos, INT YPos)
|
||||
NtGdiSelectBitmap(hDCTmp, hBmpOld);
|
||||
|
||||
// our bitmap is no longer selected, so we can access it's stuff...
|
||||
psurf = SURFACE_LockSurface(hBmpTmp);
|
||||
psurf = SURFACE_ShareLockSurface(hBmpTmp);
|
||||
if (psurf)
|
||||
{
|
||||
// Dont you need to convert something here?
|
||||
Result = *(COLORREF*)psurf->SurfObj.pvScan0;
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
}
|
||||
}
|
||||
GreDeleteObject(hBmpTmp);
|
||||
@@ -598,7 +598,7 @@ NtGdiGetBitmapBits(
|
||||
return 0;
|
||||
}
|
||||
|
||||
psurf = SURFACE_LockSurface(hBitmap);
|
||||
psurf = SURFACE_ShareLockSurface(hBitmap);
|
||||
if (!psurf)
|
||||
{
|
||||
EngSetLastError(ERROR_INVALID_HANDLE);
|
||||
@@ -612,7 +612,7 @@ NtGdiGetBitmapBits(
|
||||
/* If the bits vector is null, the function should return the read size */
|
||||
if (pUnsafeBits == NULL)
|
||||
{
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
return bmSize;
|
||||
}
|
||||
|
||||
@@ -632,7 +632,7 @@ NtGdiGetBitmapBits(
|
||||
}
|
||||
_SEH2_END
|
||||
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -652,7 +652,7 @@ NtGdiSetBitmapBits(
|
||||
return 0;
|
||||
}
|
||||
|
||||
psurf = SURFACE_LockSurface(hBitmap);
|
||||
psurf = SURFACE_ShareLockSurface(hBitmap);
|
||||
if (psurf == NULL)
|
||||
{
|
||||
EngSetLastError(ERROR_INVALID_HANDLE);
|
||||
@@ -671,7 +671,7 @@ NtGdiSetBitmapBits(
|
||||
}
|
||||
_SEH2_END
|
||||
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -689,7 +689,7 @@ NtGdiSetBitmapDimension(
|
||||
if (hBitmap == NULL)
|
||||
return FALSE;
|
||||
|
||||
psurf = SURFACE_LockSurface(hBitmap);
|
||||
psurf = SURFACE_ShareLockSurface(hBitmap);
|
||||
if (psurf == NULL)
|
||||
{
|
||||
EngSetLastError(ERROR_INVALID_HANDLE);
|
||||
@@ -714,7 +714,7 @@ NtGdiSetBitmapDimension(
|
||||
psurf->sizlDim.cx = Width;
|
||||
psurf->sizlDim.cy = Height;
|
||||
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
|
||||
return Ret;
|
||||
}
|
||||
@@ -998,11 +998,11 @@ NtGdiGetDCforBitmap(
|
||||
IN HBITMAP hsurf)
|
||||
{
|
||||
HDC hdc = NULL;
|
||||
PSURFACE psurf = SURFACE_LockSurface(hsurf);
|
||||
PSURFACE psurf = SURFACE_ShareLockSurface(hsurf);
|
||||
if (psurf)
|
||||
{
|
||||
hdc = psurf->hdc;
|
||||
SURFACE_UnlockSurface(psurf);
|
||||
SURFACE_ShareUnlockSurface(psurf);
|
||||
}
|
||||
return hdc;
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ IntSetDIBColorTable(
|
||||
return 0;
|
||||
}
|
||||
|
||||
PalGDI = PALETTE_LockPalette(psurf->ppal->BaseObject.hHmgr);
|
||||
PalGDI = PALETTE_ShareLockPalette(psurf->ppal->BaseObject.hHmgr);
|
||||
|
||||
for (Index = StartIndex;
|
||||
Index < StartIndex + Entries && Index < PalGDI->NumColors;
|
||||
@@ -174,7 +174,7 @@ IntSetDIBColorTable(
|
||||
PalGDI->IndexedColors[Index].peGreen = Colors[Index - StartIndex].rgbGreen;
|
||||
PalGDI->IndexedColors[Index].peBlue = Colors[Index - StartIndex].rgbBlue;
|
||||
}
|
||||
PALETTE_UnlockPalette(PalGDI);
|
||||
PALETTE_ShareUnlockPalette(PalGDI);
|
||||
}
|
||||
else
|
||||
Entries = 0;
|
||||
@@ -277,8 +277,8 @@ IntSetDIBits(
|
||||
bmi->bmiHeader.biHeight,
|
||||
bmi->bmiHeader.biBitCount));
|
||||
|
||||
psurfDst = SURFACE_LockSurface(hBitmap);
|
||||
psurfSrc = SURFACE_LockSurface(SourceBitmap);
|
||||
psurfDst = SURFACE_ShareLockSurface(hBitmap);
|
||||
psurfSrc = SURFACE_ShareLockSurface(SourceBitmap);
|
||||
|
||||
if(!(psurfSrc && psurfDst))
|
||||
{
|
||||
@@ -311,11 +311,11 @@ IntSetDIBits(
|
||||
cleanup:
|
||||
if(psurfSrc)
|
||||
{
|
||||
SURFACE_UnlockSurface(psurfSrc);
|
||||
SURFACE_ShareUnlockSurface(psurfSrc);
|
||||
}
|
||||
if(psurfDst)
|
||||
{
|
||||
SURFACE_UnlockSurface(psurfDst);
|
||||
SURFACE_ShareUnlockSurface(psurfDst);
|
||||
}
|
||||
GreDeleteObject(SourceBitmap);
|
||||
|
||||
@@ -766,7 +766,7 @@ NtGdiGetDIBitsInternal(
|
||||
/* For color DDBs in native depth (mono DDBs always have
|
||||
a black/white palette):
|
||||
Generate the color map from the selected palette */
|
||||
PPALETTE pDcPal = PALETTE_LockPalette(pDC->dclevel.hpal);
|
||||
PPALETTE pDcPal = PALETTE_ShareLockPalette(pDC->dclevel.hpal);
|
||||
if(!pDcPal)
|
||||
{
|
||||
ScanLines = 0 ;
|
||||
@@ -786,7 +786,7 @@ NtGdiGetDIBitsInternal(
|
||||
rgbQuads[i].rgbBlue = pDcPal->IndexedColors[i].peBlue;
|
||||
rgbQuads[i].rgbReserved = 0;
|
||||
}
|
||||
PALETTE_UnlockPalette(pDcPal);
|
||||
PALETTE_ShareUnlockPalette(pDcPal);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1548,10 +1548,10 @@ DIB_CreateDIBSection(
|
||||
{
|
||||
if(dc)
|
||||
{
|
||||
PPALETTE pdcPal ;
|
||||
pdcPal = PALETTE_LockPalette(dc->dclevel.hpal);
|
||||
hpal = DIB_MapPaletteColors(pdcPal, bmi);
|
||||
PALETTE_UnlockPalette(pdcPal);
|
||||
PPALETTE ppalDc;
|
||||
ppalDc = PALETTE_ShareLockPalette(dc->dclevel.hpal);
|
||||
hpal = DIB_MapPaletteColors(ppalDc, bmi);
|
||||
PALETTE_ShareUnlockPalette(ppalDc);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -251,7 +251,7 @@ UpdateDeviceGammaRamp( HDEV hPDev )
|
||||
|
||||
if (!(pGDev->flFlags & PDEV_GAMMARAMP_TABLE)) return FALSE;
|
||||
|
||||
palGDI = PALETTE_LockPalette(pGDev->devinfo.hpalDefault);
|
||||
palGDI = PALETTE_ShareLockPalette(pGDev->devinfo.hpalDefault);
|
||||
if(!palGDI) return FALSE;
|
||||
palPtr = (PALOBJ*) palGDI;
|
||||
|
||||
@@ -272,7 +272,7 @@ UpdateDeviceGammaRamp( HDEV hPDev )
|
||||
0,
|
||||
palGDI->NumColors);
|
||||
}
|
||||
PALETTE_UnlockPalette(palGDI);
|
||||
PALETTE_ShareUnlockPalette(palGDI);
|
||||
return Ret;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user