Chromium Code Reviews| Index: src/codec/SkCodecAnimation.h |
| diff --git a/src/codec/SkCodecAnimation.h b/src/codec/SkCodecAnimation.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..86ba21d16a06bbf3c60fbf1b4c7bbb749d725958 |
| --- /dev/null |
| +++ b/src/codec/SkCodecAnimation.h |
| @@ -0,0 +1,62 @@ |
| +/* |
| + * Copyright 2016 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#ifndef SkCodecAnimation_DEFINED |
| +#define SkCodecAnimation_DEFINED |
| + |
| +#include "SkRect.h" |
| + |
| +class SkCodecAnimation { |
| +public: |
| + /** |
| + * This specifies how the next frame is based on this frame. |
| + * |
| + * Names are based on the GIF 89a spec. |
| + * |
| + * The numbers correspond to values in a GIF. |
| + */ |
| + enum DisposalMethod { |
| + /** |
| + * The next frame should be drawn on top of this one. |
| + * |
| + * In a GIF, a value of 0 (not specified) is also treated as Keep. |
| + */ |
| + Keep_DisposalMethod = 1, |
| + |
| + /** |
| + * Similar to Keep, except the area inside this frame's rectangle |
| + * should be cleared to the BackGround color (transparent) before |
| + * drawing the next frame. |
| + */ |
| + RestoreBGColor_DisposalMethod = 2, |
| + |
| + /** |
| + * The next frame should be drawn on top of the previous frame - i.e. |
| + * disregarding this one. |
| + * |
| + * In a GIF, a value of 4 is treated as RestorePrevious. |
|
msarett
2016/09/22 22:54:34
nit: also?
scroggo
2016/09/23 15:53:15
Haha, yes, that will be more clear.
|
| + */ |
| + RestorePrevious_DisposalMethod = 3, |
| + }; |
| + |
| + struct FrameInfo { |
| + DisposalMethod fDisposalMethod; |
| + |
| + // The frame that this frame is drawn on top of, or |
| + // SkCodec::kIndependentFrame. |
| + size_t fRequiredFrame; |
| + |
| + // The subset of the bounds that this frame describes. |
| + SkIRect fFrameRect; |
| + |
| + // How many 1/100 seconds to show this frame. |
| + size_t fDuration; |
| + }; |
| +private: |
| + SkCodecAnimation(); |
| +}; |
| +#endif // SkCodecAnimation_DEFINED |