From a27d49a3e9eafd7fd911a0a6039ce80284ccb463 Mon Sep 17 00:00:00 2001 From: caryclark Date: Wed, 6 Jul 2016 10:20:25 -0700 Subject: copy graphics state fully The dash parameters where not copied; the copy could point at random data and cause corpus tests to hang when testing Skia. PDFium measures text directly by calling FreeType. Turn off hinting altogether in Skia so that drawn text matches the metrics that PDFium measures. Premultiply bits retrieved from images, and check to see that the device bits are always premultiplied. Look for null graphics state and matrices. R=thestig@chromium.org,dsinclair@chromium.org BUG=pdfium:532 Review-Url: https://codereview.chromium.org/2120353004 --- core/fxge/include/fx_ge.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'core/fxge/include/fx_ge.h') diff --git a/core/fxge/include/fx_ge.h b/core/fxge/include/fx_ge.h index 5599a75f59..ea2adec1dc 100644 --- a/core/fxge/include/fx_ge.h +++ b/core/fxge/include/fx_ge.h @@ -215,6 +215,7 @@ class CFX_RenderDevice { CFX_RenderDevice(); virtual ~CFX_RenderDevice(); + void Flush(); void SetDeviceDriver(IFX_RenderDeviceDriver* pDriver); IFX_RenderDeviceDriver* GetDeviceDriver() const { return m_pDeviceDriver; } @@ -378,6 +379,10 @@ class CFX_RenderDevice { CFX_PathData* pClippingPath, int nFlag); +#ifdef _SKIA_SUPPORT_ + virtual void DebugVerifyBitmapIsPreMultiplied() const; +#endif + private: void InitDeviceInfo(); void UpdateClipBox(); @@ -416,7 +421,7 @@ class CFX_FxgeDevice : public CFX_RenderDevice { #ifdef _SKIA_SUPPORT_ bool AttachRecorder(SkPictureRecorder* recorder); SkPictureRecorder* CreateRecorder(int size_x, int size_y); - void PreMultiply(); + void DebugVerifyBitmapIsPreMultiplied() const override; #endif protected: -- cgit v1.2.3