 Chromium Code Reviews
 Chromium Code Reviews Issue 68973005:
  Expand pixelref to return SkImageInfo and rowbytes  (Closed) 
  Base URL: https://skia.googlecode.com/svn/trunk
    
  
    Issue 68973005:
  Expand pixelref to return SkImageInfo and rowbytes  (Closed) 
  Base URL: https://skia.googlecode.com/svn/trunk| Index: include/core/SkImageInfo.h | 
| diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h | 
| index c22249b842aaf3f602c5e3b99e57ce1bdaff7b42..7d51b123bfc8c7f2097aeb3736759223fb6fd8c9 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,6 +66,7 @@ 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, | 
| @@ -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,30 @@ 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 read(SkFlattenableReadBuffer&); | 
| + void write(SkFlattenableWriteBuffer&) const; | 
| 
scroggo
2013/12/04 18:14:03
In SkBitmap we call these flatten() and unflatten(
 
reed1
2013/12/04 21:12:54
Done.
 | 
| + | 
| + bool isValid() const { | 
| + return fWidth >= 0 && | 
| + fHeight >= 0 && | 
| + fColorType <= kLastEnum_SkColorType && | 
| + fAlphaType <= kLastEnum_SkAlphaType; | 
| + } | 
| + | 
| + void validate() const { | 
| + SkASSERT(this->isValid()); | 
| + } | 
| }; | 
| #endif |