mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 23:06:00 +00:00
[GDI32]
Revert r50519 and r50519 svn path=/trunk/; revision=50931
This commit is contained in:
parent
62de69219a
commit
04e49a00e3
1 changed files with 16 additions and 58 deletions
|
@ -410,35 +410,6 @@ CreateCompatibleBitmap(
|
||||||
return CreateDIBSection(hDC, (CONST BITMAPINFO *)&dibs.dsBmih, 0, NULL, NULL, 0);
|
return CreateDIBSection(hDC, (CONST BITMAPINFO *)&dibs.dsBmih, 0, NULL, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
ConvertBackBitmapInfo(PBITMAPINFO pbmi, PBITMAPINFO pbmiConverted)
|
|
||||||
{
|
|
||||||
INT i;
|
|
||||||
|
|
||||||
/* Check if we converted from PBITMAPCOREINFO */
|
|
||||||
if (pbmiConverted != pbmi)
|
|
||||||
{
|
|
||||||
PBITMAPCOREINFO pbci = (PBITMAPCOREINFO)pbmi;
|
|
||||||
|
|
||||||
/* Convert back header */
|
|
||||||
pbci->bmciHeader.bcSize = sizeof(BITMAPCOREHEADER);
|
|
||||||
pbci->bmciHeader.bcWidth = pbmiConverted->bmiHeader.biWidth;
|
|
||||||
pbci->bmciHeader.bcHeight = pbmiConverted->bmiHeader.biHeight;
|
|
||||||
pbci->bmciHeader.bcPlanes = 1;
|
|
||||||
pbci->bmciHeader.bcBitCount = pbmiConverted->bmiHeader.biBitCount;
|
|
||||||
|
|
||||||
/* Convert back colors */
|
|
||||||
for (i = 0; i < pbmiConverted->bmiHeader.biClrUsed; i++)
|
|
||||||
{
|
|
||||||
pbci->bmciColors[i].rgbtRed = pbmiConverted->bmiColors[i].rgbRed;
|
|
||||||
pbci->bmciColors[i].rgbtGreen = pbmiConverted->bmiColors[i].rgbGreen;
|
|
||||||
pbci->bmciColors[i].rgbtBlue = pbmiConverted->bmiColors[i].rgbBlue;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Free memory */
|
|
||||||
RtlFreeHeap(RtlGetProcessHeap(), 0, pbmiConverted);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
INT
|
INT
|
||||||
WINAPI
|
WINAPI
|
||||||
|
@ -451,9 +422,8 @@ GetDIBits(
|
||||||
LPBITMAPINFO lpbmi,
|
LPBITMAPINFO lpbmi,
|
||||||
UINT uUsage)
|
UINT uUsage)
|
||||||
{
|
{
|
||||||
PBITMAPINFO pbmiConverted;
|
UINT cjBmpScanSize;
|
||||||
UINT cjBmpScanSize, cjInfoSize;
|
UINT cjInfoSize;
|
||||||
INT iResult;
|
|
||||||
|
|
||||||
if (!hDC || !GdiIsHandleValid((HGDIOBJ)hDC) || !lpbmi)
|
if (!hDC || !GdiIsHandleValid((HGDIOBJ)hDC) || !lpbmi)
|
||||||
{
|
{
|
||||||
|
@ -461,22 +431,15 @@ GetDIBits(
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert BITMAPINFO to a proper format */
|
|
||||||
pbmiConverted = ConvertBitmapInfo(lpbmi, uUsage, &cjInfoSize, FALSE);
|
|
||||||
if (!pbmiConverted)
|
|
||||||
{
|
|
||||||
GdiSetLastError(ERROR_INVALID_PARAMETER);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
cjBmpScanSize = DIB_BitmapMaxBitsSize(lpbmi, cScanLines);
|
cjBmpScanSize = DIB_BitmapMaxBitsSize(lpbmi, cScanLines);
|
||||||
|
cjInfoSize = DIB_BitmapInfoSize(lpbmi, uUsage);
|
||||||
|
|
||||||
if (lpvBits)
|
if ( lpvBits )
|
||||||
{
|
{
|
||||||
if (lpbmi->bmiHeader.biSize >= sizeof(BITMAPINFOHEADER))
|
if ( lpbmi->bmiHeader.biSize >= sizeof(BITMAPINFOHEADER) )
|
||||||
{
|
{
|
||||||
if (lpbmi->bmiHeader.biCompression == BI_JPEG ||
|
if ( lpbmi->bmiHeader.biCompression == BI_JPEG ||
|
||||||
lpbmi->bmiHeader.biCompression == BI_PNG)
|
lpbmi->bmiHeader.biCompression == BI_PNG )
|
||||||
{
|
{
|
||||||
SetLastError(ERROR_INVALID_PARAMETER);
|
SetLastError(ERROR_INVALID_PARAMETER);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -484,22 +447,17 @@ GetDIBits(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
iResult = NtGdiGetDIBitsInternal(hDC,
|
return NtGdiGetDIBitsInternal(hDC,
|
||||||
hbmp,
|
hbmp,
|
||||||
uStartScan,
|
uStartScan,
|
||||||
cScanLines,
|
cScanLines,
|
||||||
lpvBits,
|
lpvBits,
|
||||||
pbmiConverted,
|
lpbmi,
|
||||||
uUsage,
|
uUsage,
|
||||||
cjBmpScanSize,
|
cjBmpScanSize,
|
||||||
cjInfoSize);
|
cjInfoSize);
|
||||||
|
|
||||||
ConvertBackBitmapInfo(lpbmi, pbmiConverted);
|
|
||||||
|
|
||||||
return iResult;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue