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_