2012-08-07 16:12:23 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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 SKDEBUGGER_H_
|
|
|
|
#define SKDEBUGGER_H_
|
|
|
|
|
|
|
|
#include "SkDebugCanvas.h"
|
|
|
|
#include "SkPicture.h"
|
2012-11-19 20:44:29 +00:00
|
|
|
#include "SkTArray.h"
|
2012-08-07 16:12:23 +00:00
|
|
|
|
|
|
|
class SkDebugger {
|
|
|
|
public:
|
|
|
|
SkDebugger();
|
|
|
|
|
|
|
|
~SkDebugger();
|
|
|
|
|
|
|
|
void setIndex(int index) {
|
|
|
|
fIndex = index;
|
|
|
|
}
|
|
|
|
void draw(SkCanvas* canvas) {
|
|
|
|
if (fIndex > 0) {
|
|
|
|
fDebugCanvas->drawTo(canvas, fIndex);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void step();
|
|
|
|
void stepBack();
|
|
|
|
void play();
|
|
|
|
void rewind();
|
|
|
|
|
|
|
|
bool isCommandVisible(int index) {
|
|
|
|
return fDebugCanvas->getDrawCommandVisibilityAt(index);
|
|
|
|
}
|
|
|
|
|
|
|
|
void setCommandVisible(int index, bool isVisible) {
|
|
|
|
fDebugCanvas->toggleCommand(index, isVisible);
|
|
|
|
}
|
|
|
|
|
2012-11-19 20:44:29 +00:00
|
|
|
SkTArray<SkString>* getDrawCommandsAsStrings() {
|
2012-08-07 16:12:23 +00:00
|
|
|
return fDebugCanvas->getDrawCommandsAsStrings();
|
|
|
|
}
|
|
|
|
|
2012-11-19 20:44:29 +00:00
|
|
|
const SkTDArray<SkDrawCommand*>& getDrawCommands() const {
|
|
|
|
return fDebugCanvas->getDrawCommands();
|
|
|
|
}
|
|
|
|
|
2012-08-07 16:12:23 +00:00
|
|
|
void highlightCurrentCommand(bool on) {
|
|
|
|
fDebugCanvas->toggleFilter(on);
|
|
|
|
}
|
|
|
|
|
|
|
|
void resize(int width, int height) {
|
|
|
|
fDebugCanvas->setBounds(width, height);
|
|
|
|
}
|
|
|
|
|
|
|
|
void loadPicture(SkPicture* picture);
|
|
|
|
|
|
|
|
SkPicture* makePicture();
|
|
|
|
|
|
|
|
int getSize() {
|
|
|
|
return fDebugCanvas->getSize();
|
|
|
|
}
|
|
|
|
|
|
|
|
void setUserOffset(SkIPoint userOffset) {
|
|
|
|
// Should this live in debugger instead?
|
|
|
|
fDebugCanvas->setUserOffset(userOffset);
|
|
|
|
}
|
|
|
|
|
|
|
|
void setUserScale(float userScale) {
|
|
|
|
fDebugCanvas->setUserScale(userScale);
|
|
|
|
}
|
|
|
|
|
|
|
|
int getCommandAtPoint(int x, int y, int index) {
|
|
|
|
return fDebugCanvas->getCommandAtPoint(x, y, index);
|
|
|
|
}
|
|
|
|
|
2012-08-07 20:41:37 +00:00
|
|
|
SkTDArray<SkString*>* getCommandInfo(int index) {
|
2012-08-07 16:12:23 +00:00
|
|
|
return fDebugCanvas->getCommandInfo(index);
|
|
|
|
}
|
|
|
|
|
|
|
|
const SkMatrix& getCurrentMatrix() {
|
|
|
|
return fDebugCanvas->getCurrentMatrix();
|
|
|
|
}
|
|
|
|
|
|
|
|
const SkIRect& getCurrentClip() {
|
|
|
|
return fDebugCanvas->getCurrentClip();
|
|
|
|
}
|
|
|
|
|
|
|
|
int pictureHeight() {
|
|
|
|
return fPictureHeight;
|
|
|
|
}
|
|
|
|
|
|
|
|
int pictureWidth() {
|
|
|
|
return fPictureWidth;
|
|
|
|
}
|
|
|
|
|
|
|
|
int index() {
|
|
|
|
return fIndex;
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
SkDebugCanvas* fDebugCanvas;
|
|
|
|
SkPicture* fPicture;
|
|
|
|
|
|
|
|
int fPictureWidth;
|
|
|
|
int fPictureHeight;
|
|
|
|
int fIndex;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* SKDEBUGGER_H_ */
|