diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkCanvas.cpp | 7 |
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(); } |