Debugger improvements
This CL:
improves the 'SaveAs' functionality
allows switching between # and offset indexing in the command list
minor nit cleanup
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/211383003
git-svn-id: http://skia.googlecode.com/svn/trunk@13950 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/debugger/SkDebugger.cpp b/debugger/SkDebugger.cpp
index f684dd8..82b26a1 100644
--- a/debugger/SkDebugger.cpp
+++ b/debugger/SkDebugger.cpp
@@ -31,7 +31,9 @@
delete fDebugCanvas;
fDebugCanvas = new SkDebugCanvas(fPictureWidth, fPictureHeight);
fDebugCanvas->setBounds(fPictureWidth, fPictureHeight);
+ fDebugCanvas->setPicture(picture);
picture->draw(fDebugCanvas);
+ fDebugCanvas->setPicture(NULL);
fIndex = fDebugCanvas->getSize() - 1;
SkRefCnt_SafeAssign(fPicture, picture);
}
@@ -41,7 +43,25 @@
// commands. Playing back will strip those out.
SkPicture* newPicture = new SkPicture;
SkCanvas* canvas = newPicture->beginRecording(fPictureWidth, fPictureHeight);
+
+ bool vizMode = fDebugCanvas->getMegaVizMode();
+ fDebugCanvas->setMegaVizMode(false);
+ bool overDraw = fDebugCanvas->getOverdrawViz();
+ fDebugCanvas->setOverdrawViz(false);
+ int saveCount = fDebugCanvas->getOutstandingSaveCount();
+ fDebugCanvas->setOutstandingSaveCount(0);
+
fDebugCanvas->draw(canvas);
+
+ int temp = fDebugCanvas->getOutstandingSaveCount();
+ for (int i = 0; i < temp; ++i) {
+ canvas->restore();
+ }
+
+ fDebugCanvas->setMegaVizMode(vizMode);
+ fDebugCanvas->setOverdrawViz(overDraw);
+ fDebugCanvas->setOutstandingSaveCount(saveCount);
+
newPicture->endRecording();
return newPicture;
}