"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
diff --git a/src/utils/debugger/SkDrawCommand.h b/src/utils/debugger/SkDrawCommand.h
index def0db4..1d3d373 100644
--- a/src/utils/debugger/SkDrawCommand.h
+++ b/src/utils/debugger/SkDrawCommand.h
@@ -41,6 +41,9 @@
SkTDArray<SkString*>* Info() {return &fInfo; };
virtual void execute(SkCanvas* canvas) = 0;
virtual void vizExecute(SkCanvas* canvas) { };
+
+ virtual void setUserMatrix(const SkMatrix& userMtx) { };
+
/** Does nothing by default, but used by save() and restore()-type
subclasses to track unresolved save() calls. */
virtual void trackSaveState(int* state) { };
@@ -592,8 +595,10 @@
class SkSetMatrixCommand : public SkDrawCommand {
public:
SkSetMatrixCommand(const SkMatrix& matrix);
+ virtual void setUserMatrix(const SkMatrix&) SK_OVERRIDE;
virtual void execute(SkCanvas* canvas) SK_OVERRIDE;
private:
+ SkMatrix fUserMatrix;
SkMatrix fMatrix;
typedef SkDrawCommand INHERITED;