aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkCanvas.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index e3374dde52..067ccdc4ef 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -853,7 +853,10 @@ SkBaseDevice* SkCanvas::getDevice() const {
return rec->fLayer->fDevice;
}
-SkBaseDevice* SkCanvas::getTopDevice() const {
+SkBaseDevice* SkCanvas::getTopDevice(bool updateMatrixClip) const {
+ if (updateMatrixClip) {
+ const_cast<SkCanvas*>(this)->updateDeviceCMCache();
+ }
return fMCRec->fTopLayer->fDevice;
}
@@ -1400,7 +1403,7 @@ void* SkCanvas::accessTopLayerPixels(SkImageInfo* info, size_t* rowBytes, SkIPoi
*rowBytes = pmap.rowBytes();
}
if (origin) {
- *origin = this->getTopDevice()->getOrigin();
+ *origin = this->getTopDevice(false)->getOrigin();
}
return pmap.writable_addr();
}