aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/image/SkImagePriv.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2014-11-21 08:46:37 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-11-21 08:46:38 -0800
commit4af267b11964d4a8acdb232ac46094c84d890e88 (patch)
treed2fe846e9bc530cd0090b74a4096851a7ed7b9ea /src/image/SkImagePriv.cpp
parent41d2c2e434d11e73f66c597913c29ea1fb3fa879 (diff)
add SkImage::newSurface
Diffstat (limited to 'src/image/SkImagePriv.cpp')
-rw-r--r--src/image/SkImagePriv.cpp11
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;
}