From 46625e06e23b65c05013fc686a8223d6d5b49050 Mon Sep 17 00:00:00 2001 From: robertphillips Date: Mon, 8 Sep 2014 11:37:59 -0700 Subject: Fix two SkRecord-backed layer hoisting bugs The two bugs are/were: The old loop to draw the hoisted layers included the saveLayer call which caused double application of the layer's paint (This is the +1 change). The hoisted layer is intended to be drawn in device coordinates. The old code was drawing it in the coordinate space of the saveLayer thus it was misplaced (This is the setMatrix change). Committed: https://skia.googlesource.com/skia/+/7c0cfd4ff8f6db50a8731c886db732b106268937 R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/551843002 --- src/gpu/GrLayerHoister.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/gpu/GrLayerHoister.cpp') diff --git a/src/gpu/GrLayerHoister.cpp b/src/gpu/GrLayerHoister.cpp index ac09df825b..49ca338bb2 100644 --- a/src/gpu/GrLayerHoister.cpp +++ b/src/gpu/GrLayerHoister.cpp @@ -95,7 +95,7 @@ void GrLayerHoister::DrawLayers(const SkPicture* picture, atlasCanvas->concat(layer->ctm()); SkRecordPartialDraw(*picture->fRecord.get(), atlasCanvas, bound, - layer->start(), layer->stop()); + layer->start()+1, layer->stop()); atlasCanvas->restore(); } @@ -129,7 +129,7 @@ void GrLayerHoister::DrawLayers(const SkPicture* picture, layerCanvas->concat(layer->ctm()); SkRecordPartialDraw(*picture->fRecord.get(), layerCanvas, bound, - layer->start(), layer->stop()); + layer->start()+1, layer->stop()); layerCanvas->flush(); } -- cgit v1.2.3