diff options
-rw-r--r-- | src/core/SkMultiPictureDraw.cpp | 4 | ||||
-rw-r--r-- | src/gpu/SkGpuDevice.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/core/SkMultiPictureDraw.cpp b/src/core/SkMultiPictureDraw.cpp index 26e446d2ad..40d93b1dd7 100644 --- a/src/core/SkMultiPictureDraw.cpp +++ b/src/core/SkMultiPictureDraw.cpp @@ -124,7 +124,9 @@ void SkMultiPictureDraw::draw(bool flush) { // we only expect 1 context for all the canvases SkASSERT(data.fCanvas->getGrContext() == context); - if (!data.fPaint) { + if (!data.fPaint && + (kRGBA_8888_SkColorType == data.fCanvas->imageInfo().colorType() || + kBGRA_8888_SkColorType == data.fCanvas->imageInfo().colorType())) { SkRect clipBounds; if (!data.fCanvas->getClipBounds(&clipBounds)) { continue; diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index 54ed413549..6992a45dab 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -1784,7 +1784,9 @@ bool SkGpuDevice::EXPERIMENTAL_drawPicture(SkCanvas* mainCanvas, const SkPicture ASSERT_SINGLE_OWNER #ifndef SK_IGNORE_GPU_LAYER_HOISTING // todo: should handle this natively - if (paint) { + if (paint || + (kRGBA_8888_SkColorType != mainCanvas->imageInfo().colorType() && + kBGRA_8888_SkColorType != mainCanvas->imageInfo().colorType())) { return false; } |