diff options
Diffstat (limited to 'xfa')
-rw-r--r-- | xfa/fxfa/cxfa_ffwidget.cpp | 6 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_imagerenderer.cpp | 39 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_imagerenderer.h | 22 |
3 files changed, 30 insertions, 37 deletions
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp index 6aa6fd61b8..def2ee3139 100644 --- a/xfa/fxfa/cxfa_ffwidget.cpp +++ b/xfa/fxfa/cxfa_ffwidget.cpp @@ -1091,9 +1091,9 @@ void XFA_DrawImage(CXFA_Graphics* pGS, CFX_Matrix(rtFit.width, 0, 0, rtFit.height, rtFit.left, rtFit.top)); mtImage.Concat(matrix); - CXFA_ImageRenderer imageRender; - if (!imageRender.Start(pRenderDevice, pDIBitmap, 0, 255, &mtImage, - FXDIB_INTERPOL)) { + CXFA_ImageRenderer imageRender(pRenderDevice, pDIBitmap, 0, 255, &mtImage, + FXDIB_INTERPOL); + if (!imageRender.Start()) { return; } while (imageRender.Continue()) diff --git a/xfa/fxfa/cxfa_imagerenderer.cpp b/xfa/fxfa/cxfa_imagerenderer.cpp index 14f8b25af1..7423037cb5 100644 --- a/xfa/fxfa/cxfa_imagerenderer.cpp +++ b/xfa/fxfa/cxfa_imagerenderer.cpp @@ -13,28 +13,23 @@ #include "core/fxge/dib/cfx_imagetransformer.h" #include "third_party/base/ptr_util.h" -CXFA_ImageRenderer::CXFA_ImageRenderer() : m_pDevice(nullptr) {} +CXFA_ImageRenderer::CXFA_ImageRenderer( + CFX_RenderDevice* pDevice, + const RetainPtr<CFX_DIBSource>& pDIBSource, + FX_ARGB bitmap_argb, + int bitmap_alpha, + const CFX_Matrix* pImage2Device, + uint32_t flags) + : m_pDevice(pDevice), + m_ImageMatrix(*pImage2Device), + m_pDIBSource(pDIBSource), + m_BitmapAlpha(bitmap_alpha), + m_FillArgb(bitmap_argb), + m_Flags(flags) {} CXFA_ImageRenderer::~CXFA_ImageRenderer() {} -bool CXFA_ImageRenderer::Start(CFX_RenderDevice* pDevice, - const RetainPtr<CFX_DIBSource>& pDIBSource, - FX_ARGB bitmap_argb, - int bitmap_alpha, - const CFX_Matrix* pImage2Device, - uint32_t flags, - int blendType) { - m_pDevice = pDevice; - m_pDIBSource = pDIBSource; - m_FillArgb = bitmap_argb; - m_BitmapAlpha = bitmap_alpha; - m_ImageMatrix = *pImage2Device; - m_Flags = flags; - m_BlendType = blendType; - return StartDIBSource(); -} - -bool CXFA_ImageRenderer::StartDIBSource() { +bool CXFA_ImageRenderer::Start() { if (m_pDevice->StartDIBitsWithBlend(m_pDIBSource, m_BitmapAlpha, m_FillArgb, &m_ImageMatrix, m_Flags, &m_DeviceHandle, m_BlendType)) { @@ -228,9 +223,9 @@ void CXFA_ImageRenderer::CompositeDIBitmap( if (!pCloneConvert) return; - CXFA_ImageRenderer imageRender; - if (!imageRender.Start(m_pDevice, pCloneConvert, m_FillArgb, m_BitmapAlpha, - &m_ImageMatrix, m_Flags)) { + CXFA_ImageRenderer imageRender(m_pDevice, pCloneConvert, m_FillArgb, + m_BitmapAlpha, &m_ImageMatrix, m_Flags); + if (!imageRender.Start()) { return; } while (imageRender.Continue()) diff --git a/xfa/fxfa/cxfa_imagerenderer.h b/xfa/fxfa/cxfa_imagerenderer.h index ca53bf639e..6a165b53e4 100644 --- a/xfa/fxfa/cxfa_imagerenderer.h +++ b/xfa/fxfa/cxfa_imagerenderer.h @@ -21,20 +21,18 @@ class CFX_ImageRenderer; class CXFA_ImageRenderer { public: - CXFA_ImageRenderer(); + CXFA_ImageRenderer(CFX_RenderDevice* pDevice, + const RetainPtr<CFX_DIBSource>& pDIBSource, + FX_ARGB bitmap_argb, + int bitmap_alpha, + const CFX_Matrix* pImage2Device, + uint32_t flags); ~CXFA_ImageRenderer(); - bool Start(CFX_RenderDevice* pDevice, - const RetainPtr<CFX_DIBSource>& pDIBSource, - FX_ARGB bitmap_argb, - int bitmap_alpha, - const CFX_Matrix* pImage2Device, - uint32_t flags, - int blendType = FXDIB_BLEND_NORMAL); + bool Start(); bool Continue(); protected: - bool StartDIBSource(); void CompositeDIBitmap(const RetainPtr<CFX_DIBitmap>& pDIBitmap, int left, int top, @@ -48,9 +46,9 @@ class CXFA_ImageRenderer { CFX_Matrix m_ImageMatrix; RetainPtr<CFX_DIBSource> m_pDIBSource; RetainPtr<CFX_DIBitmap> m_pCloneConvert; - int m_BitmapAlpha = 255; - FX_ARGB m_FillArgb = 0; - uint32_t m_Flags = 0; + int m_BitmapAlpha; + FX_ARGB m_FillArgb; + uint32_t m_Flags; std::unique_ptr<CFX_ImageTransformer> m_pTransformer; std::unique_ptr<CFX_ImageRenderer> m_DeviceHandle; int32_t m_BlendType = FXDIB_BLEND_NORMAL; |