diff options
| author | 2015-06-30 11:26:13 -0400 | |
|---|---|---|
| committer | 2015-07-09 16:15:31 -0400 | |
| commit | ac7b6d33d23cb0baaf61c723346198d41f012035 (patch) | |
| tree | 9302223ad4dd2337f6e6b4524fe83032532c20a4 /libs/hwui/SkiaCanvasProxy.cpp | |
| parent | 937edac8e8583023019b625dd426ebf65169e30d (diff) | |
New setLocalMatrix() operation for HWUI
Concats any matrix passed through from DisplayListCanvas with the
initialTransform of the containing RenderNode.
BUG:22189925
Change-Id: I5ea54a6e2a29520c79a8860bde7682694e8595d2
Diffstat (limited to 'libs/hwui/SkiaCanvasProxy.cpp')
| -rw-r--r-- | libs/hwui/SkiaCanvasProxy.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/hwui/SkiaCanvasProxy.cpp b/libs/hwui/SkiaCanvasProxy.cpp index 8a6c8c50d30d..d96ca2afed00 100644 --- a/libs/hwui/SkiaCanvasProxy.cpp +++ b/libs/hwui/SkiaCanvasProxy.cpp @@ -115,7 +115,7 @@ void SkiaCanvasProxy::onDrawBitmapNine(const SkBitmap& bitmap, const SkIRect& ce void SkiaCanvasProxy::onDrawSprite(const SkBitmap& bitmap, int left, int top, const SkPaint* paint) { mCanvas->save(SkCanvas::kMatrixClip_SaveFlag); - mCanvas->setMatrix(SkMatrix::I()); + mCanvas->setLocalMatrix(SkMatrix::I()); mCanvas->drawBitmap(bitmap, left, top, paint); mCanvas->restore(); } @@ -165,7 +165,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, |