Chromium Code Reviews| Index: include/core/SkBitmap.h |
| diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h |
| index c0e299ab94ba8bc3c3caeefb3796b4d24e12de5a..2b900bef341ddbc678714c758b8c7d81e9abec0c 100644 |
| --- a/include/core/SkBitmap.h |
| +++ b/include/core/SkBitmap.h |
| @@ -1,4 +1,3 @@ |
| - |
| /* |
| * Copyright 2006 The Android Open Source Project |
| * |
| @@ -6,17 +5,19 @@ |
| * found in the LICENSE file. |
| */ |
| - |
| #ifndef SkBitmap_DEFINED |
| #define SkBitmap_DEFINED |
| -#include "Sk64.h" |
| #include "SkColor.h" |
| #include "SkColorTable.h" |
| #include "SkImageInfo.h" |
| #include "SkPoint.h" |
| #include "SkRefCnt.h" |
| +#ifdef SK_SUPPORT_LEGACY_SK64 |
| + #include "Sk64.h" |
| +#endif |
| + |
| struct SkIRect; |
| struct SkRect; |
| class SkPaint; |
| @@ -149,19 +150,37 @@ public: |
| */ |
| size_t getSafeSize() const ; |
| - /** Return the byte size of the pixels, based on the height and rowBytes. |
| - This routine is slightly slower than getSize(), but does not truncate |
| - the answer to 32bits. |
| - */ |
| + /** |
| + * Return the full size of the bitmap, in bytes. |
| + */ |
| + int64_t computeSize64() const { |
| + return sk_64_mul(fHeight, fRowBytes); |
| + } |
| + |
| + /** |
| + * Return the number of bytes from the pointer returned by getPixels() |
| + * to the end of the allocated space in the buffer. This may be smaller |
| + * than computeSize64() if there is any rowbytes padding beyond the width. |
| + */ |
| + int64_t computeSafeSize64() const { |
| + return ComputeSafeSize64((Config)fConfig, fWidth, fHeight, fRowBytes); |
| + } |
| + |
| +#ifdef SK_SUPPORT_LEGACY_SK64 |
|
robertphillips
2013/12/20 16:40:21
use computeSize64?
|
| + SK_ATTR_DEPRECATED("use getSize64()") |
| Sk64 getSize64() const { |
| Sk64 size; |
| - size.setMul(fHeight, fRowBytes); |
| + size.set64(this->computeSize64()); |
| return size; |
| } |
|
robertphillips
2013/12/20 16:40:21
use computeSafeSize64?
|
| - /** Same as getSafeSize(), but does not truncate the answer to 32bits. |
| - */ |
| - Sk64 getSafeSize64() const ; |
| + SK_ATTR_DEPRECATED("use getSafeSize64()") |
| + Sk64 getSafeSize64() const { |
| + Sk64 size; |
| + size.set64(this->computeSafeSize64()); |
| + return size; |
| + } |
| +#endif |
| /** Returns true if this bitmap is marked as immutable, meaning that the |
| contents of its pixels will not change for the lifetime of the bitmap. |
| @@ -217,7 +236,7 @@ public: |
| return ComputeBytesPerPixel(c) >> 1; |
| } |
| - static Sk64 ComputeSize64(Config, int width, int height); |
| + static int64_t ComputeSize64(Config, int width, int height); |
| static size_t ComputeSize(Config, int width, int height); |
| /** |
| @@ -678,10 +697,10 @@ private: |
| /* Internal computations for safe size. |
| */ |
| - static Sk64 ComputeSafeSize64(Config config, |
| - uint32_t width, |
| - uint32_t height, |
| - size_t rowBytes); |
| + static int64_t ComputeSafeSize64(Config config, |
| + uint32_t width, |
| + uint32_t height, |
| + size_t rowBytes); |
| static size_t ComputeSafeSize(Config config, |
| uint32_t width, |
| uint32_t height, |