little cleanup. not part of build

This commit is contained in:
pavlov%netscape.com 2001-12-07 21:00:30 +00:00
Родитель ce448777ad
Коммит 20a449113a
2 изменённых файлов: 27 добавлений и 20 удалений

Просмотреть файл

@ -45,4 +45,5 @@ interface gfxIImageFrameWin : nsISupports
void getDDB(out HBITMAP aBitmap, out HBITMAP aMask);
void getAlphaStuff(out HBITMAP aBitmap, out LPBITMAPINFOHEADER aInfoHeader, out voidPtr aBits);
void getBitmap(in HDC aHDC, out HBITMAP aBitmap, out HBITMAP aMask, out gfx_depth aAlphaDepth);
readonly attribute gfx_depth alphaDepth;
};

Просмотреть файл

@ -275,6 +275,10 @@ NS_IMETHODIMP gfxImageFrameWin::GetImageData(PRUint8 **aData, PRUint32 *length)
NS_ASSERTION(mMutable, "trying to get data on a mutable frame");
if (gOSVerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) {
::GdiFlush();
}
*aData = (PRUint8*)mImage.mDIBBits;
*length = mImageRowSpan * mSize.height;
@ -313,19 +317,6 @@ NS_IMETHODIMP gfxImageFrameWin::SetImageData(const PRUint8 *aData, PRUint32 aLen
memcpy(imgData + newOffset, aData, aLength);
/*
PRInt32 row = (aOffset / row_stride);
PRInt32 decY2 = mImage->GetDecodedY2();
if (decY2 != mSize.height) {
mImage->SetDecodedRect(0, 0, mSize.width, row + 1);
}
PRInt32 numnewrows = (aLength / row_stride);
nsRect r(0, row, mSize.width, numnewrows);
mImage->ImageUpdated(nsnull, nsImageUpdateFlags_kBitsChanged, &r);
*/
return NS_OK;
}
@ -375,6 +366,10 @@ NS_IMETHODIMP gfxImageFrameWin::GetAlphaData(PRUint8 **aData, PRUint32 *length)
NS_ASSERTION(mMutable, "trying to get data on a mutable frame");
if (gOSVerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT) {
::GdiFlush();
}
*aData = (PRUint8*)mAlphaImage.mDIBBits;
*length = mAlphaRowSpan * mSize.height;
@ -442,17 +437,22 @@ NS_IMETHODIMP gfxImageFrameWin::UnlockAlphaData()
/* void drawTo */
NS_IMETHODIMP gfxImageFrameWin::DrawTo(gfxIImageFrame *aDstFrame, nscoord aDX, nscoord aDY, nscoord aDWidth, nscoord aDHeight)
{
// Note: This function does not have to take care of compositing the alpha bits together...
// it will be done externally.
if (!mInitalized)
return NS_ERROR_NOT_INITIALIZED;
gfxImageFrameWin *dstFrameWin = NS_STATIC_CAST(gfxImageFrameWin*, aDstFrame);
if (!dstFrameWin->mInitalized)
return NS_ERROR_NOT_INITIALIZED;
// Create a memory DC that is compatible with the screen
HDC dstMemDC = ::CreateCompatibleDC(nsnull);
gfxImageFrameWin *imgWin = NS_STATIC_CAST(gfxImageFrameWin*, aDstFrame);
HBITMAP dstImage = imgWin->mImage.mDDB ? imgWin->mImage.mDDB : imgWin->mImage.mDIB;
HBITMAP oldDstBits = (HBITMAP)::SelectObject(dstMemDC, dstImage);
HBITMAP dstBitmap = dstFrameWin->mImage.mDIB;
HBITMAP oldBitmap = (HBITMAP)::SelectObject(dstMemDC, dstBitmap);
DWORD rop = SRCCOPY;
@ -465,9 +465,9 @@ NS_IMETHODIMP gfxImageFrameWin::DrawTo(gfxIImageFrame *aDstFrame, nscoord aDX, n
::StretchDIBits(dstMemDC, aDX, aDY, aDWidth, aDHeight, 0, 0, mSize.width, mSize.height, mImage.mDIBBits,
(LPBITMAPINFO)mImage.mBMI, DIB_RGB_COLORS, rop);
::SelectObject(dstMemDC, oldDstBits);
::SelectObject(dstMemDC, oldBitmap);
::DeleteDC(dstMemDC);
return NS_OK;
}
@ -679,3 +679,9 @@ NS_IMETHODIMP gfxImageFrameWin::GetAlphaStuff(HBITMAP *aBitmap, LPBITMAPINFOHEAD
return NS_OK;
}
NS_IMETHODIMP gfxImageFrameWin::GetAlphaDepth(gfx_depth *aDepth)
{
*aDepth = mAlphaDepth;
return NS_OK;
}