1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_packed_gl_enums.py using data from packed_gl_enums.json.
3 //
4 // Copyright 2018 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 // PackedGLEnums_autogen.cpp:
9 //   Implements ANGLE-specific enums classes for GLEnum and functions operating
10 //   on them.
11 
12 #include "libANGLE/PackedGLEnums_autogen.h"
13 #include "common/debug.h"
14 
15 namespace gl
16 {
17 
18 template <>
FromGLenum(GLenum from)19 BufferBinding FromGLenum<BufferBinding>(GLenum from)
20 {
21     switch (from)
22     {
23         case GL_ARRAY_BUFFER:
24             return BufferBinding::Array;
25         case GL_ATOMIC_COUNTER_BUFFER:
26             return BufferBinding::AtomicCounter;
27         case GL_COPY_READ_BUFFER:
28             return BufferBinding::CopyRead;
29         case GL_COPY_WRITE_BUFFER:
30             return BufferBinding::CopyWrite;
31         case GL_DISPATCH_INDIRECT_BUFFER:
32             return BufferBinding::DispatchIndirect;
33         case GL_DRAW_INDIRECT_BUFFER:
34             return BufferBinding::DrawIndirect;
35         case GL_ELEMENT_ARRAY_BUFFER:
36             return BufferBinding::ElementArray;
37         case GL_PIXEL_PACK_BUFFER:
38             return BufferBinding::PixelPack;
39         case GL_PIXEL_UNPACK_BUFFER:
40             return BufferBinding::PixelUnpack;
41         case GL_SHADER_STORAGE_BUFFER:
42             return BufferBinding::ShaderStorage;
43         case GL_TRANSFORM_FEEDBACK_BUFFER:
44             return BufferBinding::TransformFeedback;
45         case GL_UNIFORM_BUFFER:
46             return BufferBinding::Uniform;
47         default:
48             return BufferBinding::InvalidEnum;
49     }
50 }
51 
ToGLenum(BufferBinding from)52 GLenum ToGLenum(BufferBinding from)
53 {
54     switch (from)
55     {
56         case BufferBinding::Array:
57             return GL_ARRAY_BUFFER;
58         case BufferBinding::AtomicCounter:
59             return GL_ATOMIC_COUNTER_BUFFER;
60         case BufferBinding::CopyRead:
61             return GL_COPY_READ_BUFFER;
62         case BufferBinding::CopyWrite:
63             return GL_COPY_WRITE_BUFFER;
64         case BufferBinding::DispatchIndirect:
65             return GL_DISPATCH_INDIRECT_BUFFER;
66         case BufferBinding::DrawIndirect:
67             return GL_DRAW_INDIRECT_BUFFER;
68         case BufferBinding::ElementArray:
69             return GL_ELEMENT_ARRAY_BUFFER;
70         case BufferBinding::PixelPack:
71             return GL_PIXEL_PACK_BUFFER;
72         case BufferBinding::PixelUnpack:
73             return GL_PIXEL_UNPACK_BUFFER;
74         case BufferBinding::ShaderStorage:
75             return GL_SHADER_STORAGE_BUFFER;
76         case BufferBinding::TransformFeedback:
77             return GL_TRANSFORM_FEEDBACK_BUFFER;
78         case BufferBinding::Uniform:
79             return GL_UNIFORM_BUFFER;
80         default:
81             UNREACHABLE();
82             return GL_NONE;
83     }
84 }
85 
86 template <>
FromGLenum(GLenum from)87 BufferUsage FromGLenum<BufferUsage>(GLenum from)
88 {
89     switch (from)
90     {
91         case GL_DYNAMIC_COPY:
92             return BufferUsage::DynamicCopy;
93         case GL_DYNAMIC_DRAW:
94             return BufferUsage::DynamicDraw;
95         case GL_DYNAMIC_READ:
96             return BufferUsage::DynamicRead;
97         case GL_STATIC_COPY:
98             return BufferUsage::StaticCopy;
99         case GL_STATIC_DRAW:
100             return BufferUsage::StaticDraw;
101         case GL_STATIC_READ:
102             return BufferUsage::StaticRead;
103         case GL_STREAM_COPY:
104             return BufferUsage::StreamCopy;
105         case GL_STREAM_DRAW:
106             return BufferUsage::StreamDraw;
107         case GL_STREAM_READ:
108             return BufferUsage::StreamRead;
109         default:
110             return BufferUsage::InvalidEnum;
111     }
112 }
113 
ToGLenum(BufferUsage from)114 GLenum ToGLenum(BufferUsage from)
115 {
116     switch (from)
117     {
118         case BufferUsage::DynamicCopy:
119             return GL_DYNAMIC_COPY;
120         case BufferUsage::DynamicDraw:
121             return GL_DYNAMIC_DRAW;
122         case BufferUsage::DynamicRead:
123             return GL_DYNAMIC_READ;
124         case BufferUsage::StaticCopy:
125             return GL_STATIC_COPY;
126         case BufferUsage::StaticDraw:
127             return GL_STATIC_DRAW;
128         case BufferUsage::StaticRead:
129             return GL_STATIC_READ;
130         case BufferUsage::StreamCopy:
131             return GL_STREAM_COPY;
132         case BufferUsage::StreamDraw:
133             return GL_STREAM_DRAW;
134         case BufferUsage::StreamRead:
135             return GL_STREAM_READ;
136         default:
137             UNREACHABLE();
138             return GL_NONE;
139     }
140 }
141 
142 template <>
FromGLenum(GLenum from)143 CullFaceMode FromGLenum<CullFaceMode>(GLenum from)
144 {
145     switch (from)
146     {
147         case GL_BACK:
148             return CullFaceMode::Back;
149         case GL_FRONT:
150             return CullFaceMode::Front;
151         case GL_FRONT_AND_BACK:
152             return CullFaceMode::FrontAndBack;
153         default:
154             return CullFaceMode::InvalidEnum;
155     }
156 }
157 
ToGLenum(CullFaceMode from)158 GLenum ToGLenum(CullFaceMode from)
159 {
160     switch (from)
161     {
162         case CullFaceMode::Back:
163             return GL_BACK;
164         case CullFaceMode::Front:
165             return GL_FRONT;
166         case CullFaceMode::FrontAndBack:
167             return GL_FRONT_AND_BACK;
168         default:
169             UNREACHABLE();
170             return GL_NONE;
171     }
172 }
173 
174 }  // namespace gl
175