Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Unified Diff: fpdfsdk/src/fpdfview.cpp

Issue 1551563002: Fix partial information printed with blank window covering the center (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: fpdfsdk/src/fpdfview.cpp
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
index 1e1eb2a845ca5cb940c38dc66f4449f9f793dda6..041adda21f8e4fccf18d9d309567e1e1b3f846fa 100644
--- a/fpdfsdk/src/fpdfview.cpp
+++ b/fpdfsdk/src/fpdfview.cpp
@@ -336,10 +336,10 @@ DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc,
pPage->SetPrivateData((void*)1, pContext, DropContext);
#ifndef _WIN32_WCE
- CFX_DIBitmap* pBitmap = NULL;
- FX_BOOL bBackgroundAlphaNeeded = FALSE;
- bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded();
- if (bBackgroundAlphaNeeded) {
+ CFX_DIBitmap* pBitmap = nullptr;
+ FX_BOOL bBackgroundAlphaNeeded = pPage->BackgroundAlphaNeeded();
+ FX_BOOL bHasImageMask = pPage->HasImageMask();
+ if (bBackgroundAlphaNeeded || bHasImageMask) {
pBitmap = new CFX_DIBitmap;
pBitmap->Create(size_x, size_y, FXDIB_Argb);
pBitmap->Clear(0x00ffffff);
@@ -350,13 +350,14 @@ DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc,
pContext->m_pDevice = new CFX_FxgeDevice;
((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)pBitmap);
#endif
- } else
+ } else {
pContext->m_pDevice = new CFX_WindowsDevice(dc);
+ }
FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y,
rotate, flags, TRUE, NULL);
- if (bBackgroundAlphaNeeded) {
+ if (bBackgroundAlphaNeeded || bHasImageMask) {
if (pBitmap) {
CFX_WindowsDevice WinDC(dc);
@@ -369,8 +370,9 @@ DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc,
FXDIB_BLEND_NORMAL, NULL, FALSE, NULL);
WinDC.StretchDIBits(pDst, 0, 0, size_x, size_y);
delete pDst;
- } else
+ } else {
WinDC.SetDIBits(pBitmap, 0, 0);
+ }
}
}
#else
@@ -471,10 +473,9 @@ DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc,
#endif
#endif
- if (bBackgroundAlphaNeeded) {
+ if (bBackgroundAlphaNeeded || bHasImageMask)
delete pBitmap;
- pBitmap = NULL;
- }
+
delete pContext;
pPage->RemovePrivateData((void*)1);
}
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698