1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_packed_gl_enums.py using data from packed_egl_enums.json.
3 //
4 // Copyright 2017 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // PackedEGLEnums_autogen.h:
9 //   Declares ANGLE-specific enums classes for EGLenums and functions operating
10 //   on them.
11 
12 #ifndef COMMON_PACKEDEGLENUMS_AUTOGEN_H_
13 #define COMMON_PACKEDEGLENUMS_AUTOGEN_H_
14 
15 #include <EGL/egl.h>
16 #include <EGL/eglext.h>
17 
18 #include <cstdint>
19 #include <ostream>
20 
21 namespace egl
22 {
23 
24 template <typename Enum>
25 Enum FromEGLenum(EGLenum from);
26 
27 enum class CompositorTiming : uint8_t
28 {
29     CompositeDeadline        = 0,
30     CompositInterval         = 1,
31     CompositToPresentLatency = 2,
32 
33     InvalidEnum = 3,
34     EnumCount   = 3,
35 };
36 
37 template <>
38 CompositorTiming FromEGLenum<CompositorTiming>(EGLenum from);
39 EGLenum ToEGLenum(CompositorTiming from);
40 std::ostream &operator<<(std::ostream &os, CompositorTiming value);
41 
42 enum class ContextPriority : uint8_t
43 {
44     Low    = 0,
45     Medium = 1,
46     High   = 2,
47 
48     InvalidEnum = 3,
49     EnumCount   = 3,
50 };
51 
52 template <>
53 ContextPriority FromEGLenum<ContextPriority>(EGLenum from);
54 EGLenum ToEGLenum(ContextPriority from);
55 std::ostream &operator<<(std::ostream &os, ContextPriority value);
56 
57 enum class MessageType : uint8_t
58 {
59     Critical = 0,
60     Error    = 1,
61     Warn     = 2,
62     Info     = 3,
63 
64     InvalidEnum = 4,
65     EnumCount   = 4,
66 };
67 
68 template <>
69 MessageType FromEGLenum<MessageType>(EGLenum from);
70 EGLenum ToEGLenum(MessageType from);
71 std::ostream &operator<<(std::ostream &os, MessageType value);
72 
73 enum class ObjectType : uint8_t
74 {
75     Thread  = 0,
76     Display = 1,
77     Context = 2,
78     Surface = 3,
79     Image   = 4,
80     Sync    = 5,
81     Stream  = 6,
82 
83     InvalidEnum = 7,
84     EnumCount   = 7,
85 };
86 
87 template <>
88 ObjectType FromEGLenum<ObjectType>(EGLenum from);
89 EGLenum ToEGLenum(ObjectType from);
90 std::ostream &operator<<(std::ostream &os, ObjectType value);
91 
92 enum class TextureFormat : uint8_t
93 {
94     NoTexture = 0,
95     RGB       = 1,
96     RGBA      = 2,
97 
98     InvalidEnum = 3,
99     EnumCount   = 3,
100 };
101 
102 template <>
103 TextureFormat FromEGLenum<TextureFormat>(EGLenum from);
104 EGLenum ToEGLenum(TextureFormat from);
105 std::ostream &operator<<(std::ostream &os, TextureFormat value);
106 
107 enum class Timestamp : uint8_t
108 {
109     RequestedPresentTime            = 0,
110     RenderingCompleteTime           = 1,
111     CompositionLatchTime            = 2,
112     FirstCompositionStartTime       = 3,
113     LastCompositionStartTime        = 4,
114     FirstCompositionGPUFinishedTime = 5,
115     DisplayPresentTime              = 6,
116     DequeueReadyTime                = 7,
117     ReadsDoneTime                   = 8,
118 
119     InvalidEnum = 9,
120     EnumCount   = 9,
121 };
122 
123 template <>
124 Timestamp FromEGLenum<Timestamp>(EGLenum from);
125 EGLenum ToEGLenum(Timestamp from);
126 std::ostream &operator<<(std::ostream &os, Timestamp value);
127 
128 }  // namespace egl
129 
130 #endif  // COMMON_PACKEDEGLENUMS_AUTOGEN_H_
131