Index: third_party/WebKit/Source/platform/image-decoders/ImageFrame.h |
diff --git a/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h b/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h |
index fb7425755bd77887066531b171c6c8dc21c5b2d8..e23bf7ab6b927e76447965c17ee3356659312dde 100644 |
--- a/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h |
+++ b/third_party/WebKit/Source/platform/image-decoders/ImageFrame.h |
@@ -30,6 +30,7 @@ |
#include "platform/PlatformExport.h" |
#include "platform/geometry/IntRect.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
+#include "third_party/skia/include/core/SkColorPriv.h" |
#include "wtf/Assertions.h" |
#include "wtf/PassRefPtr.h" |
@@ -66,7 +67,12 @@ public: |
// overwrite the corresponding pixels). |
BlendAtopBgcolor, |
}; |
+ enum ColorType { |
+ N32 = kN32_SkColorType, |
+ Index8 = kIndex_8_SkColorType |
+ }; |
typedef uint32_t PixelData; |
+ typedef uint8_t PixelData8; |
ImageFrame(); |
@@ -90,6 +96,7 @@ public: |
// pixel data, so that modifications in one frame are not reflected in |
// the other. Returns whether the copy succeeded. |
bool copyBitmapData(const ImageFrame&); |
+ bool copyBitmapData(const ImageFrame&, ImageFrame::ColorType); |
// Copies the pixel data at [(startX, startY), (endX, startY)) to the |
// same X-coordinates on each subsequent row up to but not including |
@@ -110,6 +117,7 @@ public: |
// are written. Must only be called once. Returns whether allocation |
// succeeded. |
bool setSize(int newWidth, int newHeight); |
+ bool setSizeIndex8(int newWidth, int newHeight, const Vector<blink::ImageFrame::PixelData>& colorMap, size_t indexOfTransparent = kNotFound); |
// Returns a caller-owned pointer to the underlying native image data. |
// (Actual use: This pointer will be owned by BitmapImage and freed in |
@@ -146,6 +154,11 @@ public: |
return m_bitmap.getAddr32(x, y); |
} |
+ inline PixelData8* getAddr8(int x, int y) |
+ { |
+ return m_bitmap.getAddr8(x, y); |
+ } |
+ |
inline void setRGBA(int x, int y, unsigned r, unsigned g, unsigned b, unsigned a) |
{ |
setRGBA(getAddr(x, y), r, g, b, a); |