Index: src/core/SkCanvas.cpp |
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
index 2f6477c41dec49be7cdc59cb3014364efff34a5a..de69c368cd23ea53a69dcc575d5b796a5960b38b 100644 |
--- a/src/core/SkCanvas.cpp |
+++ b/src/core/SkCanvas.cpp |
@@ -1334,6 +1334,18 @@ SkImageInfo SkCanvas::imageInfo() const { |
} |
} |
+bool SkCanvas::getProps(SkSurfaceProps* props) const { |
+ SkBaseDevice* dev = this->getDevice(); |
+ if (dev) { |
+ if (props) { |
+ *props = fProps; |
+ } |
+ return true; |
+ } else { |
+ return false; |
+ } |
+} |
+ |
#ifdef SK_SUPPORT_LEGACY_PEEKPIXELS_PARMS |
const void* SkCanvas::peekPixels(SkImageInfo* info, size_t* rowBytes) { |
SkPixmap pmap; |
@@ -1406,7 +1418,8 @@ void SkCanvas::internalDrawDevice(SkBaseDevice* srcDev, int x, int y, |
SkAutoTUnref<SkImageFilter::Cache> cache(dstDev->getImageFilterCache()); |
SkImageFilter::Context ctx(matrix, clipBounds, cache.get()); |
- sk_sp<SkSpecialImage> srcImg(SkSpecialImage::internal_fromBM(&proxy, srcBM)); |
+ sk_sp<SkSpecialImage> srcImg(SkSpecialImage::internal_fromBM(&proxy, srcBM, |
+ &dstDev->surfaceProps())); |
if (!srcImg) { |
continue; // something disastrous happened |
} |