Creating framework for drawShadowedPicture
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003

Committed: https://skia.googlesource.com/skia/+/0ae097d116f4332be02a135ffc99c162473dee6a
Review-Url: https://codereview.chromium.org/2146073003
diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp
index c7869bb..76fd3b8 100644
--- a/src/core/SkRecorder.cpp
+++ b/src/core/SkRecorder.cpp
@@ -305,6 +305,20 @@
     }
 }
 
+void SkRecorder::onDrawShadowedPicture(const SkPicture* pic,
+                                       const SkMatrix* matrix,
+                                       const SkPaint* paint) {
+    if (fDrawPictureMode == Record_DrawPictureMode) {
+        fApproxBytesUsedBySubPictures += SkPictureUtils::ApproximateBytesUsed(pic);
+        APPEND(DrawShadowedPicture, this->copy(paint), pic, matrix ? *matrix : SkMatrix::I());
+    } else {
+        SkASSERT(fDrawPictureMode == Playback_DrawPictureMode);
+        SkAutoCanvasMatrixPaint acmp(this,  matrix, paint, pic->cullRect());
+        pic->playback(this);
+    }
+}
+
+
 void SkRecorder::onDrawVertices(VertexMode vmode,
                                 int vertexCount, const SkPoint vertices[],
                                 const SkPoint texs[], const SkColor colors[],
@@ -369,8 +383,10 @@
     APPEND(SetMatrix, matrix);
 }
 
-void SkRecorder::didTranslateZ(SkScalar z)  {
+void SkRecorder::didTranslateZ(SkScalar z) {
+#ifdef SK_EXPERIMENTAL_SHADOWING
     APPEND(TranslateZ, z);
+#endif
 }
 
 void SkRecorder::onClipRect(const SkRect& rect, SkRegion::Op op, ClipEdgeStyle edgeStyle) {