aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRecorder.cpp
diff options
context:
space:
mode:
authorGravatar vjiaoblack <vjiaoblack@google.com>2016-07-21 10:25:54 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-21 10:25:54 -0700
commit95302da19d8b0a3bcd9d9be0e79f486760787f09 (patch)
tree026a55650eb1678eb9d04b84202c5969eb109776 /src/core/SkRecorder.cpp
parentb5dc4051f722d9c65d55eb3a65e0e8d031e107ad (diff)
Creating framework for drawShadowedPicture
Diffstat (limited to 'src/core/SkRecorder.cpp')
-rw-r--r--src/core/SkRecorder.cpp18
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) {