summaryrefslogtreecommitdiff
path: root/libs/hwui/SkiaCanvasProxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/SkiaCanvasProxy.cpp')
-rw-r--r--libs/hwui/SkiaCanvasProxy.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/hwui/SkiaCanvasProxy.cpp b/libs/hwui/SkiaCanvasProxy.cpp
index 295ec4bbaf0a..811a3b0d664e 100644
--- a/libs/hwui/SkiaCanvasProxy.cpp
+++ b/libs/hwui/SkiaCanvasProxy.cpp
@@ -136,7 +136,7 @@ void SkiaCanvasProxy::onDrawSprite(const SkBitmap& bitmap, int left, int top,
const SkPaint* paint) {
// TODO: if bitmap is a subset, do we need to add pixelRefOrigin to src?
mCanvas->save(SkCanvas::kMatrixClip_SaveFlag);
- mCanvas->setMatrix(SkMatrix::I());
+ mCanvas->setLocalMatrix(SkMatrix::I());
mCanvas->drawBitmap(bitmap, left, top, paint);
mCanvas->restore();
}
@@ -186,7 +186,9 @@ void SkiaCanvasProxy::didConcat(const SkMatrix& matrix) {
}
void SkiaCanvasProxy::didSetMatrix(const SkMatrix& matrix) {
- mCanvas->setMatrix(matrix);
+ // SkCanvas setMatrix() is relative to the Canvas origin, but OpenGLRenderer's
+ // setMatrix() is relative to device origin; call setLocalMatrix() instead.
+ mCanvas->setLocalMatrix(matrix);
}
void SkiaCanvasProxy::onDrawDRRect(const SkRRect& outer, const SkRRect& inner,