diff options
author | robertphillips <robertphillips@google.com> | 2014-10-16 14:28:28 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-16 14:28:28 -0700 |
commit | 70171683e6977af7472f0f465bd81852d0644ddd (patch) | |
tree | 6658846b90529d06b19f0e084a30890bc56fe7f6 /src/utils/debugger/SkDrawCommand.cpp | |
parent | 427cf28861867c0ea9aafca3a23878ec4068ad99 (diff) |
"Fix" debugger's setMatrix handling
This remedies two problems with the debugger's matrix handling:
1) the user matrix was not being passed to the setMatrix command (for a concat)
2) the setting of the user matrix was not consistently forcing a complete re-rendering of the scene
BUG=skia:3018
Review URL: https://codereview.chromium.org/660883002
Diffstat (limited to 'src/utils/debugger/SkDrawCommand.cpp')
-rw-r--r-- | src/utils/debugger/SkDrawCommand.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/utils/debugger/SkDrawCommand.cpp b/src/utils/debugger/SkDrawCommand.cpp index 0da8f98954..93c436df64 100644 --- a/src/utils/debugger/SkDrawCommand.cpp +++ b/src/utils/debugger/SkDrawCommand.cpp @@ -964,13 +964,19 @@ void SkScaleCommand::execute(SkCanvas* canvas) { SkSetMatrixCommand::SkSetMatrixCommand(const SkMatrix& matrix) : INHERITED(SET_MATRIX) { + fUserMatrix.reset(); fMatrix = matrix; fInfo.push(SkObjectParser::MatrixToString(matrix)); } +void SkSetMatrixCommand::setUserMatrix(const SkMatrix& userMatrix) { + fUserMatrix = userMatrix; +} + void SkSetMatrixCommand::execute(SkCanvas* canvas) { - canvas->setMatrix(fMatrix); + SkMatrix temp = SkMatrix::Concat(fUserMatrix, fMatrix); + canvas->setMatrix(temp); } SkSkewCommand::SkSkewCommand(SkScalar sx, SkScalar sy) |