From 8f875507a986d10335e40a5f7c1679aff9770d0a Mon Sep 17 00:00:00 2001 From: caryclark Date: Tue, 6 Dec 2016 13:49:34 -0800 Subject: re-enable skia caching This permits consecutive path drawing or text drawing to combine if their graphics state matches. This speeds up rendering considerably when PDFium draws in many small parts. It also allows discarding changes to the clip state that have no effect from draw to draw. All corpus tests draw equivalently with caching enabled or disabled. Change the member order in CPDF_PageRenderContext so the device is flushed before the referencing annotation is deleted. Add more printf style debugging for test draws. R=dsinclair@chromium.org Review-Url: https://codereview.chromium.org/2546803003 --- fpdfsdk/fpdfformfill.cpp | 5 +++-- fpdfsdk/fpdfview.cpp | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'fpdfsdk') diff --git a/fpdfsdk/fpdfformfill.cpp b/fpdfsdk/fpdfformfill.cpp index 44204b766a..6b8cbaa59d 100644 --- a/fpdfsdk/fpdfformfill.cpp +++ b/fpdfsdk/fpdfformfill.cpp @@ -137,10 +137,11 @@ void FFLCommon(FPDF_FORMHANDLE hHandle, pPageView->PageView_OnDraw(pDevice.get(), &matrix, &options); #endif // PDF_ENABLE_XFA -#ifdef _SKIA_SUPPORT_PATHS + pDevice->RestoreState(false); +#ifdef _SKIA_SUPPORT_PATHS_ + pDevice->Flush(); CFXBitmapFromFPDFBitmap(bitmap)->UnPreMultiply(); #endif - pDevice->RestoreState(false); delete options.m_pOCContext; options.m_pOCContext = nullptr; } diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp index f0c269a312..fb87c838d4 100644 --- a/fpdfsdk/fpdfview.cpp +++ b/fpdfsdk/fpdfview.cpp @@ -720,6 +720,7 @@ DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, rotate, flags, true, nullptr); #ifdef _SKIA_SUPPORT_PATHS_ + pDevice->Flush(); pBitmap->UnPreMultiply(); #endif pPage->SetRenderContext(nullptr); -- cgit v1.2.3