Index: Source/platform/graphics/GraphicsContext.cpp |
diff --git a/Source/platform/graphics/GraphicsContext.cpp b/Source/platform/graphics/GraphicsContext.cpp |
index 5f8fc1109c2669579e506d99d1ce31415100ce46..f4691ddf85cd5bb21342d48c83abaa746c5151dc 100644 |
--- a/Source/platform/graphics/GraphicsContext.cpp |
+++ b/Source/platform/graphics/GraphicsContext.cpp |
@@ -186,6 +186,10 @@ void GraphicsContext::saveLayer(const SkRect* bounds, const SkPaint* paint, SkCa |
realizeCanvasSave(SkCanvas::kMatrixClip_SaveFlag); |
+ // We should always save the matrix and clip to match upcoming Skia behavior. |
+ ASSERT(saveFlags & SkCanvas::kMatrix_SaveFlag); |
+ ASSERT(saveFlags & SkCanvas::kClip_SaveFlag); |
+ |
m_canvas->saveLayer(bounds, paint, saveFlags); |
if (bounds) |
m_canvas->clipRect(*bounds); |
@@ -455,7 +459,8 @@ void GraphicsContext::beginLayer(float opacity, CompositeOperator op, const Floa |
// (the surface of the page) but layers on top may have transparent parts. |
// Without explicitly setting the alpha flag, the layer will inherit the |
// opaque setting of the base and some things won't work properly. |
- SkCanvas::SaveFlags saveFlags = static_cast<SkCanvas::SaveFlags>(SkCanvas::kHasAlphaLayer_SaveFlag | SkCanvas::kFullColorLayer_SaveFlag); |
+ SkCanvas::SaveFlags saveFlags = static_cast<SkCanvas::SaveFlags>( |
+ SkCanvas::kMatrixClip_SaveFlag | SkCanvas::kHasAlphaLayer_SaveFlag | SkCanvas::kFullColorLayer_SaveFlag); |
SkPaint layerPaint; |
layerPaint.setAlpha(static_cast<unsigned char>(opacity * 255)); |