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