Remove CFX_SkiaDeviceDriver::Flush()
Removes CFX_SkiaDeviceDriver::Flush() and related APIs, as this API now
does nothing.
Calls of the form CFX_RenderDevice::Flush(true) technically still had an
effect, as they release the underlying RenderDeviceDriverIface instance.
Other than the flush behavior, however, this is just an optimization to
release memory a little earlier.
The same effect can be accomplished by destructing the CFX_RenderDevice
itself, but the extra complexity isn't necessary. If we later find cases
where this would be useful, we can just move CFX_RenderDevice into a
narrower scope.
Bug: pdfium:1963
Change-Id: I0c999d8d4f200d0987c2f09daaeb3d1e69a27063
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/104530
Reviewed-by: Nigi <nigi@chromium.org>
Commit-Queue: K. Moon <kmoon@chromium.org>
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index ece6c2d..5475729 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -54,7 +54,6 @@
#include "core/fxcrt/autorestorer.h"
#include "core/fxcrt/data_vector.h"
#include "core/fxcrt/fx_2d_size.h"
-#include "core/fxcrt/fx_memory.h"
#include "core/fxcrt/fx_safe_types.h"
#include "core/fxcrt/fx_system.h"
#include "core/fxcrt/span_util.h"
@@ -161,28 +160,6 @@
return pChar && (!pChar->colored() || MissingStrokeColor(pColorState));
}
-#ifdef _SKIA_SUPPORT_
-class ScopedSkiaDeviceFlush {
- public:
- FX_STACK_ALLOCATED();
-
- explicit ScopedSkiaDeviceFlush(CFX_RenderDevice* pDevice)
- : m_pDevice(pDevice) {}
-
- ScopedSkiaDeviceFlush(const ScopedSkiaDeviceFlush&) = delete;
- ScopedSkiaDeviceFlush& operator=(const ScopedSkiaDeviceFlush&) = delete;
-
- ~ScopedSkiaDeviceFlush() {
- if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
- m_pDevice->Flush(/*release=*/false);
- }
- }
-
- private:
- UnownedPtr<CFX_RenderDevice> const m_pDevice;
-};
-#endif
-
} // namespace
CPDF_RenderStatus::CPDF_RenderStatus(CPDF_RenderContext* pContext,
@@ -716,7 +693,6 @@
bitmap_render.ProcessObjectNoClip(pPageObj, new_matrix);
#ifdef _SKIA_SUPPORT_
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
- bitmap_device.Flush(true);
bitmap->UnPreMultiply();
}
#endif // _SKIA_SUPPORT_
@@ -1193,9 +1169,6 @@
return;
CFX_RenderDevice::StateRestorer restorer(m_pDevice);
-#ifdef _SKIA_SUPPORT_
- ScopedSkiaDeviceFlush scoped_skia_device_flush(m_pDevice);
-#endif
if (!ClipPattern(pPageObj, mtObj2Device, stroke))
return;
@@ -1440,11 +1413,6 @@
status.SetDropObjects(m_bDropObjects);
status.Initialize(nullptr, nullptr);
status.RenderObjectList(&form, matrix);
-#ifdef _SKIA_SUPPORT_
- if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
- bitmap_device.Flush(/*release=*/true);
- }
-#endif // _SKIA_SUPPORT_
auto pMask = pdfium::MakeRetain<CFX_DIBitmap>();
if (!pMask->Create(width, height, FXDIB_Format::k8bppMask))
diff --git a/core/fxge/cfx_defaultrenderdevice.cpp b/core/fxge/cfx_defaultrenderdevice.cpp
index fc61b58..27bae45 100644
--- a/core/fxge/cfx_defaultrenderdevice.cpp
+++ b/core/fxge/cfx_defaultrenderdevice.cpp
@@ -37,12 +37,7 @@
CFX_DefaultRenderDevice::CFX_DefaultRenderDevice() = default;
-CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() {
-#ifdef _SKIA_SUPPORT_
- if (SkiaIsDefaultRenderer())
- Flush(true);
-#endif
-}
+CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() = default;
bool CFX_DefaultRenderDevice::Attach(RetainPtr<CFX_DIBitmap> pBitmap) {
return AttachWithRgbByteOrder(std::move(pBitmap), false);
diff --git a/core/fxge/cfx_renderdevice.cpp b/core/fxge/cfx_renderdevice.cpp
index d96021c..59fc820 100644
--- a/core/fxge/cfx_renderdevice.cpp
+++ b/core/fxge/cfx_renderdevice.cpp
@@ -487,10 +487,6 @@
CFX_RenderDevice::~CFX_RenderDevice() {
RestoreState(false);
-#ifdef _SKIA_SUPPORT_
- if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
- Flush(true);
-#endif
}
// static
@@ -501,15 +497,6 @@
return CFX_Matrix(width, 0, 0, -height, left, top + height);
}
-#ifdef _SKIA_SUPPORT_
-void CFX_RenderDevice::Flush(bool release) {
- if (release)
- m_pDeviceDriver.reset();
- else
- m_pDeviceDriver->Flush();
-}
-#endif
-
void CFX_RenderDevice::SetDeviceDriver(
std::unique_ptr<RenderDeviceDriverIface> pDriver) {
DCHECK(pDriver);
@@ -801,10 +788,6 @@
fill_options, blend_type)) {
return false;
}
-#ifdef _SKIA_SUPPORT_
- if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
- bitmap_device.GetDeviceDriver()->Flush();
-#endif
FX_RECT src_rect(0, 0, rect.Width(), rect.Height());
return m_pDeviceDriver->SetDIBits(bitmap, 0, src_rect, rect.left, rect.top,
BlendMode::kNormal);
diff --git a/core/fxge/cfx_renderdevice.h b/core/fxge/cfx_renderdevice.h
index 909cbb2..39c0272 100644
--- a/core/fxge/cfx_renderdevice.h
+++ b/core/fxge/cfx_renderdevice.h
@@ -217,9 +217,6 @@
int bitmap_alpha,
BlendMode blend_type);
#endif
-#ifdef _SKIA_SUPPORT_
- void Flush(bool release);
-#endif
protected:
CFX_RenderDevice();
diff --git a/core/fxge/renderdevicedriver_iface.cpp b/core/fxge/renderdevicedriver_iface.cpp
index 26911a6..b549ea2 100644
--- a/core/fxge/renderdevicedriver_iface.cpp
+++ b/core/fxge/renderdevicedriver_iface.cpp
@@ -84,7 +84,3 @@
void RenderDeviceDriverIface::SetGroupKnockout(bool group_knockout) {}
#endif
-
-#ifdef _SKIA_SUPPORT_
-void RenderDeviceDriverIface::Flush() {}
-#endif
diff --git a/core/fxge/renderdevicedriver_iface.h b/core/fxge/renderdevicedriver_iface.h
index c22fe54..8c5fb35 100644
--- a/core/fxge/renderdevicedriver_iface.h
+++ b/core/fxge/renderdevicedriver_iface.h
@@ -117,9 +117,6 @@
BlendMode blend_type);
virtual void SetGroupKnockout(bool group_knockout);
#endif
-#ifdef _SKIA_SUPPORT_
- virtual void Flush();
-#endif
};
#endif // CORE_FXGE_RENDERDEVICEDRIVER_IFACE_H_
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index 06715aa..c155561 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -1334,8 +1334,6 @@
}
CFX_SkiaDeviceDriver::~CFX_SkiaDeviceDriver() {
- Flush();
-
// Convert and transfer the internal processed result to the original 24 bpp
// bitmap provided by the render device.
if (m_pOriginalBitmap && m_pBitmap->ConvertFormat(FXDIB_Format::kRgb)) {
@@ -1353,9 +1351,6 @@
delete m_pCanvas;
}
-// TODO(crbug.com/pdfium/1963): Remove this API.
-void CFX_SkiaDeviceDriver::Flush() {}
-
bool CFX_SkiaDeviceDriver::DrawDeviceText(
pdfium::span<const TextCharPos> pCharPos,
CFX_Font* pFont,
@@ -2043,12 +2038,6 @@
}
void CFX_SkiaDeviceDriver::SetGroupKnockout(bool group_knockout) {
- if (group_knockout == m_bGroupKnockout)
- return;
-
- // Make sure to flush cached commands before changing `m_bGroupKnockout`
- // status.
- Flush();
m_bGroupKnockout = group_knockout;
}
@@ -2183,8 +2172,6 @@
int top,
int bitmap_alpha,
BlendMode blend_type) {
- // Finish painting before drawing masks.
- Flush(false);
return static_cast<CFX_SkiaDeviceDriver*>(GetDeviceDriver())
->SetBitsWithMask(pBitmap, pMask, left, top, bitmap_alpha, blend_type);
}
diff --git a/core/fxge/skia/fx_skia_device.h b/core/fxge/skia/fx_skia_device.h
index 5e70b7a..724c69a 100644
--- a/core/fxge/skia/fx_skia_device.h
+++ b/core/fxge/skia/fx_skia_device.h
@@ -138,7 +138,6 @@
virtual uint8_t* GetBuffer() const;
void Clear(uint32_t color);
- void Flush() override;
SkCanvas* SkiaCanvas() { return m_pCanvas; }
void DebugVerifyBitmapIsPreMultiplied() const;
void Dump() const;
diff --git a/core/fxge/skia/fx_skia_device_embeddertest.cpp b/core/fxge/skia/fx_skia_device_embeddertest.cpp
index 9b4005a..517d863 100644
--- a/core/fxge/skia/fx_skia_device_embeddertest.cpp
+++ b/core/fxge/skia/fx_skia_device_embeddertest.cpp
@@ -137,7 +137,6 @@
auto driver = CFX_SkiaDeviceDriver::Create(pBitmap, false, nullptr, false);
ASSERT_TRUE(driver);
(*Test)(driver.get(), state);
- driver->Flush();
uint32_t pixel = pBitmap->GetPixel(0, 0);
EXPECT_EQ(state.m_pixel, pixel);
}
diff --git a/fpdfsdk/fpdf_progressive.cpp b/fpdfsdk/fpdf_progressive.cpp
index e5ad3d9..0cf7cf7 100644
--- a/fpdfsdk/fpdf_progressive.cpp
+++ b/fpdfsdk/fpdf_progressive.cpp
@@ -72,7 +72,6 @@
#ifdef _SKIA_SUPPORT_
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
- pDevice->Flush(false);
pBitmap->UnPreMultiply();
}
#endif // _SKIA_SUPPORT_
@@ -116,9 +115,7 @@
#ifdef _SKIA_SUPPORT_
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
- CFX_RenderDevice* pDevice = pContext->m_pDevice.get();
- pDevice->Flush(false);
- pDevice->GetBitmap()->UnPreMultiply();
+ pContext->m_pDevice->GetBitmap()->UnPreMultiply();
}
#endif // _SKIA_SUPPORT_
return ToFPDFStatus(pContext->m_pRenderer->GetStatus());
diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp
index 00293a8..723af28 100644
--- a/fpdfsdk/fpdf_view.cpp
+++ b/fpdfsdk/fpdf_view.cpp
@@ -682,7 +682,6 @@
#ifdef _SKIA_SUPPORT_
if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
- pDevice->Flush(true);
pBitmap->UnPreMultiply();
}
#endif
diff --git a/xfa/fde/cfde_textout.cpp b/xfa/fde/cfde_textout.cpp
index 1f8226e..af6ce53 100644
--- a/xfa/fde/cfde_textout.cpp
+++ b/xfa/fde/cfde_textout.cpp
@@ -26,10 +26,6 @@
#include "xfa/fgas/font/cfgas_gefont.h"
#include "xfa/fgas/layout/cfgas_txtbreak.h"
-#ifdef _SKIA_SUPPORT_
-#include "core/fxge/cfx_defaultrenderdevice.h"
-#endif
-
namespace {
bool TextAlignmentVerticallyCentered(const FDE_TextAlignment align) {
@@ -122,10 +118,6 @@
bRet = device->DrawNormalText(pdfium::make_span(pCurCP, iCurCount), font,
-fFontSize, matrix, color, kOptions);
}
-#ifdef _SKIA_SUPPORT_
- if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer())
- device->Flush(false);
-#endif
return bRet;
}