1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef mozilla_image_AnimationParams_h
#define mozilla_image_AnimationParams_h
#include <stdint.h>
#include "mozilla/gfx/Rect.h"
#include "FrameTimeout.h"
namespace mozilla {
namespace image {
enum class BlendMethod : int8_t {
// All color components of the frame, including alpha, overwrite the current
// contents of the frame's output buffer region.
SOURCE,
// The frame should be composited onto the output buffer based on its alpha,
// using a simple OVER operation.
OVER
};
enum class DisposalMethod : int8_t {
CLEAR_ALL = -1, // Clear the whole image, revealing what's underneath.
NOT_SPECIFIED, // Leave the frame and let the new frame draw on top.
KEEP, // Leave the frame and let the new frame draw on top.
CLEAR, // Clear the frame's area, revealing what's underneath.
RESTORE_PREVIOUS // Restore the previous (composited) frame.
};
struct AnimationParams {
AnimationParams(const gfx::IntRect& aBlendRect, const FrameTimeout& aTimeout,
uint32_t aFrameNum, BlendMethod aBlendMethod,
DisposalMethod aDisposalMethod)
: mBlendRect(aBlendRect),
mTimeout(aTimeout),
mFrameNum(aFrameNum),
mBlendMethod(aBlendMethod),
mDisposalMethod(aDisposalMethod) {}
gfx::IntRect mBlendRect;
FrameTimeout mTimeout;
uint32_t mFrameNum;
BlendMethod mBlendMethod;
DisposalMethod mDisposalMethod;
};
} // namespace image
} // namespace mozilla
#endif // mozilla_image_AnimationParams_h
|