Line data Source code
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 3398 : MOZ_MAKE_ENUM_CLASS_BITWISE_OPERATORS(DecoderFlags)
29 :
30 : /**
31 : * @return the default set of decode flags.
32 : */
33 : inline DecoderFlags
34 113 : DefaultDecoderFlags()
35 : {
36 113 : return DecoderFlags();
37 : }
38 :
39 : } // namespace image
40 : } // namespace mozilla
41 :
42 : #endif // mozilla_image_DecoderFlags_h
|