Index: src/images/SkMovie_gif.cpp |
diff --git a/src/images/SkMovie_gif.cpp b/src/images/SkMovie_gif.cpp |
index 313bb2ce83b9973e913d497ec664f672abea7293..315816812a6238a0e4cd2db549b664eaa001f563 100644 |
--- a/src/images/SkMovie_gif.cpp |
+++ b/src/images/SkMovie_gif.cpp |
@@ -123,6 +123,7 @@ static void copyLine(uint32_t* dst, const unsigned char* src, const ColorMapObje |
} |
} |
+#if GIFLIB_MAJOR < 5 |
static void copyInterlaceGroup(SkBitmap* bm, const unsigned char*& src, |
const ColorMapObject* cmap, int transparent, int copyWidth, |
int copyHeight, const GifImageDesc& imageDesc, int rowStep, |
@@ -169,6 +170,7 @@ static void blitInterlace(SkBitmap* bm, const SavedImage* frame, const ColorMapO |
copyInterlaceGroup(bm, src, cmap, transparent, copyWidth, copyHeight, frame->ImageDesc, 2, 1); |
} |
+#endif |
static void blitNormal(SkBitmap* bm, const SavedImage* frame, const ColorMapObject* cmap, |
int transparent) |
@@ -241,11 +243,15 @@ static void drawFrame(SkBitmap* bm, const SavedImage* frame, const ColorMapObjec |
return; |
} |
+#if GIFLIB_MAJOR < 5 |
+ // before GIFLIB 5, de-interlacing wasn't done by library at load time |
if (frame->ImageDesc.Interlace) { |
blitInterlace(bm, frame, cmap, transparent); |
- } else { |
- blitNormal(bm, frame, cmap, transparent); |
+ return; |
} |
+#endif |
+ |
+ blitNormal(bm, frame, cmap, transparent); |
} |
static bool checkIfWillBeCleared(const SavedImage* frame) |