/src/mozilla-central/image/DecoderFlags.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
2 | | /* This Source Code Form is subject to the terms of the Mozilla Public |
3 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
4 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
5 | | |
6 | | #ifndef mozilla_image_DecoderFlags_h |
7 | | #define mozilla_image_DecoderFlags_h |
8 | | |
9 | | #include "mozilla/TypedEnumBits.h" |
10 | | |
11 | | namespace mozilla { |
12 | | namespace image { |
13 | | |
14 | | /** |
15 | | * Flags that influence decoder behavior. Note that these flags *don't* |
16 | | * influence the logical content of the surfaces that the decoder generates, so |
17 | | * they're not in a factor in SurfaceCache lookups and the like. These flags |
18 | | * instead either influence which surfaces are generated at all or the tune the |
19 | | * decoder's behavior for a particular scenario. |
20 | | */ |
21 | | enum class DecoderFlags : uint8_t |
22 | | { |
23 | | FIRST_FRAME_ONLY = 1 << 0, |
24 | | IS_REDECODE = 1 << 1, |
25 | | IMAGE_IS_TRANSIENT = 1 << 2, |
26 | | ASYNC_NOTIFY = 1 << 3, |
27 | | |
28 | | /** |
29 | | * By default, a surface is considered substitutable. That means callers are |
30 | | * willing to accept a less than ideal match to display. If a caller requires |
31 | | * a specific size and won't accept alternatives, then this flag should be |
32 | | * set. |
33 | | */ |
34 | | CANNOT_SUBSTITUTE = 1 << 4, |
35 | | |
36 | | /** |
37 | | * By default, an animation decoder will produce partial frames that need to |
38 | | * be combined with the previously displayed/composited frame by FrameAnimator |
39 | | * to produce a complete frame. If this flag is set, the decoder will perform |
40 | | * this blending at decode time, and the frames produced are complete. |
41 | | */ |
42 | | BLEND_ANIMATION = 1 << 5 |
43 | | }; |
44 | | MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(DecoderFlags) |
45 | | |
46 | | /** |
47 | | * @return the default set of decode flags. |
48 | | */ |
49 | | inline DecoderFlags |
50 | | DefaultDecoderFlags() |
51 | 0 | { |
52 | 0 | return DecoderFlags(); |
53 | 0 | } |
54 | | |
55 | | } // namespace image |
56 | | } // namespace mozilla |
57 | | |
58 | | #endif // mozilla_image_DecoderFlags_h |