diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/fpdfapi/render/cpdf_renderstatus.cpp | 4 | ||||
-rw-r--r-- | core/fxge/cfx_renderdevice.cpp | 9 | ||||
-rw-r--r-- | core/fxge/cfx_renderdevice.h | 2 | ||||
-rw-r--r-- | core/fxge/skia/fx_skia_device.cpp | 2 |
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_ |