package com.bumptech.glide.gifdecoder;
import android.support.annotation.ColorInt;
import android.support.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Inner model class housing metadata for each frame.
*
* @see <a href="https://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF 89a Specification</a>
*/
class GifFrame {
/**
* GIF Disposal Method meaning take no action.
* <p><b>GIF89a</b>: <i>No disposal specified.
* The decoder is not required to take any action.</i></p>
*/
public static final int DISPOSAL_UNSPECIFIED = 0;
/**
* GIF Disposal Method meaning leave canvas from previous frame.
* <p><b>GIF89a</b>: <i>Do not dispose.
* The graphic is to be left in place.</i></p>
*/
public static final int DISPOSAL_NONE = 1;
/**
* GIF Disposal Method meaning clear canvas to background color.
* <p><b>GIF89a</b>: <i>Restore to background color.
* The area used by the graphic must be restored to the background color.</i></p>
*/
public static final int DISPOSAL_BACKGROUND = 2;
/**
* GIF Disposal Method meaning clear canvas to frame before last.
* <p><b>GIF89a</b>: <i>Restore to previous.
* The decoder is required to restore the area overwritten by the graphic
* with what was there prior to rendering the graphic.</i></p>
*/
public static final int DISPOSAL_PREVIOUS = 3;
/**
* <p><b>GIF89a</b>:
* <i>Indicates the way in which the graphic is to be treated after being displayed.</i></p>
* Disposal methods 0-3 are defined, 4-7 are reserved for future use.
*
* @see #DISPOSAL_UNSPECIFIED
* @see #DISPOSAL_NONE
* @see #DISPOSAL_BACKGROUND
* @see #DISPOSAL_PREVIOUS
*/
@Retention(RetentionPolicy.SOURCE)
@IntDef(value = {DISPOSAL_UNSPECIFIED, DISPOSAL_NONE, DISPOSAL_BACKGROUND, DISPOSAL_PREVIOUS})
@interface GifDisposalMethod {
}
int ix, iy, iw, ih;
/**
* Control Flag.
*/
boolean interlace;
/**
* Control Flag.
*/
boolean transparency;
/**
* Disposal Method.
*/
@GifDisposalMethod
int dispose;
/**
* Transparency Index.
*/
int transIndex;
/**
* Delay, in milliseconds, to next frame.
*/
int delay;
/**
* Index in the raw buffer where we need to start reading to decode.
*/
int bufferFrameStart;
/**
* Local Color Table.
*/
@ColorInt
int[] lct;
}