summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/fpdfapi/render/cpdf_renderstatus.cpp4
-rw-r--r--core/fxge/cfx_renderdevice.cpp9
-rw-r--r--core/fxge/cfx_renderdevice.h2
-rw-r--r--core/fxge/skia/fx_skia_device.cpp2
4 files changed, 10 insertions, 7 deletions
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index e033f26093..a08650500b 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -944,7 +944,7 @@ CFX_RetainPtr<CFX_DIBitmap> DrawPatternBitmap(CPDF_Document* pDoc,
context.AppendLayer(pPattern->form(), &mtPattern2Bitmap);
context.Render(&bitmap_device, &options, nullptr);
#if defined _SKIA_SUPPORT_PATHS_
- bitmap_device.Flush();
+ bitmap_device.Flush(true);
pBitmap->UnPreMultiply();
#endif
return pBitmap;
@@ -1602,7 +1602,7 @@ bool CPDF_RenderStatus::ProcessTransparency(CPDF_PageObject* pPageObj,
m_bDropObjects, pFormResource, true);
bitmap_render.ProcessObjectNoClip(pPageObj, &new_matrix);
#if defined _SKIA_SUPPORT_PATHS_
- bitmap_device.Flush();
+ bitmap_device.Flush(true);
bitmap->UnPreMultiply();
#endif
m_bStopped = bitmap_render.m_bStopped;
diff --git a/core/fxge/cfx_renderdevice.cpp b/core/fxge/cfx_renderdevice.cpp
index 407c090c73..279e720d1e 100644
--- a/core/fxge/cfx_renderdevice.cpp
+++ b/core/fxge/cfx_renderdevice.cpp
@@ -375,13 +375,16 @@ CFX_RenderDevice::CFX_RenderDevice()
CFX_RenderDevice::~CFX_RenderDevice() {
RestoreState(false);
#if defined _SKIA_SUPPORT_ || defined _SKIA_SUPPORT_PATHS_
- Flush();
+ Flush(true);
#endif
}
#if defined _SKIA_SUPPORT_ || defined _SKIA_SUPPORT_PATHS_
-void CFX_RenderDevice::Flush() {
- m_pDeviceDriver.reset();
+void CFX_RenderDevice::Flush(bool release) {
+ if (release)
+ m_pDeviceDriver.reset();
+ else
+ m_pDeviceDriver->Flush();
}
#endif
diff --git a/core/fxge/cfx_renderdevice.h b/core/fxge/cfx_renderdevice.h
index ef15718d58..ad8e487749 100644
--- a/core/fxge/cfx_renderdevice.h
+++ b/core/fxge/cfx_renderdevice.h
@@ -274,7 +274,7 @@ class CFX_RenderDevice {
int blend_type);
#endif
#if defined _SKIA_SUPPORT_ || defined _SKIA_SUPPORT_PATHS_
- void Flush();
+ void Flush(bool release);
#endif
private:
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index 855699a4be..523c8a28e8 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -2595,7 +2595,7 @@ bool CFX_DefaultRenderDevice::Create(
}
CFX_DefaultRenderDevice::~CFX_DefaultRenderDevice() {
- Flush();
+ Flush(true);
}
#ifdef _SKIA_SUPPORT_