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/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 050253f..2cfe8ae 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -663,6 +663,9 @@
     fDeviceCMDirty = true;
     fSaveCount = 1;
     fMetaData = nullptr;
+#ifdef SK_EXPERIMENTAL_SHADOWING
+    fLights = nullptr;
+#endif
 
     fClipStack.reset(new SkClipStack);
 
@@ -1519,6 +1522,7 @@
     this->setMatrix(SkMatrix::I());
 }
 
+#ifdef SK_EXPERIMENTAL_SHADOWING
 void SkCanvas::translateZ(SkScalar z) {
     this->checkForDeferredSave();
     this->fMCRec->fCurDrawDepth += z;
@@ -1529,6 +1533,15 @@
     return this->fMCRec->fCurDrawDepth;
 }
 
+void SkCanvas::setLights(sk_sp<SkLights> lights) {
+    this->fLights = lights;
+}
+
+sk_sp<SkLights> SkCanvas::getLights() const {
+    return this->fLights;
+}
+#endif
+
 //////////////////////////////////////////////////////////////////////////////
 
 void SkCanvas::clipRect(const SkRect& rect, SkRegion::Op op, bool doAA) {
@@ -3000,6 +3013,24 @@
     picture->playback(this);
 }
 
+#ifdef SK_EXPERIMENTAL_SHADOWING
+void SkCanvas::drawShadowedPicture(const SkPicture* picture,
+                                   const SkMatrix* matrix,
+                                   const SkPaint* paint) {
+    RETURN_ON_NULL(picture);
+
+    TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawShadowedPicture()");
+
+    this->onDrawShadowedPicture(picture, matrix, paint);
+}
+
+void SkCanvas::onDrawShadowedPicture(const SkPicture* picture,
+                                     const SkMatrix* matrix,
+                                     const SkPaint* paint) {
+    this->onDrawPicture(picture, matrix, paint);
+}
+#endif
+
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////