Bug 205893 - use DIBSection instead of DIBitmap. Patch by sring@gmx.net,

r=ere, sr=tor, a=chofmann


git-svn-id: svn://10.0.0.236/trunk@153915 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
tor%cs.brown.edu 2004-03-12 17:11:54 +00:00
parent b4fa944df8
commit 1a09f51855

View File

@ -1465,11 +1465,17 @@ nsImageWin :: Optimize(nsIDeviceContext* aContext)
if (mAlphaDepth == 8) {
CreateImageWithAlphaBits(TheHDC);
} else {
mHBitmap = ::CreateDIBitmap(TheHDC, mBHead, CBM_INIT, mImageBits,
(LPBITMAPINFO)mBHead,
256 == mNumPaletteColors ? DIB_PAL_COLORS
: DIB_RGB_COLORS);
mIsOptimized = (mHBitmap != 0);
LPVOID bits;
mHBitmap = ::CreateDIBSection(TheHDC, (LPBITMAPINFO)mBHead,
256 == mNumPaletteColors ? DIB_PAL_COLORS : DIB_RGB_COLORS,
&bits, NULL, 0);
if (mHBitmap) {
memcpy(bits, mImageBits, mSizeImage);
mIsOptimized = PR_TRUE;
} else {
mIsOptimized = PR_FALSE;
}
}
if (mIsOptimized)
CleanUpDIB();