aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core/SkBitmapDevice.h
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2016-12-12 13:48:12 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-12-12 20:18:50 +0000
commit1b3387b5cfef150c3237c6a8700b2d6f3730e4ce (patch)
tree3b0e9690f1346e37631aa687650390d49f5f3c46 /include/core/SkBitmapDevice.h
parent8615fe59fcc0246a8b0c11b37b3e75f82c9933dd (diff)
SkBitmap::setPixelRef(): less reference churn
BUG=skia: Change-Id: I9657e4af5fcc808f9175ff336155374ccc77999d Reviewed-on: https://skia-review.googlesource.com/5461 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'include/core/SkBitmapDevice.h')
-rw-r--r--include/core/SkBitmapDevice.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/include/core/SkBitmapDevice.h b/include/core/SkBitmapDevice.h
index 17cb9847b1..7ad4abec21 100644
--- a/include/core/SkBitmapDevice.h
+++ b/include/core/SkBitmapDevice.h
@@ -14,6 +14,7 @@
#include "SkColor.h"
#include "SkDevice.h"
#include "SkImageInfo.h"
+#include "SkPixelRef.h"
#include "SkRect.h"
#include "SkScalar.h"
#include "SkSize.h"
@@ -140,10 +141,10 @@ protected:
SkPixelRef* getPixelRef() const { return fBitmap.pixelRef(); }
// just for subclasses, to assign a custom pixelref
- SkPixelRef* setPixelRef(SkPixelRef* pr) {
- fBitmap.setPixelRef(pr);
- return pr;
- }
+ void setPixelRef(sk_sp<SkPixelRef> pr) { fBitmap.setPixelRef(std::move(pr), 0, 0); }
+#ifdef SK_SUPPORT_LEGACY_BITMAP_SETPIXELREF
+ SkPixelRef* setPixelRef(SkPixelRef* pr) { return fBitmap.setPixelRef(pr); }
+#endif
bool onReadPixels(const SkImageInfo&, void*, size_t, int x, int y) override;
bool onWritePixels(const SkImageInfo&, const void*, size_t, int, int) override;