• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2016 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SkCodecAnimation_DEFINED
9 #define SkCodecAnimation_DEFINED
10 
11 namespace SkCodecAnimation {
12     /**
13      *  This specifies how the next frame is based on this frame.
14      *
15      *  Names are based on the GIF 89a spec.
16      *
17      *  The numbers correspond to values in a GIF.
18      */
19     enum class DisposalMethod {
20         /**
21          *  The next frame should be drawn on top of this one.
22          *
23          *  In a GIF, a value of 0 (not specified) is also treated as Keep.
24          */
25         kKeep               = 1,
26 
27         /**
28          *  Similar to Keep, except the area inside this frame's rectangle
29          *  should be cleared to the BackGround color (transparent) before
30          *  drawing the next frame.
31          */
32         kRestoreBGColor     = 2,
33 
34         /**
35          *  The next frame should be drawn on top of the previous frame - i.e.
36          *  disregarding this one.
37          *
38          *  In a GIF, a value of 4 is also treated as RestorePrevious.
39          */
40         kRestorePrevious    = 3,
41     };
42 
43     /**
44      * How to blend the current frame.
45      */
46     enum class Blend {
47         /**
48          *  Blend with the prior frame as if using SkBlendMode::kSrcOver.
49          */
50         kSrcOver,
51 
52         /**
53          *  Blend with the prior frame as if using SkBlendMode::kSrc.
54          *
55          *  This frame's pixels replace the destination pixels.
56          */
57         kSrc,
58     };
59 
60 } // namespace SkCodecAnimation
61 #endif // SkCodecAnimation_DEFINED
62