Merge CFX_FilteredDIB into CPDF_DIBTransferFunc.
CFX_FilteredDIB is a pure virtual class with only a single sub-class.
Merge the two and delete CFX_FilteredDIB.
Change-Id: I6617e57e04956564770ec4ce08d5d254208dfc99
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/65070
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_dibtransferfunc.cpp b/core/fpdfapi/page/cpdf_dibtransferfunc.cpp
index cab90b3..d675e42 100644
--- a/core/fpdfapi/page/cpdf_dibtransferfunc.cpp
+++ b/core/fpdfapi/page/cpdf_dibtransferfunc.cpp
@@ -179,3 +179,32 @@
#endif
}
}
+
+void CPDF_DIBTransferFunc::LoadSrc(const RetainPtr<CFX_DIBBase>& pSrc) {
+ m_pSrc = pSrc;
+ m_Width = pSrc->GetWidth();
+ m_Height = pSrc->GetHeight();
+ FXDIB_Format format = GetDestFormat();
+ m_bpp = GetBppFromFormat(format);
+ m_AlphaFlag = GetAlphaFlagFromFormat(format);
+ m_Pitch = (m_Width * m_bpp + 31) / 32 * 4;
+ m_pPalette.reset(GetDestPalette());
+ m_Scanline.resize(m_Pitch);
+}
+
+const uint8_t* CPDF_DIBTransferFunc::GetScanline(int line) const {
+ TranslateScanline(m_pSrc->GetScanline(line), &m_Scanline);
+ return m_Scanline.data();
+}
+
+void CPDF_DIBTransferFunc::DownSampleScanline(int line,
+ uint8_t* dest_scan,
+ int dest_bpp,
+ int dest_width,
+ bool bFlipX,
+ int clip_left,
+ int clip_width) const {
+ m_pSrc->DownSampleScanline(line, dest_scan, dest_bpp, dest_width, bFlipX,
+ clip_left, clip_width);
+ TranslateDownSamples(dest_scan, dest_scan, clip_width, dest_bpp);
+}
diff --git a/core/fpdfapi/page/cpdf_dibtransferfunc.h b/core/fpdfapi/page/cpdf_dibtransferfunc.h
index 35072e2..cad79a4 100644
--- a/core/fpdfapi/page/cpdf_dibtransferfunc.h
+++ b/core/fpdfapi/page/cpdf_dibtransferfunc.h
@@ -9,32 +9,44 @@
#include <vector>
-#include "core/fxge/dib/cfx_filtereddib.h"
-#include "core/fxge/fx_dib.h"
+#include "core/fxcrt/retain_ptr.h"
+#include "core/fxge/dib/cfx_dibbase.h"
#include "third_party/base/span.h"
class CPDF_TransferFunc;
-class CPDF_DIBTransferFunc final : public CFX_FilteredDIB {
+class CPDF_DIBTransferFunc final : public CFX_DIBBase {
public:
template <typename T, typename... Args>
friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
- // CFX_FilteredDIB
- FXDIB_Format GetDestFormat() override;
- FX_ARGB* GetDestPalette() override;
+ FXDIB_Format GetDestFormat();
+ FX_ARGB* GetDestPalette();
void TranslateScanline(const uint8_t* src_buf,
- std::vector<uint8_t>* dest_buf) const override;
+ std::vector<uint8_t>* dest_buf) const;
void TranslateDownSamples(uint8_t* dest_buf,
const uint8_t* src_buf,
int pixels,
- int Bpp) const override;
+ int Bpp) const;
+ void LoadSrc(const RetainPtr<CFX_DIBBase>& pSrc);
private:
explicit CPDF_DIBTransferFunc(
const RetainPtr<CPDF_TransferFunc>& pTransferFunc);
~CPDF_DIBTransferFunc() override;
+ // CFX_DIBBase:
+ const uint8_t* GetScanline(int line) const override;
+ void DownSampleScanline(int line,
+ uint8_t* dest_scan,
+ int dest_bpp,
+ int dest_width,
+ bool bFlipX,
+ int clip_left,
+ int clip_width) const override;
+
+ RetainPtr<CFX_DIBBase> m_pSrc;
+ mutable std::vector<uint8_t> m_Scanline;
RetainPtr<CPDF_TransferFunc> m_pTransferFunc;
const pdfium::span<const uint8_t> m_RampR;
const pdfium::span<const uint8_t> m_RampG;
diff --git a/core/fxge/BUILD.gn b/core/fxge/BUILD.gn
index 1c34eba..ebfe8ab 100644
--- a/core/fxge/BUILD.gn
+++ b/core/fxge/BUILD.gn
@@ -63,8 +63,6 @@
"dib/cfx_dibbase.h",
"dib/cfx_dibitmap.cpp",
"dib/cfx_dibitmap.h",
- "dib/cfx_filtereddib.cpp",
- "dib/cfx_filtereddib.h",
"dib/cfx_imagerenderer.cpp",
"dib/cfx_imagerenderer.h",
"dib/cfx_imagestretcher.cpp",
diff --git a/core/fxge/dib/cfx_filtereddib.cpp b/core/fxge/dib/cfx_filtereddib.cpp
deleted file mode 100644
index 8cbcdad..0000000
--- a/core/fxge/dib/cfx_filtereddib.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2017 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "core/fxge/dib/cfx_filtereddib.h"
-
-#include "core/fxge/fx_dib.h"
-
-CFX_FilteredDIB::CFX_FilteredDIB() {}
-
-CFX_FilteredDIB::~CFX_FilteredDIB() {}
-
-void CFX_FilteredDIB::LoadSrc(const RetainPtr<CFX_DIBBase>& pSrc) {
- m_pSrc = pSrc;
- m_Width = pSrc->GetWidth();
- m_Height = pSrc->GetHeight();
- FXDIB_Format format = GetDestFormat();
- m_bpp = GetBppFromFormat(format);
- m_AlphaFlag = GetAlphaFlagFromFormat(format);
- m_Pitch = (m_Width * m_bpp + 31) / 32 * 4;
- m_pPalette.reset(GetDestPalette());
- m_Scanline.resize(m_Pitch);
-}
-
-const uint8_t* CFX_FilteredDIB::GetScanline(int line) const {
- TranslateScanline(m_pSrc->GetScanline(line), &m_Scanline);
- return m_Scanline.data();
-}
-
-void CFX_FilteredDIB::DownSampleScanline(int line,
- uint8_t* dest_scan,
- int dest_bpp,
- int dest_width,
- bool bFlipX,
- int clip_left,
- int clip_width) const {
- m_pSrc->DownSampleScanline(line, dest_scan, dest_bpp, dest_width, bFlipX,
- clip_left, clip_width);
- TranslateDownSamples(dest_scan, dest_scan, clip_width, dest_bpp);
-}
diff --git a/core/fxge/dib/cfx_filtereddib.h b/core/fxge/dib/cfx_filtereddib.h
deleted file mode 100644
index ec32a78..0000000
--- a/core/fxge/dib/cfx_filtereddib.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright 2017 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_FXGE_DIB_CFX_FILTEREDDIB_H_
-#define CORE_FXGE_DIB_CFX_FILTEREDDIB_H_
-
-#include <vector>
-
-#include "core/fxcrt/retain_ptr.h"
-#include "core/fxge/dib/cfx_dibbase.h"
-
-class CFX_FilteredDIB : public CFX_DIBBase {
- public:
- template <typename T, typename... Args>
- friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
-
- virtual FXDIB_Format GetDestFormat() = 0;
- virtual uint32_t* GetDestPalette() = 0;
- virtual void TranslateScanline(const uint8_t* src_buf,
- std::vector<uint8_t>* dest_buf) const = 0;
- virtual void TranslateDownSamples(uint8_t* dest_buf,
- const uint8_t* src_buf,
- int pixels,
- int Bpp) const = 0;
-
- void LoadSrc(const RetainPtr<CFX_DIBBase>& pSrc);
-
- protected:
- CFX_FilteredDIB();
- ~CFX_FilteredDIB() override;
-
- // CFX_DIBBase
- const uint8_t* GetScanline(int line) const override;
- void DownSampleScanline(int line,
- uint8_t* dest_scan,
- int dest_bpp,
- int dest_width,
- bool bFlipX,
- int clip_left,
- int clip_width) const override;
-
- RetainPtr<CFX_DIBBase> m_pSrc;
- mutable std::vector<uint8_t> m_Scanline;
-};
-
-#endif // CORE_FXGE_DIB_CFX_FILTEREDDIB_H_