OLD | NEW |
1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | 1 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 /* ***** BEGIN LICENSE BLOCK ***** | 2 /* ***** BEGIN LICENSE BLOCK ***** |
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | 3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
4 * | 4 * |
5 * The contents of this file are subject to the Mozilla Public License Version | 5 * The contents of this file are subject to the Mozilla Public License Version |
6 * 1.1 (the "License"); you may not use this file except in compliance with | 6 * 1.1 (the "License"); you may not use this file except in compliance with |
7 * the License. You may obtain a copy of the License at | 7 * the License. You may obtain a copy of the License at |
8 * http://www.mozilla.org/MPL/ | 8 * http://www.mozilla.org/MPL/ |
9 * | 9 * |
10 * Software distributed under the License is distributed on an "AS IS" basis, | 10 * Software distributed under the License is distributed on an "AS IS" basis, |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
54 #include <vector> | 54 #include <vector> |
55 | 55 |
56 typedef SkTArray<unsigned char, true> GIFRow; | 56 typedef SkTArray<unsigned char, true> GIFRow; |
57 | 57 |
58 | 58 |
59 #define MAX_DICTIONARY_ENTRY_BITS 12 | 59 #define MAX_DICTIONARY_ENTRY_BITS 12 |
60 #define MAX_DICTIONARY_ENTRIES 4096 // 2^MAX_DICTIONARY_ENTRY_BITS | 60 #define MAX_DICTIONARY_ENTRIES 4096 // 2^MAX_DICTIONARY_ENTRY_BITS |
61 #define MAX_COLORS 256 | 61 #define MAX_COLORS 256 |
62 #define BYTES_PER_COLORMAP_ENTRY 3 | 62 #define BYTES_PER_COLORMAP_ENTRY 3 |
63 | 63 |
64 constexpr int cLoopCountNotSeen = -2; | |
65 constexpr size_t kNotFound = static_cast<size_t>(-1); | 64 constexpr size_t kNotFound = static_cast<size_t>(-1); |
66 | 65 |
67 // List of possible parsing states. | 66 // List of possible parsing states. |
68 enum GIFState { | 67 enum GIFState { |
69 GIFType, | 68 GIFType, |
70 GIFGlobalHeader, | 69 GIFGlobalHeader, |
71 GIFGlobalColormap, | 70 GIFGlobalColormap, |
72 GIFImageStart, | 71 GIFImageStart, |
73 GIFImageHeader, | 72 GIFImageHeader, |
74 GIFImageColormap, | 73 GIFImageColormap, |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 class SkGifImageReader final : public SkNoncopyable { | 277 class SkGifImageReader final : public SkNoncopyable { |
279 public: | 278 public: |
280 // This takes ownership of stream. | 279 // This takes ownership of stream. |
281 SkGifImageReader(SkStream* stream) | 280 SkGifImageReader(SkStream* stream) |
282 : m_client(nullptr) | 281 : m_client(nullptr) |
283 , m_state(GIFType) | 282 , m_state(GIFType) |
284 , m_bytesToConsume(6) // Number of bytes for GIF type, either "GIF87a" o
r "GIF89a". | 283 , m_bytesToConsume(6) // Number of bytes for GIF type, either "GIF87a" o
r "GIF89a". |
285 , m_version(0) | 284 , m_version(0) |
286 , m_screenWidth(0) | 285 , m_screenWidth(0) |
287 , m_screenHeight(0) | 286 , m_screenHeight(0) |
288 , m_loopCount(cLoopCountNotSeen) | 287 , m_loopCount(0) |
289 , m_streamBuffer(stream) | 288 , m_streamBuffer(stream) |
290 , m_parseCompleted(false) | 289 , m_parseCompleted(false) |
291 , m_firstFrameHasAlpha(false) | 290 , m_firstFrameHasAlpha(false) |
292 , m_firstFrameSupportsIndex8(false) | 291 , m_firstFrameSupportsIndex8(false) |
293 { | 292 { |
294 } | 293 } |
295 | 294 |
296 ~SkGifImageReader() | 295 ~SkGifImageReader() |
297 { | 296 { |
298 } | 297 } |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 SkStreamBuffer m_streamBuffer; | 388 SkStreamBuffer m_streamBuffer; |
390 bool m_parseCompleted; | 389 bool m_parseCompleted; |
391 | 390 |
392 // These values can be computed before we create a GIFFrameContext, so we | 391 // These values can be computed before we create a GIFFrameContext, so we |
393 // store them here instead of on m_frames[0]. | 392 // store them here instead of on m_frames[0]. |
394 bool m_firstFrameHasAlpha; | 393 bool m_firstFrameHasAlpha; |
395 bool m_firstFrameSupportsIndex8; | 394 bool m_firstFrameSupportsIndex8; |
396 }; | 395 }; |
397 | 396 |
398 #endif | 397 #endif |
OLD | NEW |