summaryrefslogtreecommitdiff
path: root/xfa/fxfa/cxfa_imagerenderer.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-01-17 15:28:07 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-01-17 15:28:07 +0000
commit7577d5ccc34a6ab8d12d20766173338cb3466fb6 (patch)
treef6728d763bbc465941e50d7798e6672a409829c1 /xfa/fxfa/cxfa_imagerenderer.cpp
parent1ab9b926b3c76e1cfc763b1dc8df342a5d3225d9 (diff)
downloadpdfium-7577d5ccc34a6ab8d12d20766173338cb3466fb6.tar.xz
Remove transparency flag from CompositeDIBitmap
The transparency flag was always false, this CL removes the flag and any code as needed. Change-Id: Ia4aecd7919b17c446c1b59361042e6a7444064af Reviewed-on: https://pdfium-review.googlesource.com/23056 Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'xfa/fxfa/cxfa_imagerenderer.cpp')
-rw-r--r--xfa/fxfa/cxfa_imagerenderer.cpp60
1 files changed, 12 insertions, 48 deletions
diff --git a/xfa/fxfa/cxfa_imagerenderer.cpp b/xfa/fxfa/cxfa_imagerenderer.cpp
index 0c6a44edcb..dfa45f07d7 100644
--- a/xfa/fxfa/cxfa_imagerenderer.cpp
+++ b/xfa/fxfa/cxfa_imagerenderer.cpp
@@ -6,7 +6,6 @@
#include "xfa/fxfa/cxfa_imagerenderer.h"
-#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
#include "core/fxge/cfx_renderdevice.h"
#include "core/fxge/dib/cfx_dibsource.h"
#include "core/fxge/dib/cfx_imagerenderer.h"
@@ -88,9 +87,9 @@ bool CXFA_ImageRenderer::Start() {
dest_rect.right - image_rect.left, dest_rect.bottom - image_rect.top);
RetainPtr<CFX_DIBitmap> pStretched =
m_pDIBSource->StretchTo(dest_width, dest_height, m_Flags, &dest_clip);
- if (pStretched) {
- CompositeDIBitmap(pStretched, dest_rect.left, dest_rect.top, false);
- }
+ if (pStretched)
+ CompositeDIBitmap(pStretched, dest_rect.left, dest_rect.top);
+
return false;
}
@@ -122,76 +121,41 @@ bool CXFA_ImageRenderer::Continue() {
void CXFA_ImageRenderer::CompositeDIBitmap(
const RetainPtr<CFX_DIBitmap>& pDIBitmap,
int left,
- int top,
- int iTransparency) {
+ int top) {
if (!pDIBitmap)
return;
- bool bIsolated = !!(iTransparency & PDFTRANS_ISOLATED);
- bool bGroup = !!(iTransparency & PDFTRANS_GROUP);
if (!pDIBitmap->IsAlphaMask()) {
if (m_pDevice->SetDIBits(pDIBitmap, left, top))
return;
- } else {
- uint32_t fill_argb = 0;
- if (m_pDevice->SetBitMask(pDIBitmap, left, top, fill_argb))
- return;
+ } else if (m_pDevice->SetBitMask(pDIBitmap, left, top, 0)) {
+ return;
}
bool bGetBackGround = ((m_pDevice->GetRenderCaps() & FXRC_ALPHA_OUTPUT)) ||
(!(m_pDevice->GetRenderCaps() & FXRC_ALPHA_OUTPUT) &&
(m_pDevice->GetRenderCaps() & FXRC_GET_BITS));
if (bGetBackGround) {
- if (bIsolated || !bGroup) {
- if (pDIBitmap->IsAlphaMask())
- return;
+ if (pDIBitmap->IsAlphaMask())
+ return;
- m_pDevice->SetDIBitsWithBlend(pDIBitmap, left, top, FXDIB_BLEND_NORMAL);
- } else {
- FX_RECT rect(left, top, left + pDIBitmap->GetWidth(),
- top + pDIBitmap->GetHeight());
- rect.Intersect(m_pDevice->GetClipBox());
- RetainPtr<CFX_DIBitmap> pClone;
- if (m_pDevice->GetBackDrop() && m_pDevice->GetBitmap()) {
- pClone = m_pDevice->GetBackDrop()->Clone(&rect);
- RetainPtr<CFX_DIBitmap> pForeBitmap = m_pDevice->GetBitmap();
- pClone->CompositeBitmap(0, 0, pClone->GetWidth(), pClone->GetHeight(),
- pForeBitmap, rect.left, rect.top);
- left = left >= 0 ? 0 : left;
- top = top >= 0 ? 0 : top;
- if (!pDIBitmap->IsAlphaMask())
- pClone->CompositeBitmap(0, 0, pClone->GetWidth(), pClone->GetHeight(),
- pDIBitmap, left, top, FXDIB_BLEND_NORMAL);
- else
- pClone->CompositeMask(0, 0, pClone->GetWidth(), pClone->GetHeight(),
- pDIBitmap, 0, left, top, FXDIB_BLEND_NORMAL);
- } else {
- pClone = pDIBitmap;
- }
- if (m_pDevice->GetBackDrop()) {
- m_pDevice->SetDIBits(pClone, rect.left, rect.top);
- } else {
- if (pDIBitmap->IsAlphaMask())
- return;
- m_pDevice->SetDIBitsWithBlend(pDIBitmap, rect.left, rect.top,
- FXDIB_BLEND_NORMAL);
- }
- }
+ m_pDevice->SetDIBitsWithBlend(pDIBitmap, left, top, FXDIB_BLEND_NORMAL);
return;
}
if (!pDIBitmap->HasAlpha() ||
(m_pDevice->GetRenderCaps() & FXRC_ALPHA_IMAGE)) {
return;
}
+
RetainPtr<CFX_DIBitmap> pCloneConvert = pDIBitmap->CloneConvert(FXDIB_Rgb);
if (!pCloneConvert)
return;
CXFA_ImageRenderer imageRender(m_pDevice, pCloneConvert, &m_ImageMatrix,
m_Flags);
- if (!imageRender.Start()) {
+ if (!imageRender.Start())
return;
- }
+
while (imageRender.Continue())
continue;
}