Added drawAtlas support to SkDebugCanvas
No serialization yet (like drawVertices, etc...), but should support
capture and playback.
Change-Id: I7b54cc95fb828471a8faa6abd4eaca0ad0d2cb70
Reviewed-on: https://skia-review.googlesource.com/130503
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/tools/debugger/SkDrawCommand.cpp b/tools/debugger/SkDrawCommand.cpp
index 2dc11f4..4740b4b 100644
--- a/tools/debugger/SkDrawCommand.cpp
+++ b/tools/debugger/SkDrawCommand.cpp
@@ -250,6 +250,7 @@
case kDrawTextOnPath_OpType: return "DrawTextOnPath";
case kDrawTextRSXform_OpType: return "DrawTextRSXform";
case kDrawVertices_OpType: return "DrawVertices";
+ case kDrawAtlas_OpType: return "DrawAtlas";
case kEndDrawPicture_OpType: return "EndDrawPicture";
case kRestore_OpType: return "Restore";
case kSave_OpType: return "Save";
@@ -3510,6 +3511,29 @@
canvas->drawVertices(fVertices, fBlendMode, fPaint);
}
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+SkDrawAtlasCommand::SkDrawAtlasCommand(const SkImage* image, const SkRSXform xform[],
+ const SkRect tex[], const SkColor colors[], int count,
+ SkBlendMode bmode, const SkRect* cull,
+ const SkPaint* paint)
+ : INHERITED(kDrawAtlas_OpType)
+ , fImage(SkRef(image))
+ , fXform(xform, count)
+ , fTex(tex, count)
+ , fColors(colors, colors ? count : 0)
+ , fBlendMode(bmode)
+ , fCull(cull)
+ , fPaint(paint) {}
+
+void SkDrawAtlasCommand::execute(SkCanvas* canvas) const {
+ canvas->drawAtlas(fImage.get(), fXform.begin(), fTex.begin(),
+ fColors.isEmpty() ? nullptr : fColors.begin(), fXform.count(), fBlendMode,
+ fCull.getMaybeNull(), fPaint.getMaybeNull());
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
SkRestoreCommand::SkRestoreCommand()
: INHERITED(kRestore_OpType) {}