diff options
Diffstat (limited to 'xfa/fxfa')
-rw-r--r-- | xfa/fxfa/cxfa_ffdoc.h | 6 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_imagerenderer.cpp | 31 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_imagerenderer.h | 6 | ||||
-rw-r--r-- | xfa/fxfa/fxfa.h | 2 |
4 files changed, 21 insertions, 24 deletions
diff --git a/xfa/fxfa/cxfa_ffdoc.h b/xfa/fxfa/cxfa_ffdoc.h index 88becb4071..50888b8bde 100644 --- a/xfa/fxfa/cxfa_ffdoc.h +++ b/xfa/fxfa/cxfa_ffdoc.h @@ -29,12 +29,12 @@ class CXFA_FFDocView; struct FX_IMAGEDIB_AND_DPI { FX_IMAGEDIB_AND_DPI(); FX_IMAGEDIB_AND_DPI(const FX_IMAGEDIB_AND_DPI& that); - FX_IMAGEDIB_AND_DPI(const RetainPtr<CFX_DIBSource>& pDib, + FX_IMAGEDIB_AND_DPI(const RetainPtr<CFX_DIBBase>& pDib, int32_t xDpi, int32_t yDpi); ~FX_IMAGEDIB_AND_DPI(); - RetainPtr<CFX_DIBSource> pDibSource; + RetainPtr<CFX_DIBBase> pDibSource; int32_t iImageXDpi; int32_t iImageYDpi; }; @@ -44,7 +44,7 @@ inline FX_IMAGEDIB_AND_DPI::FX_IMAGEDIB_AND_DPI( const FX_IMAGEDIB_AND_DPI& that) = default; inline FX_IMAGEDIB_AND_DPI::FX_IMAGEDIB_AND_DPI( - const RetainPtr<CFX_DIBSource>& pDib, + const RetainPtr<CFX_DIBBase>& pDib, int32_t xDpi, int32_t yDpi) : pDibSource(pDib), iImageXDpi(xDpi), iImageYDpi(yDpi) {} diff --git a/xfa/fxfa/cxfa_imagerenderer.cpp b/xfa/fxfa/cxfa_imagerenderer.cpp index f90ea64a93..9f65eaa07c 100644 --- a/xfa/fxfa/cxfa_imagerenderer.cpp +++ b/xfa/fxfa/cxfa_imagerenderer.cpp @@ -7,23 +7,20 @@ #include "xfa/fxfa/cxfa_imagerenderer.h" #include "core/fxge/cfx_renderdevice.h" -#include "core/fxge/dib/cfx_dibsource.h" +#include "core/fxge/dib/cfx_dibbase.h" #include "core/fxge/dib/cfx_imagerenderer.h" #include "core/fxge/dib/cfx_imagetransformer.h" #include "third_party/base/ptr_util.h" -CXFA_ImageRenderer::CXFA_ImageRenderer( - CFX_RenderDevice* pDevice, - const RetainPtr<CFX_DIBSource>& pDIBSource, - const CFX_Matrix* pImage2Device) - : m_pDevice(pDevice), - m_ImageMatrix(*pImage2Device), - m_pDIBSource(pDIBSource) {} +CXFA_ImageRenderer::CXFA_ImageRenderer(CFX_RenderDevice* pDevice, + const RetainPtr<CFX_DIBBase>& pDIBBase, + const CFX_Matrix* pImage2Device) + : m_pDevice(pDevice), m_ImageMatrix(*pImage2Device), m_pDIBBase(pDIBBase) {} CXFA_ImageRenderer::~CXFA_ImageRenderer() {} bool CXFA_ImageRenderer::Start() { - if (m_pDevice->StartDIBitsWithBlend(m_pDIBSource, 255, 0, &m_ImageMatrix, + if (m_pDevice->StartDIBitsWithBlend(m_pDIBBase, 255, 0, &m_ImageMatrix, FXDIB_INTERPOL, &m_DeviceHandle, FXDIB_BLEND_NORMAL)) { if (m_DeviceHandle) { @@ -38,11 +35,11 @@ bool CXFA_ImageRenderer::Start() { int dest_height = image_rect.Height(); if ((fabs(m_ImageMatrix.b) >= 0.5f || m_ImageMatrix.a == 0) || (fabs(m_ImageMatrix.c) >= 0.5f || m_ImageMatrix.d == 0)) { - RetainPtr<CFX_DIBSource> pDib = m_pDIBSource; - if (m_pDIBSource->HasAlpha() && + RetainPtr<CFX_DIBBase> pDib = m_pDIBBase; + if (m_pDIBBase->HasAlpha() && !(m_pDevice->GetRenderCaps() & FXRC_ALPHA_IMAGE) && !(m_pDevice->GetRenderCaps() & FXRC_GET_BITS)) { - m_pCloneConvert = m_pDIBSource->CloneConvert(FXDIB_Rgb); + m_pCloneConvert = m_pDIBBase->CloneConvert(FXDIB_Rgb); if (!m_pCloneConvert) return false; @@ -62,15 +59,15 @@ bool CXFA_ImageRenderer::Start() { int dest_left, dest_top; dest_left = dest_width > 0 ? image_rect.left : image_rect.right; dest_top = dest_height > 0 ? image_rect.top : image_rect.bottom; - if (m_pDIBSource->IsOpaqueImage()) { + if (m_pDIBBase->IsOpaqueImage()) { if (m_pDevice->StretchDIBitsWithFlagsAndBlend( - m_pDIBSource, dest_left, dest_top, dest_width, dest_height, + m_pDIBBase, dest_left, dest_top, dest_width, dest_height, FXDIB_INTERPOL, FXDIB_BLEND_NORMAL)) { return false; } } - if (m_pDIBSource->IsAlphaMask()) { - if (m_pDevice->StretchBitMaskWithFlags(m_pDIBSource, dest_left, dest_top, + if (m_pDIBBase->IsAlphaMask()) { + if (m_pDevice->StretchBitMaskWithFlags(m_pDIBBase, dest_left, dest_top, dest_width, dest_height, 0, FXDIB_INTERPOL)) { return false; @@ -83,7 +80,7 @@ bool CXFA_ImageRenderer::Start() { FX_RECT dest_clip( dest_rect.left - image_rect.left, dest_rect.top - image_rect.top, dest_rect.right - image_rect.left, dest_rect.bottom - image_rect.top); - RetainPtr<CFX_DIBitmap> pStretched = m_pDIBSource->StretchTo( + RetainPtr<CFX_DIBitmap> pStretched = m_pDIBBase->StretchTo( dest_width, dest_height, FXDIB_INTERPOL, &dest_clip); if (pStretched) CompositeDIBitmap(pStretched, dest_rect.left, dest_rect.top); diff --git a/xfa/fxfa/cxfa_imagerenderer.h b/xfa/fxfa/cxfa_imagerenderer.h index 236c3ccc5a..0b727c9ab4 100644 --- a/xfa/fxfa/cxfa_imagerenderer.h +++ b/xfa/fxfa/cxfa_imagerenderer.h @@ -15,7 +15,7 @@ #include "core/fxge/fx_dib.h" class CFX_RenderDevice; -class CFX_DIBSource; +class CFX_DIBBase; class CFX_DIBitmap; class CFX_ImageTransformer; class CFX_ImageRenderer; @@ -23,7 +23,7 @@ class CFX_ImageRenderer; class CXFA_ImageRenderer { public: CXFA_ImageRenderer(CFX_RenderDevice* pDevice, - const RetainPtr<CFX_DIBSource>& pDIBSource, + const RetainPtr<CFX_DIBBase>& pDIBBase, const CFX_Matrix* pImage2Device); ~CXFA_ImageRenderer(); @@ -38,7 +38,7 @@ class CXFA_ImageRenderer { UnownedPtr<CFX_RenderDevice> m_pDevice; int m_Status = 0; CFX_Matrix m_ImageMatrix; - RetainPtr<CFX_DIBSource> m_pDIBSource; + RetainPtr<CFX_DIBBase> m_pDIBBase; RetainPtr<CFX_DIBitmap> m_pCloneConvert; std::unique_ptr<CFX_ImageTransformer> m_pTransformer; std::unique_ptr<CFX_ImageRenderer> m_DeviceHandle; diff --git a/xfa/fxfa/fxfa.h b/xfa/fxfa/fxfa.h index 254d99f924..9030e87c8e 100644 --- a/xfa/fxfa/fxfa.h +++ b/xfa/fxfa/fxfa.h @@ -12,7 +12,7 @@ #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/retain_ptr.h" -#include "core/fxge/dib/cfx_dibsource.h" +#include "core/fxge/dib/cfx_dibbase.h" #include "core/fxge/fx_dib.h" #include "xfa/fxfa/fxfa_basic.h" |