Remove code that was only used by the old debugger
Change-Id: I1035d9fa5f9888f3b6c332b16a0bde69f357a4a8
Reviewed-on: https://skia-review.googlesource.com/119144
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index c718ded..ff6cc1b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1290,7 +1290,6 @@
"tools/debugger/SkDebugCanvas.cpp",
"tools/debugger/SkDrawCommand.cpp",
"tools/debugger/SkJsonWriteBuffer.cpp",
- "tools/debugger/SkObjectParser.cpp",
"tools/fonts/SkRandomScalerContext.cpp",
"tools/fonts/SkTestFontMgr.cpp",
"tools/fonts/SkTestFontMgr.h",
@@ -1783,7 +1782,6 @@
"tools/debugger/SkDebugCanvas.cpp",
"tools/debugger/SkDrawCommand.cpp",
"tools/debugger/SkJsonWriteBuffer.cpp",
- "tools/debugger/SkObjectParser.cpp",
"tools/picture_utils.cpp",
]
deps = [
@@ -2117,7 +2115,6 @@
"tools/debugger/SkDebugCanvas.cpp",
"tools/debugger/SkDrawCommand.cpp",
"tools/debugger/SkJsonWriteBuffer.cpp",
- "tools/debugger/SkObjectParser.cpp",
"tools/mdbviz/MainWindow.cpp",
"tools/mdbviz/Model.cpp",
"tools/mdbviz/main.cpp",
diff --git a/tools/debugger/SkDebugCanvas.cpp b/tools/debugger/SkDebugCanvas.cpp
index 8644025..156f957 100644
--- a/tools/debugger/SkDebugCanvas.cpp
+++ b/tools/debugger/SkDebugCanvas.cpp
@@ -6,10 +6,10 @@
*/
#include "SkCanvasPriv.h"
-#include "SkClipStack.h"
#include "SkDebugCanvas.h"
#include "SkDrawCommand.h"
#include "SkPaintFilterCanvas.h"
+#include "SkPicture.h"
#include "SkRectPriv.h"
#include "SkTextBlob.h"
#include "SkClipOpPriv.h"
@@ -28,13 +28,9 @@
class DebugPaintFilterCanvas : public SkPaintFilterCanvas {
public:
DebugPaintFilterCanvas(SkCanvas* canvas,
- bool overdrawViz,
- bool overrideFilterQuality,
- SkFilterQuality quality)
+ bool overdrawViz)
: INHERITED(canvas)
- , fOverdrawViz(overdrawViz)
- , fOverrideFilterQuality(overrideFilterQuality)
- , fFilterQuality(quality) {}
+ , fOverdrawViz(overdrawViz) {}
protected:
bool onFilter(SkTCopyOnFirstWrite<SkPaint>* paint, Type) const override {
@@ -44,10 +40,6 @@
paint->writable()->setAlpha(0x08);
paint->writable()->setBlendMode(SkBlendMode::kSrcOver);
}
-
- if (fOverrideFilterQuality) {
- paint->writable()->setFilterQuality(fFilterQuality);
- }
}
return true;
}
@@ -61,24 +53,15 @@
private:
bool fOverdrawViz;
- bool fOverrideFilterQuality;
- SkFilterQuality fFilterQuality;
typedef SkPaintFilterCanvas INHERITED;
};
SkDebugCanvas::SkDebugCanvas(int width, int height)
: INHERITED(width, height)
- , fPicture(nullptr)
- , fFilter(false)
- , fMegaVizMode(false)
, fOverdrawViz(false)
- , fOverrideFilterQuality(false)
- , fFilterQuality(kNone_SkFilterQuality)
, fClipVizColor(SK_ColorTRANSPARENT)
, fDrawGpuOpBounds(false) {
- fUserMatrix.reset();
-
// SkPicturePlayback uses the base-class' quickReject calls to cull clipped
// operations. This can lead to problems in the debugger which expects all
// the operations in the captured skp to appear in the debug canvas. To
@@ -112,57 +95,6 @@
}
}
-void SkDebugCanvas::applyUserTransform(SkCanvas* canvas) {
- canvas->concat(fUserMatrix);
-}
-
-int SkDebugCanvas::getCommandAtPoint(int x, int y, int index) {
- SkBitmap bitmap;
- bitmap.allocPixels(SkImageInfo::MakeN32Premul(1, 1));
-
- SkCanvas canvas(bitmap);
- canvas.translate(SkIntToScalar(-x), SkIntToScalar(-y));
- this->applyUserTransform(&canvas);
-
- int layer = 0;
- SkColor prev = bitmap.getColor(0,0);
- for (int i = 0; i < index; i++) {
- if (fCommandVector[i]->isVisible()) {
- fCommandVector[i]->setUserMatrix(fUserMatrix);
- fCommandVector[i]->execute(&canvas);
- }
- if (prev != bitmap.getColor(0,0)) {
- layer = i;
- }
- prev = bitmap.getColor(0,0);
- }
- return layer;
-}
-
-// set up the saveLayer commands so that the active ones
-// return true in their 'active' method
-void SkDebugCanvas::markActiveCommands(int index) {
- fActiveLayers.rewind();
-
- for (int i = 0; i < fCommandVector.count(); ++i) {
- fCommandVector[i]->setActive(false);
- }
-
- for (int i = 0; i < index; ++i) {
- SkDrawCommand::Action result = fCommandVector[i]->action();
- if (SkDrawCommand::kPushLayer_Action == result) {
- fActiveLayers.push(fCommandVector[i]);
- } else if (SkDrawCommand::kPopLayer_Action == result) {
- fActiveLayers.pop();
- }
- }
-
- for (int i = 0; i < fActiveLayers.count(); ++i) {
- fActiveLayers[i]->setActive(true);
- }
-
-}
-
void SkDebugCanvas::drawTo(SkCanvas* originalCanvas, int index, int m) {
SkASSERT(!fCommandVector.isEmpty());
SkASSERT(index < fCommandVector.count());
@@ -172,21 +104,13 @@
SkRect windowRect = SkRect::MakeWH(SkIntToScalar(originalCanvas->getBaseLayerSize().width()),
SkIntToScalar(originalCanvas->getBaseLayerSize().height()));
- bool pathOpsMode = getAllowSimplifyClip();
- originalCanvas->setAllowSimplifyClip(pathOpsMode);
originalCanvas->clear(SK_ColorWHITE);
originalCanvas->resetMatrix();
if (!windowRect.isEmpty()) {
originalCanvas->clipRect(windowRect, kReplace_SkClipOp);
}
- this->applyUserTransform(originalCanvas);
- DebugPaintFilterCanvas filterCanvas(originalCanvas, fOverdrawViz, fOverrideFilterQuality,
- fFilterQuality);
-
- if (fMegaVizMode) {
- this->markActiveCommands(index);
- }
+ DebugPaintFilterCanvas filterCanvas(originalCanvas, fOverdrawViz);
#if SK_SUPPORT_GPU
// If we have a GPU backend we can also visualize the op information
@@ -198,10 +122,6 @@
#endif
for (int i = 0; i <= index; i++) {
- if (i == index && fFilter) {
- filterCanvas.clear(0xAAFFFFFF);
- }
-
#if SK_SUPPORT_GPU
// We need to flush any pending operations, or they might combine with commands below.
// Previous operations were not registered with the audit trail when they were
@@ -215,16 +135,7 @@
#endif
if (fCommandVector[i]->isVisible()) {
- if (fMegaVizMode && fCommandVector[i]->active()) {
- // "active" commands execute their visualization behaviors:
- // All active saveLayers get replaced with saves so all draws go to the
- // visible canvas.
- // All active culls draw their cull box
- fCommandVector[i]->vizExecute(&filterCanvas);
- } else {
- fCommandVector[i]->setUserMatrix(fUserMatrix);
- fCommandVector[i]->execute(&filterCanvas);
- }
+ fCommandVector[i]->execute(&filterCanvas);
}
#if SK_SUPPORT_GPU
if (at && acb) {
@@ -245,28 +156,6 @@
filterCanvas.restore();
}
- if (pathOpsMode) {
- this->resetClipStackData();
- const SkClipStack* clipStack = nullptr;//HACK filterCanvas.getClipStack();
- SkClipStack::Iter iter(*clipStack, SkClipStack::Iter::kBottom_IterStart);
- const SkClipStack::Element* element;
- SkPath devPath;
- while ((element = iter.next())) {
- SkClipStack::Element::DeviceSpaceType type = element->getDeviceSpaceType();
- SkPath operand;
- if (type != SkClipStack::Element::DeviceSpaceType::kEmpty) {
- element->asDeviceSpacePath(&operand);
- }
- SkClipOp elementOp = element->getOp();
- this->addClipStackData(devPath, operand, elementOp);
- if (elementOp == kReplace_SkClipOp) {
- devPath = operand;
- } else {
- Op(devPath, operand, (SkPathOp) elementOp, &devPath);
- }
- }
- this->lastClipStackData(devPath);
- }
fMatrix = filterCanvas.getTotalMatrix();
fClip = filterCanvas.getDeviceClipBounds();
filterCanvas.restoreToCount(saveCount);
@@ -334,30 +223,6 @@
return fCommandVector[index];
}
-void SkDebugCanvas::setDrawCommandAt(int index, SkDrawCommand* command) {
- SkASSERT(index < fCommandVector.count());
- delete fCommandVector[index];
- fCommandVector[index] = command;
-}
-
-const SkTDArray<SkString*>* SkDebugCanvas::getCommandInfo(int index) const {
- SkASSERT(index < fCommandVector.count());
- return fCommandVector[index]->Info();
-}
-
-bool SkDebugCanvas::getDrawCommandVisibilityAt(int index) {
- SkASSERT(index < fCommandVector.count());
- return fCommandVector[index]->isVisible();
-}
-
-const SkTDArray <SkDrawCommand*>& SkDebugCanvas::getDrawCommands() const {
- return fCommandVector;
-}
-
-SkTDArray <SkDrawCommand*>& SkDebugCanvas::getDrawCommands() {
- return fCommandVector;
-}
-
GrAuditTrail* SkDebugCanvas::getAuditTrail(SkCanvas* canvas) {
GrAuditTrail* at = nullptr;
#if SK_SUPPORT_GPU
@@ -448,11 +313,6 @@
fOverdrawViz = overdrawViz;
}
-void SkDebugCanvas::overrideTexFiltering(bool overrideTexFiltering, SkFilterQuality quality) {
- fOverrideFilterQuality = overrideTexFiltering;
- fFilterQuality = quality;
-}
-
void SkDebugCanvas::onClipPath(const SkPath& path, SkClipOp op, ClipEdgeStyle edgeStyle) {
this->addDrawCommand(new SkClipPathCommand(path, op, kSoft_ClipEdgeStyle == edgeStyle));
}
@@ -634,128 +494,3 @@
SkASSERT(index < fCommandVector.count());
fCommandVector[index]->setVisible(toggle);
}
-
-static const char* gFillTypeStrs[] = {
- "kWinding_FillType",
- "kEvenOdd_FillType",
- "kInverseWinding_FillType",
- "kInverseEvenOdd_FillType"
-};
-
-static const char* gOpStrs[] = {
- "kDifference_PathOp",
- "kIntersect_PathOp",
- "kUnion_PathOp",
- "kXor_PathOp",
- "kReverseDifference_PathOp",
-};
-
-static const char kHTML4SpaceIndent[] = " ";
-
-void SkDebugCanvas::outputScalar(SkScalar num) {
- if (num == (int) num) {
- fClipStackData.appendf("%d", (int) num);
- } else {
- SkString str;
- str.printf("%1.9g", num);
- int width = (int) str.size();
- const char* cStr = str.c_str();
- while (cStr[width - 1] == '0') {
- --width;
- }
- str.resize(width);
- fClipStackData.appendf("%sf", str.c_str());
- }
-}
-
-void SkDebugCanvas::outputPointsCommon(const SkPoint* pts, int count) {
- for (int index = 0; index < count; ++index) {
- this->outputScalar(pts[index].fX);
- fClipStackData.appendf(", ");
- this->outputScalar(pts[index].fY);
- if (index + 1 < count) {
- fClipStackData.appendf(", ");
- }
- }
-}
-
-void SkDebugCanvas::outputPoints(const SkPoint* pts, int count) {
- this->outputPointsCommon(pts, count);
- fClipStackData.appendf(");<br>");
-}
-
-void SkDebugCanvas::outputConicPoints(const SkPoint* pts, SkScalar weight) {
- this->outputPointsCommon(pts, 2);
- fClipStackData.appendf(", ");
- this->outputScalar(weight);
- fClipStackData.appendf(");<br>");
-}
-
-void SkDebugCanvas::addPathData(const SkPath& path, const char* pathName) {
- SkPath::RawIter iter(path);
- SkPath::FillType fillType = path.getFillType();
- fClipStackData.appendf("%sSkPath %s;<br>", kHTML4SpaceIndent, pathName);
- fClipStackData.appendf("%s%s.setFillType(SkPath::%s);<br>", kHTML4SpaceIndent, pathName,
- gFillTypeStrs[fillType]);
- iter.setPath(path);
- uint8_t verb;
- SkPoint pts[4];
- while ((verb = iter.next(pts)) != SkPath::kDone_Verb) {
- switch (verb) {
- case SkPath::kMove_Verb:
- fClipStackData.appendf("%s%s.moveTo(", kHTML4SpaceIndent, pathName);
- this->outputPoints(&pts[0], 1);
- continue;
- case SkPath::kLine_Verb:
- fClipStackData.appendf("%s%s.lineTo(", kHTML4SpaceIndent, pathName);
- this->outputPoints(&pts[1], 1);
- break;
- case SkPath::kQuad_Verb:
- fClipStackData.appendf("%s%s.quadTo(", kHTML4SpaceIndent, pathName);
- this->outputPoints(&pts[1], 2);
- break;
- case SkPath::kConic_Verb:
- fClipStackData.appendf("%s%s.conicTo(", kHTML4SpaceIndent, pathName);
- this->outputConicPoints(&pts[1], iter.conicWeight());
- break;
- case SkPath::kCubic_Verb:
- fClipStackData.appendf("%s%s.cubicTo(", kHTML4SpaceIndent, pathName);
- this->outputPoints(&pts[1], 3);
- break;
- case SkPath::kClose_Verb:
- fClipStackData.appendf("%s%s.close();<br>", kHTML4SpaceIndent, pathName);
- break;
- default:
- SkDEBUGFAIL("bad verb");
- return;
- }
- }
-}
-
-void SkDebugCanvas::addClipStackData(const SkPath& devPath, const SkPath& operand,
- SkClipOp elementOp) {
- if (elementOp == kReplace_SkClipOp) {
- if (!lastClipStackData(devPath)) {
- fSaveDevPath = operand;
- }
- fCalledAddStackData = false;
- } else {
- fClipStackData.appendf("<br>static void test(skiatest::Reporter* reporter,"
- " const char* filename) {<br>");
- addPathData(fCalledAddStackData ? devPath : fSaveDevPath, "path");
- addPathData(operand, "pathB");
- fClipStackData.appendf("%stestPathOp(reporter, path, pathB, %s, filename);<br>",
- kHTML4SpaceIndent, gOpStrs[static_cast<int>(elementOp)]);
- fClipStackData.appendf("}<br>");
- fCalledAddStackData = true;
- }
-}
-
-bool SkDebugCanvas::lastClipStackData(const SkPath& devPath) {
- if (fCalledAddStackData) {
- fClipStackData.appendf("<br>");
- addPathData(devPath, "pathOut");
- return true;
- }
- return false;
-}
diff --git a/tools/debugger/SkDebugCanvas.h b/tools/debugger/SkDebugCanvas.h
index 45266d3..2a3dcbb 100644
--- a/tools/debugger/SkDebugCanvas.h
+++ b/tools/debugger/SkDebugCanvas.h
@@ -13,7 +13,6 @@
#include "SkDrawCommand.h"
#include "SkPath.h"
#include "SkPathOps.h"
-#include "SkPicture.h"
#include "SkString.h"
#include "SkTArray.h"
#include "SkVertices.h"
@@ -21,6 +20,7 @@
class GrAuditTrail;
class SkNWayCanvas;
+class SkPicture;
class SkDebugCanvas : public SkCanvas {
public:
@@ -28,12 +28,6 @@
~SkDebugCanvas() override;
- void toggleFilter(bool toggle) { fFilter = toggle; }
-
- void setMegaVizMode(bool megaVizMode) { fMegaVizMode = megaVizMode; }
-
- bool getMegaVizMode() const { return fMegaVizMode; }
-
/**
* Enable or disable overdraw visualization
*/
@@ -46,21 +40,10 @@
*/
void setClipVizColor(SkColor clipVizColor) { this->fClipVizColor = clipVizColor; }
- SkColor getClipVizColor() const { return fClipVizColor; }
-
void setDrawGpuOpBounds(bool drawGpuOpBounds) { fDrawGpuOpBounds = drawGpuOpBounds; }
bool getDrawGpuOpBounds() const { return fDrawGpuOpBounds; }
- bool getAllowSimplifyClip() const { return fAllowSimplifyClip; }
-
- void setPicture(SkPicture *picture) { fPicture = picture; }
-
- /**
- * Enable or disable texure filtering override
- */
- void overrideTexFiltering(bool overrideTexFiltering, SkFilterQuality);
-
/**
Executes all draw calls to the canvas.
@param canvas The canvas being drawn to
@@ -90,11 +73,6 @@
}
/**
- Returns the index of the last draw command to write to the pixel at (x,y)
- */
- int getCommandAtPoint(int x, int y, int index);
-
- /**
Removes the command at the specified index
@param index The index of the command to delete
*/
@@ -107,37 +85,6 @@
SkDrawCommand *getDrawCommandAt(int index);
/**
- Sets the draw command for a given index.
- @param index The index to overwrite
- @param command The new command
- */
- void setDrawCommandAt(int index, SkDrawCommand *command);
-
- /**
- Returns information about the command at the given index.
- @param index The index of the command
- */
- const SkTDArray<SkString *> *getCommandInfo(int index) const;
-
- /**
- Returns the visibility of the command at the given index.
- @param index The index of the command
- */
- bool getDrawCommandVisibilityAt(int index);
-
- /**
- Returns the vector of draw commands
- */
- SK_ATTR_DEPRECATED("please use getDrawCommandAt and getSize instead")
- const SkTDArray<SkDrawCommand *> &getDrawCommands() const;
-
- /**
- Returns the vector of draw commands. Do not use this entry
- point - it is going away!
- */
- SkTDArray<SkDrawCommand *> &getDrawCommands();
-
- /**
Returns length of draw command vector.
*/
int getSize() const {
@@ -150,12 +97,6 @@
*/
void toggleCommand(int index, bool toggle);
- void setUserMatrix(SkMatrix matrix) {
- fUserMatrix = matrix;
- }
-
- SkString clipStackData() const { return fClipStackData; }
-
/**
Returns a JSON object representing up to the Nth draw, where N is less than
SkDebugCanvas::getSize(). The encoder may use the UrlDataManager to store binary data such
@@ -226,55 +167,21 @@
void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) override;
- void markActiveCommands(int index);
-
private:
SkTDArray<SkDrawCommand*> fCommandVector;
- SkPicture* fPicture;
- bool fFilter;
- bool fMegaVizMode;
- SkMatrix fUserMatrix;
SkMatrix fMatrix;
SkIRect fClip;
- SkString fClipStackData;
- bool fCalledAddStackData;
- SkPath fSaveDevPath;
-
bool fOverdrawViz;
- bool fOverrideFilterQuality;
- SkFilterQuality fFilterQuality;
SkColor fClipVizColor;
bool fDrawGpuOpBounds;
/**
- The active saveLayer commands at a given point in the renderering.
- Only used when "mega" visualization is enabled.
- */
- SkTDArray<SkDrawCommand*> fActiveLayers;
-
- /**
Adds the command to the class' vector of commands.
@param command The draw command for execution
*/
void addDrawCommand(SkDrawCommand* command);
- /**
- Applies any panning and zooming the user has specified before
- drawing anything else into the canvas.
- */
- void applyUserTransform(SkCanvas* canvas);
-
- void resetClipStackData() { fClipStackData.reset(); fCalledAddStackData = false; }
-
- void addClipStackData(const SkPath& devPath, const SkPath& operand, SkClipOp elementOp);
- void addPathData(const SkPath& path, const char* pathName);
- bool lastClipStackData(const SkPath& devPath);
- void outputConicPoints(const SkPoint* pts, SkScalar weight);
- void outputPoints(const SkPoint* pts, int count);
- void outputPointsCommon(const SkPoint* pts, int count);
- void outputScalar(SkScalar num);
-
GrAuditTrail* getAuditTrail(SkCanvas*);
void drawAndCollectOps(int n, SkCanvas*);
diff --git a/tools/debugger/SkDrawCommand.cpp b/tools/debugger/SkDrawCommand.cpp
index 076dac5..27a2765 100644
--- a/tools/debugger/SkDrawCommand.cpp
+++ b/tools/debugger/SkDrawCommand.cpp
@@ -15,7 +15,6 @@
#include "SkImageFilter.h"
#include "SkJsonWriteBuffer.h"
#include "SkMaskFilterBase.h"
-#include "SkObjectParser.h"
#include "SkPaintDefaults.h"
#include "SkPathEffect.h"
#include "SkPicture.h"
@@ -206,10 +205,6 @@
, fVisible(true) {
}
-SkDrawCommand::~SkDrawCommand() {
- fInfo.deleteAll();
-}
-
const char* SkDrawCommand::GetCommandString(OpType type) {
switch (type) {
case kBeginDrawPicture_OpType: return "BeginDrawPicture";
@@ -258,10 +253,6 @@
return nullptr;
}
-SkString SkDrawCommand::toString() const {
- return SkString(GetCommandString(fOpType));
-}
-
Json::Value SkDrawCommand::toJSON(UrlDataManager& urlDataManager) const {
Json::Value result;
result[SKDEBUGCANVAS_ATTRIBUTE_COMMAND] = this->GetCommandString(fOpType);
@@ -1789,7 +1780,6 @@
SkClearCommand::SkClearCommand(SkColor color) : INHERITED(kClear_OpType) {
fColor = color;
- fInfo.push(SkObjectParser::CustomTextToString("No Parameters"));
}
void SkClearCommand::execute(SkCanvas* canvas) const {
@@ -1812,10 +1802,6 @@
fPath = path;
fOp = op;
fDoAA = doAA;
-
- fInfo.push(SkObjectParser::PathToString(path));
- fInfo.push(SkObjectParser::ClipOpToString(op));
- fInfo.push(SkObjectParser::BoolToString(doAA));
}
void SkClipPathCommand::execute(SkCanvas* canvas) const {
@@ -1847,9 +1833,6 @@
: INHERITED(kClipRegion_OpType) {
fRegion = region;
fOp = op;
-
- fInfo.push(SkObjectParser::RegionToString(region));
- fInfo.push(SkObjectParser::ClipOpToString(op));
}
void SkClipRegionCommand::execute(SkCanvas* canvas) const {
@@ -1876,10 +1859,6 @@
fRect = rect;
fOp = op;
fDoAA = doAA;
-
- fInfo.push(SkObjectParser::RectToString(rect));
- fInfo.push(SkObjectParser::ClipOpToString(op));
- fInfo.push(SkObjectParser::BoolToString(doAA));
}
void SkClipRectCommand::execute(SkCanvas* canvas) const {
@@ -1911,10 +1890,6 @@
fRRect = rrect;
fOp = op;
fDoAA = doAA;
-
- fInfo.push(SkObjectParser::RRectToString(rrect));
- fInfo.push(SkObjectParser::ClipOpToString(op));
- fInfo.push(SkObjectParser::BoolToString(doAA));
}
void SkClipRRectCommand::execute(SkCanvas* canvas) const {
@@ -1946,8 +1921,6 @@
SkConcatCommand::SkConcatCommand(const SkMatrix& matrix)
: INHERITED(kConcat_OpType) {
fMatrix = matrix;
-
- fInfo.push(SkObjectParser::MatrixToString(matrix));
}
void SkConcatCommand::execute(SkCanvas* canvas) const {
@@ -1975,15 +1948,6 @@
, fKey(key)
, fValue(std::move(value))
{
- SkString str;
- str.appendf("Key: %s Value: ", key);
- if (fValue && fValue->size()) {
- str.append((const char*) fValue->bytes(), fValue->size());
- } else {
- str.appendf("no value");
- }
- str.appendf("\n");
- fInfo.push(new SkString(str));
}
void SkDrawAnnotationCommand::execute(SkCanvas* canvas) const {
@@ -2028,13 +1992,6 @@
} else {
fPaintPtr = nullptr;
}
-
- fInfo.push(SkObjectParser::BitmapToString(bitmap));
- fInfo.push(SkObjectParser::ScalarToString(left, "SkScalar left: "));
- fInfo.push(SkObjectParser::ScalarToString(top, "SkScalar top: "));
- if (paint) {
- fInfo.push(SkObjectParser::PaintToString(*paint));
- }
}
void SkDrawBitmapCommand::execute(SkCanvas* canvas) const {
@@ -2094,13 +2051,6 @@
} else {
fPaintPtr = nullptr;
}
-
- fInfo.push(SkObjectParser::BitmapToString(bitmap));
- fInfo.push(SkObjectParser::IRectToString(center));
- fInfo.push(SkObjectParser::RectToString(dst, "Dst: "));
- if (paint) {
- fInfo.push(SkObjectParser::PaintToString(*paint));
- }
}
void SkDrawBitmapNineCommand::execute(SkCanvas* canvas) const {
@@ -2170,16 +2120,6 @@
fPaintPtr = nullptr;
}
fConstraint = constraint;
-
- fInfo.push(SkObjectParser::BitmapToString(bitmap));
- if (src) {
- fInfo.push(SkObjectParser::RectToString(*src, "Src: "));
- }
- fInfo.push(SkObjectParser::RectToString(dst, "Dst: "));
- if (paint) {
- fInfo.push(SkObjectParser::PaintToString(*paint));
- }
- fInfo.push(SkObjectParser::IntToString(fConstraint, "Constraint: "));
}
void SkDrawBitmapRectCommand::execute(SkCanvas* canvas) const {
@@ -2261,13 +2201,8 @@
, fLeft(left)
, fTop(top) {
- fInfo.push(SkObjectParser::ImageToString(image));
- fInfo.push(SkObjectParser::ScalarToString(left, "Left: "));
- fInfo.push(SkObjectParser::ScalarToString(top, "Top: "));
-
if (paint) {
fPaint.set(*paint);
- fInfo.push(SkObjectParser::PaintToString(*paint));
}
}
@@ -2346,12 +2281,8 @@
, fLattice(lattice)
, fDst(dst) {
- fInfo.push(SkObjectParser::ImageToString(image));
- fInfo.push(SkObjectParser::LatticeToString(lattice));
- fInfo.push(SkObjectParser::RectToString(dst, "Dst: "));
if (paint) {
fPaint.set(*paint);
- fInfo.push(SkObjectParser::PaintToString(*paint));
}
}
@@ -2413,16 +2344,6 @@
if (paint) {
fPaint.set(*paint);
}
-
- fInfo.push(SkObjectParser::ImageToString(image));
- if (src) {
- fInfo.push(SkObjectParser::RectToString(*src, "Src: "));
- }
- fInfo.push(SkObjectParser::RectToString(dst, "Dst: "));
- if (paint) {
- fInfo.push(SkObjectParser::PaintToString(*paint));
- }
- fInfo.push(SkObjectParser::IntToString(fConstraint, "Constraint: "));
}
void SkDrawImageRectCommand::execute(SkCanvas* canvas) const {
@@ -2514,13 +2435,6 @@
} else {
fPaintPtr = nullptr;
}
-
- fInfo.push(SkObjectParser::ImageToString(image));
- fInfo.push(SkObjectParser::IRectToString(center));
- fInfo.push(SkObjectParser::RectToString(dst, "Dst: "));
- if (paint) {
- fInfo.push(SkObjectParser::PaintToString(*paint));
- }
}
void SkDrawImageNineCommand::execute(SkCanvas* canvas) const {
@@ -2577,9 +2491,6 @@
: INHERITED(kDrawOval_OpType) {
fOval = oval;
fPaint = paint;
-
- fInfo.push(SkObjectParser::RectToString(oval));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawOvalCommand::execute(SkCanvas* canvas) const {
@@ -2626,12 +2537,6 @@
fSweepAngle = sweepAngle;
fUseCenter = useCenter;
fPaint = paint;
-
- fInfo.push(SkObjectParser::RectToString(oval));
- fInfo.push(SkObjectParser::ScalarToString(startAngle, "StartAngle: "));
- fInfo.push(SkObjectParser::ScalarToString(sweepAngle, "SweepAngle: "));
- fInfo.push(SkObjectParser::BoolToString(useCenter));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawArcCommand::execute(SkCanvas* canvas) const {
@@ -2679,8 +2584,6 @@
SkDrawPaintCommand::SkDrawPaintCommand(const SkPaint& paint)
: INHERITED(kDrawPaint_OpType) {
fPaint = paint;
-
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawPaintCommand::execute(SkCanvas* canvas) const {
@@ -2710,9 +2613,6 @@
: INHERITED(kDrawPath_OpType) {
fPath = path;
fPaint = paint;
-
- fInfo.push(SkObjectParser::PathToString(path));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawPathCommand::execute(SkCanvas* canvas) const {
@@ -2744,9 +2644,6 @@
: INHERITED(kDrawRegion_OpType) {
fRegion = region;
fPaint = paint;
-
- fInfo.push(SkObjectParser::RegionToString(region));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawRegionCommand::execute(SkCanvas* canvas) const {
@@ -2779,23 +2676,13 @@
const SkPaint* paint)
: INHERITED(kBeginDrawPicture_OpType)
, fPicture(SkRef(picture)) {
-
- SkString* str = new SkString;
- str->appendf("SkPicture: L: %f T: %f R: %f B: %f",
- picture->cullRect().fLeft, picture->cullRect().fTop,
- picture->cullRect().fRight, picture->cullRect().fBottom);
- fInfo.push(str);
-
if (matrix) {
fMatrix.set(*matrix);
- fInfo.push(SkObjectParser::MatrixToString(*matrix));
}
if (paint) {
fPaint.set(*paint);
- fInfo.push(SkObjectParser::PaintToString(*paint));
}
-
}
void SkBeginDrawPictureCommand::execute(SkCanvas* canvas) const {
@@ -2845,12 +2732,6 @@
fPts = new SkPoint[count];
memcpy(fPts, pts, count * sizeof(SkPoint));
fPaint = paint;
-
- fInfo.push(SkObjectParser::PointsToString(pts, count));
- fInfo.push(SkObjectParser::ScalarToString(SkIntToScalar((unsigned int)count),
- "Points: "));
- fInfo.push(SkObjectParser::PointModeToString(mode));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawPointsCommand::execute(SkCanvas* canvas) const {
@@ -2935,11 +2816,6 @@
memcpy(fPos, pos, numPts * sizeof(SkPoint));
fPaint = paint;
-
- fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
- // TODO(chudy): Test that this works.
- fInfo.push(SkObjectParser::PointsToString(pos, 1));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawPosTextCommand::execute(SkCanvas* canvas) const {
@@ -2989,11 +2865,6 @@
fConstY = constY;
fPaint = paint;
-
- fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
- fInfo.push(SkObjectParser::ScalarToString(xpos[0], "XPOS: "));
- fInfo.push(SkObjectParser::ScalarToString(constY, "SkScalar constY: "));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawPosTextHCommand::execute(SkCanvas* canvas) const {
@@ -3030,50 +2901,13 @@
return new SkDrawPosTextHCommand(text, strlen(text), xpos, y, paint);
}
-static const char* gPositioningLabels[] = {
- "kDefault_Positioning",
- "kHorizontal_Positioning",
- "kFull_Positioning",
-};
-
SkDrawTextBlobCommand::SkDrawTextBlobCommand(sk_sp<SkTextBlob> blob, SkScalar x, SkScalar y,
const SkPaint& paint)
: INHERITED(kDrawTextBlob_OpType)
, fBlob(std::move(blob))
, fXPos(x)
, fYPos(y)
- , fPaint(paint) {
-
- std::unique_ptr<SkString> runsStr(new SkString);
- fInfo.push(SkObjectParser::ScalarToString(x, "XPOS: "));
- fInfo.push(SkObjectParser::ScalarToString(y, "YPOS: "));
- fInfo.push(SkObjectParser::RectToString(fBlob->bounds(), "Bounds: "));
- fInfo.push(runsStr.get());
- fInfo.push(SkObjectParser::PaintToString(paint));
-
- unsigned runs = 0;
- SkPaint runPaint(paint);
- SkTextBlobRunIterator iter(fBlob.get());
- while (!iter.done()) {
- std::unique_ptr<SkString> tmpStr(new SkString);
- tmpStr->printf("==== Run [%d] ====", runs++);
- fInfo.push(tmpStr.release());
-
- fInfo.push(SkObjectParser::IntToString(iter.glyphCount(), "GlyphCount: "));
- tmpStr.reset(new SkString("GlyphPositioning: "));
- tmpStr->append(gPositioningLabels[iter.positioning()]);
- fInfo.push(tmpStr.release());
-
- iter.applyFontToPaint(&runPaint);
- fInfo.push(SkObjectParser::PaintToString(runPaint));
-
- iter.next();
- }
-
- runsStr->printf("Runs: %d", runs);
- // runStr is owned by fInfo at this point.
- runsStr.release();
-}
+ , fPaint(paint) {}
void SkDrawTextBlobCommand::execute(SkCanvas* canvas) const {
canvas->drawTextBlob(fBlob, fXPos, fYPos, fPaint);
@@ -3212,8 +3046,6 @@
fTexCoordsPtr = nullptr;
}
fPaint = paint;
-
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawPatchCommand::execute(SkCanvas* canvas) const {
@@ -3288,9 +3120,6 @@
: INHERITED(kDrawRect_OpType) {
fRect = rect;
fPaint = paint;
-
- fInfo.push(SkObjectParser::RectToString(rect));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawRectCommand::execute(SkCanvas* canvas) const {
@@ -3321,9 +3150,6 @@
: INHERITED(kDrawRRect_OpType) {
fRRect = rrect;
fPaint = paint;
-
- fInfo.push(SkObjectParser::RRectToString(rrect));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawRRectCommand::execute(SkCanvas* canvas) const {
@@ -3358,10 +3184,6 @@
fOuter = outer;
fInner = inner;
fPaint = paint;
-
- fInfo.push(SkObjectParser::RRectToString(outer));
- fInfo.push(SkObjectParser::RRectToString(inner));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawDRRectCommand::execute(SkCanvas* canvas) const {
@@ -3401,11 +3223,6 @@
fX = x;
fY = y;
fPaint = paint;
-
- fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
- fInfo.push(SkObjectParser::ScalarToString(x, "SkScalar x: "));
- fInfo.push(SkObjectParser::ScalarToString(y, "SkScalar y: "));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawTextCommand::execute(SkCanvas* canvas) const {
@@ -3448,13 +3265,6 @@
fMatrix.setIdentity();
}
fPaint = paint;
-
- fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
- fInfo.push(SkObjectParser::PathToString(path));
- if (matrix) {
- fInfo.push(SkObjectParser::MatrixToString(*matrix));
- }
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawTextOnPathCommand::execute(SkCanvas* canvas) const {
@@ -3515,9 +3325,6 @@
fCull = nullptr;
}
fPaint = paint;
-
- fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
- fInfo.push(SkObjectParser::PaintToString(paint));
}
void SkDrawTextRSXformCommand::execute(SkCanvas* canvas) const {
@@ -3556,21 +3363,14 @@
: INHERITED(kDrawVertices_OpType)
, fVertices(std::move(vertices))
, fBlendMode(bmode)
- , fPaint(paint)
-{
- // TODO(chudy)
- fInfo.push(SkObjectParser::CustomTextToString("To be implemented."));
- fInfo.push(SkObjectParser::PaintToString(paint));
-}
+ , fPaint(paint) {}
void SkDrawVerticesCommand::execute(SkCanvas* canvas) const {
canvas->drawVertices(fVertices, fBlendMode, fPaint);
}
SkRestoreCommand::SkRestoreCommand()
- : INHERITED(kRestore_OpType) {
- fInfo.push(SkObjectParser::CustomTextToString("No Parameters"));
-}
+ : INHERITED(kRestore_OpType) {}
void SkRestoreCommand::execute(SkCanvas* canvas) const {
canvas->restore();
@@ -3614,14 +3414,6 @@
} else {
fBackdrop = nullptr;
}
-
- if (rec.fBounds) {
- fInfo.push(SkObjectParser::RectToString(*rec.fBounds, "Bounds: "));
- }
- if (rec.fPaint) {
- fInfo.push(SkObjectParser::PaintToString(*rec.fPaint));
- }
- fInfo.push(SkObjectParser::SaveLayerFlagsToString(fSaveLayerFlags));
}
SkSaveLayerCommand::~SkSaveLayerCommand() {
@@ -3636,10 +3428,6 @@
fSaveLayerFlags));
}
-void SkSaveLayerCommand::vizExecute(SkCanvas* canvas) const {
- canvas->save();
-}
-
Json::Value SkSaveLayerCommand::toJSON(UrlDataManager& urlDataManager) const {
Json::Value result = INHERITED::toJSON(urlDataManager);
if (!fBounds.isEmpty()) {
@@ -3687,18 +3475,11 @@
SkSetMatrixCommand::SkSetMatrixCommand(const SkMatrix& matrix)
: INHERITED(kSetMatrix_OpType) {
- fUserMatrix.reset();
fMatrix = matrix;
- fInfo.push(SkObjectParser::MatrixToString(matrix));
-}
-
-void SkSetMatrixCommand::setUserMatrix(const SkMatrix& userMatrix) {
- fUserMatrix = userMatrix;
}
void SkSetMatrixCommand::execute(SkCanvas* canvas) const {
- SkMatrix temp = SkMatrix::Concat(fUserMatrix, fMatrix);
- canvas->setMatrix(temp);
+ canvas->setMatrix(fMatrix);
}
Json::Value SkSetMatrixCommand::toJSON(UrlDataManager& urlDataManager) const {
diff --git a/tools/debugger/SkDrawCommand.h b/tools/debugger/SkDrawCommand.h
index d2eee9b..64830a4 100644
--- a/tools/debugger/SkDrawCommand.h
+++ b/tools/debugger/SkDrawCommand.h
@@ -73,13 +73,7 @@
SkDrawCommand(OpType opType);
- virtual ~SkDrawCommand();
-
- virtual SkString toString() const;
-
- virtual const char* toCString() const {
- return GetCommandString(fOpType);
- }
+ virtual ~SkDrawCommand() {}
bool isVisible() const {
return fVisible;
@@ -89,28 +83,7 @@
fVisible = toggle;
}
- const SkTDArray<SkString*>* Info() const { return &fInfo; }
virtual void execute(SkCanvas*) const = 0;
- virtual void vizExecute(SkCanvas*) const {}
-
- virtual void setUserMatrix(const SkMatrix&) {}
-
- // The next "active" system is only used by save, saveLayer, and restore.
- // It is used to determine which saveLayers are currently active (at a
- // given point in the rendering).
- // saves just return a kPushLayer action but don't track active state
- // restores just return a kPopLayer action
- // saveLayers return kPushLayer but also track the active state
- enum Action {
- kNone_Action,
- kPopLayer_Action,
- kPushLayer_Action,
- };
- virtual Action action() const { return kNone_Action; }
- virtual void setActive(bool active) {}
- virtual bool active() const { return false; }
-
- OpType getType() const { return fOpType; }
virtual bool render(SkCanvas* canvas) const { return false; }
@@ -145,9 +118,6 @@
static bool flatten(const SkBitmap& bitmap, Json::Value* target,
UrlDataManager& urlDataManager);
-protected:
- SkTDArray<SkString*> fInfo;
-
private:
OpType fOpType;
bool fVisible;
@@ -157,7 +127,6 @@
public:
SkRestoreCommand();
void execute(SkCanvas* canvas) const override;
- Action action() const override { return kPopLayer_Action; }
static SkRestoreCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
@@ -754,7 +723,6 @@
public:
SkSaveCommand();
void execute(SkCanvas* canvas) const override;
- Action action() const override { return kPushLayer_Action; }
static SkSaveCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
@@ -768,10 +736,6 @@
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
static SkSaveLayerCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
- void vizExecute(SkCanvas* canvas) const override;
- Action action() const override{ return kPushLayer_Action; }
- void setActive(bool active) override { fActive = active; }
- bool active() const override { return fActive; }
const SkPaint* paint() const { return fPaintPtr; }
@@ -782,21 +746,17 @@
const SkImageFilter* fBackdrop;
uint32_t fSaveLayerFlags;
- bool fActive;
-
typedef SkDrawCommand INHERITED;
};
class SkSetMatrixCommand : public SkDrawCommand {
public:
SkSetMatrixCommand(const SkMatrix& matrix);
- void setUserMatrix(const SkMatrix&) override;
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
static SkSetMatrixCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
- SkMatrix fUserMatrix;
SkMatrix fMatrix;
typedef SkDrawCommand INHERITED;
diff --git a/tools/debugger/SkJsonWriteBuffer.cpp b/tools/debugger/SkJsonWriteBuffer.cpp
index 9a9a032..c9edf68 100644
--- a/tools/debugger/SkJsonWriteBuffer.cpp
+++ b/tools/debugger/SkJsonWriteBuffer.cpp
@@ -8,7 +8,6 @@
#include "SkJsonWriteBuffer.h"
#include "SkDrawCommand.h"
-#include "SkObjectParser.h"
void SkJsonWriteBuffer::append(const char* type, const Json::Value& value) {
SkString fullName = SkStringPrintf("%02d_%s", fJson.size(), type);
diff --git a/tools/debugger/SkObjectParser.cpp b/tools/debugger/SkObjectParser.cpp
deleted file mode 100644
index a529b5b..0000000
--- a/tools/debugger/SkObjectParser.cpp
+++ /dev/null
@@ -1,424 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkObjectParser.h"
-#include "SkData.h"
-#include "SkFontDescriptor.h"
-#include "SkImage.h"
-#include "SkPath.h"
-#include "SkRRect.h"
-#include "SkShader.h"
-#include "SkStream.h"
-#include "SkStringUtils.h"
-#include "SkTypeface.h"
-#include "SkUtils.h"
-#include "SkClipOpPriv.h"
-
-/* TODO(chudy): Replace all std::strings with char */
-
-SkString* SkObjectParser::BitmapToString(const SkBitmap& bitmap) {
- SkString* mBitmap = new SkString("SkBitmap: ");
- mBitmap->append("W: ");
- mBitmap->appendS32(bitmap.width());
- mBitmap->append(" H: ");
- mBitmap->appendS32(bitmap.height());
-
- const char* ctString = "<unknown>";
- switch (bitmap.colorType()) {
- case kUnknown_SkColorType: ctString = "None"; break;
- case kAlpha_8_SkColorType: ctString = "A8"; break;
- case kRGB_565_SkColorType: ctString = "565"; break;
- case kARGB_4444_SkColorType: ctString = "4444"; break;
- case kRGBA_8888_SkColorType: ctString = "RGBA"; break;
- case kRGB_888x_SkColorType: ctString = "RGB"; break;
- case kBGRA_8888_SkColorType: ctString = "BGRA"; break;
- case kRGBA_1010102_SkColorType: ctString = "1010102"; break;
- case kRGB_101010x_SkColorType: ctString = "101010x"; break;
- case kGray_8_SkColorType: ctString = "G8"; break;
- case kRGBA_F16_SkColorType: ctString = "RGBAf16"; break;
- }
- mBitmap->append(" ColorType: ");
- mBitmap->append(ctString);
-
- if (bitmap.isOpaque()) {
- mBitmap->append(" opaque");
- } else {
- mBitmap->append(" not-opaque");
- }
-
- if (bitmap.isImmutable()) {
- mBitmap->append(" immutable");
- } else {
- mBitmap->append(" not-immutable");
- }
-
- if (bitmap.isVolatile()) {
- mBitmap->append(" volatile");
- } else {
- mBitmap->append(" not-volatile");
- }
-
- mBitmap->append(" genID: ");
- mBitmap->appendS32(bitmap.getGenerationID());
-
- return mBitmap;
-}
-
-SkString* SkObjectParser::ImageToString(const SkImage* image) {
- SkString* str = new SkString("SkImage: ");
- if (!image) {
- return str;
- }
-
- str->append("W: ");
- str->appendS32(image->width());
- str->append(" H: ");
- str->appendS32(image->height());
-
- if (image->isOpaque()) {
- str->append(" opaque");
- } else {
- str->append(" not-opaque");
- }
-
- str->append(" uniqueID: ");
- str->appendS32(image->uniqueID());
-
- return str;
-}
-
-SkString* SkObjectParser::BoolToString(bool doAA) {
- SkString* mBool = new SkString("Bool doAA: ");
- if (doAA) {
- mBool->append("True");
- } else {
- mBool->append("False");
- }
- return mBool;
-}
-
-SkString* SkObjectParser::CustomTextToString(const char* text) {
- SkString* mText = new SkString(text);
- return mText;
-}
-
-SkString* SkObjectParser::IntToString(int x, const char* text) {
- SkString* mInt = new SkString(text);
- mInt->append(" ");
- mInt->appendScalar(SkIntToScalar(x));
- return mInt;
-}
-
-SkString* SkObjectParser::IRectToString(const SkIRect& rect) {
- SkString* mRect = new SkString("SkIRect: ");
- mRect->append("L: ");
- mRect->appendS32(rect.left());
- mRect->append(", T: ");
- mRect->appendS32(rect.top());
- mRect->append(", R: ");
- mRect->appendS32(rect.right());
- mRect->append(", B: ");
- mRect->appendS32(rect.bottom());
- return mRect;
-}
-
-SkString* SkObjectParser::MatrixToString(const SkMatrix& matrix) {
- SkString* str = new SkString("SkMatrix: ");
- matrix.toString(str);
- return str;
-}
-
-SkString* SkObjectParser::PaintToString(const SkPaint& paint) {
- SkString* str = new SkString;
- paint.toString(str);
- return str;
-}
-
-SkString* SkObjectParser::PathToString(const SkPath& path) {
- SkString* mPath = new SkString;
-
- mPath->appendf("Path (%d) (", path.getGenerationID());
-
- static const char* gFillStrings[] = {
- "Winding", "EvenOdd", "InverseWinding", "InverseEvenOdd"
- };
-
- mPath->append(gFillStrings[path.getFillType()]);
- mPath->append(", ");
-
- static const char* gConvexityStrings[] = {
- "Unknown", "Convex", "Concave"
- };
- SkASSERT(SkPath::kConcave_Convexity == 2);
-
- mPath->append(gConvexityStrings[path.getConvexity()]);
- mPath->append(", ");
-
- if (path.isRect(nullptr)) {
- mPath->append("isRect, ");
- } else {
- mPath->append("isNotRect, ");
- }
-
- if (path.isOval(nullptr)) {
- mPath->append("isOval, ");
- } else {
- mPath->append("isNotOval, ");
- }
-
- SkRRect rrect;
- if (path.isRRect(&rrect)) {
- mPath->append("isRRect, ");
- } else {
- mPath->append("isNotRRect, ");
- }
-
- mPath->appendS32(path.countVerbs());
- mPath->append("V, ");
- mPath->appendS32(path.countPoints());
- mPath->append("P): ");
-
- static const char* gVerbStrings[] = {
- "Move", "Line", "Quad", "Conic", "Cubic", "Close", "Done"
- };
- static const int gPtsPerVerb[] = { 1, 1, 2, 2, 3, 0, 0 };
- static const int gPtOffsetPerVerb[] = { 0, 1, 1, 1, 1, 0, 0 };
- SkASSERT(SkPath::kDone_Verb == 6);
-
- SkPath::Iter iter(const_cast<SkPath&>(path), false);
- SkPath::Verb verb;
- SkPoint points[4];
-
- for(verb = iter.next(points, false);
- verb != SkPath::kDone_Verb;
- verb = iter.next(points, false)) {
-
- mPath->append(gVerbStrings[verb]);
- mPath->append(" ");
-
- for (int i = 0; i < gPtsPerVerb[verb]; ++i) {
- mPath->append("(");
- mPath->appendScalar(points[gPtOffsetPerVerb[verb]+i].fX);
- mPath->append(", ");
- mPath->appendScalar(points[gPtOffsetPerVerb[verb]+i].fY);
- mPath->append(")");
- }
-
- if (SkPath::kConic_Verb == verb) {
- mPath->append("(");
- mPath->appendScalar(iter.conicWeight());
- mPath->append(")");
- }
-
- mPath->append(" ");
- }
-
- SkString* boundStr = SkObjectParser::RectToString(path.getBounds(), " Bound: ");
-
- if (boundStr) {
- mPath->append(*boundStr);
- delete boundStr;
- }
-
- return mPath;
-}
-
-SkString* SkObjectParser::PointsToString(const SkPoint pts[], size_t count) {
- SkString* mPoints = new SkString("SkPoints pts[]: ");
- for (unsigned int i = 0; i < count; i++) {
- mPoints->append("(");
- mPoints->appendScalar(pts[i].fX);
- mPoints->append(",");
- mPoints->appendScalar(pts[i].fY);
- mPoints->append(")");
- }
- return mPoints;
-}
-
-SkString* SkObjectParser::PointModeToString(SkCanvas::PointMode mode) {
- SkString* mMode = new SkString("SkCanvas::PointMode: ");
- if (mode == SkCanvas::kPoints_PointMode) {
- mMode->append("kPoints_PointMode");
- } else if (mode == SkCanvas::kLines_PointMode) {
- mMode->append("kLines_Mode");
- } else if (mode == SkCanvas::kPolygon_PointMode) {
- mMode->append("kPolygon_PointMode");
- }
- return mMode;
-}
-
-SkString* SkObjectParser::RectToString(const SkRect& rect, const char* title) {
-
- SkString* mRect = new SkString;
-
- if (nullptr == title) {
- mRect->append("SkRect: ");
- } else {
- mRect->append(title);
- }
- mRect->append("(");
- mRect->appendScalar(rect.left());
- mRect->append(", ");
- mRect->appendScalar(rect.top());
- mRect->append(", ");
- mRect->appendScalar(rect.right());
- mRect->append(", ");
- mRect->appendScalar(rect.bottom());
- mRect->append(")");
- return mRect;
-}
-
-SkString* SkObjectParser::RRectToString(const SkRRect& rrect, const char* title) {
-
- SkString* mRRect = new SkString;
-
- if (nullptr == title) {
- mRRect->append("SkRRect (");
- if (rrect.isEmpty()) {
- mRRect->append("empty");
- } else if (rrect.isRect()) {
- mRRect->append("rect");
- } else if (rrect.isOval()) {
- mRRect->append("oval");
- } else if (rrect.isSimple()) {
- mRRect->append("simple");
- } else if (rrect.isNinePatch()) {
- mRRect->append("nine-patch");
- } else {
- SkASSERT(rrect.isComplex());
- mRRect->append("complex");
- }
- mRRect->append("): ");
- } else {
- mRRect->append(title);
- }
- mRRect->append("(");
- mRRect->appendScalar(rrect.rect().left());
- mRRect->append(", ");
- mRRect->appendScalar(rrect.rect().top());
- mRRect->append(", ");
- mRRect->appendScalar(rrect.rect().right());
- mRRect->append(", ");
- mRRect->appendScalar(rrect.rect().bottom());
- mRRect->append(") radii: (");
- for (int i = 0; i < 4; ++i) {
- const SkVector& radii = rrect.radii((SkRRect::Corner) i);
- mRRect->appendScalar(radii.fX);
- mRRect->append(", ");
- mRRect->appendScalar(radii.fY);
- if (i < 3) {
- mRRect->append(", ");
- }
- }
- mRRect->append(")");
- return mRRect;
-}
-
-SkString* SkObjectParser::ClipOpToString(SkClipOp op) {
- SkString* mOp = new SkString("SkRegion::Op: ");
- if (op == kDifference_SkClipOp) {
- mOp->append("kDifference_Op");
- } else if (op == kIntersect_SkClipOp) {
- mOp->append("kIntersect_Op");
- } else if (op == kUnion_SkClipOp) {
- mOp->append("kUnion_Op");
- } else if (op == kXOR_SkClipOp) {
- mOp->append("kXOR_Op");
- } else if (op == kReverseDifference_SkClipOp) {
- mOp->append("kReverseDifference_Op");
- } else if (op == kReplace_SkClipOp) {
- mOp->append("kReplace_Op");
- } else {
- mOp->append("Unknown Type");
- }
- return mOp;
-}
-
-SkString* SkObjectParser::RegionToString(const SkRegion& region) {
- SkString* mRegion = new SkString("SkRegion: Data unavailable.");
- return mRegion;
-}
-
-SkString* SkObjectParser::SaveLayerFlagsToString(SkCanvas::SaveLayerFlags saveLayerFlags) {
- SkString* mFlags = new SkString("SkCanvas::SaveFlags: ");
- if (saveLayerFlags & SkCanvas::kPreserveLCDText_SaveLayerFlag) {
- mFlags->append("kPreserveLCDText_SaveLayerFlag ");
- }
- return mFlags;
-}
-
-SkString* SkObjectParser::ScalarToString(SkScalar x, const char* text) {
- SkString* mScalar = new SkString(text);
- mScalar->append(" ");
- mScalar->appendScalar(x);
- return mScalar;
-}
-
-SkString* SkObjectParser::TextToString(const void* text, size_t byteLength,
- SkPaint::TextEncoding encoding) {
-
- SkString* decodedText = new SkString();
- switch (encoding) {
- case SkPaint::kUTF8_TextEncoding: {
- decodedText->append("UTF-8: ");
- decodedText->append((const char*)text, byteLength);
- break;
- }
- case SkPaint::kUTF16_TextEncoding: {
- decodedText->append("UTF-16: ");
- size_t sizeNeeded = SkUTF16_ToUTF8((uint16_t*)text,
- SkToS32(byteLength / 2),
- nullptr);
- SkAutoSTMalloc<0x100, char> utf8(sizeNeeded);
- SkUTF16_ToUTF8((uint16_t*)text, SkToS32(byteLength / 2), utf8);
- decodedText->append(utf8, sizeNeeded);
- break;
- }
- case SkPaint::kUTF32_TextEncoding: {
- decodedText->append("UTF-32: ");
- const SkUnichar* begin = (const SkUnichar*)text;
- const SkUnichar* end = (const SkUnichar*)((const char*)text + byteLength);
- for (const SkUnichar* unichar = begin; unichar < end; ++unichar) {
- decodedText->appendUnichar(*unichar);
- }
- break;
- }
- case SkPaint::kGlyphID_TextEncoding: {
- decodedText->append("GlyphID: ");
- const uint16_t* begin = (const uint16_t*)text;
- const uint16_t* end = (const uint16_t*)((const char*)text + byteLength);
- for (const uint16_t* glyph = begin; glyph < end; ++glyph) {
- decodedText->append("0x");
- decodedText->appendHex(*glyph);
- decodedText->append(" ");
- }
- break;
- }
- default:
- decodedText->append("Unknown text encoding.");
- break;
- }
-
- return decodedText;
-}
-
-SkString* SkObjectParser::LatticeToString(const SkCanvas::Lattice& lattice) {
- SkString* mLattice = new SkString;
- mLattice->append("Lattice: ");
- mLattice->append("(X: ");
- mLattice->appendS32(lattice.fXCount);
- mLattice->append(", Y:");
- mLattice->appendS32(lattice.fYCount);
- mLattice->append(", Bounds:");
- if (nullptr != lattice.fBounds) {
- mLattice->append(*IRectToString(*lattice.fBounds));
- } else {
- mLattice->append("null");
- }
- mLattice->append(")");
- return mLattice;
-}
diff --git a/tools/debugger/SkObjectParser.h b/tools/debugger/SkObjectParser.h
deleted file mode 100644
index 2532c5c..0000000
--- a/tools/debugger/SkObjectParser.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef SKOBJECTPARSER_H_
-#define SKOBJECTPARSER_H_
-
-#include "SkCanvas.h"
-#include "SkString.h"
-
-/** \class SkObjectParser
-
- The ObjectParser is used to return string information about parameters
- in each draw command.
- */
-class SkObjectParser {
-public:
-
- /**
- Returns a string about a bitmap's bounds and colortype.
- @param bitmap SkBitmap
- */
- static SkString* BitmapToString(const SkBitmap& bitmap);
-
- /**
- Returns a string about a image
- @param image SkImage
- */
- static SkString* ImageToString(const SkImage* image);
-
- /**
- Returns a string representation of a boolean.
- @param doAA boolean
- */
- static SkString* BoolToString(bool doAA);
-
- /**
- Returns a string representation of the text pointer passed in.
- */
- static SkString* CustomTextToString(const char* text);
-
- /**
- Returns a string representation of an integer with the text parameter
- at the front of the string.
- @param x integer
- @param text
- */
- static SkString* IntToString(int x, const char* text);
- /**
- Returns a string representation of the SkIRects coordinates.
- @param rect SkIRect
- */
- static SkString* IRectToString(const SkIRect& rect);
-
- /**
- Returns a string representation of an SkMatrix's contents
- @param matrix SkMatrix
- */
- static SkString* MatrixToString(const SkMatrix& matrix);
-
- /**
- Returns a string representation of an SkPaint's color
- @param paint SkPaint
- */
- static SkString* PaintToString(const SkPaint& paint);
-
- /**
- Returns a string representation of a SkPath's points.
- @param path SkPath
- */
- static SkString* PathToString(const SkPath& path);
-
- /**
- Returns a string representation of the points in the point array.
- @param pts[] Array of SkPoints
- @param count
- */
- static SkString* PointsToString(const SkPoint pts[], size_t count);
-
- /**
- Returns a string representation of the SkCanvas PointMode enum.
- */
- static SkString* PointModeToString(SkCanvas::PointMode mode);
-
- /**
- Returns a string representation of the SkRects coordinates.
- @param rect SkRect
- */
- static SkString* RectToString(const SkRect& rect, const char* title = nullptr);
-
- /**
- Returns a string representation of an SkRRect.
- @param rrect SkRRect
- */
- static SkString* RRectToString(const SkRRect& rrect, const char* title = nullptr);
-
- /**
- Returns a string representation of the SkRegion enum.
- @param op SkRegion::op enum
- */
- static SkString* ClipOpToString(SkClipOp op);
-
- /**
- Returns a string representation of the SkRegion.
- @param region SkRegion
- */
- static SkString* RegionToString(const SkRegion& region);
-
- /**
- Returns a string representation of the SkCanvas::SaveLayerFlags enum.
- @param flags SkCanvas::SaveLayerFlags enum
- */
- static SkString* SaveLayerFlagsToString(uint32_t saveLayerFlags);
-
- /**
- Returns a string representation of an SkScalar with the text parameter
- at the front of the string.
- @param x SkScalar
- @param text
- */
- static SkString* ScalarToString(SkScalar x, const char* text);
-
- /**
- Returns a string representation of the char pointer passed in.
- @param text const void* that will be cast to a char*
- */
- static SkString* TextToString(const void* text, size_t byteLength,
- SkPaint::TextEncoding encoding);
-
- /**
- Returns a string representation of the SkCanvas::Lattice.
- @param lattice SkCanvas::Lattice
- */
- static SkString* LatticeToString(const SkCanvas::Lattice& lattice);
-};
-
-#endif
diff --git a/tools/skp_parser.cpp b/tools/skp_parser.cpp
index 92e1369..db739ca 100644
--- a/tools/skp_parser.cpp
+++ b/tools/skp_parser.cpp
@@ -9,6 +9,7 @@
#include "SkDebugCanvas.h"
#include "SkNullCanvas.h"
+#include "SkPicture.h"
#include "SkStream.h"
#ifdef SK_BUILD_FOR_WIN