Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Unified Diff: src/codec/SkCodec_libbmp.h

Issue 1011343003: Enabling ico decoding with use of png and bmp decoders (Closed) Base URL: https://skia.googlesource.com/skia.git@swizzle
Patch Set: Provide the user with an option of which ico to decode Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/codec/SkCodec_libbmp.h
diff --git a/src/codec/SkCodec_libbmp.h b/src/codec/SkCodec_libbmp.h
index e6620d275d538558b595c561a2ef4deffaf8a38c..9c5deac8e51aa8c1dcee63c82f9017201e3b28e1 100644
--- a/src/codec/SkCodec_libbmp.h
+++ b/src/codec/SkCodec_libbmp.h
@@ -35,7 +35,7 @@ public:
/*
*
- * Checks the start of the stream to see if the image is a bitmap
+ * Checks the start of the stream to see if the image is a bmp
*
*/
static bool IsBmp(SkStream*);
@@ -43,17 +43,25 @@ public:
/*
*
* Assumes IsBmp was called and returned true
- * Creates a bitmap decoder
+ * Creates a bmp decoder
* Reads enough of the stream to determine the image format
*
*/
static SkCodec* NewFromStream(SkStream*);
+ /*
+ *
+ * Creates a bmp decoder for a bmp embedded in ico
+ * Reads enough of the stream to determine the image format
+ *
+ */
+ static SkCodec* NewFromIco(SkStream*);
+
protected:
/*
*
- * Initiates the bitmap decode
+ * Initiates the bmp decode
*
*/
virtual Result onGetPixels(const SkImageInfo& dstInfo, void* dst,
@@ -64,7 +72,7 @@ private:
/*
*
- * Used to define the input format of the bitmap
+ * Used to define the input format of the bmp
*
*/
enum BitmapInputFormat {
@@ -83,6 +91,14 @@ private:
/*
*
+ * Creates a bmp decoder
+ * Reads enough of the stream to determine the image format
+ *
+ */
+ static SkCodec* NewFromStream(SkStream*, const bool isIco);
+
+ /*
+ *
* Performs the bitmap decoding for bit masks input format
*
*/
@@ -147,7 +163,8 @@ private:
SkBmpCodec(const SkImageInfo& srcInfo, SkStream* stream,
uint16_t bitsPerPixel, BitmapInputFormat format,
SkMasks* masks, uint32_t numColors, uint32_t bytesPerColor,
- uint32_t offset, RowOrder rowOrder, size_t RLEByes);
+ uint32_t offset, RowOrder rowOrder, size_t RLEBytes,
+ bool isIco);
// Fields
const uint16_t fBitsPerPixel;
@@ -158,7 +175,8 @@ private:
const uint32_t fBytesPerColor;
const uint32_t fOffset;
const RowOrder fRowOrder;
- const size_t fRLEBytes;
+ const uint32_t fRLEBytes;
+ const bool fIsIco;
typedef SkCodec INHERITED;
};

Powered by Google App Engine
This is Rietveld 408576698