aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/debugger/SkDrawCommand.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2014-10-16 14:28:28 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-16 14:28:28 -0700
commit70171683e6977af7472f0f465bd81852d0644ddd (patch)
tree6658846b90529d06b19f0e084a30890bc56fe7f6 /src/utils/debugger/SkDrawCommand.cpp
parent427cf28861867c0ea9aafca3a23878ec4068ad99 (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.cpp8
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)