diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-08-24 21:55:46 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-24 21:55:46 +0000 |
commit | e6ff2ebfaa19421c8d932f4d275548156ae2e13c (patch) | |
tree | a549775ce9d4e999f8a23542524adba8c5ca42ea /core/fpdfapi | |
parent | 16d18d935d055b74e05f615c0325318a329a7fe1 (diff) | |
download | pdfium-e6ff2ebfaa19421c8d932f4d275548156ae2e13c.tar.xz |
Rename CFX_DIBSource to CFX_DIBBase.
It is not a source from which you can get CFX_DIBs, but rather a
base class from which all DIBs inherit.
Do the same thing for the CPDF_DIBSource wrapper class.
Mechanical change apart from adding a one-line comment in cfx_dibbase.h
Change-Id: Id2bde87813ca301d9fafc55ce08d703dfc6a7184
Reviewed-on: https://pdfium-review.googlesource.com/41352
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi')
18 files changed, 223 insertions, 224 deletions
diff --git a/core/fpdfapi/font/cpdf_type3char.cpp b/core/fpdfapi/font/cpdf_type3char.cpp index 8a89582b00..a04e83c468 100644 --- a/core/fpdfapi/font/cpdf_type3char.cpp +++ b/core/fpdfapi/font/cpdf_type3char.cpp @@ -49,15 +49,15 @@ bool CPDF_Type3Char::LoadBitmap(CPDF_RenderContext* pContext) { m_ImageMatrix = pPageObj->AsImage()->matrix(); { - // |pSource| actually gets assigned a CPDF_DIBSource, which has pointers + // |pSource| actually gets assigned a CPDF_DIBBase, which has pointers // into objects owned by |m_pForm|. Make sure it is out of scope before // clearing the form. - RetainPtr<CFX_DIBSource> pSource = - pPageObj->AsImage()->GetImage()->LoadDIBSource(); + RetainPtr<CFX_DIBBase> pSource = + pPageObj->AsImage()->GetImage()->LoadDIBBase(); - // Clone() is non-virtual, and can't be overloaded by CPDF_DIBSource to + // Clone() is non-virtual, and can't be overloaded by CPDF_DIBBase to // return a clone of the subclass as one would typically expect from a - // such a method. Instead, it only clones the CFX_DIBSource, none of whose + // such a method. Instead, it only clones the CFX_DIBBase, none of whose // members point to objects owned by the form. As a result, |m_pBitmap| // may outlive |m_pForm|. if (pSource) diff --git a/core/fpdfapi/page/cpdf_generalstate.cpp b/core/fpdfapi/page/cpdf_generalstate.cpp index 2657578ab7..ea912736fe 100644 --- a/core/fpdfapi/page/cpdf_generalstate.cpp +++ b/core/fpdfapi/page/cpdf_generalstate.cpp @@ -8,7 +8,7 @@ #include "constants/transparency.h" #include "core/fpdfapi/parser/cpdf_document.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_docrenderdata.h" #include "core/fpdfapi/render/cpdf_transferfunc.h" diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp index a1be407dfe..b1c2fc9e82 100644 --- a/core/fpdfapi/page/cpdf_image.cpp +++ b/core/fpdfapi/page/cpdf_image.cpp @@ -23,7 +23,7 @@ #include "core/fpdfapi/parser/cpdf_reference.h" #include "core/fpdfapi/parser/cpdf_stream.h" #include "core/fpdfapi/parser/cpdf_string.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_pagerendercache.h" #include "core/fxcodec/codec/ccodec_jpegmodule.h" #include "core/fxcrt/fx_stream.h" @@ -329,43 +329,43 @@ void CPDF_Image::ResetCache(CPDF_Page* pPage, pPage->GetRenderCache()->ResetBitmap(pHolder, pBitmap); } -RetainPtr<CFX_DIBSource> CPDF_Image::LoadDIBSource() const { - auto source = pdfium::MakeRetain<CPDF_DIBSource>(); +RetainPtr<CFX_DIBBase> CPDF_Image::LoadDIBBase() const { + auto source = pdfium::MakeRetain<CPDF_DIBBase>(); if (!source->Load(m_pDocument.Get(), m_pStream.Get())) return nullptr; if (!source->IsJBigImage()) return source; - CPDF_DIBSource::LoadState ret = CPDF_DIBSource::LoadState::kContinue; - while (ret == CPDF_DIBSource::LoadState::kContinue) - ret = source->ContinueLoadDIBSource(nullptr); - return ret == CPDF_DIBSource::LoadState::kSuccess ? source : nullptr; + CPDF_DIBBase::LoadState ret = CPDF_DIBBase::LoadState::kContinue; + while (ret == CPDF_DIBBase::LoadState::kContinue) + ret = source->ContinueLoadDIBBase(nullptr); + return ret == CPDF_DIBBase::LoadState::kSuccess ? source : nullptr; } -RetainPtr<CFX_DIBSource> CPDF_Image::DetachBitmap() { - return std::move(m_pDIBSource); +RetainPtr<CFX_DIBBase> CPDF_Image::DetachBitmap() { + return std::move(m_pDIBBase); } -RetainPtr<CFX_DIBSource> CPDF_Image::DetachMask() { +RetainPtr<CFX_DIBBase> CPDF_Image::DetachMask() { return std::move(m_pMask); } -bool CPDF_Image::StartLoadDIBSource(const CPDF_Dictionary* pFormResource, - CPDF_Dictionary* pPageResource, - bool bStdCS, - uint32_t GroupFamily, - bool bLoadMask) { - auto source = pdfium::MakeRetain<CPDF_DIBSource>(); - CPDF_DIBSource::LoadState ret = source->StartLoadDIBSource( +bool CPDF_Image::StartLoadDIBBase(const CPDF_Dictionary* pFormResource, + CPDF_Dictionary* pPageResource, + bool bStdCS, + uint32_t GroupFamily, + bool bLoadMask) { + auto source = pdfium::MakeRetain<CPDF_DIBBase>(); + CPDF_DIBBase::LoadState ret = source->StartLoadDIBBase( m_pDocument.Get(), m_pStream.Get(), true, pFormResource, pPageResource, bStdCS, GroupFamily, bLoadMask); - if (ret == CPDF_DIBSource::LoadState::kFail) { - m_pDIBSource.Reset(); + if (ret == CPDF_DIBBase::LoadState::kFail) { + m_pDIBBase.Reset(); return false; } - m_pDIBSource = source; - if (ret == CPDF_DIBSource::LoadState::kContinue) + m_pDIBBase = source; + if (ret == CPDF_DIBBase::LoadState::kContinue) return true; m_pMask = source->DetachMask(); @@ -374,16 +374,16 @@ bool CPDF_Image::StartLoadDIBSource(const CPDF_Dictionary* pFormResource, } bool CPDF_Image::Continue(PauseIndicatorIface* pPause) { - RetainPtr<CPDF_DIBSource> pSource = m_pDIBSource.As<CPDF_DIBSource>(); - CPDF_DIBSource::LoadState ret = pSource->ContinueLoadDIBSource(pPause); - if (ret == CPDF_DIBSource::LoadState::kContinue) + RetainPtr<CPDF_DIBBase> pSource = m_pDIBBase.As<CPDF_DIBBase>(); + CPDF_DIBBase::LoadState ret = pSource->ContinueLoadDIBBase(pPause); + if (ret == CPDF_DIBBase::LoadState::kContinue) return true; - if (ret == CPDF_DIBSource::LoadState::kSuccess) { + if (ret == CPDF_DIBBase::LoadState::kSuccess) { m_pMask = pSource->DetachMask(); m_MatteColor = pSource->GetMatteColor(); } else { - m_pDIBSource.Reset(); + m_pDIBBase.Reset(); } return false; } diff --git a/core/fpdfapi/page/cpdf_image.h b/core/fpdfapi/page/cpdf_image.h index e6c6d18986..4306109199 100644 --- a/core/fpdfapi/page/cpdf_image.h +++ b/core/fpdfapi/page/cpdf_image.h @@ -15,7 +15,7 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" -class CFX_DIBSource; +class CFX_DIBBase; class CFX_DIBitmap; class CPDF_Document; class CPDF_Page; @@ -41,7 +41,7 @@ class CPDF_Image : public Retainable { bool IsMask() const { return m_bIsMask; } bool IsInterpol() const { return m_bInterpolate; } - RetainPtr<CFX_DIBSource> LoadDIBSource() const; + RetainPtr<CFX_DIBBase> LoadDIBBase() const; void SetImage(const RetainPtr<CFX_DIBitmap>& pDIBitmap); void SetJpegImage(const RetainPtr<IFX_SeekableReadStream>& pFile); @@ -50,20 +50,20 @@ class CPDF_Image : public Retainable { void ResetCache(CPDF_Page* pPage, const RetainPtr<CFX_DIBitmap>& pDIBitmap); // Returns whether to Continue() or not. - bool StartLoadDIBSource(const CPDF_Dictionary* pFormResource, - CPDF_Dictionary* pPageResource, - bool bStdCS, - uint32_t GroupFamily, - bool bLoadMask); + bool StartLoadDIBBase(const CPDF_Dictionary* pFormResource, + CPDF_Dictionary* pPageResource, + bool bStdCS, + uint32_t GroupFamily, + bool bLoadMask); // Returns whether to Continue() or not. bool Continue(PauseIndicatorIface* pPause); - RetainPtr<CFX_DIBSource> DetachBitmap(); - RetainPtr<CFX_DIBSource> DetachMask(); + RetainPtr<CFX_DIBBase> DetachBitmap(); + RetainPtr<CFX_DIBBase> DetachMask(); - RetainPtr<CFX_DIBSource> m_pDIBSource; - RetainPtr<CFX_DIBSource> m_pMask; + RetainPtr<CFX_DIBBase> m_pDIBBase; + RetainPtr<CFX_DIBBase> m_pMask; uint32_t m_MatteColor = 0; private: diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp index 63556de250..7119e7649a 100644 --- a/core/fpdfapi/parser/cpdf_document.cpp +++ b/core/fpdfapi/parser/cpdf_document.cpp @@ -26,7 +26,7 @@ #include "core/fpdfapi/parser/cpdf_reference.h" #include "core/fpdfapi/parser/cpdf_stream.h" #include "core/fpdfapi/parser/cpdf_string.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_docrenderdata.h" #include "core/fxcodec/JBig2_DocumentContext.h" #include "core/fxcrt/fx_codepage.h" diff --git a/core/fpdfapi/render/cpdf_dibsource.cpp b/core/fpdfapi/render/cpdf_dibbase.cpp index 0c69852354..9aa1ab40a6 100644 --- a/core/fpdfapi/render/cpdf_dibsource.cpp +++ b/core/fpdfapi/render/cpdf_dibbase.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include <algorithm> #include <memory> @@ -101,9 +101,9 @@ class JpxBitMapContext { } // namespace -CPDF_DIBSource::CPDF_DIBSource() {} +CPDF_DIBBase::CPDF_DIBBase() {} -CPDF_DIBSource::~CPDF_DIBSource() { +CPDF_DIBBase::~CPDF_DIBBase() { if (m_pColorSpace && m_pDocument) { auto* pPageData = m_pDocument->GetPageData(); if (pPageData) { @@ -113,7 +113,7 @@ CPDF_DIBSource::~CPDF_DIBSource() { } } -bool CPDF_DIBSource::Load(CPDF_Document* pDoc, const CPDF_Stream* pStream) { +bool CPDF_DIBBase::Load(CPDF_Document* pDoc, const CPDF_Stream* pStream) { if (!pStream) return false; @@ -181,7 +181,7 @@ bool CPDF_DIBSource::Load(CPDF_Document* pDoc, const CPDF_Stream* pStream) { return true; } -bool CPDF_DIBSource::ContinueToLoadMask() { +bool CPDF_DIBBase::ContinueToLoadMask() { if (m_bImageMask) { m_bpp = 1; m_bpc = 1; @@ -218,7 +218,7 @@ bool CPDF_DIBSource::ContinueToLoadMask() { return true; } -CPDF_DIBSource::LoadState CPDF_DIBSource::StartLoadDIBSource( +CPDF_DIBBase::LoadState CPDF_DIBBase::StartLoadDIBBase( CPDF_Document* pDoc, const CPDF_Stream* pStream, bool bHasMask, @@ -280,7 +280,7 @@ CPDF_DIBSource::LoadState CPDF_DIBSource::StartLoadDIBSource( return LoadState::kSuccess; } -CPDF_DIBSource::LoadState CPDF_DIBSource::ContinueLoadDIBSource( +CPDF_DIBBase::LoadState CPDF_DIBBase::ContinueLoadDIBBase( PauseIndicatorIface* pPause) { if (m_Status == LoadState::kContinue) return ContinueLoadMaskDIB(pPause); @@ -335,8 +335,8 @@ CPDF_DIBSource::LoadState CPDF_DIBSource::ContinueLoadDIBSource( return iContinueStatus; } -bool CPDF_DIBSource::LoadColorInfo(const CPDF_Dictionary* pFormResources, - const CPDF_Dictionary* pPageResources) { +bool CPDF_DIBBase::LoadColorInfo(const CPDF_Dictionary* pFormResources, + const CPDF_Dictionary* pPageResources) { m_bpc_orig = m_pDict->GetIntegerFor("BitsPerComponent"); if (m_pDict->GetIntegerFor("ImageMask")) m_bImageMask = true; @@ -392,8 +392,8 @@ bool CPDF_DIBSource::LoadColorInfo(const CPDF_Dictionary* pFormResources, return GetDecodeAndMaskArray(&m_bDefaultDecode, &m_bColorKey); } -bool CPDF_DIBSource::GetDecodeAndMaskArray(bool* bDefaultDecode, - bool* bColorKey) { +bool CPDF_DIBBase::GetDecodeAndMaskArray(bool* bDefaultDecode, + bool* bColorKey) { if (!m_pColorSpace) return false; @@ -446,7 +446,7 @@ bool CPDF_DIBSource::GetDecodeAndMaskArray(bool* bDefaultDecode, return true; } -CPDF_DIBSource::LoadState CPDF_DIBSource::CreateDecoder() { +CPDF_DIBBase::LoadState CPDF_DIBBase::CreateDecoder() { ByteString decoder = m_pStreamAcc->GetImageDecoder(); if (decoder.IsEmpty()) return LoadState::kSuccess; @@ -503,9 +503,9 @@ CPDF_DIBSource::LoadState CPDF_DIBSource::CreateDecoder() { return LoadState::kSuccess; } -bool CPDF_DIBSource::CreateDCTDecoder(const uint8_t* src_data, - uint32_t src_size, - const CPDF_Dictionary* pParams) { +bool CPDF_DIBBase::CreateDCTDecoder(const uint8_t* src_data, + uint32_t src_size, + const CPDF_Dictionary* pParams) { CCodec_JpegModule* pJpegModule = CPDF_ModuleMgr::Get()->GetJpegModule(); m_pDecoder = pJpegModule->CreateDecoder( src_data, src_size, m_Width, m_Height, m_nComponents, @@ -574,7 +574,7 @@ bool CPDF_DIBSource::CreateDCTDecoder(const uint8_t* src_data, return true; } -RetainPtr<CFX_DIBitmap> CPDF_DIBSource::LoadJpxBitmap() { +RetainPtr<CFX_DIBitmap> CPDF_DIBBase::LoadJpxBitmap() { CCodec_JpxModule* pJpxModule = CPDF_ModuleMgr::Get()->GetJpxModule(); auto context = pdfium::MakeUnique<JpxBitMapContext>(pJpxModule); context->set_decoder(pJpxModule->CreateDecoder( @@ -651,7 +651,7 @@ RetainPtr<CFX_DIBitmap> CPDF_DIBSource::LoadJpxBitmap() { return pCachedBitmap; } -CPDF_DIBSource::LoadState CPDF_DIBSource::StartLoadMask() { +CPDF_DIBBase::LoadState CPDF_DIBBase::StartLoadMask() { m_MatteColor = 0XFFFFFFFF; m_pMaskStream = m_pDict->GetStreamFor("SMask"); if (!m_pMaskStream) { @@ -676,12 +676,12 @@ CPDF_DIBSource::LoadState CPDF_DIBSource::StartLoadMask() { return StartLoadMaskDIB(); } -CPDF_DIBSource::LoadState CPDF_DIBSource::ContinueLoadMaskDIB( +CPDF_DIBBase::LoadState CPDF_DIBBase::ContinueLoadMaskDIB( PauseIndicatorIface* pPause) { if (!m_pMask) return LoadState::kSuccess; - LoadState ret = m_pMask->ContinueLoadDIBSource(pPause); + LoadState ret = m_pMask->ContinueLoadDIBBase(pPause); if (ret == LoadState::kContinue) return LoadState::kContinue; @@ -695,19 +695,19 @@ CPDF_DIBSource::LoadState CPDF_DIBSource::ContinueLoadMaskDIB( return LoadState::kSuccess; } -RetainPtr<CPDF_DIBSource> CPDF_DIBSource::DetachMask() { +RetainPtr<CPDF_DIBBase> CPDF_DIBBase::DetachMask() { return std::move(m_pMask); } -bool CPDF_DIBSource::IsJBigImage() const { +bool CPDF_DIBBase::IsJBigImage() const { return m_pStreamAcc->GetImageDecoder() == "JBIG2Decode"; } -CPDF_DIBSource::LoadState CPDF_DIBSource::StartLoadMaskDIB() { - m_pMask = pdfium::MakeRetain<CPDF_DIBSource>(); +CPDF_DIBBase::LoadState CPDF_DIBBase::StartLoadMaskDIB() { + m_pMask = pdfium::MakeRetain<CPDF_DIBBase>(); LoadState ret = - m_pMask->StartLoadDIBSource(m_pDocument.Get(), m_pMaskStream.Get(), false, - nullptr, nullptr, true, 0, false); + m_pMask->StartLoadDIBBase(m_pDocument.Get(), m_pMaskStream.Get(), false, + nullptr, nullptr, true, 0, false); if (ret == LoadState::kContinue) { if (m_Status == LoadState::kFail) m_Status = LoadState::kContinue; @@ -718,7 +718,7 @@ CPDF_DIBSource::LoadState CPDF_DIBSource::StartLoadMaskDIB() { return LoadState::kSuccess; } -void CPDF_DIBSource::LoadPalette() { +void CPDF_DIBBase::LoadPalette() { if (!m_pColorSpace || m_Family == PDFCS_PATTERN) return; @@ -791,7 +791,7 @@ void CPDF_DIBSource::LoadPalette() { } } -void CPDF_DIBSource::ValidateDictParam() { +void CPDF_DIBBase::ValidateDictParam() { m_bpc = m_bpc_orig; const CPDF_Object* pFilter = m_pDict->GetDirectObjectFor("Filter"); if (pFilter) { @@ -824,8 +824,8 @@ void CPDF_DIBSource::ValidateDictParam() { m_bpc = 0; } -void CPDF_DIBSource::TranslateScanline24bpp(uint8_t* dest_scan, - const uint8_t* src_scan) const { +void CPDF_DIBBase::TranslateScanline24bpp(uint8_t* dest_scan, + const uint8_t* src_scan) const { if (m_bpc == 0) return; @@ -873,7 +873,7 @@ void CPDF_DIBSource::TranslateScanline24bpp(uint8_t* dest_scan, } } -bool CPDF_DIBSource::TranslateScanline24bppDefaultDecode( +bool CPDF_DIBBase::TranslateScanline24bppDefaultDecode( uint8_t* dest_scan, const uint8_t* src_scan) const { if (!m_bDefaultDecode) @@ -935,11 +935,11 @@ bool CPDF_DIBSource::TranslateScanline24bppDefaultDecode( return true; } -uint8_t* CPDF_DIBSource::GetBuffer() const { +uint8_t* CPDF_DIBBase::GetBuffer() const { return m_pCachedBitmap ? m_pCachedBitmap->GetBuffer() : nullptr; } -const uint8_t* CPDF_DIBSource::GetScanline(int line) const { +const uint8_t* CPDF_DIBBase::GetScanline(int line) const { if (m_bpc == 0) return nullptr; @@ -1058,18 +1058,17 @@ const uint8_t* CPDF_DIBSource::GetScanline(int line) const { return m_pMaskedLine.get(); } -bool CPDF_DIBSource::SkipToScanline(int line, - PauseIndicatorIface* pPause) const { +bool CPDF_DIBBase::SkipToScanline(int line, PauseIndicatorIface* pPause) const { return m_pDecoder && m_pDecoder->SkipToScanline(line, pPause); } -void CPDF_DIBSource::DownSampleScanline(int line, - uint8_t* dest_scan, - int dest_bpp, - int dest_width, - bool bFlipX, - int clip_left, - int clip_width) const { +void CPDF_DIBBase::DownSampleScanline(int line, + uint8_t* dest_scan, + int dest_bpp, + int dest_width, + bool bFlipX, + int clip_left, + int clip_width) const { if (line < 0 || !dest_scan || dest_bpp <= 0 || dest_width <= 0 || clip_left < 0 || clip_width <= 0) { return; @@ -1122,15 +1121,15 @@ void CPDF_DIBSource::DownSampleScanline(int line, } } -void CPDF_DIBSource::DownSampleScanline1Bit(int orig_Bpp, - int dest_Bpp, - uint32_t src_width, - const uint8_t* pSrcLine, - uint8_t* dest_scan, - int dest_width, - bool bFlipX, - int clip_left, - int clip_width) const { +void CPDF_DIBBase::DownSampleScanline1Bit(int orig_Bpp, + int dest_Bpp, + uint32_t src_width, + const uint8_t* pSrcLine, + uint8_t* dest_scan, + int dest_width, + bool bFlipX, + int clip_left, + int clip_width) const { if (m_bColorKey && !m_bImageMask) { uint32_t reset_argb = m_pPalette ? m_pPalette.get()[0] : 0xFF000000; uint32_t set_argb = m_pPalette ? m_pPalette.get()[1] : 0xFFFFFFFF; @@ -1181,15 +1180,15 @@ void CPDF_DIBSource::DownSampleScanline1Bit(int orig_Bpp, } } -void CPDF_DIBSource::DownSampleScanline8Bit(int orig_Bpp, - int dest_Bpp, - uint32_t src_width, - const uint8_t* pSrcLine, - uint8_t* dest_scan, - int dest_width, - bool bFlipX, - int clip_left, - int clip_width) const { +void CPDF_DIBBase::DownSampleScanline8Bit(int orig_Bpp, + int dest_Bpp, + uint32_t src_width, + const uint8_t* pSrcLine, + uint8_t* dest_scan, + int dest_width, + bool bFlipX, + int clip_left, + int clip_width) const { if (m_bpc < 8) { uint64_t src_bit_pos = 0; for (uint32_t col = 0; col < src_width; col++) { @@ -1246,15 +1245,15 @@ void CPDF_DIBSource::DownSampleScanline8Bit(int orig_Bpp, } } -void CPDF_DIBSource::DownSampleScanline32Bit(int orig_Bpp, - int dest_Bpp, - uint32_t src_width, - const uint8_t* pSrcLine, - uint8_t* dest_scan, - int dest_width, - bool bFlipX, - int clip_left, - int clip_width) const { +void CPDF_DIBBase::DownSampleScanline32Bit(int orig_Bpp, + int dest_Bpp, + uint32_t src_width, + const uint8_t* pSrcLine, + uint8_t* dest_scan, + int dest_width, + bool bFlipX, + int clip_left, + int clip_width) const { // last_src_x used to store the last seen src_x position which should be // in [0, src_width). Set the initial value to be an invalid src_x value. uint32_t last_src_x = src_width; @@ -1344,7 +1343,7 @@ void CPDF_DIBSource::DownSampleScanline32Bit(int orig_Bpp, } } -bool CPDF_DIBSource::TransMask() const { +bool CPDF_DIBBase::TransMask() const { return m_bLoadMask && m_GroupFamily == PDFCS_DEVICECMYK && m_Family == PDFCS_DEVICECMYK; } diff --git a/core/fpdfapi/render/cpdf_dibsource.h b/core/fpdfapi/render/cpdf_dibbase.h index 597390cd18..a1008470b6 100644 --- a/core/fpdfapi/render/cpdf_dibsource.h +++ b/core/fpdfapi/render/cpdf_dibbase.h @@ -4,8 +4,8 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef CORE_FPDFAPI_RENDER_CPDF_DIBSOURCE_H_ -#define CORE_FPDFAPI_RENDER_CPDF_DIBSOURCE_H_ +#ifndef CORE_FPDFAPI_RENDER_CPDF_DIBBASE_H_ +#define CORE_FPDFAPI_RENDER_CPDF_DIBBASE_H_ #include <map> #include <memory> @@ -21,7 +21,7 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "core/fxge/cfx_defaultrenderdevice.h" -#include "core/fxge/dib/cfx_dibsource.h" +#include "core/fxge/dib/cfx_dibbase.h" class CCodec_Jbig2Context; class CCodec_ScanlineDecoder; @@ -39,7 +39,7 @@ struct DIB_COMP_DATA { #define FPDF_HUGE_IMAGE_SIZE 60000000 -class CPDF_DIBSource : public CFX_DIBSource { +class CPDF_DIBBase : public CFX_DIBBase { public: enum class LoadState : uint8_t { kFail, kSuccess, kContinue }; @@ -48,7 +48,7 @@ class CPDF_DIBSource : public CFX_DIBSource { bool Load(CPDF_Document* pDoc, const CPDF_Stream* pStream); - // CFX_DIBSource + // CFX_DIBBase bool SkipToScanline(int line, PauseIndicatorIface* pPause) const override; uint8_t* GetBuffer() const override; const uint8_t* GetScanline(int line) const override; @@ -63,22 +63,22 @@ class CPDF_DIBSource : public CFX_DIBSource { const CPDF_ColorSpace* GetColorSpace() const { return m_pColorSpace.Get(); } uint32_t GetMatteColor() const { return m_MatteColor; } - LoadState StartLoadDIBSource(CPDF_Document* pDoc, - const CPDF_Stream* pStream, - bool bHasMask, - const CPDF_Dictionary* pFormResources, - CPDF_Dictionary* pPageResources, - bool bStdCS, - uint32_t GroupFamily, - bool bLoadMask); - LoadState ContinueLoadDIBSource(PauseIndicatorIface* pPause); - RetainPtr<CPDF_DIBSource> DetachMask(); + LoadState StartLoadDIBBase(CPDF_Document* pDoc, + const CPDF_Stream* pStream, + bool bHasMask, + const CPDF_Dictionary* pFormResources, + CPDF_Dictionary* pPageResources, + bool bStdCS, + uint32_t GroupFamily, + bool bLoadMask); + LoadState ContinueLoadDIBBase(PauseIndicatorIface* pPause); + RetainPtr<CPDF_DIBBase> DetachMask(); bool IsJBigImage() const; private: - CPDF_DIBSource(); - ~CPDF_DIBSource() override; + CPDF_DIBBase(); + ~CPDF_DIBBase() override; LoadState StartLoadMask(); LoadState StartLoadMaskDIB(); @@ -149,7 +149,7 @@ class CPDF_DIBSource : public CFX_DIBSource { std::unique_ptr<uint8_t, FxFreeDeleter> m_pLineBuf; std::unique_ptr<uint8_t, FxFreeDeleter> m_pMaskedLine; RetainPtr<CFX_DIBitmap> m_pCachedBitmap; - RetainPtr<CPDF_DIBSource> m_pMask; + RetainPtr<CPDF_DIBBase> m_pMask; RetainPtr<CPDF_StreamAcc> m_pGlobalStream; std::unique_ptr<CCodec_ScanlineDecoder> m_pDecoder; @@ -160,4 +160,4 @@ class CPDF_DIBSource : public CFX_DIBSource { LoadState m_Status = LoadState::kFail; }; -#endif // CORE_FPDFAPI_RENDER_CPDF_DIBSOURCE_H_ +#endif // CORE_FPDFAPI_RENDER_CPDF_DIBBASE_H_ diff --git a/core/fpdfapi/render/cpdf_docrenderdata.cpp b/core/fpdfapi/render/cpdf_docrenderdata.cpp index 568bf76e97..c86eb9b147 100644 --- a/core/fpdfapi/render/cpdf_docrenderdata.cpp +++ b/core/fpdfapi/render/cpdf_docrenderdata.cpp @@ -12,7 +12,7 @@ #include "core/fpdfapi/page/cpdf_function.h" #include "core/fpdfapi/parser/cpdf_array.h" #include "core/fpdfapi/parser/cpdf_document.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_transferfunc.h" #include "core/fpdfapi/render/cpdf_type3cache.h" diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.cpp b/core/fpdfapi/render/cpdf_imagecacheentry.cpp index 615a44d869..681c39e624 100644 --- a/core/fpdfapi/render/cpdf_imagecacheentry.cpp +++ b/core/fpdfapi/render/cpdf_imagecacheentry.cpp @@ -13,7 +13,7 @@ #include "core/fpdfapi/parser/cpdf_dictionary.h" #include "core/fpdfapi/parser/cpdf_document.h" #include "core/fpdfapi/parser/cpdf_stream.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_pagerendercache.h" #include "core/fpdfapi/render/cpdf_rendercontext.h" #include "core/fpdfapi/render/cpdf_renderstatus.h" @@ -37,22 +37,22 @@ void CPDF_ImageCacheEntry::Reset(const RetainPtr<CFX_DIBitmap>& pBitmap) { } static uint32_t FPDF_ImageCache_EstimateImageSize( - const RetainPtr<CFX_DIBSource>& pDIB) { + const RetainPtr<CFX_DIBBase>& pDIB) { return pDIB && pDIB->GetBuffer() ? (uint32_t)pDIB->GetHeight() * pDIB->GetPitch() + (uint32_t)pDIB->GetPaletteSize() * 4 : 0; } -RetainPtr<CFX_DIBSource> CPDF_ImageCacheEntry::DetachBitmap() { +RetainPtr<CFX_DIBBase> CPDF_ImageCacheEntry::DetachBitmap() { return std::move(m_pCurBitmap); } -RetainPtr<CFX_DIBSource> CPDF_ImageCacheEntry::DetachMask() { +RetainPtr<CFX_DIBBase> CPDF_ImageCacheEntry::DetachMask() { return std::move(m_pCurMask); } -CPDF_DIBSource::LoadState CPDF_ImageCacheEntry::StartGetCachedBitmap( +CPDF_DIBBase::LoadState CPDF_ImageCacheEntry::StartGetCachedBitmap( const CPDF_Dictionary* pFormResources, CPDF_Dictionary* pPageResources, bool bStdCS, @@ -64,32 +64,32 @@ CPDF_DIBSource::LoadState CPDF_ImageCacheEntry::StartGetCachedBitmap( if (m_pCachedBitmap) { m_pCurBitmap = m_pCachedBitmap; m_pCurMask = m_pCachedMask; - return CPDF_DIBSource::LoadState::kSuccess; + return CPDF_DIBBase::LoadState::kSuccess; } - m_pCurBitmap = pdfium::MakeRetain<CPDF_DIBSource>(); - CPDF_DIBSource::LoadState ret = - m_pCurBitmap.As<CPDF_DIBSource>()->StartLoadDIBSource( + m_pCurBitmap = pdfium::MakeRetain<CPDF_DIBBase>(); + CPDF_DIBBase::LoadState ret = + m_pCurBitmap.As<CPDF_DIBBase>()->StartLoadDIBBase( m_pDocument.Get(), m_pImage->GetStream(), true, pFormResources, pPageResources, bStdCS, GroupFamily, bLoadMask); - if (ret == CPDF_DIBSource::LoadState::kContinue) - return CPDF_DIBSource::LoadState::kContinue; + if (ret == CPDF_DIBBase::LoadState::kContinue) + return CPDF_DIBBase::LoadState::kContinue; - if (ret == CPDF_DIBSource::LoadState::kSuccess) + if (ret == CPDF_DIBBase::LoadState::kSuccess) ContinueGetCachedBitmap(pRenderStatus); else m_pCurBitmap.Reset(); - return CPDF_DIBSource::LoadState::kFail; + return CPDF_DIBBase::LoadState::kFail; } bool CPDF_ImageCacheEntry::Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus) { - CPDF_DIBSource::LoadState ret = - m_pCurBitmap.As<CPDF_DIBSource>()->ContinueLoadDIBSource(pPause); - if (ret == CPDF_DIBSource::LoadState::kContinue) + CPDF_DIBBase::LoadState ret = + m_pCurBitmap.As<CPDF_DIBBase>()->ContinueLoadDIBBase(pPause); + if (ret == CPDF_DIBBase::LoadState::kContinue) return true; - if (ret == CPDF_DIBSource::LoadState::kSuccess) + if (ret == CPDF_DIBBase::LoadState::kSuccess) ContinueGetCachedBitmap(pRenderStatus); else m_pCurBitmap.Reset(); @@ -98,8 +98,8 @@ bool CPDF_ImageCacheEntry::Continue(PauseIndicatorIface* pPause, void CPDF_ImageCacheEntry::ContinueGetCachedBitmap( CPDF_RenderStatus* pRenderStatus) { - m_MatteColor = m_pCurBitmap.As<CPDF_DIBSource>()->GetMatteColor(); - m_pCurMask = m_pCurBitmap.As<CPDF_DIBSource>()->DetachMask(); + m_MatteColor = m_pCurBitmap.As<CPDF_DIBBase>()->GetMatteColor(); + m_pCurMask = m_pCurBitmap.As<CPDF_DIBBase>()->DetachMask(); CPDF_RenderContext* pContext = pRenderStatus->GetContext(); CPDF_PageRenderCache* pPageRenderCache = pContext->GetPageCache(); m_dwTimeCount = pPageRenderCache->GetTimeCount(); diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.h b/core/fpdfapi/render/cpdf_imagecacheentry.h index df13c4b3f8..8a4f919e8d 100644 --- a/core/fpdfapi/render/cpdf_imagecacheentry.h +++ b/core/fpdfapi/render/cpdf_imagecacheentry.h @@ -9,7 +9,7 @@ #include <memory> -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fxcrt/fx_system.h" #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" @@ -32,7 +32,7 @@ class CPDF_ImageCacheEntry { uint32_t GetTimeCount() const { return m_dwTimeCount; } CPDF_Image* GetImage() const { return m_pImage.Get(); } - CPDF_DIBSource::LoadState StartGetCachedBitmap( + CPDF_DIBBase::LoadState StartGetCachedBitmap( const CPDF_Dictionary* pFormResources, CPDF_Dictionary* pPageResources, bool bStdCS, @@ -43,8 +43,8 @@ class CPDF_ImageCacheEntry { // Returns whether to Continue() or not. bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus); - RetainPtr<CFX_DIBSource> DetachBitmap(); - RetainPtr<CFX_DIBSource> DetachMask(); + RetainPtr<CFX_DIBBase> DetachBitmap(); + RetainPtr<CFX_DIBBase> DetachMask(); int m_dwTimeCount; uint32_t m_MatteColor; @@ -55,10 +55,10 @@ class CPDF_ImageCacheEntry { UnownedPtr<CPDF_Document> const m_pDocument; RetainPtr<CPDF_Image> const m_pImage; - RetainPtr<CFX_DIBSource> m_pCurBitmap; - RetainPtr<CFX_DIBSource> m_pCurMask; - RetainPtr<CFX_DIBSource> m_pCachedBitmap; - RetainPtr<CFX_DIBSource> m_pCachedMask; + RetainPtr<CFX_DIBBase> m_pCurBitmap; + RetainPtr<CFX_DIBBase> m_pCurMask; + RetainPtr<CFX_DIBBase> m_pCachedBitmap; + RetainPtr<CFX_DIBBase> m_pCachedMask; uint32_t m_dwCacheSize; }; diff --git a/core/fpdfapi/render/cpdf_imageloader.cpp b/core/fpdfapi/render/cpdf_imageloader.cpp index f3a626350b..157bc48d1b 100644 --- a/core/fpdfapi/render/cpdf_imageloader.cpp +++ b/core/fpdfapi/render/cpdf_imageloader.cpp @@ -8,7 +8,7 @@ #include "core/fpdfapi/page/cpdf_image.h" #include "core/fpdfapi/page/cpdf_imageobject.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_imagecacheentry.h" #include "core/fpdfapi/render/cpdf_pagerendercache.h" #include "core/fpdfapi/render/cpdf_renderstatus.h" @@ -34,7 +34,7 @@ bool CPDF_ImageLoader::Start(CPDF_ImageObject* pImage, ret = pCache->StartGetCachedBitmap(m_pImageObject->GetImage(), bStdCS, GroupFamily, bLoadMask, pRenderStatus); } else { - ret = m_pImageObject->GetImage()->StartLoadDIBSource( + ret = m_pImageObject->GetImage()->StartLoadDIBBase( pRenderStatus->GetFormResource(), pRenderStatus->GetPageResource(), bStdCS, GroupFamily, bLoadMask); } diff --git a/core/fpdfapi/render/cpdf_imageloader.h b/core/fpdfapi/render/cpdf_imageloader.h index 629609df48..de29d0e2a9 100644 --- a/core/fpdfapi/render/cpdf_imageloader.h +++ b/core/fpdfapi/render/cpdf_imageloader.h @@ -31,8 +31,8 @@ class CPDF_ImageLoader { CPDF_RenderStatus* pRenderStatus); bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus); - RetainPtr<CFX_DIBSource> m_pBitmap; - RetainPtr<CFX_DIBSource> m_pMask; + RetainPtr<CFX_DIBBase> m_pBitmap; + RetainPtr<CFX_DIBBase> m_pMask; uint32_t m_MatteColor; bool m_bCached; diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp index 9f14e8470c..33aca42ee1 100644 --- a/core/fpdfapi/render/cpdf_imagerenderer.cpp +++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp @@ -19,7 +19,7 @@ #include "core/fpdfapi/parser/cpdf_array.h" #include "core/fpdfapi/parser/cpdf_dictionary.h" #include "core/fpdfapi/parser/cpdf_document.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_pagerendercache.h" #include "core/fpdfapi/render/cpdf_rendercontext.h" #include "core/fpdfapi/render/cpdf_renderstatus.h" @@ -29,8 +29,8 @@ #include "core/fxcrt/maybe_owned.h" #include "core/fxge/cfx_defaultrenderdevice.h" #include "core/fxge/cfx_pathdata.h" +#include "core/fxge/dib/cfx_dibbase.h" #include "core/fxge/dib/cfx_dibitmap.h" -#include "core/fxge/dib/cfx_dibsource.h" #include "core/fxge/dib/cfx_imagestretcher.h" #include "core/fxge/dib/cfx_imagetransformer.h" #include "third_party/base/ptr_util.h" @@ -53,7 +53,7 @@ CPDF_ImageRenderer::CPDF_ImageRenderer() CPDF_ImageRenderer::~CPDF_ImageRenderer() {} -bool CPDF_ImageRenderer::StartLoadDIBSource() { +bool CPDF_ImageRenderer::StartLoadDIBBase() { CFX_FloatRect image_rect_f = m_ImageMatrix.GetUnitRect(); FX_RECT image_rect = image_rect_f.GetOuterRect(); if (!image_rect.Valid()) @@ -69,13 +69,13 @@ bool CPDF_ImageRenderer::StartLoadDIBSource() { return false; } -bool CPDF_ImageRenderer::StartRenderDIBSource() { +bool CPDF_ImageRenderer::StartRenderDIBBase() { if (!m_Loader.m_pBitmap) return false; CPDF_GeneralState& state = m_pImageObject->m_GeneralState; m_BitmapAlpha = FXSYS_round(255 * state.GetFillAlpha()); - m_pDIBSource = m_Loader.m_pBitmap; + m_pDIBBase = m_Loader.m_pBitmap; if (m_pRenderStatus->GetRenderOptions().ColorModeIs( CPDF_RenderOptions::kAlpha) && !m_Loader.m_pMask) { @@ -86,7 +86,7 @@ bool CPDF_ImageRenderer::StartRenderDIBSource() { state.SetTransferFunc(m_pRenderStatus->GetTransferFunc(state.GetTR())); if (state.GetTransferFunc() && !state.GetTransferFunc()->GetIdentity()) { - m_pDIBSource = m_Loader.m_pBitmap = + m_pDIBBase = m_Loader.m_pBitmap = state.GetTransferFunc()->TranslateImage(m_Loader.m_pBitmap); if (m_Loader.m_bCached && m_Loader.m_pMask) m_Loader.m_pMask = m_Loader.m_pMask->Clone(nullptr); @@ -96,7 +96,7 @@ bool CPDF_ImageRenderer::StartRenderDIBSource() { m_FillArgb = 0; m_bPatternColor = false; m_pPattern = nullptr; - if (m_pDIBSource->IsAlphaMask()) { + if (m_pDIBBase->IsAlphaMask()) { const CPDF_Color* pColor = m_pImageObject->m_ColorState.GetFillColor(); if (pColor && pColor->IsPattern()) { m_pPattern = pColor->GetPattern(); @@ -106,12 +106,12 @@ bool CPDF_ImageRenderer::StartRenderDIBSource() { m_FillArgb = m_pRenderStatus->GetFillArgb(m_pImageObject.Get()); } else if (m_pRenderStatus->GetRenderOptions().ColorModeIs( CPDF_RenderOptions::kGray)) { - RetainPtr<CFX_DIBitmap> pClone = m_pDIBSource->Clone(nullptr); + RetainPtr<CFX_DIBitmap> pClone = m_pDIBBase->Clone(nullptr); if (!pClone) return false; pClone->ConvertColorScale(0xffffff, 0); - m_pDIBSource = pClone; + m_pDIBBase = pClone; } m_Flags = 0; if (m_pRenderStatus->GetRenderOptions().HasFlag(RENDER_FORCE_DOWNSAMPLE)) @@ -136,7 +136,7 @@ bool CPDF_ImageRenderer::StartRenderDIBSource() { if (m_BitmapAlpha != 255 || !state.HasRef() || !state.GetFillOP() || state.GetOPMode() != 0 || state.GetBlendType() != FXDIB_BLEND_NORMAL || state.GetStrokeAlpha() != 1.0f || state.GetFillAlpha() != 1.0f) { - return StartDIBSource(); + return StartDIBBase(); } CPDF_Document* pDocument = nullptr; CPDF_Page* pPage = nullptr; @@ -154,14 +154,14 @@ bool CPDF_ImageRenderer::StartRenderDIBSource() { CPDF_ColorSpace* pColorSpace = pDocument->LoadColorSpace(pCSObj, pPageResources); if (!pColorSpace) - return StartDIBSource(); + return StartDIBBase(); int format = pColorSpace->GetFamily(); if (format == PDFCS_DEVICECMYK || format == PDFCS_SEPARATION || format == PDFCS_DEVICEN) { m_BlendType = FXDIB_BLEND_DARKEN; } pDocument->GetPageData()->ReleaseColorSpace(pCSObj); - return StartDIBSource(); + return StartDIBBase(); } bool CPDF_ImageRenderer::Start(CPDF_RenderStatus* pStatus, @@ -183,13 +183,13 @@ bool CPDF_ImageRenderer::Start(CPDF_RenderStatus* pStatus, } m_ImageMatrix = m_pImageObject->matrix(); m_ImageMatrix.Concat(*pObj2Device); - if (StartLoadDIBSource()) + if (StartLoadDIBBase()) return true; - return StartRenderDIBSource(); + return StartRenderDIBBase(); } bool CPDF_ImageRenderer::Start(CPDF_RenderStatus* pStatus, - const RetainPtr<CFX_DIBSource>& pDIBSource, + const RetainPtr<CFX_DIBBase>& pDIBBase, FX_ARGB bitmap_argb, int bitmap_alpha, const CFX_Matrix* pImage2Device, @@ -197,14 +197,14 @@ bool CPDF_ImageRenderer::Start(CPDF_RenderStatus* pStatus, bool bStdCS, int blendType) { m_pRenderStatus = pStatus; - m_pDIBSource = pDIBSource; + m_pDIBBase = pDIBBase; m_FillArgb = bitmap_argb; m_BitmapAlpha = bitmap_alpha; m_ImageMatrix = *pImage2Device; m_Flags = flags; m_bStdCS = bStdCS; m_BlendType = blendType; - return StartDIBSource(); + return StartDIBBase(); } bool CPDF_ImageRenderer::NotDrawing() const { @@ -228,7 +228,7 @@ CFX_Matrix CPDF_ImageRenderer::GetDrawMatrix(const FX_RECT& rect) const { void CPDF_ImageRenderer::CalculateDrawImage( CFX_DefaultRenderDevice* pBitmapDevice1, CFX_DefaultRenderDevice* pBitmapDevice2, - const RetainPtr<CFX_DIBSource>& pDIBSource, + const RetainPtr<CFX_DIBBase>& pDIBBase, CFX_Matrix* pNewMatrix, const FX_RECT& rect) const { CPDF_RenderStatus bitmap_render(m_pRenderStatus->GetContext(), @@ -238,8 +238,8 @@ void CPDF_ImageRenderer::CalculateDrawImage( bitmap_render.Initialize(nullptr, nullptr); CPDF_ImageRenderer image_render; - if (image_render.Start(&bitmap_render, pDIBSource, 0xffffffff, 255, - pNewMatrix, m_Flags, true, FXDIB_BLEND_NORMAL)) { + if (image_render.Start(&bitmap_render, pDIBBase, 0xffffffff, 255, pNewMatrix, + m_Flags, true, FXDIB_BLEND_NORMAL)) { image_render.Continue(nullptr); } if (m_Loader.m_MatteColor == 0xffffffff) @@ -309,8 +309,8 @@ bool CPDF_ImageRenderer::DrawPatternImage(const CFX_Matrix* pObj2Device) { return true; } bitmap_device2.GetBitmap()->Clear(0); - CalculateDrawImage(&bitmap_device1, &bitmap_device2, m_pDIBSource, - &new_matrix, rect); + CalculateDrawImage(&bitmap_device1, &bitmap_device2, m_pDIBBase, &new_matrix, + rect); bitmap_device2.GetBitmap()->ConvertFormat(FXDIB_8bppMask); bitmap_device1.GetBitmap()->MultiplyAlpha(bitmap_device2.GetBitmap()); bitmap_device1.GetBitmap()->MultiplyAlpha(255); @@ -345,7 +345,7 @@ bool CPDF_ImageRenderer::DrawMaskedImage() { bitmap_render.SetStdCS(true); bitmap_render.Initialize(nullptr, nullptr); CPDF_ImageRenderer image_render; - if (image_render.Start(&bitmap_render, m_pDIBSource, 0, 255, &new_matrix, + if (image_render.Start(&bitmap_render, m_pDIBBase, 0, 255, &new_matrix, m_Flags, true, FXDIB_BLEND_NORMAL)) { image_render.Continue(nullptr); } @@ -376,12 +376,12 @@ bool CPDF_ImageRenderer::DrawMaskedImage() { return false; } -bool CPDF_ImageRenderer::StartDIBSource() { - if (!(m_Flags & RENDER_FORCE_DOWNSAMPLE) && m_pDIBSource->GetBPP() > 1) { - FX_SAFE_SIZE_T image_size = m_pDIBSource->GetBPP(); +bool CPDF_ImageRenderer::StartDIBBase() { + if (!(m_Flags & RENDER_FORCE_DOWNSAMPLE) && m_pDIBBase->GetBPP() > 1) { + FX_SAFE_SIZE_T image_size = m_pDIBBase->GetBPP(); image_size /= 8; - image_size *= m_pDIBSource->GetWidth(); - image_size *= m_pDIBSource->GetHeight(); + image_size *= m_pDIBBase->GetWidth(); + image_size *= m_pDIBBase->GetHeight(); if (!image_size.IsValid()) return false; @@ -391,8 +391,8 @@ bool CPDF_ImageRenderer::StartDIBSource() { } } #ifdef _SKIA_SUPPORT_ - RetainPtr<CFX_DIBitmap> premultiplied = m_pDIBSource->Clone(nullptr); - if (m_pDIBSource->HasAlpha()) + RetainPtr<CFX_DIBitmap> premultiplied = m_pDIBBase->Clone(nullptr); + if (m_pDIBBase->HasAlpha()) CFX_SkiaDeviceDriver::PreMultiply(premultiplied); if (m_pRenderStatus->GetRenderDevice()->StartDIBitsWithBlend( premultiplied, m_BitmapAlpha, m_FillArgb, &m_ImageMatrix, m_Flags, @@ -405,7 +405,7 @@ bool CPDF_ImageRenderer::StartDIBSource() { } #else if (m_pRenderStatus->GetRenderDevice()->StartDIBitsWithBlend( - m_pDIBSource, m_BitmapAlpha, m_FillArgb, &m_ImageMatrix, m_Flags, + m_pDIBBase, m_BitmapAlpha, m_FillArgb, &m_ImageMatrix, m_Flags, &m_DeviceHandle, m_BlendType)) { if (m_DeviceHandle) { m_Status = 3; @@ -429,7 +429,7 @@ bool CPDF_ImageRenderer::StartDIBSource() { clip_box.Intersect(image_rect); m_Status = 2; m_pTransformer = pdfium::MakeUnique<CFX_ImageTransformer>( - m_pDIBSource, &m_ImageMatrix, m_Flags, &clip_box); + m_pDIBBase, &m_ImageMatrix, m_Flags, &clip_box); return true; } if (m_ImageMatrix.a < 0) @@ -440,18 +440,18 @@ bool CPDF_ImageRenderer::StartDIBSource() { int dest_left = dest_width > 0 ? image_rect.left : image_rect.right; int dest_top = dest_height > 0 ? image_rect.top : image_rect.bottom; - if (m_pDIBSource->IsOpaqueImage() && m_BitmapAlpha == 255) { + if (m_pDIBBase->IsOpaqueImage() && m_BitmapAlpha == 255) { if (m_pRenderStatus->GetRenderDevice()->StretchDIBitsWithFlagsAndBlend( - m_pDIBSource, dest_left, dest_top, dest_width, dest_height, m_Flags, + m_pDIBBase, dest_left, dest_top, dest_width, dest_height, m_Flags, m_BlendType)) { return false; } } - if (m_pDIBSource->IsAlphaMask()) { + if (m_pDIBBase->IsAlphaMask()) { if (m_BitmapAlpha != 255) m_FillArgb = FXARGB_MUL_ALPHA(m_FillArgb, m_BitmapAlpha); if (m_pRenderStatus->GetRenderDevice()->StretchBitMaskWithFlags( - m_pDIBSource, dest_left, dest_top, dest_width, dest_height, + m_pDIBBase, dest_left, dest_top, dest_width, dest_height, m_FillArgb, m_Flags)) { return false; } @@ -468,7 +468,7 @@ bool CPDF_ImageRenderer::StartDIBSource() { 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(dest_width, dest_height, m_Flags, &dest_clip); + m_pDIBBase->StretchTo(dest_width, dest_height, m_Flags, &dest_clip); if (pStretched) { m_pRenderStatus->CompositeDIBitmap(pStretched, dest_rect.left, dest_rect.top, m_FillArgb, m_BitmapAlpha, @@ -478,7 +478,7 @@ bool CPDF_ImageRenderer::StartDIBSource() { } bool CPDF_ImageRenderer::StartBitmapAlpha() { - if (m_pDIBSource->IsOpaqueImage()) { + if (m_pDIBBase->IsOpaqueImage()) { CFX_PathData path; path.AppendRect(0, 0, 1, 1); path.Transform(&m_ImageMatrix); @@ -488,11 +488,11 @@ bool CPDF_ImageRenderer::StartBitmapAlpha() { fill_color, 0, FXFILL_WINDING); return false; } - RetainPtr<CFX_DIBSource> pAlphaMask; - if (m_pDIBSource->IsAlphaMask()) - pAlphaMask = m_pDIBSource; + RetainPtr<CFX_DIBBase> pAlphaMask; + if (m_pDIBBase->IsAlphaMask()) + pAlphaMask = m_pDIBBase; else - pAlphaMask = m_pDIBSource->CloneAlphaMask(); + pAlphaMask = m_pDIBBase->CloneAlphaMask(); if (fabs(m_ImageMatrix.b) >= 0.5f || fabs(m_ImageMatrix.c) >= 0.5f) { int left; @@ -554,7 +554,7 @@ bool CPDF_ImageRenderer::Continue(PauseIndicatorIface* pPause) { if (m_Loader.Continue(pPause, m_pRenderStatus.Get())) return true; - if (StartRenderDIBSource()) + if (StartRenderDIBBase()) return Continue(pPause); } return false; diff --git a/core/fpdfapi/render/cpdf_imagerenderer.h b/core/fpdfapi/render/cpdf_imagerenderer.h index e6c6d0c1b8..c6ccb0c86d 100644 --- a/core/fpdfapi/render/cpdf_imagerenderer.h +++ b/core/fpdfapi/render/cpdf_imagerenderer.h @@ -15,7 +15,7 @@ #include "core/fxge/dib/cfx_imagerenderer.h" class CFX_DIBitmap; -class CFX_DIBSource; +class CFX_DIBBase; class CFX_DefaultRenderDevice; class CFX_ImageTransformer; class CPDF_ImageObject; @@ -35,7 +35,7 @@ class CPDF_ImageRenderer { int blendType); bool Start(CPDF_RenderStatus* pStatus, - const RetainPtr<CFX_DIBSource>& pDIBSource, + const RetainPtr<CFX_DIBBase>& pDIBBase, FX_ARGB bitmap_argb, int bitmap_alpha, const CFX_Matrix* pImage2Device, @@ -48,9 +48,9 @@ class CPDF_ImageRenderer { private: bool StartBitmapAlpha(); - bool StartDIBSource(); - bool StartRenderDIBSource(); - bool StartLoadDIBSource(); + bool StartDIBBase(); + bool StartRenderDIBBase(); + bool StartLoadDIBBase(); bool DrawMaskedImage(); bool DrawPatternImage(const CFX_Matrix* pObj2Device); bool NotDrawing() const; @@ -58,7 +58,7 @@ class CPDF_ImageRenderer { CFX_Matrix GetDrawMatrix(const FX_RECT& rect) const; void CalculateDrawImage(CFX_DefaultRenderDevice* bitmap_device1, CFX_DefaultRenderDevice* bitmap_device2, - const RetainPtr<CFX_DIBSource>& pDIBSource, + const RetainPtr<CFX_DIBBase>& pDIBBase, CFX_Matrix* pNewMatrix, const FX_RECT& rect) const; void HandleFilters(); @@ -69,7 +69,7 @@ class CPDF_ImageRenderer { UnownedPtr<const CFX_Matrix> m_pObj2Device; CFX_Matrix m_ImageMatrix; CPDF_ImageLoader m_Loader; - RetainPtr<CFX_DIBSource> m_pDIBSource; + RetainPtr<CFX_DIBBase> m_pDIBBase; int m_BitmapAlpha; bool m_bPatternColor; UnownedPtr<CPDF_Pattern> m_pPattern; diff --git a/core/fpdfapi/render/cpdf_pagerendercache.cpp b/core/fpdfapi/render/cpdf_pagerendercache.cpp index 1358943454..61602d36f0 100644 --- a/core/fpdfapi/render/cpdf_pagerendercache.cpp +++ b/core/fpdfapi/render/cpdf_pagerendercache.cpp @@ -94,17 +94,17 @@ bool CPDF_PageRenderCache::StartGetCachedBitmap( m_pCurImageCacheEntry = new CPDF_ImageCacheEntry(m_pPage->GetDocument(), pImage); } - CPDF_DIBSource::LoadState ret = m_pCurImageCacheEntry->StartGetCachedBitmap( + CPDF_DIBBase::LoadState ret = m_pCurImageCacheEntry->StartGetCachedBitmap( pRenderStatus->GetFormResource(), m_pPage->m_pPageResources.Get(), bStdCS, GroupFamily, bLoadMask, pRenderStatus); - if (ret == CPDF_DIBSource::LoadState::kContinue) + if (ret == CPDF_DIBBase::LoadState::kContinue) return true; m_nTimeCount++; if (!m_bCurFindCache) m_ImageCache[pStream] = m_pCurImageCacheEntry; - if (ret == CPDF_DIBSource::LoadState::kFail) + if (ret == CPDF_DIBBase::LoadState::kFail) m_nCacheSize += m_pCurImageCacheEntry->EstimateSize(); return false; diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp index 2cbe495ce4..9965cbb945 100644 --- a/core/fpdfapi/render/cpdf_renderstatus.cpp +++ b/core/fpdfapi/render/cpdf_renderstatus.cpp @@ -37,7 +37,7 @@ #include "core/fpdfapi/parser/cpdf_document.h" #include "core/fpdfapi/render/cpdf_charposlist.h" #include "core/fpdfapi/render/cpdf_devicebuffer.h" -#include "core/fpdfapi/render/cpdf_dibsource.h" +#include "core/fpdfapi/render/cpdf_dibbase.h" #include "core/fpdfapi/render/cpdf_docrenderdata.h" #include "core/fpdfapi/render/cpdf_imagerenderer.h" #include "core/fpdfapi/render/cpdf_pagerendercache.h" @@ -1582,7 +1582,7 @@ bool CPDF_RenderStatus::ProcessTransparency(CPDF_PageObject* pPageObj, if (pSMaskDict) { CFX_Matrix smask_matrix = *pPageObj->m_GeneralState.GetSMaskMatrix(); smask_matrix.Concat(*pObj2Device); - RetainPtr<CFX_DIBSource> pSMaskSource = + RetainPtr<CFX_DIBBase> pSMaskSource = LoadSMask(pSMaskDict, &rect, &smask_matrix); if (pSMaskSource) bitmap->MultiplyAlpha(pSMaskSource); diff --git a/core/fpdfapi/render/cpdf_transferfunc.cpp b/core/fpdfapi/render/cpdf_transferfunc.cpp index 25717437d3..f67f508e8e 100644 --- a/core/fpdfapi/render/cpdf_transferfunc.cpp +++ b/core/fpdfapi/render/cpdf_transferfunc.cpp @@ -8,7 +8,7 @@ #include "core/fpdfapi/parser/cpdf_document.h" #include "core/fpdfapi/render/cpdf_dibtransferfunc.h" -#include "core/fxge/dib/cfx_dibsource.h" +#include "core/fxge/dib/cfx_dibbase.h" CPDF_TransferFunc::CPDF_TransferFunc(CPDF_Document* pDoc) : m_pPDFDoc(pDoc) {} @@ -20,8 +20,8 @@ FX_COLORREF CPDF_TransferFunc::TranslateColor(FX_COLORREF colorref) const { m_Samples[FXSYS_GetRValue(colorref)]); } -RetainPtr<CFX_DIBSource> CPDF_TransferFunc::TranslateImage( - const RetainPtr<CFX_DIBSource>& pSrc) { +RetainPtr<CFX_DIBBase> CPDF_TransferFunc::TranslateImage( + const RetainPtr<CFX_DIBBase>& pSrc) { RetainPtr<CPDF_TransferFunc> pHolder(this); auto pDest = pdfium::MakeRetain<CPDF_DIBTransferFunc>(pHolder); pDest->LoadSrc(pSrc); diff --git a/core/fpdfapi/render/cpdf_transferfunc.h b/core/fpdfapi/render/cpdf_transferfunc.h index dfc186ec6c..e8964727c6 100644 --- a/core/fpdfapi/render/cpdf_transferfunc.h +++ b/core/fpdfapi/render/cpdf_transferfunc.h @@ -12,7 +12,7 @@ #include "core/fxge/fx_dib.h" class CPDF_Document; -class CFX_DIBSource; +class CFX_DIBBase; class CPDF_TransferFunc : public Retainable { public: @@ -20,7 +20,7 @@ class CPDF_TransferFunc : public Retainable { friend RetainPtr<T> pdfium::MakeRetain(Args&&... args); FX_COLORREF TranslateColor(FX_COLORREF colorref) const; - RetainPtr<CFX_DIBSource> TranslateImage(const RetainPtr<CFX_DIBSource>& pSrc); + RetainPtr<CFX_DIBBase> TranslateImage(const RetainPtr<CFX_DIBBase>& pSrc); const CPDF_Document* GetDocument() const { return m_pPDFDoc.Get(); } |