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) {}