aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/debugger/SkDrawCommand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/debugger/SkDrawCommand.cpp')
-rw-r--r--src/utils/debugger/SkDrawCommand.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/utils/debugger/SkDrawCommand.cpp b/src/utils/debugger/SkDrawCommand.cpp
index 1d4bfed7f3..0cde3b537c 100644
--- a/src/utils/debugger/SkDrawCommand.cpp
+++ b/src/utils/debugger/SkDrawCommand.cpp
@@ -485,13 +485,29 @@ bool SkDrawPathCommand::render(SkCanvas* canvas) const {
SkDrawPictureCommand::SkDrawPictureCommand(SkPicture& picture) :
fPicture(picture) {
fDrawType = DRAW_PICTURE;
- fInfo.push(SkObjectParser::CustomTextToString("To be implemented."));
+ SkString* temp = new SkString;
+ temp->appendf("SkPicture: W: %d H: %d", picture.width(), picture.height());
+ fInfo.push(temp);
}
void SkDrawPictureCommand::execute(SkCanvas* canvas) {
canvas->drawPicture(fPicture);
}
+bool SkDrawPictureCommand::render(SkCanvas* canvas) const {
+ canvas->clear(0xFFFFFFFF);
+ canvas->save();
+
+ SkRect bounds = SkRect::MakeWH(fPicture.width(), fPicture.height());
+ xlate_and_scale_to_bounds(canvas, bounds);
+
+ canvas->drawPicture(const_cast<SkPicture&>(fPicture));
+
+ canvas->restore();
+
+ return true;
+}
+
SkDrawPointsCommand::SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count,
const SkPoint pts[], const SkPaint& paint) {
fMode = mode;