Index: include/core/SkImageInfo.h |
diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h |
index c22249b842aaf3f602c5e3b99e57ce1bdaff7b42..1165479f7484267e47dc5dfa2bba90e5a79dce56 100644 |
--- a/include/core/SkImageInfo.h |
+++ b/include/core/SkImageInfo.h |
@@ -10,6 +10,9 @@ |
#include "SkTypes.h" |
+class SkFlattenableWriteBuffer; |
+class SkFlattenableReadBuffer; |
+ |
/** |
* Describes how to interpret the alpha compoent of a pixel. |
*/ |
@@ -63,11 +66,12 @@ static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) { |
enum SkColorType { |
kAlpha_8_SkColorType, |
kRGB_565_SkColorType, |
+ kARGB_4444_SkColorType, |
kRGBA_8888_SkColorType, |
kBGRA_8888_SkColorType, |
- kIndex8_SkColorType, |
+ kIndex_8_SkColorType, |
- kLastEnum_SkColorType = kIndex8_SkColorType, |
+ kLastEnum_SkColorType = kIndex_8_SkColorType, |
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A) |
kPMColor_SkColorType = kBGRA_8888_SkColorType |
@@ -82,6 +86,7 @@ static int SkColorTypeBytesPerPixel(SkColorType ct) { |
static const uint8_t gSize[] = { |
1, // Alpha_8 |
2, // RGB_565 |
+ 2, // ARGB_4444 |
4, // RGBA_8888 |
4, // BGRA_8888 |
1, // kIndex_8 |
@@ -112,12 +117,26 @@ struct SkImageInfo { |
return SkColorTypeBytesPerPixel(fColorType); |
} |
+ size_t minRowBytes() const { |
+ return fWidth * this->bytesPerPixel(); |
+ } |
+ |
bool operator==(const SkImageInfo& other) const { |
return 0 == memcmp(this, &other, sizeof(other)); |
} |
bool operator!=(const SkImageInfo& other) const { |
return 0 != memcmp(this, &other, sizeof(other)); |
} |
+ |
+ void unflatten(SkFlattenableReadBuffer&); |
+ void flatten(SkFlattenableWriteBuffer&) const; |
+ |
+ size_t getSafeSize(size_t rowBytes) const { |
+ if (0 == fHeight) { |
+ return 0; |
+ } |
+ return (fHeight - 1) * rowBytes + fWidth * this->bytesPerPixel(); |
+ } |
}; |
#endif |