diff options
author | 2014-11-21 08:46:37 -0800 | |
---|---|---|
committer | 2014-11-21 08:46:38 -0800 | |
commit | 4af267b11964d4a8acdb232ac46094c84d890e88 (patch) | |
tree | d2fe846e9bc530cd0090b74a4096851a7ed7b9ea /src/image/SkImagePriv.cpp | |
parent | 41d2c2e434d11e73f66c597913c29ea1fb3fa879 (diff) |
add SkImage::newSurface
BUG=skia:
Review URL: https://codereview.chromium.org/741763002
Diffstat (limited to 'src/image/SkImagePriv.cpp')
-rw-r--r-- | src/image/SkImagePriv.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/image/SkImagePriv.cpp b/src/image/SkImagePriv.cpp index bde47e71eb..ad7b154e76 100644 --- a/src/image/SkImagePriv.cpp +++ b/src/image/SkImagePriv.cpp @@ -6,10 +6,12 @@ */ #include "SkImagePriv.h" +#include "SkImage_Base.h" #include "SkCanvas.h" #include "SkPicture.h" -SkImage* SkNewImageFromBitmap(const SkBitmap& bm, bool canSharePixelRef) { +SkImage* SkNewImageFromBitmap(const SkBitmap& bm, bool canSharePixelRef, + const SkSurfaceProps* props) { const SkImageInfo info = bm.info(); if (kUnknown_SkColorType == info.colorType()) { return NULL; @@ -17,13 +19,18 @@ SkImage* SkNewImageFromBitmap(const SkBitmap& bm, bool canSharePixelRef) { SkImage* image = NULL; if (canSharePixelRef || bm.isImmutable()) { - image = SkNewImageFromPixelRef(info, bm.pixelRef(), bm.rowBytes()); + image = SkNewImageFromPixelRef(info, bm.pixelRef(), bm.rowBytes(), props); } else { bm.lockPixels(); if (bm.getPixels()) { image = SkImage::NewRasterCopy(info, bm.getPixels(), bm.rowBytes()); } bm.unlockPixels(); + + // we don't expose props to NewRasterCopy (need a private vers) so post-init it here + if (image && props) { + as_IB(image)->initWithProps(*props); + } } return image; } |