diff options
author | vjiaoblack <vjiaoblack@google.com> | 2016-07-21 09:10:23 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-21 09:10:23 -0700 |
commit | 0ae097d116f4332be02a135ffc99c162473dee6a (patch) | |
tree | c70d5f33b9753ec7db643eeb4de6cabb927e7ed8 /src/core/SkRecorder.cpp | |
parent | d2b6d6486ed9d00df779f6b337d756c9a818006f (diff) |
Creating framework for drawShadowedPicture
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2146073003
Review-Url: https://codereview.chromium.org/2146073003
Diffstat (limited to 'src/core/SkRecorder.cpp')
-rw-r--r-- | src/core/SkRecorder.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/core/SkRecorder.cpp b/src/core/SkRecorder.cpp index c7869bb6a4..76fd3b819e 100644 --- a/src/core/SkRecorder.cpp +++ b/src/core/SkRecorder.cpp @@ -305,6 +305,20 @@ void SkRecorder::onDrawPicture(const SkPicture* pic, const SkMatrix* matrix, con } } +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 @@ void SkRecorder::didSetMatrix(const SkMatrix& matrix) { 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) { |