1*8975f5c5SAndroid Build Coastguard Worker // GENERATED FILE - DO NOT EDIT.
2*8975f5c5SAndroid Build Coastguard Worker // Generated by gen_packed_gl_enums.py using data from packed_gl_enums.json.
3*8975f5c5SAndroid Build Coastguard Worker //
4*8975f5c5SAndroid Build Coastguard Worker // Copyright 2017 The ANGLE Project Authors. All rights reserved.
5*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
6*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
7*8975f5c5SAndroid Build Coastguard Worker //
8*8975f5c5SAndroid Build Coastguard Worker // PackedGLEnums_autogen.cpp:
9*8975f5c5SAndroid Build Coastguard Worker // Implements ANGLE-specific enums classes for GLenums and functions operating
10*8975f5c5SAndroid Build Coastguard Worker // on them.
11*8975f5c5SAndroid Build Coastguard Worker
12*8975f5c5SAndroid Build Coastguard Worker #include "common/PackedGLEnums_autogen.h"
13*8975f5c5SAndroid Build Coastguard Worker #include "common/debug.h"
14*8975f5c5SAndroid Build Coastguard Worker
15*8975f5c5SAndroid Build Coastguard Worker namespace gl
16*8975f5c5SAndroid Build Coastguard Worker {
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)19*8975f5c5SAndroid Build Coastguard Worker AlphaTestFunc FromGLenum<AlphaTestFunc>(GLenum from)
20*8975f5c5SAndroid Build Coastguard Worker {
21*8975f5c5SAndroid Build Coastguard Worker switch (from)
22*8975f5c5SAndroid Build Coastguard Worker {
23*8975f5c5SAndroid Build Coastguard Worker case GL_ALWAYS:
24*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::AlwaysPass;
25*8975f5c5SAndroid Build Coastguard Worker case GL_EQUAL:
26*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::Equal;
27*8975f5c5SAndroid Build Coastguard Worker case GL_GEQUAL:
28*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::Gequal;
29*8975f5c5SAndroid Build Coastguard Worker case GL_GREATER:
30*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::Greater;
31*8975f5c5SAndroid Build Coastguard Worker case GL_LEQUAL:
32*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::Lequal;
33*8975f5c5SAndroid Build Coastguard Worker case GL_LESS:
34*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::Less;
35*8975f5c5SAndroid Build Coastguard Worker case GL_NEVER:
36*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::Never;
37*8975f5c5SAndroid Build Coastguard Worker case GL_NOTEQUAL:
38*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::NotEqual;
39*8975f5c5SAndroid Build Coastguard Worker default:
40*8975f5c5SAndroid Build Coastguard Worker return AlphaTestFunc::InvalidEnum;
41*8975f5c5SAndroid Build Coastguard Worker }
42*8975f5c5SAndroid Build Coastguard Worker }
43*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(AlphaTestFunc from)44*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(AlphaTestFunc from)
45*8975f5c5SAndroid Build Coastguard Worker {
46*8975f5c5SAndroid Build Coastguard Worker switch (from)
47*8975f5c5SAndroid Build Coastguard Worker {
48*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::AlwaysPass:
49*8975f5c5SAndroid Build Coastguard Worker return GL_ALWAYS;
50*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Equal:
51*8975f5c5SAndroid Build Coastguard Worker return GL_EQUAL;
52*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Gequal:
53*8975f5c5SAndroid Build Coastguard Worker return GL_GEQUAL;
54*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Greater:
55*8975f5c5SAndroid Build Coastguard Worker return GL_GREATER;
56*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Lequal:
57*8975f5c5SAndroid Build Coastguard Worker return GL_LEQUAL;
58*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Less:
59*8975f5c5SAndroid Build Coastguard Worker return GL_LESS;
60*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Never:
61*8975f5c5SAndroid Build Coastguard Worker return GL_NEVER;
62*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::NotEqual:
63*8975f5c5SAndroid Build Coastguard Worker return GL_NOTEQUAL;
64*8975f5c5SAndroid Build Coastguard Worker default:
65*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
66*8975f5c5SAndroid Build Coastguard Worker return 0;
67*8975f5c5SAndroid Build Coastguard Worker }
68*8975f5c5SAndroid Build Coastguard Worker }
69*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,AlphaTestFunc value)70*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, AlphaTestFunc value)
71*8975f5c5SAndroid Build Coastguard Worker {
72*8975f5c5SAndroid Build Coastguard Worker switch (value)
73*8975f5c5SAndroid Build Coastguard Worker {
74*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::AlwaysPass:
75*8975f5c5SAndroid Build Coastguard Worker os << "GL_ALWAYS";
76*8975f5c5SAndroid Build Coastguard Worker break;
77*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Equal:
78*8975f5c5SAndroid Build Coastguard Worker os << "GL_EQUAL";
79*8975f5c5SAndroid Build Coastguard Worker break;
80*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Gequal:
81*8975f5c5SAndroid Build Coastguard Worker os << "GL_GEQUAL";
82*8975f5c5SAndroid Build Coastguard Worker break;
83*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Greater:
84*8975f5c5SAndroid Build Coastguard Worker os << "GL_GREATER";
85*8975f5c5SAndroid Build Coastguard Worker break;
86*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Lequal:
87*8975f5c5SAndroid Build Coastguard Worker os << "GL_LEQUAL";
88*8975f5c5SAndroid Build Coastguard Worker break;
89*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Less:
90*8975f5c5SAndroid Build Coastguard Worker os << "GL_LESS";
91*8975f5c5SAndroid Build Coastguard Worker break;
92*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::Never:
93*8975f5c5SAndroid Build Coastguard Worker os << "GL_NEVER";
94*8975f5c5SAndroid Build Coastguard Worker break;
95*8975f5c5SAndroid Build Coastguard Worker case AlphaTestFunc::NotEqual:
96*8975f5c5SAndroid Build Coastguard Worker os << "GL_NOTEQUAL";
97*8975f5c5SAndroid Build Coastguard Worker break;
98*8975f5c5SAndroid Build Coastguard Worker default:
99*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
100*8975f5c5SAndroid Build Coastguard Worker break;
101*8975f5c5SAndroid Build Coastguard Worker }
102*8975f5c5SAndroid Build Coastguard Worker return os;
103*8975f5c5SAndroid Build Coastguard Worker }
104*8975f5c5SAndroid Build Coastguard Worker
105*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)106*8975f5c5SAndroid Build Coastguard Worker BufferBinding FromGLenum<BufferBinding>(GLenum from)
107*8975f5c5SAndroid Build Coastguard Worker {
108*8975f5c5SAndroid Build Coastguard Worker switch (from)
109*8975f5c5SAndroid Build Coastguard Worker {
110*8975f5c5SAndroid Build Coastguard Worker case GL_ARRAY_BUFFER:
111*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::Array;
112*8975f5c5SAndroid Build Coastguard Worker case GL_ATOMIC_COUNTER_BUFFER:
113*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::AtomicCounter;
114*8975f5c5SAndroid Build Coastguard Worker case GL_COPY_READ_BUFFER:
115*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::CopyRead;
116*8975f5c5SAndroid Build Coastguard Worker case GL_COPY_WRITE_BUFFER:
117*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::CopyWrite;
118*8975f5c5SAndroid Build Coastguard Worker case GL_DISPATCH_INDIRECT_BUFFER:
119*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::DispatchIndirect;
120*8975f5c5SAndroid Build Coastguard Worker case GL_DRAW_INDIRECT_BUFFER:
121*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::DrawIndirect;
122*8975f5c5SAndroid Build Coastguard Worker case GL_ELEMENT_ARRAY_BUFFER:
123*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::ElementArray;
124*8975f5c5SAndroid Build Coastguard Worker case GL_PIXEL_PACK_BUFFER:
125*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::PixelPack;
126*8975f5c5SAndroid Build Coastguard Worker case GL_PIXEL_UNPACK_BUFFER:
127*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::PixelUnpack;
128*8975f5c5SAndroid Build Coastguard Worker case GL_SHADER_STORAGE_BUFFER:
129*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::ShaderStorage;
130*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_BUFFER:
131*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::Texture;
132*8975f5c5SAndroid Build Coastguard Worker case GL_TRANSFORM_FEEDBACK_BUFFER:
133*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::TransformFeedback;
134*8975f5c5SAndroid Build Coastguard Worker case GL_UNIFORM_BUFFER:
135*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::Uniform;
136*8975f5c5SAndroid Build Coastguard Worker default:
137*8975f5c5SAndroid Build Coastguard Worker return BufferBinding::InvalidEnum;
138*8975f5c5SAndroid Build Coastguard Worker }
139*8975f5c5SAndroid Build Coastguard Worker }
140*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(BufferBinding from)141*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(BufferBinding from)
142*8975f5c5SAndroid Build Coastguard Worker {
143*8975f5c5SAndroid Build Coastguard Worker switch (from)
144*8975f5c5SAndroid Build Coastguard Worker {
145*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::Array:
146*8975f5c5SAndroid Build Coastguard Worker return GL_ARRAY_BUFFER;
147*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::AtomicCounter:
148*8975f5c5SAndroid Build Coastguard Worker return GL_ATOMIC_COUNTER_BUFFER;
149*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::CopyRead:
150*8975f5c5SAndroid Build Coastguard Worker return GL_COPY_READ_BUFFER;
151*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::CopyWrite:
152*8975f5c5SAndroid Build Coastguard Worker return GL_COPY_WRITE_BUFFER;
153*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::DispatchIndirect:
154*8975f5c5SAndroid Build Coastguard Worker return GL_DISPATCH_INDIRECT_BUFFER;
155*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::DrawIndirect:
156*8975f5c5SAndroid Build Coastguard Worker return GL_DRAW_INDIRECT_BUFFER;
157*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::ElementArray:
158*8975f5c5SAndroid Build Coastguard Worker return GL_ELEMENT_ARRAY_BUFFER;
159*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::PixelPack:
160*8975f5c5SAndroid Build Coastguard Worker return GL_PIXEL_PACK_BUFFER;
161*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::PixelUnpack:
162*8975f5c5SAndroid Build Coastguard Worker return GL_PIXEL_UNPACK_BUFFER;
163*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::ShaderStorage:
164*8975f5c5SAndroid Build Coastguard Worker return GL_SHADER_STORAGE_BUFFER;
165*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::Texture:
166*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_BUFFER;
167*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::TransformFeedback:
168*8975f5c5SAndroid Build Coastguard Worker return GL_TRANSFORM_FEEDBACK_BUFFER;
169*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::Uniform:
170*8975f5c5SAndroid Build Coastguard Worker return GL_UNIFORM_BUFFER;
171*8975f5c5SAndroid Build Coastguard Worker default:
172*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
173*8975f5c5SAndroid Build Coastguard Worker return 0;
174*8975f5c5SAndroid Build Coastguard Worker }
175*8975f5c5SAndroid Build Coastguard Worker }
176*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,BufferBinding value)177*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, BufferBinding value)
178*8975f5c5SAndroid Build Coastguard Worker {
179*8975f5c5SAndroid Build Coastguard Worker switch (value)
180*8975f5c5SAndroid Build Coastguard Worker {
181*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::Array:
182*8975f5c5SAndroid Build Coastguard Worker os << "GL_ARRAY_BUFFER";
183*8975f5c5SAndroid Build Coastguard Worker break;
184*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::AtomicCounter:
185*8975f5c5SAndroid Build Coastguard Worker os << "GL_ATOMIC_COUNTER_BUFFER";
186*8975f5c5SAndroid Build Coastguard Worker break;
187*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::CopyRead:
188*8975f5c5SAndroid Build Coastguard Worker os << "GL_COPY_READ_BUFFER";
189*8975f5c5SAndroid Build Coastguard Worker break;
190*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::CopyWrite:
191*8975f5c5SAndroid Build Coastguard Worker os << "GL_COPY_WRITE_BUFFER";
192*8975f5c5SAndroid Build Coastguard Worker break;
193*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::DispatchIndirect:
194*8975f5c5SAndroid Build Coastguard Worker os << "GL_DISPATCH_INDIRECT_BUFFER";
195*8975f5c5SAndroid Build Coastguard Worker break;
196*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::DrawIndirect:
197*8975f5c5SAndroid Build Coastguard Worker os << "GL_DRAW_INDIRECT_BUFFER";
198*8975f5c5SAndroid Build Coastguard Worker break;
199*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::ElementArray:
200*8975f5c5SAndroid Build Coastguard Worker os << "GL_ELEMENT_ARRAY_BUFFER";
201*8975f5c5SAndroid Build Coastguard Worker break;
202*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::PixelPack:
203*8975f5c5SAndroid Build Coastguard Worker os << "GL_PIXEL_PACK_BUFFER";
204*8975f5c5SAndroid Build Coastguard Worker break;
205*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::PixelUnpack:
206*8975f5c5SAndroid Build Coastguard Worker os << "GL_PIXEL_UNPACK_BUFFER";
207*8975f5c5SAndroid Build Coastguard Worker break;
208*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::ShaderStorage:
209*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHADER_STORAGE_BUFFER";
210*8975f5c5SAndroid Build Coastguard Worker break;
211*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::Texture:
212*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_BUFFER";
213*8975f5c5SAndroid Build Coastguard Worker break;
214*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::TransformFeedback:
215*8975f5c5SAndroid Build Coastguard Worker os << "GL_TRANSFORM_FEEDBACK_BUFFER";
216*8975f5c5SAndroid Build Coastguard Worker break;
217*8975f5c5SAndroid Build Coastguard Worker case BufferBinding::Uniform:
218*8975f5c5SAndroid Build Coastguard Worker os << "GL_UNIFORM_BUFFER";
219*8975f5c5SAndroid Build Coastguard Worker break;
220*8975f5c5SAndroid Build Coastguard Worker default:
221*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
222*8975f5c5SAndroid Build Coastguard Worker break;
223*8975f5c5SAndroid Build Coastguard Worker }
224*8975f5c5SAndroid Build Coastguard Worker return os;
225*8975f5c5SAndroid Build Coastguard Worker }
226*8975f5c5SAndroid Build Coastguard Worker
227*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)228*8975f5c5SAndroid Build Coastguard Worker BufferUsage FromGLenum<BufferUsage>(GLenum from)
229*8975f5c5SAndroid Build Coastguard Worker {
230*8975f5c5SAndroid Build Coastguard Worker switch (from)
231*8975f5c5SAndroid Build Coastguard Worker {
232*8975f5c5SAndroid Build Coastguard Worker case GL_DYNAMIC_COPY:
233*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::DynamicCopy;
234*8975f5c5SAndroid Build Coastguard Worker case GL_DYNAMIC_DRAW:
235*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::DynamicDraw;
236*8975f5c5SAndroid Build Coastguard Worker case GL_DYNAMIC_READ:
237*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::DynamicRead;
238*8975f5c5SAndroid Build Coastguard Worker case GL_STATIC_COPY:
239*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::StaticCopy;
240*8975f5c5SAndroid Build Coastguard Worker case GL_STATIC_DRAW:
241*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::StaticDraw;
242*8975f5c5SAndroid Build Coastguard Worker case GL_STATIC_READ:
243*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::StaticRead;
244*8975f5c5SAndroid Build Coastguard Worker case GL_STREAM_COPY:
245*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::StreamCopy;
246*8975f5c5SAndroid Build Coastguard Worker case GL_STREAM_DRAW:
247*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::StreamDraw;
248*8975f5c5SAndroid Build Coastguard Worker case GL_STREAM_READ:
249*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::StreamRead;
250*8975f5c5SAndroid Build Coastguard Worker default:
251*8975f5c5SAndroid Build Coastguard Worker return BufferUsage::InvalidEnum;
252*8975f5c5SAndroid Build Coastguard Worker }
253*8975f5c5SAndroid Build Coastguard Worker }
254*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(BufferUsage from)255*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(BufferUsage from)
256*8975f5c5SAndroid Build Coastguard Worker {
257*8975f5c5SAndroid Build Coastguard Worker switch (from)
258*8975f5c5SAndroid Build Coastguard Worker {
259*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::DynamicCopy:
260*8975f5c5SAndroid Build Coastguard Worker return GL_DYNAMIC_COPY;
261*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::DynamicDraw:
262*8975f5c5SAndroid Build Coastguard Worker return GL_DYNAMIC_DRAW;
263*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::DynamicRead:
264*8975f5c5SAndroid Build Coastguard Worker return GL_DYNAMIC_READ;
265*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StaticCopy:
266*8975f5c5SAndroid Build Coastguard Worker return GL_STATIC_COPY;
267*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StaticDraw:
268*8975f5c5SAndroid Build Coastguard Worker return GL_STATIC_DRAW;
269*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StaticRead:
270*8975f5c5SAndroid Build Coastguard Worker return GL_STATIC_READ;
271*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StreamCopy:
272*8975f5c5SAndroid Build Coastguard Worker return GL_STREAM_COPY;
273*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StreamDraw:
274*8975f5c5SAndroid Build Coastguard Worker return GL_STREAM_DRAW;
275*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StreamRead:
276*8975f5c5SAndroid Build Coastguard Worker return GL_STREAM_READ;
277*8975f5c5SAndroid Build Coastguard Worker default:
278*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
279*8975f5c5SAndroid Build Coastguard Worker return 0;
280*8975f5c5SAndroid Build Coastguard Worker }
281*8975f5c5SAndroid Build Coastguard Worker }
282*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,BufferUsage value)283*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, BufferUsage value)
284*8975f5c5SAndroid Build Coastguard Worker {
285*8975f5c5SAndroid Build Coastguard Worker switch (value)
286*8975f5c5SAndroid Build Coastguard Worker {
287*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::DynamicCopy:
288*8975f5c5SAndroid Build Coastguard Worker os << "GL_DYNAMIC_COPY";
289*8975f5c5SAndroid Build Coastguard Worker break;
290*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::DynamicDraw:
291*8975f5c5SAndroid Build Coastguard Worker os << "GL_DYNAMIC_DRAW";
292*8975f5c5SAndroid Build Coastguard Worker break;
293*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::DynamicRead:
294*8975f5c5SAndroid Build Coastguard Worker os << "GL_DYNAMIC_READ";
295*8975f5c5SAndroid Build Coastguard Worker break;
296*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StaticCopy:
297*8975f5c5SAndroid Build Coastguard Worker os << "GL_STATIC_COPY";
298*8975f5c5SAndroid Build Coastguard Worker break;
299*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StaticDraw:
300*8975f5c5SAndroid Build Coastguard Worker os << "GL_STATIC_DRAW";
301*8975f5c5SAndroid Build Coastguard Worker break;
302*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StaticRead:
303*8975f5c5SAndroid Build Coastguard Worker os << "GL_STATIC_READ";
304*8975f5c5SAndroid Build Coastguard Worker break;
305*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StreamCopy:
306*8975f5c5SAndroid Build Coastguard Worker os << "GL_STREAM_COPY";
307*8975f5c5SAndroid Build Coastguard Worker break;
308*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StreamDraw:
309*8975f5c5SAndroid Build Coastguard Worker os << "GL_STREAM_DRAW";
310*8975f5c5SAndroid Build Coastguard Worker break;
311*8975f5c5SAndroid Build Coastguard Worker case BufferUsage::StreamRead:
312*8975f5c5SAndroid Build Coastguard Worker os << "GL_STREAM_READ";
313*8975f5c5SAndroid Build Coastguard Worker break;
314*8975f5c5SAndroid Build Coastguard Worker default:
315*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
316*8975f5c5SAndroid Build Coastguard Worker break;
317*8975f5c5SAndroid Build Coastguard Worker }
318*8975f5c5SAndroid Build Coastguard Worker return os;
319*8975f5c5SAndroid Build Coastguard Worker }
320*8975f5c5SAndroid Build Coastguard Worker
321*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)322*8975f5c5SAndroid Build Coastguard Worker ClientVertexArrayType FromGLenum<ClientVertexArrayType>(GLenum from)
323*8975f5c5SAndroid Build Coastguard Worker {
324*8975f5c5SAndroid Build Coastguard Worker switch (from)
325*8975f5c5SAndroid Build Coastguard Worker {
326*8975f5c5SAndroid Build Coastguard Worker case GL_COLOR_ARRAY:
327*8975f5c5SAndroid Build Coastguard Worker return ClientVertexArrayType::Color;
328*8975f5c5SAndroid Build Coastguard Worker case GL_NORMAL_ARRAY:
329*8975f5c5SAndroid Build Coastguard Worker return ClientVertexArrayType::Normal;
330*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_SIZE_ARRAY_OES:
331*8975f5c5SAndroid Build Coastguard Worker return ClientVertexArrayType::PointSize;
332*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_COORD_ARRAY:
333*8975f5c5SAndroid Build Coastguard Worker return ClientVertexArrayType::TextureCoord;
334*8975f5c5SAndroid Build Coastguard Worker case GL_VERTEX_ARRAY:
335*8975f5c5SAndroid Build Coastguard Worker return ClientVertexArrayType::Vertex;
336*8975f5c5SAndroid Build Coastguard Worker default:
337*8975f5c5SAndroid Build Coastguard Worker return ClientVertexArrayType::InvalidEnum;
338*8975f5c5SAndroid Build Coastguard Worker }
339*8975f5c5SAndroid Build Coastguard Worker }
340*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ClientVertexArrayType from)341*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ClientVertexArrayType from)
342*8975f5c5SAndroid Build Coastguard Worker {
343*8975f5c5SAndroid Build Coastguard Worker switch (from)
344*8975f5c5SAndroid Build Coastguard Worker {
345*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::Color:
346*8975f5c5SAndroid Build Coastguard Worker return GL_COLOR_ARRAY;
347*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::Normal:
348*8975f5c5SAndroid Build Coastguard Worker return GL_NORMAL_ARRAY;
349*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::PointSize:
350*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_SIZE_ARRAY_OES;
351*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::TextureCoord:
352*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_COORD_ARRAY;
353*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::Vertex:
354*8975f5c5SAndroid Build Coastguard Worker return GL_VERTEX_ARRAY;
355*8975f5c5SAndroid Build Coastguard Worker default:
356*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
357*8975f5c5SAndroid Build Coastguard Worker return 0;
358*8975f5c5SAndroid Build Coastguard Worker }
359*8975f5c5SAndroid Build Coastguard Worker }
360*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ClientVertexArrayType value)361*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ClientVertexArrayType value)
362*8975f5c5SAndroid Build Coastguard Worker {
363*8975f5c5SAndroid Build Coastguard Worker switch (value)
364*8975f5c5SAndroid Build Coastguard Worker {
365*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::Color:
366*8975f5c5SAndroid Build Coastguard Worker os << "GL_COLOR_ARRAY";
367*8975f5c5SAndroid Build Coastguard Worker break;
368*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::Normal:
369*8975f5c5SAndroid Build Coastguard Worker os << "GL_NORMAL_ARRAY";
370*8975f5c5SAndroid Build Coastguard Worker break;
371*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::PointSize:
372*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_SIZE_ARRAY_OES";
373*8975f5c5SAndroid Build Coastguard Worker break;
374*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::TextureCoord:
375*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_COORD_ARRAY";
376*8975f5c5SAndroid Build Coastguard Worker break;
377*8975f5c5SAndroid Build Coastguard Worker case ClientVertexArrayType::Vertex:
378*8975f5c5SAndroid Build Coastguard Worker os << "GL_VERTEX_ARRAY";
379*8975f5c5SAndroid Build Coastguard Worker break;
380*8975f5c5SAndroid Build Coastguard Worker default:
381*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
382*8975f5c5SAndroid Build Coastguard Worker break;
383*8975f5c5SAndroid Build Coastguard Worker }
384*8975f5c5SAndroid Build Coastguard Worker return os;
385*8975f5c5SAndroid Build Coastguard Worker }
386*8975f5c5SAndroid Build Coastguard Worker
387*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)388*8975f5c5SAndroid Build Coastguard Worker ClipDepthMode FromGLenum<ClipDepthMode>(GLenum from)
389*8975f5c5SAndroid Build Coastguard Worker {
390*8975f5c5SAndroid Build Coastguard Worker switch (from)
391*8975f5c5SAndroid Build Coastguard Worker {
392*8975f5c5SAndroid Build Coastguard Worker case GL_NEGATIVE_ONE_TO_ONE_EXT:
393*8975f5c5SAndroid Build Coastguard Worker return ClipDepthMode::NegativeOneToOne;
394*8975f5c5SAndroid Build Coastguard Worker case GL_ZERO_TO_ONE_EXT:
395*8975f5c5SAndroid Build Coastguard Worker return ClipDepthMode::ZeroToOne;
396*8975f5c5SAndroid Build Coastguard Worker default:
397*8975f5c5SAndroid Build Coastguard Worker return ClipDepthMode::InvalidEnum;
398*8975f5c5SAndroid Build Coastguard Worker }
399*8975f5c5SAndroid Build Coastguard Worker }
400*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ClipDepthMode from)401*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ClipDepthMode from)
402*8975f5c5SAndroid Build Coastguard Worker {
403*8975f5c5SAndroid Build Coastguard Worker switch (from)
404*8975f5c5SAndroid Build Coastguard Worker {
405*8975f5c5SAndroid Build Coastguard Worker case ClipDepthMode::NegativeOneToOne:
406*8975f5c5SAndroid Build Coastguard Worker return GL_NEGATIVE_ONE_TO_ONE_EXT;
407*8975f5c5SAndroid Build Coastguard Worker case ClipDepthMode::ZeroToOne:
408*8975f5c5SAndroid Build Coastguard Worker return GL_ZERO_TO_ONE_EXT;
409*8975f5c5SAndroid Build Coastguard Worker default:
410*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
411*8975f5c5SAndroid Build Coastguard Worker return 0;
412*8975f5c5SAndroid Build Coastguard Worker }
413*8975f5c5SAndroid Build Coastguard Worker }
414*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ClipDepthMode value)415*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ClipDepthMode value)
416*8975f5c5SAndroid Build Coastguard Worker {
417*8975f5c5SAndroid Build Coastguard Worker switch (value)
418*8975f5c5SAndroid Build Coastguard Worker {
419*8975f5c5SAndroid Build Coastguard Worker case ClipDepthMode::NegativeOneToOne:
420*8975f5c5SAndroid Build Coastguard Worker os << "GL_NEGATIVE_ONE_TO_ONE_EXT";
421*8975f5c5SAndroid Build Coastguard Worker break;
422*8975f5c5SAndroid Build Coastguard Worker case ClipDepthMode::ZeroToOne:
423*8975f5c5SAndroid Build Coastguard Worker os << "GL_ZERO_TO_ONE_EXT";
424*8975f5c5SAndroid Build Coastguard Worker break;
425*8975f5c5SAndroid Build Coastguard Worker default:
426*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
427*8975f5c5SAndroid Build Coastguard Worker break;
428*8975f5c5SAndroid Build Coastguard Worker }
429*8975f5c5SAndroid Build Coastguard Worker return os;
430*8975f5c5SAndroid Build Coastguard Worker }
431*8975f5c5SAndroid Build Coastguard Worker
432*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)433*8975f5c5SAndroid Build Coastguard Worker ClipOrigin FromGLenum<ClipOrigin>(GLenum from)
434*8975f5c5SAndroid Build Coastguard Worker {
435*8975f5c5SAndroid Build Coastguard Worker switch (from)
436*8975f5c5SAndroid Build Coastguard Worker {
437*8975f5c5SAndroid Build Coastguard Worker case GL_LOWER_LEFT_EXT:
438*8975f5c5SAndroid Build Coastguard Worker return ClipOrigin::LowerLeft;
439*8975f5c5SAndroid Build Coastguard Worker case GL_UPPER_LEFT_EXT:
440*8975f5c5SAndroid Build Coastguard Worker return ClipOrigin::UpperLeft;
441*8975f5c5SAndroid Build Coastguard Worker default:
442*8975f5c5SAndroid Build Coastguard Worker return ClipOrigin::InvalidEnum;
443*8975f5c5SAndroid Build Coastguard Worker }
444*8975f5c5SAndroid Build Coastguard Worker }
445*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ClipOrigin from)446*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ClipOrigin from)
447*8975f5c5SAndroid Build Coastguard Worker {
448*8975f5c5SAndroid Build Coastguard Worker switch (from)
449*8975f5c5SAndroid Build Coastguard Worker {
450*8975f5c5SAndroid Build Coastguard Worker case ClipOrigin::LowerLeft:
451*8975f5c5SAndroid Build Coastguard Worker return GL_LOWER_LEFT_EXT;
452*8975f5c5SAndroid Build Coastguard Worker case ClipOrigin::UpperLeft:
453*8975f5c5SAndroid Build Coastguard Worker return GL_UPPER_LEFT_EXT;
454*8975f5c5SAndroid Build Coastguard Worker default:
455*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
456*8975f5c5SAndroid Build Coastguard Worker return 0;
457*8975f5c5SAndroid Build Coastguard Worker }
458*8975f5c5SAndroid Build Coastguard Worker }
459*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ClipOrigin value)460*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ClipOrigin value)
461*8975f5c5SAndroid Build Coastguard Worker {
462*8975f5c5SAndroid Build Coastguard Worker switch (value)
463*8975f5c5SAndroid Build Coastguard Worker {
464*8975f5c5SAndroid Build Coastguard Worker case ClipOrigin::LowerLeft:
465*8975f5c5SAndroid Build Coastguard Worker os << "GL_LOWER_LEFT_EXT";
466*8975f5c5SAndroid Build Coastguard Worker break;
467*8975f5c5SAndroid Build Coastguard Worker case ClipOrigin::UpperLeft:
468*8975f5c5SAndroid Build Coastguard Worker os << "GL_UPPER_LEFT_EXT";
469*8975f5c5SAndroid Build Coastguard Worker break;
470*8975f5c5SAndroid Build Coastguard Worker default:
471*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
472*8975f5c5SAndroid Build Coastguard Worker break;
473*8975f5c5SAndroid Build Coastguard Worker }
474*8975f5c5SAndroid Build Coastguard Worker return os;
475*8975f5c5SAndroid Build Coastguard Worker }
476*8975f5c5SAndroid Build Coastguard Worker
477*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)478*8975f5c5SAndroid Build Coastguard Worker CullFaceMode FromGLenum<CullFaceMode>(GLenum from)
479*8975f5c5SAndroid Build Coastguard Worker {
480*8975f5c5SAndroid Build Coastguard Worker switch (from)
481*8975f5c5SAndroid Build Coastguard Worker {
482*8975f5c5SAndroid Build Coastguard Worker case GL_BACK:
483*8975f5c5SAndroid Build Coastguard Worker return CullFaceMode::Back;
484*8975f5c5SAndroid Build Coastguard Worker case GL_FRONT:
485*8975f5c5SAndroid Build Coastguard Worker return CullFaceMode::Front;
486*8975f5c5SAndroid Build Coastguard Worker case GL_FRONT_AND_BACK:
487*8975f5c5SAndroid Build Coastguard Worker return CullFaceMode::FrontAndBack;
488*8975f5c5SAndroid Build Coastguard Worker default:
489*8975f5c5SAndroid Build Coastguard Worker return CullFaceMode::InvalidEnum;
490*8975f5c5SAndroid Build Coastguard Worker }
491*8975f5c5SAndroid Build Coastguard Worker }
492*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(CullFaceMode from)493*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(CullFaceMode from)
494*8975f5c5SAndroid Build Coastguard Worker {
495*8975f5c5SAndroid Build Coastguard Worker switch (from)
496*8975f5c5SAndroid Build Coastguard Worker {
497*8975f5c5SAndroid Build Coastguard Worker case CullFaceMode::Back:
498*8975f5c5SAndroid Build Coastguard Worker return GL_BACK;
499*8975f5c5SAndroid Build Coastguard Worker case CullFaceMode::Front:
500*8975f5c5SAndroid Build Coastguard Worker return GL_FRONT;
501*8975f5c5SAndroid Build Coastguard Worker case CullFaceMode::FrontAndBack:
502*8975f5c5SAndroid Build Coastguard Worker return GL_FRONT_AND_BACK;
503*8975f5c5SAndroid Build Coastguard Worker default:
504*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
505*8975f5c5SAndroid Build Coastguard Worker return 0;
506*8975f5c5SAndroid Build Coastguard Worker }
507*8975f5c5SAndroid Build Coastguard Worker }
508*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,CullFaceMode value)509*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, CullFaceMode value)
510*8975f5c5SAndroid Build Coastguard Worker {
511*8975f5c5SAndroid Build Coastguard Worker switch (value)
512*8975f5c5SAndroid Build Coastguard Worker {
513*8975f5c5SAndroid Build Coastguard Worker case CullFaceMode::Back:
514*8975f5c5SAndroid Build Coastguard Worker os << "GL_BACK";
515*8975f5c5SAndroid Build Coastguard Worker break;
516*8975f5c5SAndroid Build Coastguard Worker case CullFaceMode::Front:
517*8975f5c5SAndroid Build Coastguard Worker os << "GL_FRONT";
518*8975f5c5SAndroid Build Coastguard Worker break;
519*8975f5c5SAndroid Build Coastguard Worker case CullFaceMode::FrontAndBack:
520*8975f5c5SAndroid Build Coastguard Worker os << "GL_FRONT_AND_BACK";
521*8975f5c5SAndroid Build Coastguard Worker break;
522*8975f5c5SAndroid Build Coastguard Worker default:
523*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
524*8975f5c5SAndroid Build Coastguard Worker break;
525*8975f5c5SAndroid Build Coastguard Worker }
526*8975f5c5SAndroid Build Coastguard Worker return os;
527*8975f5c5SAndroid Build Coastguard Worker }
528*8975f5c5SAndroid Build Coastguard Worker
529*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)530*8975f5c5SAndroid Build Coastguard Worker FilterMode FromGLenum<FilterMode>(GLenum from)
531*8975f5c5SAndroid Build Coastguard Worker {
532*8975f5c5SAndroid Build Coastguard Worker switch (from)
533*8975f5c5SAndroid Build Coastguard Worker {
534*8975f5c5SAndroid Build Coastguard Worker case GL_NEAREST:
535*8975f5c5SAndroid Build Coastguard Worker return FilterMode::Nearest;
536*8975f5c5SAndroid Build Coastguard Worker case GL_LINEAR:
537*8975f5c5SAndroid Build Coastguard Worker return FilterMode::Linear;
538*8975f5c5SAndroid Build Coastguard Worker case GL_NEAREST_MIPMAP_NEAREST:
539*8975f5c5SAndroid Build Coastguard Worker return FilterMode::NearestMipmapNearest;
540*8975f5c5SAndroid Build Coastguard Worker case GL_NEAREST_MIPMAP_LINEAR:
541*8975f5c5SAndroid Build Coastguard Worker return FilterMode::NearestMipmapLinear;
542*8975f5c5SAndroid Build Coastguard Worker case GL_LINEAR_MIPMAP_LINEAR:
543*8975f5c5SAndroid Build Coastguard Worker return FilterMode::LinearMipmapLinear;
544*8975f5c5SAndroid Build Coastguard Worker default:
545*8975f5c5SAndroid Build Coastguard Worker return FilterMode::InvalidEnum;
546*8975f5c5SAndroid Build Coastguard Worker }
547*8975f5c5SAndroid Build Coastguard Worker }
548*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(FilterMode from)549*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(FilterMode from)
550*8975f5c5SAndroid Build Coastguard Worker {
551*8975f5c5SAndroid Build Coastguard Worker switch (from)
552*8975f5c5SAndroid Build Coastguard Worker {
553*8975f5c5SAndroid Build Coastguard Worker case FilterMode::Nearest:
554*8975f5c5SAndroid Build Coastguard Worker return GL_NEAREST;
555*8975f5c5SAndroid Build Coastguard Worker case FilterMode::Linear:
556*8975f5c5SAndroid Build Coastguard Worker return GL_LINEAR;
557*8975f5c5SAndroid Build Coastguard Worker case FilterMode::NearestMipmapNearest:
558*8975f5c5SAndroid Build Coastguard Worker return GL_NEAREST_MIPMAP_NEAREST;
559*8975f5c5SAndroid Build Coastguard Worker case FilterMode::NearestMipmapLinear:
560*8975f5c5SAndroid Build Coastguard Worker return GL_NEAREST_MIPMAP_LINEAR;
561*8975f5c5SAndroid Build Coastguard Worker case FilterMode::LinearMipmapLinear:
562*8975f5c5SAndroid Build Coastguard Worker return GL_LINEAR_MIPMAP_LINEAR;
563*8975f5c5SAndroid Build Coastguard Worker default:
564*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
565*8975f5c5SAndroid Build Coastguard Worker return 0;
566*8975f5c5SAndroid Build Coastguard Worker }
567*8975f5c5SAndroid Build Coastguard Worker }
568*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,FilterMode value)569*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, FilterMode value)
570*8975f5c5SAndroid Build Coastguard Worker {
571*8975f5c5SAndroid Build Coastguard Worker switch (value)
572*8975f5c5SAndroid Build Coastguard Worker {
573*8975f5c5SAndroid Build Coastguard Worker case FilterMode::Nearest:
574*8975f5c5SAndroid Build Coastguard Worker os << "GL_NEAREST";
575*8975f5c5SAndroid Build Coastguard Worker break;
576*8975f5c5SAndroid Build Coastguard Worker case FilterMode::Linear:
577*8975f5c5SAndroid Build Coastguard Worker os << "GL_LINEAR";
578*8975f5c5SAndroid Build Coastguard Worker break;
579*8975f5c5SAndroid Build Coastguard Worker case FilterMode::NearestMipmapNearest:
580*8975f5c5SAndroid Build Coastguard Worker os << "GL_NEAREST_MIPMAP_NEAREST";
581*8975f5c5SAndroid Build Coastguard Worker break;
582*8975f5c5SAndroid Build Coastguard Worker case FilterMode::NearestMipmapLinear:
583*8975f5c5SAndroid Build Coastguard Worker os << "GL_NEAREST_MIPMAP_LINEAR";
584*8975f5c5SAndroid Build Coastguard Worker break;
585*8975f5c5SAndroid Build Coastguard Worker case FilterMode::LinearMipmapLinear:
586*8975f5c5SAndroid Build Coastguard Worker os << "GL_LINEAR_MIPMAP_LINEAR";
587*8975f5c5SAndroid Build Coastguard Worker break;
588*8975f5c5SAndroid Build Coastguard Worker default:
589*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
590*8975f5c5SAndroid Build Coastguard Worker break;
591*8975f5c5SAndroid Build Coastguard Worker }
592*8975f5c5SAndroid Build Coastguard Worker return os;
593*8975f5c5SAndroid Build Coastguard Worker }
594*8975f5c5SAndroid Build Coastguard Worker
595*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)596*8975f5c5SAndroid Build Coastguard Worker FogMode FromGLenum<FogMode>(GLenum from)
597*8975f5c5SAndroid Build Coastguard Worker {
598*8975f5c5SAndroid Build Coastguard Worker switch (from)
599*8975f5c5SAndroid Build Coastguard Worker {
600*8975f5c5SAndroid Build Coastguard Worker case GL_EXP:
601*8975f5c5SAndroid Build Coastguard Worker return FogMode::Exp;
602*8975f5c5SAndroid Build Coastguard Worker case GL_EXP2:
603*8975f5c5SAndroid Build Coastguard Worker return FogMode::Exp2;
604*8975f5c5SAndroid Build Coastguard Worker case GL_LINEAR:
605*8975f5c5SAndroid Build Coastguard Worker return FogMode::Linear;
606*8975f5c5SAndroid Build Coastguard Worker default:
607*8975f5c5SAndroid Build Coastguard Worker return FogMode::InvalidEnum;
608*8975f5c5SAndroid Build Coastguard Worker }
609*8975f5c5SAndroid Build Coastguard Worker }
610*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(FogMode from)611*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(FogMode from)
612*8975f5c5SAndroid Build Coastguard Worker {
613*8975f5c5SAndroid Build Coastguard Worker switch (from)
614*8975f5c5SAndroid Build Coastguard Worker {
615*8975f5c5SAndroid Build Coastguard Worker case FogMode::Exp:
616*8975f5c5SAndroid Build Coastguard Worker return GL_EXP;
617*8975f5c5SAndroid Build Coastguard Worker case FogMode::Exp2:
618*8975f5c5SAndroid Build Coastguard Worker return GL_EXP2;
619*8975f5c5SAndroid Build Coastguard Worker case FogMode::Linear:
620*8975f5c5SAndroid Build Coastguard Worker return GL_LINEAR;
621*8975f5c5SAndroid Build Coastguard Worker default:
622*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
623*8975f5c5SAndroid Build Coastguard Worker return 0;
624*8975f5c5SAndroid Build Coastguard Worker }
625*8975f5c5SAndroid Build Coastguard Worker }
626*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,FogMode value)627*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, FogMode value)
628*8975f5c5SAndroid Build Coastguard Worker {
629*8975f5c5SAndroid Build Coastguard Worker switch (value)
630*8975f5c5SAndroid Build Coastguard Worker {
631*8975f5c5SAndroid Build Coastguard Worker case FogMode::Exp:
632*8975f5c5SAndroid Build Coastguard Worker os << "GL_EXP";
633*8975f5c5SAndroid Build Coastguard Worker break;
634*8975f5c5SAndroid Build Coastguard Worker case FogMode::Exp2:
635*8975f5c5SAndroid Build Coastguard Worker os << "GL_EXP2";
636*8975f5c5SAndroid Build Coastguard Worker break;
637*8975f5c5SAndroid Build Coastguard Worker case FogMode::Linear:
638*8975f5c5SAndroid Build Coastguard Worker os << "GL_LINEAR";
639*8975f5c5SAndroid Build Coastguard Worker break;
640*8975f5c5SAndroid Build Coastguard Worker default:
641*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
642*8975f5c5SAndroid Build Coastguard Worker break;
643*8975f5c5SAndroid Build Coastguard Worker }
644*8975f5c5SAndroid Build Coastguard Worker return os;
645*8975f5c5SAndroid Build Coastguard Worker }
646*8975f5c5SAndroid Build Coastguard Worker
647*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)648*8975f5c5SAndroid Build Coastguard Worker GraphicsResetStatus FromGLenum<GraphicsResetStatus>(GLenum from)
649*8975f5c5SAndroid Build Coastguard Worker {
650*8975f5c5SAndroid Build Coastguard Worker switch (from)
651*8975f5c5SAndroid Build Coastguard Worker {
652*8975f5c5SAndroid Build Coastguard Worker case GL_NO_ERROR:
653*8975f5c5SAndroid Build Coastguard Worker return GraphicsResetStatus::NoError;
654*8975f5c5SAndroid Build Coastguard Worker case GL_GUILTY_CONTEXT_RESET:
655*8975f5c5SAndroid Build Coastguard Worker return GraphicsResetStatus::GuiltyContextReset;
656*8975f5c5SAndroid Build Coastguard Worker case GL_INNOCENT_CONTEXT_RESET:
657*8975f5c5SAndroid Build Coastguard Worker return GraphicsResetStatus::InnocentContextReset;
658*8975f5c5SAndroid Build Coastguard Worker case GL_UNKNOWN_CONTEXT_RESET:
659*8975f5c5SAndroid Build Coastguard Worker return GraphicsResetStatus::UnknownContextReset;
660*8975f5c5SAndroid Build Coastguard Worker case GL_PURGED_CONTEXT_RESET_NV:
661*8975f5c5SAndroid Build Coastguard Worker return GraphicsResetStatus::PurgedContextResetNV;
662*8975f5c5SAndroid Build Coastguard Worker default:
663*8975f5c5SAndroid Build Coastguard Worker return GraphicsResetStatus::InvalidEnum;
664*8975f5c5SAndroid Build Coastguard Worker }
665*8975f5c5SAndroid Build Coastguard Worker }
666*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(GraphicsResetStatus from)667*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(GraphicsResetStatus from)
668*8975f5c5SAndroid Build Coastguard Worker {
669*8975f5c5SAndroid Build Coastguard Worker switch (from)
670*8975f5c5SAndroid Build Coastguard Worker {
671*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::NoError:
672*8975f5c5SAndroid Build Coastguard Worker return GL_NO_ERROR;
673*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::GuiltyContextReset:
674*8975f5c5SAndroid Build Coastguard Worker return GL_GUILTY_CONTEXT_RESET;
675*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::InnocentContextReset:
676*8975f5c5SAndroid Build Coastguard Worker return GL_INNOCENT_CONTEXT_RESET;
677*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::UnknownContextReset:
678*8975f5c5SAndroid Build Coastguard Worker return GL_UNKNOWN_CONTEXT_RESET;
679*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::PurgedContextResetNV:
680*8975f5c5SAndroid Build Coastguard Worker return GL_PURGED_CONTEXT_RESET_NV;
681*8975f5c5SAndroid Build Coastguard Worker default:
682*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
683*8975f5c5SAndroid Build Coastguard Worker return 0;
684*8975f5c5SAndroid Build Coastguard Worker }
685*8975f5c5SAndroid Build Coastguard Worker }
686*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,GraphicsResetStatus value)687*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, GraphicsResetStatus value)
688*8975f5c5SAndroid Build Coastguard Worker {
689*8975f5c5SAndroid Build Coastguard Worker switch (value)
690*8975f5c5SAndroid Build Coastguard Worker {
691*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::NoError:
692*8975f5c5SAndroid Build Coastguard Worker os << "GL_NO_ERROR";
693*8975f5c5SAndroid Build Coastguard Worker break;
694*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::GuiltyContextReset:
695*8975f5c5SAndroid Build Coastguard Worker os << "GL_GUILTY_CONTEXT_RESET";
696*8975f5c5SAndroid Build Coastguard Worker break;
697*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::InnocentContextReset:
698*8975f5c5SAndroid Build Coastguard Worker os << "GL_INNOCENT_CONTEXT_RESET";
699*8975f5c5SAndroid Build Coastguard Worker break;
700*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::UnknownContextReset:
701*8975f5c5SAndroid Build Coastguard Worker os << "GL_UNKNOWN_CONTEXT_RESET";
702*8975f5c5SAndroid Build Coastguard Worker break;
703*8975f5c5SAndroid Build Coastguard Worker case GraphicsResetStatus::PurgedContextResetNV:
704*8975f5c5SAndroid Build Coastguard Worker os << "GL_PURGED_CONTEXT_RESET_NV";
705*8975f5c5SAndroid Build Coastguard Worker break;
706*8975f5c5SAndroid Build Coastguard Worker default:
707*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
708*8975f5c5SAndroid Build Coastguard Worker break;
709*8975f5c5SAndroid Build Coastguard Worker }
710*8975f5c5SAndroid Build Coastguard Worker return os;
711*8975f5c5SAndroid Build Coastguard Worker }
712*8975f5c5SAndroid Build Coastguard Worker
713*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)714*8975f5c5SAndroid Build Coastguard Worker HandleType FromGLenum<HandleType>(GLenum from)
715*8975f5c5SAndroid Build Coastguard Worker {
716*8975f5c5SAndroid Build Coastguard Worker switch (from)
717*8975f5c5SAndroid Build Coastguard Worker {
718*8975f5c5SAndroid Build Coastguard Worker case GL_HANDLE_TYPE_OPAQUE_FD_EXT:
719*8975f5c5SAndroid Build Coastguard Worker return HandleType::OpaqueFd;
720*8975f5c5SAndroid Build Coastguard Worker case GL_HANDLE_TYPE_ZIRCON_VMO_ANGLE:
721*8975f5c5SAndroid Build Coastguard Worker return HandleType::ZirconVmo;
722*8975f5c5SAndroid Build Coastguard Worker case GL_HANDLE_TYPE_ZIRCON_EVENT_ANGLE:
723*8975f5c5SAndroid Build Coastguard Worker return HandleType::ZirconEvent;
724*8975f5c5SAndroid Build Coastguard Worker default:
725*8975f5c5SAndroid Build Coastguard Worker return HandleType::InvalidEnum;
726*8975f5c5SAndroid Build Coastguard Worker }
727*8975f5c5SAndroid Build Coastguard Worker }
728*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(HandleType from)729*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(HandleType from)
730*8975f5c5SAndroid Build Coastguard Worker {
731*8975f5c5SAndroid Build Coastguard Worker switch (from)
732*8975f5c5SAndroid Build Coastguard Worker {
733*8975f5c5SAndroid Build Coastguard Worker case HandleType::OpaqueFd:
734*8975f5c5SAndroid Build Coastguard Worker return GL_HANDLE_TYPE_OPAQUE_FD_EXT;
735*8975f5c5SAndroid Build Coastguard Worker case HandleType::ZirconVmo:
736*8975f5c5SAndroid Build Coastguard Worker return GL_HANDLE_TYPE_ZIRCON_VMO_ANGLE;
737*8975f5c5SAndroid Build Coastguard Worker case HandleType::ZirconEvent:
738*8975f5c5SAndroid Build Coastguard Worker return GL_HANDLE_TYPE_ZIRCON_EVENT_ANGLE;
739*8975f5c5SAndroid Build Coastguard Worker default:
740*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
741*8975f5c5SAndroid Build Coastguard Worker return 0;
742*8975f5c5SAndroid Build Coastguard Worker }
743*8975f5c5SAndroid Build Coastguard Worker }
744*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,HandleType value)745*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, HandleType value)
746*8975f5c5SAndroid Build Coastguard Worker {
747*8975f5c5SAndroid Build Coastguard Worker switch (value)
748*8975f5c5SAndroid Build Coastguard Worker {
749*8975f5c5SAndroid Build Coastguard Worker case HandleType::OpaqueFd:
750*8975f5c5SAndroid Build Coastguard Worker os << "GL_HANDLE_TYPE_OPAQUE_FD_EXT";
751*8975f5c5SAndroid Build Coastguard Worker break;
752*8975f5c5SAndroid Build Coastguard Worker case HandleType::ZirconVmo:
753*8975f5c5SAndroid Build Coastguard Worker os << "GL_HANDLE_TYPE_ZIRCON_VMO_ANGLE";
754*8975f5c5SAndroid Build Coastguard Worker break;
755*8975f5c5SAndroid Build Coastguard Worker case HandleType::ZirconEvent:
756*8975f5c5SAndroid Build Coastguard Worker os << "GL_HANDLE_TYPE_ZIRCON_EVENT_ANGLE";
757*8975f5c5SAndroid Build Coastguard Worker break;
758*8975f5c5SAndroid Build Coastguard Worker default:
759*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
760*8975f5c5SAndroid Build Coastguard Worker break;
761*8975f5c5SAndroid Build Coastguard Worker }
762*8975f5c5SAndroid Build Coastguard Worker return os;
763*8975f5c5SAndroid Build Coastguard Worker }
764*8975f5c5SAndroid Build Coastguard Worker
765*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)766*8975f5c5SAndroid Build Coastguard Worker HintSetting FromGLenum<HintSetting>(GLenum from)
767*8975f5c5SAndroid Build Coastguard Worker {
768*8975f5c5SAndroid Build Coastguard Worker switch (from)
769*8975f5c5SAndroid Build Coastguard Worker {
770*8975f5c5SAndroid Build Coastguard Worker case GL_DONT_CARE:
771*8975f5c5SAndroid Build Coastguard Worker return HintSetting::DontCare;
772*8975f5c5SAndroid Build Coastguard Worker case GL_FASTEST:
773*8975f5c5SAndroid Build Coastguard Worker return HintSetting::Fastest;
774*8975f5c5SAndroid Build Coastguard Worker case GL_NICEST:
775*8975f5c5SAndroid Build Coastguard Worker return HintSetting::Nicest;
776*8975f5c5SAndroid Build Coastguard Worker default:
777*8975f5c5SAndroid Build Coastguard Worker return HintSetting::InvalidEnum;
778*8975f5c5SAndroid Build Coastguard Worker }
779*8975f5c5SAndroid Build Coastguard Worker }
780*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(HintSetting from)781*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(HintSetting from)
782*8975f5c5SAndroid Build Coastguard Worker {
783*8975f5c5SAndroid Build Coastguard Worker switch (from)
784*8975f5c5SAndroid Build Coastguard Worker {
785*8975f5c5SAndroid Build Coastguard Worker case HintSetting::DontCare:
786*8975f5c5SAndroid Build Coastguard Worker return GL_DONT_CARE;
787*8975f5c5SAndroid Build Coastguard Worker case HintSetting::Fastest:
788*8975f5c5SAndroid Build Coastguard Worker return GL_FASTEST;
789*8975f5c5SAndroid Build Coastguard Worker case HintSetting::Nicest:
790*8975f5c5SAndroid Build Coastguard Worker return GL_NICEST;
791*8975f5c5SAndroid Build Coastguard Worker default:
792*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
793*8975f5c5SAndroid Build Coastguard Worker return 0;
794*8975f5c5SAndroid Build Coastguard Worker }
795*8975f5c5SAndroid Build Coastguard Worker }
796*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,HintSetting value)797*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, HintSetting value)
798*8975f5c5SAndroid Build Coastguard Worker {
799*8975f5c5SAndroid Build Coastguard Worker switch (value)
800*8975f5c5SAndroid Build Coastguard Worker {
801*8975f5c5SAndroid Build Coastguard Worker case HintSetting::DontCare:
802*8975f5c5SAndroid Build Coastguard Worker os << "GL_DONT_CARE";
803*8975f5c5SAndroid Build Coastguard Worker break;
804*8975f5c5SAndroid Build Coastguard Worker case HintSetting::Fastest:
805*8975f5c5SAndroid Build Coastguard Worker os << "GL_FASTEST";
806*8975f5c5SAndroid Build Coastguard Worker break;
807*8975f5c5SAndroid Build Coastguard Worker case HintSetting::Nicest:
808*8975f5c5SAndroid Build Coastguard Worker os << "GL_NICEST";
809*8975f5c5SAndroid Build Coastguard Worker break;
810*8975f5c5SAndroid Build Coastguard Worker default:
811*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
812*8975f5c5SAndroid Build Coastguard Worker break;
813*8975f5c5SAndroid Build Coastguard Worker }
814*8975f5c5SAndroid Build Coastguard Worker return os;
815*8975f5c5SAndroid Build Coastguard Worker }
816*8975f5c5SAndroid Build Coastguard Worker
817*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)818*8975f5c5SAndroid Build Coastguard Worker ImageLayout FromGLenum<ImageLayout>(GLenum from)
819*8975f5c5SAndroid Build Coastguard Worker {
820*8975f5c5SAndroid Build Coastguard Worker switch (from)
821*8975f5c5SAndroid Build Coastguard Worker {
822*8975f5c5SAndroid Build Coastguard Worker case GL_NONE:
823*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::Undefined;
824*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_GENERAL_EXT:
825*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::General;
826*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_COLOR_ATTACHMENT_EXT:
827*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::ColorAttachment;
828*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT:
829*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::DepthStencilAttachment;
830*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT:
831*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::DepthStencilReadOnlyAttachment;
832*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_SHADER_READ_ONLY_EXT:
833*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::ShaderReadOnly;
834*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_TRANSFER_SRC_EXT:
835*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::TransferSrc;
836*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_TRANSFER_DST_EXT:
837*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::TransferDst;
838*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT:
839*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::DepthReadOnlyStencilAttachment;
840*8975f5c5SAndroid Build Coastguard Worker case GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT:
841*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::DepthAttachmentStencilReadOnly;
842*8975f5c5SAndroid Build Coastguard Worker default:
843*8975f5c5SAndroid Build Coastguard Worker return ImageLayout::InvalidEnum;
844*8975f5c5SAndroid Build Coastguard Worker }
845*8975f5c5SAndroid Build Coastguard Worker }
846*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ImageLayout from)847*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ImageLayout from)
848*8975f5c5SAndroid Build Coastguard Worker {
849*8975f5c5SAndroid Build Coastguard Worker switch (from)
850*8975f5c5SAndroid Build Coastguard Worker {
851*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::Undefined:
852*8975f5c5SAndroid Build Coastguard Worker return GL_NONE;
853*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::General:
854*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_GENERAL_EXT;
855*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::ColorAttachment:
856*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_COLOR_ATTACHMENT_EXT;
857*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthStencilAttachment:
858*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT;
859*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthStencilReadOnlyAttachment:
860*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT;
861*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::ShaderReadOnly:
862*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_SHADER_READ_ONLY_EXT;
863*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::TransferSrc:
864*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_TRANSFER_SRC_EXT;
865*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::TransferDst:
866*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_TRANSFER_DST_EXT;
867*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthReadOnlyStencilAttachment:
868*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT;
869*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthAttachmentStencilReadOnly:
870*8975f5c5SAndroid Build Coastguard Worker return GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT;
871*8975f5c5SAndroid Build Coastguard Worker default:
872*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
873*8975f5c5SAndroid Build Coastguard Worker return 0;
874*8975f5c5SAndroid Build Coastguard Worker }
875*8975f5c5SAndroid Build Coastguard Worker }
876*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ImageLayout value)877*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ImageLayout value)
878*8975f5c5SAndroid Build Coastguard Worker {
879*8975f5c5SAndroid Build Coastguard Worker switch (value)
880*8975f5c5SAndroid Build Coastguard Worker {
881*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::Undefined:
882*8975f5c5SAndroid Build Coastguard Worker os << "GL_NONE";
883*8975f5c5SAndroid Build Coastguard Worker break;
884*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::General:
885*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_GENERAL_EXT";
886*8975f5c5SAndroid Build Coastguard Worker break;
887*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::ColorAttachment:
888*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_COLOR_ATTACHMENT_EXT";
889*8975f5c5SAndroid Build Coastguard Worker break;
890*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthStencilAttachment:
891*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT";
892*8975f5c5SAndroid Build Coastguard Worker break;
893*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthStencilReadOnlyAttachment:
894*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT";
895*8975f5c5SAndroid Build Coastguard Worker break;
896*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::ShaderReadOnly:
897*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_SHADER_READ_ONLY_EXT";
898*8975f5c5SAndroid Build Coastguard Worker break;
899*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::TransferSrc:
900*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_TRANSFER_SRC_EXT";
901*8975f5c5SAndroid Build Coastguard Worker break;
902*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::TransferDst:
903*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_TRANSFER_DST_EXT";
904*8975f5c5SAndroid Build Coastguard Worker break;
905*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthReadOnlyStencilAttachment:
906*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT";
907*8975f5c5SAndroid Build Coastguard Worker break;
908*8975f5c5SAndroid Build Coastguard Worker case ImageLayout::DepthAttachmentStencilReadOnly:
909*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT";
910*8975f5c5SAndroid Build Coastguard Worker break;
911*8975f5c5SAndroid Build Coastguard Worker default:
912*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
913*8975f5c5SAndroid Build Coastguard Worker break;
914*8975f5c5SAndroid Build Coastguard Worker }
915*8975f5c5SAndroid Build Coastguard Worker return os;
916*8975f5c5SAndroid Build Coastguard Worker }
917*8975f5c5SAndroid Build Coastguard Worker
918*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)919*8975f5c5SAndroid Build Coastguard Worker LightParameter FromGLenum<LightParameter>(GLenum from)
920*8975f5c5SAndroid Build Coastguard Worker {
921*8975f5c5SAndroid Build Coastguard Worker switch (from)
922*8975f5c5SAndroid Build Coastguard Worker {
923*8975f5c5SAndroid Build Coastguard Worker case GL_AMBIENT:
924*8975f5c5SAndroid Build Coastguard Worker return LightParameter::Ambient;
925*8975f5c5SAndroid Build Coastguard Worker case GL_AMBIENT_AND_DIFFUSE:
926*8975f5c5SAndroid Build Coastguard Worker return LightParameter::AmbientAndDiffuse;
927*8975f5c5SAndroid Build Coastguard Worker case GL_CONSTANT_ATTENUATION:
928*8975f5c5SAndroid Build Coastguard Worker return LightParameter::ConstantAttenuation;
929*8975f5c5SAndroid Build Coastguard Worker case GL_DIFFUSE:
930*8975f5c5SAndroid Build Coastguard Worker return LightParameter::Diffuse;
931*8975f5c5SAndroid Build Coastguard Worker case GL_LINEAR_ATTENUATION:
932*8975f5c5SAndroid Build Coastguard Worker return LightParameter::LinearAttenuation;
933*8975f5c5SAndroid Build Coastguard Worker case GL_POSITION:
934*8975f5c5SAndroid Build Coastguard Worker return LightParameter::Position;
935*8975f5c5SAndroid Build Coastguard Worker case GL_QUADRATIC_ATTENUATION:
936*8975f5c5SAndroid Build Coastguard Worker return LightParameter::QuadraticAttenuation;
937*8975f5c5SAndroid Build Coastguard Worker case GL_SPECULAR:
938*8975f5c5SAndroid Build Coastguard Worker return LightParameter::Specular;
939*8975f5c5SAndroid Build Coastguard Worker case GL_SPOT_CUTOFF:
940*8975f5c5SAndroid Build Coastguard Worker return LightParameter::SpotCutoff;
941*8975f5c5SAndroid Build Coastguard Worker case GL_SPOT_DIRECTION:
942*8975f5c5SAndroid Build Coastguard Worker return LightParameter::SpotDirection;
943*8975f5c5SAndroid Build Coastguard Worker case GL_SPOT_EXPONENT:
944*8975f5c5SAndroid Build Coastguard Worker return LightParameter::SpotExponent;
945*8975f5c5SAndroid Build Coastguard Worker default:
946*8975f5c5SAndroid Build Coastguard Worker return LightParameter::InvalidEnum;
947*8975f5c5SAndroid Build Coastguard Worker }
948*8975f5c5SAndroid Build Coastguard Worker }
949*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(LightParameter from)950*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(LightParameter from)
951*8975f5c5SAndroid Build Coastguard Worker {
952*8975f5c5SAndroid Build Coastguard Worker switch (from)
953*8975f5c5SAndroid Build Coastguard Worker {
954*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Ambient:
955*8975f5c5SAndroid Build Coastguard Worker return GL_AMBIENT;
956*8975f5c5SAndroid Build Coastguard Worker case LightParameter::AmbientAndDiffuse:
957*8975f5c5SAndroid Build Coastguard Worker return GL_AMBIENT_AND_DIFFUSE;
958*8975f5c5SAndroid Build Coastguard Worker case LightParameter::ConstantAttenuation:
959*8975f5c5SAndroid Build Coastguard Worker return GL_CONSTANT_ATTENUATION;
960*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Diffuse:
961*8975f5c5SAndroid Build Coastguard Worker return GL_DIFFUSE;
962*8975f5c5SAndroid Build Coastguard Worker case LightParameter::LinearAttenuation:
963*8975f5c5SAndroid Build Coastguard Worker return GL_LINEAR_ATTENUATION;
964*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Position:
965*8975f5c5SAndroid Build Coastguard Worker return GL_POSITION;
966*8975f5c5SAndroid Build Coastguard Worker case LightParameter::QuadraticAttenuation:
967*8975f5c5SAndroid Build Coastguard Worker return GL_QUADRATIC_ATTENUATION;
968*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Specular:
969*8975f5c5SAndroid Build Coastguard Worker return GL_SPECULAR;
970*8975f5c5SAndroid Build Coastguard Worker case LightParameter::SpotCutoff:
971*8975f5c5SAndroid Build Coastguard Worker return GL_SPOT_CUTOFF;
972*8975f5c5SAndroid Build Coastguard Worker case LightParameter::SpotDirection:
973*8975f5c5SAndroid Build Coastguard Worker return GL_SPOT_DIRECTION;
974*8975f5c5SAndroid Build Coastguard Worker case LightParameter::SpotExponent:
975*8975f5c5SAndroid Build Coastguard Worker return GL_SPOT_EXPONENT;
976*8975f5c5SAndroid Build Coastguard Worker default:
977*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
978*8975f5c5SAndroid Build Coastguard Worker return 0;
979*8975f5c5SAndroid Build Coastguard Worker }
980*8975f5c5SAndroid Build Coastguard Worker }
981*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,LightParameter value)982*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, LightParameter value)
983*8975f5c5SAndroid Build Coastguard Worker {
984*8975f5c5SAndroid Build Coastguard Worker switch (value)
985*8975f5c5SAndroid Build Coastguard Worker {
986*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Ambient:
987*8975f5c5SAndroid Build Coastguard Worker os << "GL_AMBIENT";
988*8975f5c5SAndroid Build Coastguard Worker break;
989*8975f5c5SAndroid Build Coastguard Worker case LightParameter::AmbientAndDiffuse:
990*8975f5c5SAndroid Build Coastguard Worker os << "GL_AMBIENT_AND_DIFFUSE";
991*8975f5c5SAndroid Build Coastguard Worker break;
992*8975f5c5SAndroid Build Coastguard Worker case LightParameter::ConstantAttenuation:
993*8975f5c5SAndroid Build Coastguard Worker os << "GL_CONSTANT_ATTENUATION";
994*8975f5c5SAndroid Build Coastguard Worker break;
995*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Diffuse:
996*8975f5c5SAndroid Build Coastguard Worker os << "GL_DIFFUSE";
997*8975f5c5SAndroid Build Coastguard Worker break;
998*8975f5c5SAndroid Build Coastguard Worker case LightParameter::LinearAttenuation:
999*8975f5c5SAndroid Build Coastguard Worker os << "GL_LINEAR_ATTENUATION";
1000*8975f5c5SAndroid Build Coastguard Worker break;
1001*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Position:
1002*8975f5c5SAndroid Build Coastguard Worker os << "GL_POSITION";
1003*8975f5c5SAndroid Build Coastguard Worker break;
1004*8975f5c5SAndroid Build Coastguard Worker case LightParameter::QuadraticAttenuation:
1005*8975f5c5SAndroid Build Coastguard Worker os << "GL_QUADRATIC_ATTENUATION";
1006*8975f5c5SAndroid Build Coastguard Worker break;
1007*8975f5c5SAndroid Build Coastguard Worker case LightParameter::Specular:
1008*8975f5c5SAndroid Build Coastguard Worker os << "GL_SPECULAR";
1009*8975f5c5SAndroid Build Coastguard Worker break;
1010*8975f5c5SAndroid Build Coastguard Worker case LightParameter::SpotCutoff:
1011*8975f5c5SAndroid Build Coastguard Worker os << "GL_SPOT_CUTOFF";
1012*8975f5c5SAndroid Build Coastguard Worker break;
1013*8975f5c5SAndroid Build Coastguard Worker case LightParameter::SpotDirection:
1014*8975f5c5SAndroid Build Coastguard Worker os << "GL_SPOT_DIRECTION";
1015*8975f5c5SAndroid Build Coastguard Worker break;
1016*8975f5c5SAndroid Build Coastguard Worker case LightParameter::SpotExponent:
1017*8975f5c5SAndroid Build Coastguard Worker os << "GL_SPOT_EXPONENT";
1018*8975f5c5SAndroid Build Coastguard Worker break;
1019*8975f5c5SAndroid Build Coastguard Worker default:
1020*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1021*8975f5c5SAndroid Build Coastguard Worker break;
1022*8975f5c5SAndroid Build Coastguard Worker }
1023*8975f5c5SAndroid Build Coastguard Worker return os;
1024*8975f5c5SAndroid Build Coastguard Worker }
1025*8975f5c5SAndroid Build Coastguard Worker
1026*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1027*8975f5c5SAndroid Build Coastguard Worker LogicalOperation FromGLenum<LogicalOperation>(GLenum from)
1028*8975f5c5SAndroid Build Coastguard Worker {
1029*8975f5c5SAndroid Build Coastguard Worker switch (from)
1030*8975f5c5SAndroid Build Coastguard Worker {
1031*8975f5c5SAndroid Build Coastguard Worker case GL_AND:
1032*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::And;
1033*8975f5c5SAndroid Build Coastguard Worker case GL_AND_INVERTED:
1034*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::AndInverted;
1035*8975f5c5SAndroid Build Coastguard Worker case GL_AND_REVERSE:
1036*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::AndReverse;
1037*8975f5c5SAndroid Build Coastguard Worker case GL_CLEAR:
1038*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Clear;
1039*8975f5c5SAndroid Build Coastguard Worker case GL_COPY:
1040*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Copy;
1041*8975f5c5SAndroid Build Coastguard Worker case GL_COPY_INVERTED:
1042*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::CopyInverted;
1043*8975f5c5SAndroid Build Coastguard Worker case GL_EQUIV:
1044*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Equiv;
1045*8975f5c5SAndroid Build Coastguard Worker case GL_INVERT:
1046*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Invert;
1047*8975f5c5SAndroid Build Coastguard Worker case GL_NAND:
1048*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Nand;
1049*8975f5c5SAndroid Build Coastguard Worker case GL_NOOP:
1050*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Noop;
1051*8975f5c5SAndroid Build Coastguard Worker case GL_NOR:
1052*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Nor;
1053*8975f5c5SAndroid Build Coastguard Worker case GL_OR:
1054*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Or;
1055*8975f5c5SAndroid Build Coastguard Worker case GL_OR_INVERTED:
1056*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::OrInverted;
1057*8975f5c5SAndroid Build Coastguard Worker case GL_OR_REVERSE:
1058*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::OrReverse;
1059*8975f5c5SAndroid Build Coastguard Worker case GL_SET:
1060*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Set;
1061*8975f5c5SAndroid Build Coastguard Worker case GL_XOR:
1062*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::Xor;
1063*8975f5c5SAndroid Build Coastguard Worker default:
1064*8975f5c5SAndroid Build Coastguard Worker return LogicalOperation::InvalidEnum;
1065*8975f5c5SAndroid Build Coastguard Worker }
1066*8975f5c5SAndroid Build Coastguard Worker }
1067*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(LogicalOperation from)1068*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(LogicalOperation from)
1069*8975f5c5SAndroid Build Coastguard Worker {
1070*8975f5c5SAndroid Build Coastguard Worker switch (from)
1071*8975f5c5SAndroid Build Coastguard Worker {
1072*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::And:
1073*8975f5c5SAndroid Build Coastguard Worker return GL_AND;
1074*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::AndInverted:
1075*8975f5c5SAndroid Build Coastguard Worker return GL_AND_INVERTED;
1076*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::AndReverse:
1077*8975f5c5SAndroid Build Coastguard Worker return GL_AND_REVERSE;
1078*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Clear:
1079*8975f5c5SAndroid Build Coastguard Worker return GL_CLEAR;
1080*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Copy:
1081*8975f5c5SAndroid Build Coastguard Worker return GL_COPY;
1082*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::CopyInverted:
1083*8975f5c5SAndroid Build Coastguard Worker return GL_COPY_INVERTED;
1084*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Equiv:
1085*8975f5c5SAndroid Build Coastguard Worker return GL_EQUIV;
1086*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Invert:
1087*8975f5c5SAndroid Build Coastguard Worker return GL_INVERT;
1088*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Nand:
1089*8975f5c5SAndroid Build Coastguard Worker return GL_NAND;
1090*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Noop:
1091*8975f5c5SAndroid Build Coastguard Worker return GL_NOOP;
1092*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Nor:
1093*8975f5c5SAndroid Build Coastguard Worker return GL_NOR;
1094*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Or:
1095*8975f5c5SAndroid Build Coastguard Worker return GL_OR;
1096*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::OrInverted:
1097*8975f5c5SAndroid Build Coastguard Worker return GL_OR_INVERTED;
1098*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::OrReverse:
1099*8975f5c5SAndroid Build Coastguard Worker return GL_OR_REVERSE;
1100*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Set:
1101*8975f5c5SAndroid Build Coastguard Worker return GL_SET;
1102*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Xor:
1103*8975f5c5SAndroid Build Coastguard Worker return GL_XOR;
1104*8975f5c5SAndroid Build Coastguard Worker default:
1105*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1106*8975f5c5SAndroid Build Coastguard Worker return 0;
1107*8975f5c5SAndroid Build Coastguard Worker }
1108*8975f5c5SAndroid Build Coastguard Worker }
1109*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,LogicalOperation value)1110*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, LogicalOperation value)
1111*8975f5c5SAndroid Build Coastguard Worker {
1112*8975f5c5SAndroid Build Coastguard Worker switch (value)
1113*8975f5c5SAndroid Build Coastguard Worker {
1114*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::And:
1115*8975f5c5SAndroid Build Coastguard Worker os << "GL_AND";
1116*8975f5c5SAndroid Build Coastguard Worker break;
1117*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::AndInverted:
1118*8975f5c5SAndroid Build Coastguard Worker os << "GL_AND_INVERTED";
1119*8975f5c5SAndroid Build Coastguard Worker break;
1120*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::AndReverse:
1121*8975f5c5SAndroid Build Coastguard Worker os << "GL_AND_REVERSE";
1122*8975f5c5SAndroid Build Coastguard Worker break;
1123*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Clear:
1124*8975f5c5SAndroid Build Coastguard Worker os << "GL_CLEAR";
1125*8975f5c5SAndroid Build Coastguard Worker break;
1126*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Copy:
1127*8975f5c5SAndroid Build Coastguard Worker os << "GL_COPY";
1128*8975f5c5SAndroid Build Coastguard Worker break;
1129*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::CopyInverted:
1130*8975f5c5SAndroid Build Coastguard Worker os << "GL_COPY_INVERTED";
1131*8975f5c5SAndroid Build Coastguard Worker break;
1132*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Equiv:
1133*8975f5c5SAndroid Build Coastguard Worker os << "GL_EQUIV";
1134*8975f5c5SAndroid Build Coastguard Worker break;
1135*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Invert:
1136*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVERT";
1137*8975f5c5SAndroid Build Coastguard Worker break;
1138*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Nand:
1139*8975f5c5SAndroid Build Coastguard Worker os << "GL_NAND";
1140*8975f5c5SAndroid Build Coastguard Worker break;
1141*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Noop:
1142*8975f5c5SAndroid Build Coastguard Worker os << "GL_NOOP";
1143*8975f5c5SAndroid Build Coastguard Worker break;
1144*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Nor:
1145*8975f5c5SAndroid Build Coastguard Worker os << "GL_NOR";
1146*8975f5c5SAndroid Build Coastguard Worker break;
1147*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Or:
1148*8975f5c5SAndroid Build Coastguard Worker os << "GL_OR";
1149*8975f5c5SAndroid Build Coastguard Worker break;
1150*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::OrInverted:
1151*8975f5c5SAndroid Build Coastguard Worker os << "GL_OR_INVERTED";
1152*8975f5c5SAndroid Build Coastguard Worker break;
1153*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::OrReverse:
1154*8975f5c5SAndroid Build Coastguard Worker os << "GL_OR_REVERSE";
1155*8975f5c5SAndroid Build Coastguard Worker break;
1156*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Set:
1157*8975f5c5SAndroid Build Coastguard Worker os << "GL_SET";
1158*8975f5c5SAndroid Build Coastguard Worker break;
1159*8975f5c5SAndroid Build Coastguard Worker case LogicalOperation::Xor:
1160*8975f5c5SAndroid Build Coastguard Worker os << "GL_XOR";
1161*8975f5c5SAndroid Build Coastguard Worker break;
1162*8975f5c5SAndroid Build Coastguard Worker default:
1163*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1164*8975f5c5SAndroid Build Coastguard Worker break;
1165*8975f5c5SAndroid Build Coastguard Worker }
1166*8975f5c5SAndroid Build Coastguard Worker return os;
1167*8975f5c5SAndroid Build Coastguard Worker }
1168*8975f5c5SAndroid Build Coastguard Worker
1169*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1170*8975f5c5SAndroid Build Coastguard Worker MaterialParameter FromGLenum<MaterialParameter>(GLenum from)
1171*8975f5c5SAndroid Build Coastguard Worker {
1172*8975f5c5SAndroid Build Coastguard Worker switch (from)
1173*8975f5c5SAndroid Build Coastguard Worker {
1174*8975f5c5SAndroid Build Coastguard Worker case GL_AMBIENT:
1175*8975f5c5SAndroid Build Coastguard Worker return MaterialParameter::Ambient;
1176*8975f5c5SAndroid Build Coastguard Worker case GL_AMBIENT_AND_DIFFUSE:
1177*8975f5c5SAndroid Build Coastguard Worker return MaterialParameter::AmbientAndDiffuse;
1178*8975f5c5SAndroid Build Coastguard Worker case GL_DIFFUSE:
1179*8975f5c5SAndroid Build Coastguard Worker return MaterialParameter::Diffuse;
1180*8975f5c5SAndroid Build Coastguard Worker case GL_EMISSION:
1181*8975f5c5SAndroid Build Coastguard Worker return MaterialParameter::Emission;
1182*8975f5c5SAndroid Build Coastguard Worker case GL_SHININESS:
1183*8975f5c5SAndroid Build Coastguard Worker return MaterialParameter::Shininess;
1184*8975f5c5SAndroid Build Coastguard Worker case GL_SPECULAR:
1185*8975f5c5SAndroid Build Coastguard Worker return MaterialParameter::Specular;
1186*8975f5c5SAndroid Build Coastguard Worker default:
1187*8975f5c5SAndroid Build Coastguard Worker return MaterialParameter::InvalidEnum;
1188*8975f5c5SAndroid Build Coastguard Worker }
1189*8975f5c5SAndroid Build Coastguard Worker }
1190*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(MaterialParameter from)1191*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(MaterialParameter from)
1192*8975f5c5SAndroid Build Coastguard Worker {
1193*8975f5c5SAndroid Build Coastguard Worker switch (from)
1194*8975f5c5SAndroid Build Coastguard Worker {
1195*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Ambient:
1196*8975f5c5SAndroid Build Coastguard Worker return GL_AMBIENT;
1197*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::AmbientAndDiffuse:
1198*8975f5c5SAndroid Build Coastguard Worker return GL_AMBIENT_AND_DIFFUSE;
1199*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Diffuse:
1200*8975f5c5SAndroid Build Coastguard Worker return GL_DIFFUSE;
1201*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Emission:
1202*8975f5c5SAndroid Build Coastguard Worker return GL_EMISSION;
1203*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Shininess:
1204*8975f5c5SAndroid Build Coastguard Worker return GL_SHININESS;
1205*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Specular:
1206*8975f5c5SAndroid Build Coastguard Worker return GL_SPECULAR;
1207*8975f5c5SAndroid Build Coastguard Worker default:
1208*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1209*8975f5c5SAndroid Build Coastguard Worker return 0;
1210*8975f5c5SAndroid Build Coastguard Worker }
1211*8975f5c5SAndroid Build Coastguard Worker }
1212*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,MaterialParameter value)1213*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, MaterialParameter value)
1214*8975f5c5SAndroid Build Coastguard Worker {
1215*8975f5c5SAndroid Build Coastguard Worker switch (value)
1216*8975f5c5SAndroid Build Coastguard Worker {
1217*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Ambient:
1218*8975f5c5SAndroid Build Coastguard Worker os << "GL_AMBIENT";
1219*8975f5c5SAndroid Build Coastguard Worker break;
1220*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::AmbientAndDiffuse:
1221*8975f5c5SAndroid Build Coastguard Worker os << "GL_AMBIENT_AND_DIFFUSE";
1222*8975f5c5SAndroid Build Coastguard Worker break;
1223*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Diffuse:
1224*8975f5c5SAndroid Build Coastguard Worker os << "GL_DIFFUSE";
1225*8975f5c5SAndroid Build Coastguard Worker break;
1226*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Emission:
1227*8975f5c5SAndroid Build Coastguard Worker os << "GL_EMISSION";
1228*8975f5c5SAndroid Build Coastguard Worker break;
1229*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Shininess:
1230*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHININESS";
1231*8975f5c5SAndroid Build Coastguard Worker break;
1232*8975f5c5SAndroid Build Coastguard Worker case MaterialParameter::Specular:
1233*8975f5c5SAndroid Build Coastguard Worker os << "GL_SPECULAR";
1234*8975f5c5SAndroid Build Coastguard Worker break;
1235*8975f5c5SAndroid Build Coastguard Worker default:
1236*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1237*8975f5c5SAndroid Build Coastguard Worker break;
1238*8975f5c5SAndroid Build Coastguard Worker }
1239*8975f5c5SAndroid Build Coastguard Worker return os;
1240*8975f5c5SAndroid Build Coastguard Worker }
1241*8975f5c5SAndroid Build Coastguard Worker
1242*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1243*8975f5c5SAndroid Build Coastguard Worker MatrixType FromGLenum<MatrixType>(GLenum from)
1244*8975f5c5SAndroid Build Coastguard Worker {
1245*8975f5c5SAndroid Build Coastguard Worker switch (from)
1246*8975f5c5SAndroid Build Coastguard Worker {
1247*8975f5c5SAndroid Build Coastguard Worker case GL_MODELVIEW:
1248*8975f5c5SAndroid Build Coastguard Worker return MatrixType::Modelview;
1249*8975f5c5SAndroid Build Coastguard Worker case GL_PROJECTION:
1250*8975f5c5SAndroid Build Coastguard Worker return MatrixType::Projection;
1251*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE:
1252*8975f5c5SAndroid Build Coastguard Worker return MatrixType::Texture;
1253*8975f5c5SAndroid Build Coastguard Worker default:
1254*8975f5c5SAndroid Build Coastguard Worker return MatrixType::InvalidEnum;
1255*8975f5c5SAndroid Build Coastguard Worker }
1256*8975f5c5SAndroid Build Coastguard Worker }
1257*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(MatrixType from)1258*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(MatrixType from)
1259*8975f5c5SAndroid Build Coastguard Worker {
1260*8975f5c5SAndroid Build Coastguard Worker switch (from)
1261*8975f5c5SAndroid Build Coastguard Worker {
1262*8975f5c5SAndroid Build Coastguard Worker case MatrixType::Modelview:
1263*8975f5c5SAndroid Build Coastguard Worker return GL_MODELVIEW;
1264*8975f5c5SAndroid Build Coastguard Worker case MatrixType::Projection:
1265*8975f5c5SAndroid Build Coastguard Worker return GL_PROJECTION;
1266*8975f5c5SAndroid Build Coastguard Worker case MatrixType::Texture:
1267*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE;
1268*8975f5c5SAndroid Build Coastguard Worker default:
1269*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1270*8975f5c5SAndroid Build Coastguard Worker return 0;
1271*8975f5c5SAndroid Build Coastguard Worker }
1272*8975f5c5SAndroid Build Coastguard Worker }
1273*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,MatrixType value)1274*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, MatrixType value)
1275*8975f5c5SAndroid Build Coastguard Worker {
1276*8975f5c5SAndroid Build Coastguard Worker switch (value)
1277*8975f5c5SAndroid Build Coastguard Worker {
1278*8975f5c5SAndroid Build Coastguard Worker case MatrixType::Modelview:
1279*8975f5c5SAndroid Build Coastguard Worker os << "GL_MODELVIEW";
1280*8975f5c5SAndroid Build Coastguard Worker break;
1281*8975f5c5SAndroid Build Coastguard Worker case MatrixType::Projection:
1282*8975f5c5SAndroid Build Coastguard Worker os << "GL_PROJECTION";
1283*8975f5c5SAndroid Build Coastguard Worker break;
1284*8975f5c5SAndroid Build Coastguard Worker case MatrixType::Texture:
1285*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE";
1286*8975f5c5SAndroid Build Coastguard Worker break;
1287*8975f5c5SAndroid Build Coastguard Worker default:
1288*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1289*8975f5c5SAndroid Build Coastguard Worker break;
1290*8975f5c5SAndroid Build Coastguard Worker }
1291*8975f5c5SAndroid Build Coastguard Worker return os;
1292*8975f5c5SAndroid Build Coastguard Worker }
1293*8975f5c5SAndroid Build Coastguard Worker
1294*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1295*8975f5c5SAndroid Build Coastguard Worker PointParameter FromGLenum<PointParameter>(GLenum from)
1296*8975f5c5SAndroid Build Coastguard Worker {
1297*8975f5c5SAndroid Build Coastguard Worker switch (from)
1298*8975f5c5SAndroid Build Coastguard Worker {
1299*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_SIZE_MIN:
1300*8975f5c5SAndroid Build Coastguard Worker return PointParameter::PointSizeMin;
1301*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_SIZE_MAX:
1302*8975f5c5SAndroid Build Coastguard Worker return PointParameter::PointSizeMax;
1303*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_FADE_THRESHOLD_SIZE:
1304*8975f5c5SAndroid Build Coastguard Worker return PointParameter::PointFadeThresholdSize;
1305*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_DISTANCE_ATTENUATION:
1306*8975f5c5SAndroid Build Coastguard Worker return PointParameter::PointDistanceAttenuation;
1307*8975f5c5SAndroid Build Coastguard Worker default:
1308*8975f5c5SAndroid Build Coastguard Worker return PointParameter::InvalidEnum;
1309*8975f5c5SAndroid Build Coastguard Worker }
1310*8975f5c5SAndroid Build Coastguard Worker }
1311*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(PointParameter from)1312*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(PointParameter from)
1313*8975f5c5SAndroid Build Coastguard Worker {
1314*8975f5c5SAndroid Build Coastguard Worker switch (from)
1315*8975f5c5SAndroid Build Coastguard Worker {
1316*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointSizeMin:
1317*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_SIZE_MIN;
1318*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointSizeMax:
1319*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_SIZE_MAX;
1320*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointFadeThresholdSize:
1321*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_FADE_THRESHOLD_SIZE;
1322*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointDistanceAttenuation:
1323*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_DISTANCE_ATTENUATION;
1324*8975f5c5SAndroid Build Coastguard Worker default:
1325*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1326*8975f5c5SAndroid Build Coastguard Worker return 0;
1327*8975f5c5SAndroid Build Coastguard Worker }
1328*8975f5c5SAndroid Build Coastguard Worker }
1329*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,PointParameter value)1330*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, PointParameter value)
1331*8975f5c5SAndroid Build Coastguard Worker {
1332*8975f5c5SAndroid Build Coastguard Worker switch (value)
1333*8975f5c5SAndroid Build Coastguard Worker {
1334*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointSizeMin:
1335*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_SIZE_MIN";
1336*8975f5c5SAndroid Build Coastguard Worker break;
1337*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointSizeMax:
1338*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_SIZE_MAX";
1339*8975f5c5SAndroid Build Coastguard Worker break;
1340*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointFadeThresholdSize:
1341*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_FADE_THRESHOLD_SIZE";
1342*8975f5c5SAndroid Build Coastguard Worker break;
1343*8975f5c5SAndroid Build Coastguard Worker case PointParameter::PointDistanceAttenuation:
1344*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_DISTANCE_ATTENUATION";
1345*8975f5c5SAndroid Build Coastguard Worker break;
1346*8975f5c5SAndroid Build Coastguard Worker default:
1347*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1348*8975f5c5SAndroid Build Coastguard Worker break;
1349*8975f5c5SAndroid Build Coastguard Worker }
1350*8975f5c5SAndroid Build Coastguard Worker return os;
1351*8975f5c5SAndroid Build Coastguard Worker }
1352*8975f5c5SAndroid Build Coastguard Worker
1353*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1354*8975f5c5SAndroid Build Coastguard Worker PolygonMode FromGLenum<PolygonMode>(GLenum from)
1355*8975f5c5SAndroid Build Coastguard Worker {
1356*8975f5c5SAndroid Build Coastguard Worker switch (from)
1357*8975f5c5SAndroid Build Coastguard Worker {
1358*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_NV:
1359*8975f5c5SAndroid Build Coastguard Worker return PolygonMode::Point;
1360*8975f5c5SAndroid Build Coastguard Worker case GL_LINE_NV:
1361*8975f5c5SAndroid Build Coastguard Worker return PolygonMode::Line;
1362*8975f5c5SAndroid Build Coastguard Worker case GL_FILL_NV:
1363*8975f5c5SAndroid Build Coastguard Worker return PolygonMode::Fill;
1364*8975f5c5SAndroid Build Coastguard Worker default:
1365*8975f5c5SAndroid Build Coastguard Worker return PolygonMode::InvalidEnum;
1366*8975f5c5SAndroid Build Coastguard Worker }
1367*8975f5c5SAndroid Build Coastguard Worker }
1368*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(PolygonMode from)1369*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(PolygonMode from)
1370*8975f5c5SAndroid Build Coastguard Worker {
1371*8975f5c5SAndroid Build Coastguard Worker switch (from)
1372*8975f5c5SAndroid Build Coastguard Worker {
1373*8975f5c5SAndroid Build Coastguard Worker case PolygonMode::Point:
1374*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_NV;
1375*8975f5c5SAndroid Build Coastguard Worker case PolygonMode::Line:
1376*8975f5c5SAndroid Build Coastguard Worker return GL_LINE_NV;
1377*8975f5c5SAndroid Build Coastguard Worker case PolygonMode::Fill:
1378*8975f5c5SAndroid Build Coastguard Worker return GL_FILL_NV;
1379*8975f5c5SAndroid Build Coastguard Worker default:
1380*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1381*8975f5c5SAndroid Build Coastguard Worker return 0;
1382*8975f5c5SAndroid Build Coastguard Worker }
1383*8975f5c5SAndroid Build Coastguard Worker }
1384*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,PolygonMode value)1385*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, PolygonMode value)
1386*8975f5c5SAndroid Build Coastguard Worker {
1387*8975f5c5SAndroid Build Coastguard Worker switch (value)
1388*8975f5c5SAndroid Build Coastguard Worker {
1389*8975f5c5SAndroid Build Coastguard Worker case PolygonMode::Point:
1390*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_NV";
1391*8975f5c5SAndroid Build Coastguard Worker break;
1392*8975f5c5SAndroid Build Coastguard Worker case PolygonMode::Line:
1393*8975f5c5SAndroid Build Coastguard Worker os << "GL_LINE_NV";
1394*8975f5c5SAndroid Build Coastguard Worker break;
1395*8975f5c5SAndroid Build Coastguard Worker case PolygonMode::Fill:
1396*8975f5c5SAndroid Build Coastguard Worker os << "GL_FILL_NV";
1397*8975f5c5SAndroid Build Coastguard Worker break;
1398*8975f5c5SAndroid Build Coastguard Worker default:
1399*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1400*8975f5c5SAndroid Build Coastguard Worker break;
1401*8975f5c5SAndroid Build Coastguard Worker }
1402*8975f5c5SAndroid Build Coastguard Worker return os;
1403*8975f5c5SAndroid Build Coastguard Worker }
1404*8975f5c5SAndroid Build Coastguard Worker
1405*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1406*8975f5c5SAndroid Build Coastguard Worker ProvokingVertexConvention FromGLenum<ProvokingVertexConvention>(GLenum from)
1407*8975f5c5SAndroid Build Coastguard Worker {
1408*8975f5c5SAndroid Build Coastguard Worker switch (from)
1409*8975f5c5SAndroid Build Coastguard Worker {
1410*8975f5c5SAndroid Build Coastguard Worker case GL_FIRST_VERTEX_CONVENTION_ANGLE:
1411*8975f5c5SAndroid Build Coastguard Worker return ProvokingVertexConvention::FirstVertexConvention;
1412*8975f5c5SAndroid Build Coastguard Worker case GL_LAST_VERTEX_CONVENTION_ANGLE:
1413*8975f5c5SAndroid Build Coastguard Worker return ProvokingVertexConvention::LastVertexConvention;
1414*8975f5c5SAndroid Build Coastguard Worker default:
1415*8975f5c5SAndroid Build Coastguard Worker return ProvokingVertexConvention::InvalidEnum;
1416*8975f5c5SAndroid Build Coastguard Worker }
1417*8975f5c5SAndroid Build Coastguard Worker }
1418*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ProvokingVertexConvention from)1419*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ProvokingVertexConvention from)
1420*8975f5c5SAndroid Build Coastguard Worker {
1421*8975f5c5SAndroid Build Coastguard Worker switch (from)
1422*8975f5c5SAndroid Build Coastguard Worker {
1423*8975f5c5SAndroid Build Coastguard Worker case ProvokingVertexConvention::FirstVertexConvention:
1424*8975f5c5SAndroid Build Coastguard Worker return GL_FIRST_VERTEX_CONVENTION_ANGLE;
1425*8975f5c5SAndroid Build Coastguard Worker case ProvokingVertexConvention::LastVertexConvention:
1426*8975f5c5SAndroid Build Coastguard Worker return GL_LAST_VERTEX_CONVENTION_ANGLE;
1427*8975f5c5SAndroid Build Coastguard Worker default:
1428*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1429*8975f5c5SAndroid Build Coastguard Worker return 0;
1430*8975f5c5SAndroid Build Coastguard Worker }
1431*8975f5c5SAndroid Build Coastguard Worker }
1432*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ProvokingVertexConvention value)1433*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ProvokingVertexConvention value)
1434*8975f5c5SAndroid Build Coastguard Worker {
1435*8975f5c5SAndroid Build Coastguard Worker switch (value)
1436*8975f5c5SAndroid Build Coastguard Worker {
1437*8975f5c5SAndroid Build Coastguard Worker case ProvokingVertexConvention::FirstVertexConvention:
1438*8975f5c5SAndroid Build Coastguard Worker os << "GL_FIRST_VERTEX_CONVENTION_ANGLE";
1439*8975f5c5SAndroid Build Coastguard Worker break;
1440*8975f5c5SAndroid Build Coastguard Worker case ProvokingVertexConvention::LastVertexConvention:
1441*8975f5c5SAndroid Build Coastguard Worker os << "GL_LAST_VERTEX_CONVENTION_ANGLE";
1442*8975f5c5SAndroid Build Coastguard Worker break;
1443*8975f5c5SAndroid Build Coastguard Worker default:
1444*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1445*8975f5c5SAndroid Build Coastguard Worker break;
1446*8975f5c5SAndroid Build Coastguard Worker }
1447*8975f5c5SAndroid Build Coastguard Worker return os;
1448*8975f5c5SAndroid Build Coastguard Worker }
1449*8975f5c5SAndroid Build Coastguard Worker
1450*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1451*8975f5c5SAndroid Build Coastguard Worker QueryType FromGLenum<QueryType>(GLenum from)
1452*8975f5c5SAndroid Build Coastguard Worker {
1453*8975f5c5SAndroid Build Coastguard Worker switch (from)
1454*8975f5c5SAndroid Build Coastguard Worker {
1455*8975f5c5SAndroid Build Coastguard Worker case GL_ANY_SAMPLES_PASSED:
1456*8975f5c5SAndroid Build Coastguard Worker return QueryType::AnySamples;
1457*8975f5c5SAndroid Build Coastguard Worker case GL_ANY_SAMPLES_PASSED_CONSERVATIVE:
1458*8975f5c5SAndroid Build Coastguard Worker return QueryType::AnySamplesConservative;
1459*8975f5c5SAndroid Build Coastguard Worker case GL_COMMANDS_COMPLETED_CHROMIUM:
1460*8975f5c5SAndroid Build Coastguard Worker return QueryType::CommandsCompleted;
1461*8975f5c5SAndroid Build Coastguard Worker case GL_PRIMITIVES_GENERATED_EXT:
1462*8975f5c5SAndroid Build Coastguard Worker return QueryType::PrimitivesGenerated;
1463*8975f5c5SAndroid Build Coastguard Worker case GL_TIME_ELAPSED_EXT:
1464*8975f5c5SAndroid Build Coastguard Worker return QueryType::TimeElapsed;
1465*8975f5c5SAndroid Build Coastguard Worker case GL_TIMESTAMP_EXT:
1466*8975f5c5SAndroid Build Coastguard Worker return QueryType::Timestamp;
1467*8975f5c5SAndroid Build Coastguard Worker case GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:
1468*8975f5c5SAndroid Build Coastguard Worker return QueryType::TransformFeedbackPrimitivesWritten;
1469*8975f5c5SAndroid Build Coastguard Worker default:
1470*8975f5c5SAndroid Build Coastguard Worker return QueryType::InvalidEnum;
1471*8975f5c5SAndroid Build Coastguard Worker }
1472*8975f5c5SAndroid Build Coastguard Worker }
1473*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(QueryType from)1474*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(QueryType from)
1475*8975f5c5SAndroid Build Coastguard Worker {
1476*8975f5c5SAndroid Build Coastguard Worker switch (from)
1477*8975f5c5SAndroid Build Coastguard Worker {
1478*8975f5c5SAndroid Build Coastguard Worker case QueryType::AnySamples:
1479*8975f5c5SAndroid Build Coastguard Worker return GL_ANY_SAMPLES_PASSED;
1480*8975f5c5SAndroid Build Coastguard Worker case QueryType::AnySamplesConservative:
1481*8975f5c5SAndroid Build Coastguard Worker return GL_ANY_SAMPLES_PASSED_CONSERVATIVE;
1482*8975f5c5SAndroid Build Coastguard Worker case QueryType::CommandsCompleted:
1483*8975f5c5SAndroid Build Coastguard Worker return GL_COMMANDS_COMPLETED_CHROMIUM;
1484*8975f5c5SAndroid Build Coastguard Worker case QueryType::PrimitivesGenerated:
1485*8975f5c5SAndroid Build Coastguard Worker return GL_PRIMITIVES_GENERATED_EXT;
1486*8975f5c5SAndroid Build Coastguard Worker case QueryType::TimeElapsed:
1487*8975f5c5SAndroid Build Coastguard Worker return GL_TIME_ELAPSED_EXT;
1488*8975f5c5SAndroid Build Coastguard Worker case QueryType::Timestamp:
1489*8975f5c5SAndroid Build Coastguard Worker return GL_TIMESTAMP_EXT;
1490*8975f5c5SAndroid Build Coastguard Worker case QueryType::TransformFeedbackPrimitivesWritten:
1491*8975f5c5SAndroid Build Coastguard Worker return GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN;
1492*8975f5c5SAndroid Build Coastguard Worker default:
1493*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1494*8975f5c5SAndroid Build Coastguard Worker return 0;
1495*8975f5c5SAndroid Build Coastguard Worker }
1496*8975f5c5SAndroid Build Coastguard Worker }
1497*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,QueryType value)1498*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, QueryType value)
1499*8975f5c5SAndroid Build Coastguard Worker {
1500*8975f5c5SAndroid Build Coastguard Worker switch (value)
1501*8975f5c5SAndroid Build Coastguard Worker {
1502*8975f5c5SAndroid Build Coastguard Worker case QueryType::AnySamples:
1503*8975f5c5SAndroid Build Coastguard Worker os << "GL_ANY_SAMPLES_PASSED";
1504*8975f5c5SAndroid Build Coastguard Worker break;
1505*8975f5c5SAndroid Build Coastguard Worker case QueryType::AnySamplesConservative:
1506*8975f5c5SAndroid Build Coastguard Worker os << "GL_ANY_SAMPLES_PASSED_CONSERVATIVE";
1507*8975f5c5SAndroid Build Coastguard Worker break;
1508*8975f5c5SAndroid Build Coastguard Worker case QueryType::CommandsCompleted:
1509*8975f5c5SAndroid Build Coastguard Worker os << "GL_COMMANDS_COMPLETED_CHROMIUM";
1510*8975f5c5SAndroid Build Coastguard Worker break;
1511*8975f5c5SAndroid Build Coastguard Worker case QueryType::PrimitivesGenerated:
1512*8975f5c5SAndroid Build Coastguard Worker os << "GL_PRIMITIVES_GENERATED_EXT";
1513*8975f5c5SAndroid Build Coastguard Worker break;
1514*8975f5c5SAndroid Build Coastguard Worker case QueryType::TimeElapsed:
1515*8975f5c5SAndroid Build Coastguard Worker os << "GL_TIME_ELAPSED_EXT";
1516*8975f5c5SAndroid Build Coastguard Worker break;
1517*8975f5c5SAndroid Build Coastguard Worker case QueryType::Timestamp:
1518*8975f5c5SAndroid Build Coastguard Worker os << "GL_TIMESTAMP_EXT";
1519*8975f5c5SAndroid Build Coastguard Worker break;
1520*8975f5c5SAndroid Build Coastguard Worker case QueryType::TransformFeedbackPrimitivesWritten:
1521*8975f5c5SAndroid Build Coastguard Worker os << "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN";
1522*8975f5c5SAndroid Build Coastguard Worker break;
1523*8975f5c5SAndroid Build Coastguard Worker default:
1524*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1525*8975f5c5SAndroid Build Coastguard Worker break;
1526*8975f5c5SAndroid Build Coastguard Worker }
1527*8975f5c5SAndroid Build Coastguard Worker return os;
1528*8975f5c5SAndroid Build Coastguard Worker }
1529*8975f5c5SAndroid Build Coastguard Worker
1530*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1531*8975f5c5SAndroid Build Coastguard Worker ShaderType FromGLenum<ShaderType>(GLenum from)
1532*8975f5c5SAndroid Build Coastguard Worker {
1533*8975f5c5SAndroid Build Coastguard Worker switch (from)
1534*8975f5c5SAndroid Build Coastguard Worker {
1535*8975f5c5SAndroid Build Coastguard Worker case GL_VERTEX_SHADER:
1536*8975f5c5SAndroid Build Coastguard Worker return ShaderType::Vertex;
1537*8975f5c5SAndroid Build Coastguard Worker case GL_TESS_CONTROL_SHADER_EXT:
1538*8975f5c5SAndroid Build Coastguard Worker return ShaderType::TessControl;
1539*8975f5c5SAndroid Build Coastguard Worker case GL_TESS_EVALUATION_SHADER_EXT:
1540*8975f5c5SAndroid Build Coastguard Worker return ShaderType::TessEvaluation;
1541*8975f5c5SAndroid Build Coastguard Worker case GL_GEOMETRY_SHADER_EXT:
1542*8975f5c5SAndroid Build Coastguard Worker return ShaderType::Geometry;
1543*8975f5c5SAndroid Build Coastguard Worker case GL_FRAGMENT_SHADER:
1544*8975f5c5SAndroid Build Coastguard Worker return ShaderType::Fragment;
1545*8975f5c5SAndroid Build Coastguard Worker case GL_COMPUTE_SHADER:
1546*8975f5c5SAndroid Build Coastguard Worker return ShaderType::Compute;
1547*8975f5c5SAndroid Build Coastguard Worker default:
1548*8975f5c5SAndroid Build Coastguard Worker return ShaderType::InvalidEnum;
1549*8975f5c5SAndroid Build Coastguard Worker }
1550*8975f5c5SAndroid Build Coastguard Worker }
1551*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ShaderType from)1552*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ShaderType from)
1553*8975f5c5SAndroid Build Coastguard Worker {
1554*8975f5c5SAndroid Build Coastguard Worker switch (from)
1555*8975f5c5SAndroid Build Coastguard Worker {
1556*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Vertex:
1557*8975f5c5SAndroid Build Coastguard Worker return GL_VERTEX_SHADER;
1558*8975f5c5SAndroid Build Coastguard Worker case ShaderType::TessControl:
1559*8975f5c5SAndroid Build Coastguard Worker return GL_TESS_CONTROL_SHADER_EXT;
1560*8975f5c5SAndroid Build Coastguard Worker case ShaderType::TessEvaluation:
1561*8975f5c5SAndroid Build Coastguard Worker return GL_TESS_EVALUATION_SHADER_EXT;
1562*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Geometry:
1563*8975f5c5SAndroid Build Coastguard Worker return GL_GEOMETRY_SHADER_EXT;
1564*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Fragment:
1565*8975f5c5SAndroid Build Coastguard Worker return GL_FRAGMENT_SHADER;
1566*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Compute:
1567*8975f5c5SAndroid Build Coastguard Worker return GL_COMPUTE_SHADER;
1568*8975f5c5SAndroid Build Coastguard Worker default:
1569*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1570*8975f5c5SAndroid Build Coastguard Worker return 0;
1571*8975f5c5SAndroid Build Coastguard Worker }
1572*8975f5c5SAndroid Build Coastguard Worker }
1573*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ShaderType value)1574*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ShaderType value)
1575*8975f5c5SAndroid Build Coastguard Worker {
1576*8975f5c5SAndroid Build Coastguard Worker switch (value)
1577*8975f5c5SAndroid Build Coastguard Worker {
1578*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Vertex:
1579*8975f5c5SAndroid Build Coastguard Worker os << "GL_VERTEX_SHADER";
1580*8975f5c5SAndroid Build Coastguard Worker break;
1581*8975f5c5SAndroid Build Coastguard Worker case ShaderType::TessControl:
1582*8975f5c5SAndroid Build Coastguard Worker os << "GL_TESS_CONTROL_SHADER_EXT";
1583*8975f5c5SAndroid Build Coastguard Worker break;
1584*8975f5c5SAndroid Build Coastguard Worker case ShaderType::TessEvaluation:
1585*8975f5c5SAndroid Build Coastguard Worker os << "GL_TESS_EVALUATION_SHADER_EXT";
1586*8975f5c5SAndroid Build Coastguard Worker break;
1587*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Geometry:
1588*8975f5c5SAndroid Build Coastguard Worker os << "GL_GEOMETRY_SHADER_EXT";
1589*8975f5c5SAndroid Build Coastguard Worker break;
1590*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Fragment:
1591*8975f5c5SAndroid Build Coastguard Worker os << "GL_FRAGMENT_SHADER";
1592*8975f5c5SAndroid Build Coastguard Worker break;
1593*8975f5c5SAndroid Build Coastguard Worker case ShaderType::Compute:
1594*8975f5c5SAndroid Build Coastguard Worker os << "GL_COMPUTE_SHADER";
1595*8975f5c5SAndroid Build Coastguard Worker break;
1596*8975f5c5SAndroid Build Coastguard Worker default:
1597*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1598*8975f5c5SAndroid Build Coastguard Worker break;
1599*8975f5c5SAndroid Build Coastguard Worker }
1600*8975f5c5SAndroid Build Coastguard Worker return os;
1601*8975f5c5SAndroid Build Coastguard Worker }
1602*8975f5c5SAndroid Build Coastguard Worker
1603*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1604*8975f5c5SAndroid Build Coastguard Worker ShadingModel FromGLenum<ShadingModel>(GLenum from)
1605*8975f5c5SAndroid Build Coastguard Worker {
1606*8975f5c5SAndroid Build Coastguard Worker switch (from)
1607*8975f5c5SAndroid Build Coastguard Worker {
1608*8975f5c5SAndroid Build Coastguard Worker case GL_FLAT:
1609*8975f5c5SAndroid Build Coastguard Worker return ShadingModel::Flat;
1610*8975f5c5SAndroid Build Coastguard Worker case GL_SMOOTH:
1611*8975f5c5SAndroid Build Coastguard Worker return ShadingModel::Smooth;
1612*8975f5c5SAndroid Build Coastguard Worker default:
1613*8975f5c5SAndroid Build Coastguard Worker return ShadingModel::InvalidEnum;
1614*8975f5c5SAndroid Build Coastguard Worker }
1615*8975f5c5SAndroid Build Coastguard Worker }
1616*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ShadingModel from)1617*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ShadingModel from)
1618*8975f5c5SAndroid Build Coastguard Worker {
1619*8975f5c5SAndroid Build Coastguard Worker switch (from)
1620*8975f5c5SAndroid Build Coastguard Worker {
1621*8975f5c5SAndroid Build Coastguard Worker case ShadingModel::Flat:
1622*8975f5c5SAndroid Build Coastguard Worker return GL_FLAT;
1623*8975f5c5SAndroid Build Coastguard Worker case ShadingModel::Smooth:
1624*8975f5c5SAndroid Build Coastguard Worker return GL_SMOOTH;
1625*8975f5c5SAndroid Build Coastguard Worker default:
1626*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1627*8975f5c5SAndroid Build Coastguard Worker return 0;
1628*8975f5c5SAndroid Build Coastguard Worker }
1629*8975f5c5SAndroid Build Coastguard Worker }
1630*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ShadingModel value)1631*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ShadingModel value)
1632*8975f5c5SAndroid Build Coastguard Worker {
1633*8975f5c5SAndroid Build Coastguard Worker switch (value)
1634*8975f5c5SAndroid Build Coastguard Worker {
1635*8975f5c5SAndroid Build Coastguard Worker case ShadingModel::Flat:
1636*8975f5c5SAndroid Build Coastguard Worker os << "GL_FLAT";
1637*8975f5c5SAndroid Build Coastguard Worker break;
1638*8975f5c5SAndroid Build Coastguard Worker case ShadingModel::Smooth:
1639*8975f5c5SAndroid Build Coastguard Worker os << "GL_SMOOTH";
1640*8975f5c5SAndroid Build Coastguard Worker break;
1641*8975f5c5SAndroid Build Coastguard Worker default:
1642*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1643*8975f5c5SAndroid Build Coastguard Worker break;
1644*8975f5c5SAndroid Build Coastguard Worker }
1645*8975f5c5SAndroid Build Coastguard Worker return os;
1646*8975f5c5SAndroid Build Coastguard Worker }
1647*8975f5c5SAndroid Build Coastguard Worker
1648*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1649*8975f5c5SAndroid Build Coastguard Worker ShadingRate FromGLenum<ShadingRate>(GLenum from)
1650*8975f5c5SAndroid Build Coastguard Worker {
1651*8975f5c5SAndroid Build Coastguard Worker switch (from)
1652*8975f5c5SAndroid Build Coastguard Worker {
1653*8975f5c5SAndroid Build Coastguard Worker case GL_NONE:
1654*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::Undefined;
1655*8975f5c5SAndroid Build Coastguard Worker case GL_SHADING_RATE_1X1_PIXELS_QCOM:
1656*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::_1x1;
1657*8975f5c5SAndroid Build Coastguard Worker case GL_SHADING_RATE_1X2_PIXELS_QCOM:
1658*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::_1x2;
1659*8975f5c5SAndroid Build Coastguard Worker case GL_SHADING_RATE_2X1_PIXELS_QCOM:
1660*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::_2x1;
1661*8975f5c5SAndroid Build Coastguard Worker case GL_SHADING_RATE_2X2_PIXELS_QCOM:
1662*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::_2x2;
1663*8975f5c5SAndroid Build Coastguard Worker case GL_SHADING_RATE_4X2_PIXELS_QCOM:
1664*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::_4x2;
1665*8975f5c5SAndroid Build Coastguard Worker case GL_SHADING_RATE_4X4_PIXELS_QCOM:
1666*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::_4x4;
1667*8975f5c5SAndroid Build Coastguard Worker default:
1668*8975f5c5SAndroid Build Coastguard Worker return ShadingRate::InvalidEnum;
1669*8975f5c5SAndroid Build Coastguard Worker }
1670*8975f5c5SAndroid Build Coastguard Worker }
1671*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(ShadingRate from)1672*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(ShadingRate from)
1673*8975f5c5SAndroid Build Coastguard Worker {
1674*8975f5c5SAndroid Build Coastguard Worker switch (from)
1675*8975f5c5SAndroid Build Coastguard Worker {
1676*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::Undefined:
1677*8975f5c5SAndroid Build Coastguard Worker return GL_NONE;
1678*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_1x1:
1679*8975f5c5SAndroid Build Coastguard Worker return GL_SHADING_RATE_1X1_PIXELS_QCOM;
1680*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_1x2:
1681*8975f5c5SAndroid Build Coastguard Worker return GL_SHADING_RATE_1X2_PIXELS_QCOM;
1682*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_2x1:
1683*8975f5c5SAndroid Build Coastguard Worker return GL_SHADING_RATE_2X1_PIXELS_QCOM;
1684*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_2x2:
1685*8975f5c5SAndroid Build Coastguard Worker return GL_SHADING_RATE_2X2_PIXELS_QCOM;
1686*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_4x2:
1687*8975f5c5SAndroid Build Coastguard Worker return GL_SHADING_RATE_4X2_PIXELS_QCOM;
1688*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_4x4:
1689*8975f5c5SAndroid Build Coastguard Worker return GL_SHADING_RATE_4X4_PIXELS_QCOM;
1690*8975f5c5SAndroid Build Coastguard Worker default:
1691*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1692*8975f5c5SAndroid Build Coastguard Worker return 0;
1693*8975f5c5SAndroid Build Coastguard Worker }
1694*8975f5c5SAndroid Build Coastguard Worker }
1695*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,ShadingRate value)1696*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, ShadingRate value)
1697*8975f5c5SAndroid Build Coastguard Worker {
1698*8975f5c5SAndroid Build Coastguard Worker switch (value)
1699*8975f5c5SAndroid Build Coastguard Worker {
1700*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::Undefined:
1701*8975f5c5SAndroid Build Coastguard Worker os << "GL_NONE";
1702*8975f5c5SAndroid Build Coastguard Worker break;
1703*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_1x1:
1704*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHADING_RATE_1X1_PIXELS_QCOM";
1705*8975f5c5SAndroid Build Coastguard Worker break;
1706*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_1x2:
1707*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHADING_RATE_1X2_PIXELS_QCOM";
1708*8975f5c5SAndroid Build Coastguard Worker break;
1709*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_2x1:
1710*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHADING_RATE_2X1_PIXELS_QCOM";
1711*8975f5c5SAndroid Build Coastguard Worker break;
1712*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_2x2:
1713*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHADING_RATE_2X2_PIXELS_QCOM";
1714*8975f5c5SAndroid Build Coastguard Worker break;
1715*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_4x2:
1716*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHADING_RATE_4X2_PIXELS_QCOM";
1717*8975f5c5SAndroid Build Coastguard Worker break;
1718*8975f5c5SAndroid Build Coastguard Worker case ShadingRate::_4x4:
1719*8975f5c5SAndroid Build Coastguard Worker os << "GL_SHADING_RATE_4X4_PIXELS_QCOM";
1720*8975f5c5SAndroid Build Coastguard Worker break;
1721*8975f5c5SAndroid Build Coastguard Worker default:
1722*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1723*8975f5c5SAndroid Build Coastguard Worker break;
1724*8975f5c5SAndroid Build Coastguard Worker }
1725*8975f5c5SAndroid Build Coastguard Worker return os;
1726*8975f5c5SAndroid Build Coastguard Worker }
1727*8975f5c5SAndroid Build Coastguard Worker
1728*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1729*8975f5c5SAndroid Build Coastguard Worker TextureCombine FromGLenum<TextureCombine>(GLenum from)
1730*8975f5c5SAndroid Build Coastguard Worker {
1731*8975f5c5SAndroid Build Coastguard Worker switch (from)
1732*8975f5c5SAndroid Build Coastguard Worker {
1733*8975f5c5SAndroid Build Coastguard Worker case GL_ADD:
1734*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::Add;
1735*8975f5c5SAndroid Build Coastguard Worker case GL_ADD_SIGNED:
1736*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::AddSigned;
1737*8975f5c5SAndroid Build Coastguard Worker case GL_DOT3_RGB:
1738*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::Dot3Rgb;
1739*8975f5c5SAndroid Build Coastguard Worker case GL_DOT3_RGBA:
1740*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::Dot3Rgba;
1741*8975f5c5SAndroid Build Coastguard Worker case GL_INTERPOLATE:
1742*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::Interpolate;
1743*8975f5c5SAndroid Build Coastguard Worker case GL_MODULATE:
1744*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::Modulate;
1745*8975f5c5SAndroid Build Coastguard Worker case GL_REPLACE:
1746*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::Replace;
1747*8975f5c5SAndroid Build Coastguard Worker case GL_SUBTRACT:
1748*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::Subtract;
1749*8975f5c5SAndroid Build Coastguard Worker default:
1750*8975f5c5SAndroid Build Coastguard Worker return TextureCombine::InvalidEnum;
1751*8975f5c5SAndroid Build Coastguard Worker }
1752*8975f5c5SAndroid Build Coastguard Worker }
1753*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureCombine from)1754*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureCombine from)
1755*8975f5c5SAndroid Build Coastguard Worker {
1756*8975f5c5SAndroid Build Coastguard Worker switch (from)
1757*8975f5c5SAndroid Build Coastguard Worker {
1758*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Add:
1759*8975f5c5SAndroid Build Coastguard Worker return GL_ADD;
1760*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::AddSigned:
1761*8975f5c5SAndroid Build Coastguard Worker return GL_ADD_SIGNED;
1762*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Dot3Rgb:
1763*8975f5c5SAndroid Build Coastguard Worker return GL_DOT3_RGB;
1764*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Dot3Rgba:
1765*8975f5c5SAndroid Build Coastguard Worker return GL_DOT3_RGBA;
1766*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Interpolate:
1767*8975f5c5SAndroid Build Coastguard Worker return GL_INTERPOLATE;
1768*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Modulate:
1769*8975f5c5SAndroid Build Coastguard Worker return GL_MODULATE;
1770*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Replace:
1771*8975f5c5SAndroid Build Coastguard Worker return GL_REPLACE;
1772*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Subtract:
1773*8975f5c5SAndroid Build Coastguard Worker return GL_SUBTRACT;
1774*8975f5c5SAndroid Build Coastguard Worker default:
1775*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1776*8975f5c5SAndroid Build Coastguard Worker return 0;
1777*8975f5c5SAndroid Build Coastguard Worker }
1778*8975f5c5SAndroid Build Coastguard Worker }
1779*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureCombine value)1780*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureCombine value)
1781*8975f5c5SAndroid Build Coastguard Worker {
1782*8975f5c5SAndroid Build Coastguard Worker switch (value)
1783*8975f5c5SAndroid Build Coastguard Worker {
1784*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Add:
1785*8975f5c5SAndroid Build Coastguard Worker os << "GL_ADD";
1786*8975f5c5SAndroid Build Coastguard Worker break;
1787*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::AddSigned:
1788*8975f5c5SAndroid Build Coastguard Worker os << "GL_ADD_SIGNED";
1789*8975f5c5SAndroid Build Coastguard Worker break;
1790*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Dot3Rgb:
1791*8975f5c5SAndroid Build Coastguard Worker os << "GL_DOT3_RGB";
1792*8975f5c5SAndroid Build Coastguard Worker break;
1793*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Dot3Rgba:
1794*8975f5c5SAndroid Build Coastguard Worker os << "GL_DOT3_RGBA";
1795*8975f5c5SAndroid Build Coastguard Worker break;
1796*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Interpolate:
1797*8975f5c5SAndroid Build Coastguard Worker os << "GL_INTERPOLATE";
1798*8975f5c5SAndroid Build Coastguard Worker break;
1799*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Modulate:
1800*8975f5c5SAndroid Build Coastguard Worker os << "GL_MODULATE";
1801*8975f5c5SAndroid Build Coastguard Worker break;
1802*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Replace:
1803*8975f5c5SAndroid Build Coastguard Worker os << "GL_REPLACE";
1804*8975f5c5SAndroid Build Coastguard Worker break;
1805*8975f5c5SAndroid Build Coastguard Worker case TextureCombine::Subtract:
1806*8975f5c5SAndroid Build Coastguard Worker os << "GL_SUBTRACT";
1807*8975f5c5SAndroid Build Coastguard Worker break;
1808*8975f5c5SAndroid Build Coastguard Worker default:
1809*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1810*8975f5c5SAndroid Build Coastguard Worker break;
1811*8975f5c5SAndroid Build Coastguard Worker }
1812*8975f5c5SAndroid Build Coastguard Worker return os;
1813*8975f5c5SAndroid Build Coastguard Worker }
1814*8975f5c5SAndroid Build Coastguard Worker
1815*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1816*8975f5c5SAndroid Build Coastguard Worker TextureEnvMode FromGLenum<TextureEnvMode>(GLenum from)
1817*8975f5c5SAndroid Build Coastguard Worker {
1818*8975f5c5SAndroid Build Coastguard Worker switch (from)
1819*8975f5c5SAndroid Build Coastguard Worker {
1820*8975f5c5SAndroid Build Coastguard Worker case GL_ADD:
1821*8975f5c5SAndroid Build Coastguard Worker return TextureEnvMode::Add;
1822*8975f5c5SAndroid Build Coastguard Worker case GL_BLEND:
1823*8975f5c5SAndroid Build Coastguard Worker return TextureEnvMode::Blend;
1824*8975f5c5SAndroid Build Coastguard Worker case GL_COMBINE:
1825*8975f5c5SAndroid Build Coastguard Worker return TextureEnvMode::Combine;
1826*8975f5c5SAndroid Build Coastguard Worker case GL_DECAL:
1827*8975f5c5SAndroid Build Coastguard Worker return TextureEnvMode::Decal;
1828*8975f5c5SAndroid Build Coastguard Worker case GL_MODULATE:
1829*8975f5c5SAndroid Build Coastguard Worker return TextureEnvMode::Modulate;
1830*8975f5c5SAndroid Build Coastguard Worker case GL_REPLACE:
1831*8975f5c5SAndroid Build Coastguard Worker return TextureEnvMode::Replace;
1832*8975f5c5SAndroid Build Coastguard Worker default:
1833*8975f5c5SAndroid Build Coastguard Worker return TextureEnvMode::InvalidEnum;
1834*8975f5c5SAndroid Build Coastguard Worker }
1835*8975f5c5SAndroid Build Coastguard Worker }
1836*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureEnvMode from)1837*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureEnvMode from)
1838*8975f5c5SAndroid Build Coastguard Worker {
1839*8975f5c5SAndroid Build Coastguard Worker switch (from)
1840*8975f5c5SAndroid Build Coastguard Worker {
1841*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Add:
1842*8975f5c5SAndroid Build Coastguard Worker return GL_ADD;
1843*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Blend:
1844*8975f5c5SAndroid Build Coastguard Worker return GL_BLEND;
1845*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Combine:
1846*8975f5c5SAndroid Build Coastguard Worker return GL_COMBINE;
1847*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Decal:
1848*8975f5c5SAndroid Build Coastguard Worker return GL_DECAL;
1849*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Modulate:
1850*8975f5c5SAndroid Build Coastguard Worker return GL_MODULATE;
1851*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Replace:
1852*8975f5c5SAndroid Build Coastguard Worker return GL_REPLACE;
1853*8975f5c5SAndroid Build Coastguard Worker default:
1854*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1855*8975f5c5SAndroid Build Coastguard Worker return 0;
1856*8975f5c5SAndroid Build Coastguard Worker }
1857*8975f5c5SAndroid Build Coastguard Worker }
1858*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureEnvMode value)1859*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureEnvMode value)
1860*8975f5c5SAndroid Build Coastguard Worker {
1861*8975f5c5SAndroid Build Coastguard Worker switch (value)
1862*8975f5c5SAndroid Build Coastguard Worker {
1863*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Add:
1864*8975f5c5SAndroid Build Coastguard Worker os << "GL_ADD";
1865*8975f5c5SAndroid Build Coastguard Worker break;
1866*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Blend:
1867*8975f5c5SAndroid Build Coastguard Worker os << "GL_BLEND";
1868*8975f5c5SAndroid Build Coastguard Worker break;
1869*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Combine:
1870*8975f5c5SAndroid Build Coastguard Worker os << "GL_COMBINE";
1871*8975f5c5SAndroid Build Coastguard Worker break;
1872*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Decal:
1873*8975f5c5SAndroid Build Coastguard Worker os << "GL_DECAL";
1874*8975f5c5SAndroid Build Coastguard Worker break;
1875*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Modulate:
1876*8975f5c5SAndroid Build Coastguard Worker os << "GL_MODULATE";
1877*8975f5c5SAndroid Build Coastguard Worker break;
1878*8975f5c5SAndroid Build Coastguard Worker case TextureEnvMode::Replace:
1879*8975f5c5SAndroid Build Coastguard Worker os << "GL_REPLACE";
1880*8975f5c5SAndroid Build Coastguard Worker break;
1881*8975f5c5SAndroid Build Coastguard Worker default:
1882*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
1883*8975f5c5SAndroid Build Coastguard Worker break;
1884*8975f5c5SAndroid Build Coastguard Worker }
1885*8975f5c5SAndroid Build Coastguard Worker return os;
1886*8975f5c5SAndroid Build Coastguard Worker }
1887*8975f5c5SAndroid Build Coastguard Worker
1888*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)1889*8975f5c5SAndroid Build Coastguard Worker TextureEnvParameter FromGLenum<TextureEnvParameter>(GLenum from)
1890*8975f5c5SAndroid Build Coastguard Worker {
1891*8975f5c5SAndroid Build Coastguard Worker switch (from)
1892*8975f5c5SAndroid Build Coastguard Worker {
1893*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_ENV_MODE:
1894*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Mode;
1895*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_ENV_COLOR:
1896*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Color;
1897*8975f5c5SAndroid Build Coastguard Worker case GL_COMBINE_RGB:
1898*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::CombineRgb;
1899*8975f5c5SAndroid Build Coastguard Worker case GL_COMBINE_ALPHA:
1900*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::CombineAlpha;
1901*8975f5c5SAndroid Build Coastguard Worker case GL_RGB_SCALE:
1902*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::RgbScale;
1903*8975f5c5SAndroid Build Coastguard Worker case GL_ALPHA_SCALE:
1904*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::AlphaScale;
1905*8975f5c5SAndroid Build Coastguard Worker case GL_SRC0_RGB:
1906*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Src0Rgb;
1907*8975f5c5SAndroid Build Coastguard Worker case GL_SRC1_RGB:
1908*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Src1Rgb;
1909*8975f5c5SAndroid Build Coastguard Worker case GL_SRC2_RGB:
1910*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Src2Rgb;
1911*8975f5c5SAndroid Build Coastguard Worker case GL_SRC0_ALPHA:
1912*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Src0Alpha;
1913*8975f5c5SAndroid Build Coastguard Worker case GL_SRC1_ALPHA:
1914*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Src1Alpha;
1915*8975f5c5SAndroid Build Coastguard Worker case GL_SRC2_ALPHA:
1916*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Src2Alpha;
1917*8975f5c5SAndroid Build Coastguard Worker case GL_OPERAND0_RGB:
1918*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Op0Rgb;
1919*8975f5c5SAndroid Build Coastguard Worker case GL_OPERAND1_RGB:
1920*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Op1Rgb;
1921*8975f5c5SAndroid Build Coastguard Worker case GL_OPERAND2_RGB:
1922*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Op2Rgb;
1923*8975f5c5SAndroid Build Coastguard Worker case GL_OPERAND0_ALPHA:
1924*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Op0Alpha;
1925*8975f5c5SAndroid Build Coastguard Worker case GL_OPERAND1_ALPHA:
1926*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Op1Alpha;
1927*8975f5c5SAndroid Build Coastguard Worker case GL_OPERAND2_ALPHA:
1928*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::Op2Alpha;
1929*8975f5c5SAndroid Build Coastguard Worker case GL_COORD_REPLACE_OES:
1930*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::PointCoordReplace;
1931*8975f5c5SAndroid Build Coastguard Worker default:
1932*8975f5c5SAndroid Build Coastguard Worker return TextureEnvParameter::InvalidEnum;
1933*8975f5c5SAndroid Build Coastguard Worker }
1934*8975f5c5SAndroid Build Coastguard Worker }
1935*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureEnvParameter from)1936*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureEnvParameter from)
1937*8975f5c5SAndroid Build Coastguard Worker {
1938*8975f5c5SAndroid Build Coastguard Worker switch (from)
1939*8975f5c5SAndroid Build Coastguard Worker {
1940*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Mode:
1941*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_ENV_MODE;
1942*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Color:
1943*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_ENV_COLOR;
1944*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::CombineRgb:
1945*8975f5c5SAndroid Build Coastguard Worker return GL_COMBINE_RGB;
1946*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::CombineAlpha:
1947*8975f5c5SAndroid Build Coastguard Worker return GL_COMBINE_ALPHA;
1948*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::RgbScale:
1949*8975f5c5SAndroid Build Coastguard Worker return GL_RGB_SCALE;
1950*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::AlphaScale:
1951*8975f5c5SAndroid Build Coastguard Worker return GL_ALPHA_SCALE;
1952*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src0Rgb:
1953*8975f5c5SAndroid Build Coastguard Worker return GL_SRC0_RGB;
1954*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src1Rgb:
1955*8975f5c5SAndroid Build Coastguard Worker return GL_SRC1_RGB;
1956*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src2Rgb:
1957*8975f5c5SAndroid Build Coastguard Worker return GL_SRC2_RGB;
1958*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src0Alpha:
1959*8975f5c5SAndroid Build Coastguard Worker return GL_SRC0_ALPHA;
1960*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src1Alpha:
1961*8975f5c5SAndroid Build Coastguard Worker return GL_SRC1_ALPHA;
1962*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src2Alpha:
1963*8975f5c5SAndroid Build Coastguard Worker return GL_SRC2_ALPHA;
1964*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op0Rgb:
1965*8975f5c5SAndroid Build Coastguard Worker return GL_OPERAND0_RGB;
1966*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op1Rgb:
1967*8975f5c5SAndroid Build Coastguard Worker return GL_OPERAND1_RGB;
1968*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op2Rgb:
1969*8975f5c5SAndroid Build Coastguard Worker return GL_OPERAND2_RGB;
1970*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op0Alpha:
1971*8975f5c5SAndroid Build Coastguard Worker return GL_OPERAND0_ALPHA;
1972*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op1Alpha:
1973*8975f5c5SAndroid Build Coastguard Worker return GL_OPERAND1_ALPHA;
1974*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op2Alpha:
1975*8975f5c5SAndroid Build Coastguard Worker return GL_OPERAND2_ALPHA;
1976*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::PointCoordReplace:
1977*8975f5c5SAndroid Build Coastguard Worker return GL_COORD_REPLACE_OES;
1978*8975f5c5SAndroid Build Coastguard Worker default:
1979*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
1980*8975f5c5SAndroid Build Coastguard Worker return 0;
1981*8975f5c5SAndroid Build Coastguard Worker }
1982*8975f5c5SAndroid Build Coastguard Worker }
1983*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureEnvParameter value)1984*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureEnvParameter value)
1985*8975f5c5SAndroid Build Coastguard Worker {
1986*8975f5c5SAndroid Build Coastguard Worker switch (value)
1987*8975f5c5SAndroid Build Coastguard Worker {
1988*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Mode:
1989*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_ENV_MODE";
1990*8975f5c5SAndroid Build Coastguard Worker break;
1991*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Color:
1992*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_ENV_COLOR";
1993*8975f5c5SAndroid Build Coastguard Worker break;
1994*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::CombineRgb:
1995*8975f5c5SAndroid Build Coastguard Worker os << "GL_COMBINE_RGB";
1996*8975f5c5SAndroid Build Coastguard Worker break;
1997*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::CombineAlpha:
1998*8975f5c5SAndroid Build Coastguard Worker os << "GL_COMBINE_ALPHA";
1999*8975f5c5SAndroid Build Coastguard Worker break;
2000*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::RgbScale:
2001*8975f5c5SAndroid Build Coastguard Worker os << "GL_RGB_SCALE";
2002*8975f5c5SAndroid Build Coastguard Worker break;
2003*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::AlphaScale:
2004*8975f5c5SAndroid Build Coastguard Worker os << "GL_ALPHA_SCALE";
2005*8975f5c5SAndroid Build Coastguard Worker break;
2006*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src0Rgb:
2007*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC0_RGB";
2008*8975f5c5SAndroid Build Coastguard Worker break;
2009*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src1Rgb:
2010*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC1_RGB";
2011*8975f5c5SAndroid Build Coastguard Worker break;
2012*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src2Rgb:
2013*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC2_RGB";
2014*8975f5c5SAndroid Build Coastguard Worker break;
2015*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src0Alpha:
2016*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC0_ALPHA";
2017*8975f5c5SAndroid Build Coastguard Worker break;
2018*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src1Alpha:
2019*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC1_ALPHA";
2020*8975f5c5SAndroid Build Coastguard Worker break;
2021*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Src2Alpha:
2022*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC2_ALPHA";
2023*8975f5c5SAndroid Build Coastguard Worker break;
2024*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op0Rgb:
2025*8975f5c5SAndroid Build Coastguard Worker os << "GL_OPERAND0_RGB";
2026*8975f5c5SAndroid Build Coastguard Worker break;
2027*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op1Rgb:
2028*8975f5c5SAndroid Build Coastguard Worker os << "GL_OPERAND1_RGB";
2029*8975f5c5SAndroid Build Coastguard Worker break;
2030*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op2Rgb:
2031*8975f5c5SAndroid Build Coastguard Worker os << "GL_OPERAND2_RGB";
2032*8975f5c5SAndroid Build Coastguard Worker break;
2033*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op0Alpha:
2034*8975f5c5SAndroid Build Coastguard Worker os << "GL_OPERAND0_ALPHA";
2035*8975f5c5SAndroid Build Coastguard Worker break;
2036*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op1Alpha:
2037*8975f5c5SAndroid Build Coastguard Worker os << "GL_OPERAND1_ALPHA";
2038*8975f5c5SAndroid Build Coastguard Worker break;
2039*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::Op2Alpha:
2040*8975f5c5SAndroid Build Coastguard Worker os << "GL_OPERAND2_ALPHA";
2041*8975f5c5SAndroid Build Coastguard Worker break;
2042*8975f5c5SAndroid Build Coastguard Worker case TextureEnvParameter::PointCoordReplace:
2043*8975f5c5SAndroid Build Coastguard Worker os << "GL_COORD_REPLACE_OES";
2044*8975f5c5SAndroid Build Coastguard Worker break;
2045*8975f5c5SAndroid Build Coastguard Worker default:
2046*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2047*8975f5c5SAndroid Build Coastguard Worker break;
2048*8975f5c5SAndroid Build Coastguard Worker }
2049*8975f5c5SAndroid Build Coastguard Worker return os;
2050*8975f5c5SAndroid Build Coastguard Worker }
2051*8975f5c5SAndroid Build Coastguard Worker
2052*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2053*8975f5c5SAndroid Build Coastguard Worker TextureEnvTarget FromGLenum<TextureEnvTarget>(GLenum from)
2054*8975f5c5SAndroid Build Coastguard Worker {
2055*8975f5c5SAndroid Build Coastguard Worker switch (from)
2056*8975f5c5SAndroid Build Coastguard Worker {
2057*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_ENV:
2058*8975f5c5SAndroid Build Coastguard Worker return TextureEnvTarget::Env;
2059*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_SPRITE_OES:
2060*8975f5c5SAndroid Build Coastguard Worker return TextureEnvTarget::PointSprite;
2061*8975f5c5SAndroid Build Coastguard Worker default:
2062*8975f5c5SAndroid Build Coastguard Worker return TextureEnvTarget::InvalidEnum;
2063*8975f5c5SAndroid Build Coastguard Worker }
2064*8975f5c5SAndroid Build Coastguard Worker }
2065*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureEnvTarget from)2066*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureEnvTarget from)
2067*8975f5c5SAndroid Build Coastguard Worker {
2068*8975f5c5SAndroid Build Coastguard Worker switch (from)
2069*8975f5c5SAndroid Build Coastguard Worker {
2070*8975f5c5SAndroid Build Coastguard Worker case TextureEnvTarget::Env:
2071*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_ENV;
2072*8975f5c5SAndroid Build Coastguard Worker case TextureEnvTarget::PointSprite:
2073*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_SPRITE_OES;
2074*8975f5c5SAndroid Build Coastguard Worker default:
2075*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2076*8975f5c5SAndroid Build Coastguard Worker return 0;
2077*8975f5c5SAndroid Build Coastguard Worker }
2078*8975f5c5SAndroid Build Coastguard Worker }
2079*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureEnvTarget value)2080*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureEnvTarget value)
2081*8975f5c5SAndroid Build Coastguard Worker {
2082*8975f5c5SAndroid Build Coastguard Worker switch (value)
2083*8975f5c5SAndroid Build Coastguard Worker {
2084*8975f5c5SAndroid Build Coastguard Worker case TextureEnvTarget::Env:
2085*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_ENV";
2086*8975f5c5SAndroid Build Coastguard Worker break;
2087*8975f5c5SAndroid Build Coastguard Worker case TextureEnvTarget::PointSprite:
2088*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_SPRITE_OES";
2089*8975f5c5SAndroid Build Coastguard Worker break;
2090*8975f5c5SAndroid Build Coastguard Worker default:
2091*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2092*8975f5c5SAndroid Build Coastguard Worker break;
2093*8975f5c5SAndroid Build Coastguard Worker }
2094*8975f5c5SAndroid Build Coastguard Worker return os;
2095*8975f5c5SAndroid Build Coastguard Worker }
2096*8975f5c5SAndroid Build Coastguard Worker
2097*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2098*8975f5c5SAndroid Build Coastguard Worker TextureOp FromGLenum<TextureOp>(GLenum from)
2099*8975f5c5SAndroid Build Coastguard Worker {
2100*8975f5c5SAndroid Build Coastguard Worker switch (from)
2101*8975f5c5SAndroid Build Coastguard Worker {
2102*8975f5c5SAndroid Build Coastguard Worker case GL_ONE_MINUS_SRC_ALPHA:
2103*8975f5c5SAndroid Build Coastguard Worker return TextureOp::OneMinusSrcAlpha;
2104*8975f5c5SAndroid Build Coastguard Worker case GL_ONE_MINUS_SRC_COLOR:
2105*8975f5c5SAndroid Build Coastguard Worker return TextureOp::OneMinusSrcColor;
2106*8975f5c5SAndroid Build Coastguard Worker case GL_SRC_ALPHA:
2107*8975f5c5SAndroid Build Coastguard Worker return TextureOp::SrcAlpha;
2108*8975f5c5SAndroid Build Coastguard Worker case GL_SRC_COLOR:
2109*8975f5c5SAndroid Build Coastguard Worker return TextureOp::SrcColor;
2110*8975f5c5SAndroid Build Coastguard Worker default:
2111*8975f5c5SAndroid Build Coastguard Worker return TextureOp::InvalidEnum;
2112*8975f5c5SAndroid Build Coastguard Worker }
2113*8975f5c5SAndroid Build Coastguard Worker }
2114*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureOp from)2115*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureOp from)
2116*8975f5c5SAndroid Build Coastguard Worker {
2117*8975f5c5SAndroid Build Coastguard Worker switch (from)
2118*8975f5c5SAndroid Build Coastguard Worker {
2119*8975f5c5SAndroid Build Coastguard Worker case TextureOp::OneMinusSrcAlpha:
2120*8975f5c5SAndroid Build Coastguard Worker return GL_ONE_MINUS_SRC_ALPHA;
2121*8975f5c5SAndroid Build Coastguard Worker case TextureOp::OneMinusSrcColor:
2122*8975f5c5SAndroid Build Coastguard Worker return GL_ONE_MINUS_SRC_COLOR;
2123*8975f5c5SAndroid Build Coastguard Worker case TextureOp::SrcAlpha:
2124*8975f5c5SAndroid Build Coastguard Worker return GL_SRC_ALPHA;
2125*8975f5c5SAndroid Build Coastguard Worker case TextureOp::SrcColor:
2126*8975f5c5SAndroid Build Coastguard Worker return GL_SRC_COLOR;
2127*8975f5c5SAndroid Build Coastguard Worker default:
2128*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2129*8975f5c5SAndroid Build Coastguard Worker return 0;
2130*8975f5c5SAndroid Build Coastguard Worker }
2131*8975f5c5SAndroid Build Coastguard Worker }
2132*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureOp value)2133*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureOp value)
2134*8975f5c5SAndroid Build Coastguard Worker {
2135*8975f5c5SAndroid Build Coastguard Worker switch (value)
2136*8975f5c5SAndroid Build Coastguard Worker {
2137*8975f5c5SAndroid Build Coastguard Worker case TextureOp::OneMinusSrcAlpha:
2138*8975f5c5SAndroid Build Coastguard Worker os << "GL_ONE_MINUS_SRC_ALPHA";
2139*8975f5c5SAndroid Build Coastguard Worker break;
2140*8975f5c5SAndroid Build Coastguard Worker case TextureOp::OneMinusSrcColor:
2141*8975f5c5SAndroid Build Coastguard Worker os << "GL_ONE_MINUS_SRC_COLOR";
2142*8975f5c5SAndroid Build Coastguard Worker break;
2143*8975f5c5SAndroid Build Coastguard Worker case TextureOp::SrcAlpha:
2144*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC_ALPHA";
2145*8975f5c5SAndroid Build Coastguard Worker break;
2146*8975f5c5SAndroid Build Coastguard Worker case TextureOp::SrcColor:
2147*8975f5c5SAndroid Build Coastguard Worker os << "GL_SRC_COLOR";
2148*8975f5c5SAndroid Build Coastguard Worker break;
2149*8975f5c5SAndroid Build Coastguard Worker default:
2150*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2151*8975f5c5SAndroid Build Coastguard Worker break;
2152*8975f5c5SAndroid Build Coastguard Worker }
2153*8975f5c5SAndroid Build Coastguard Worker return os;
2154*8975f5c5SAndroid Build Coastguard Worker }
2155*8975f5c5SAndroid Build Coastguard Worker
2156*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2157*8975f5c5SAndroid Build Coastguard Worker TextureSrc FromGLenum<TextureSrc>(GLenum from)
2158*8975f5c5SAndroid Build Coastguard Worker {
2159*8975f5c5SAndroid Build Coastguard Worker switch (from)
2160*8975f5c5SAndroid Build Coastguard Worker {
2161*8975f5c5SAndroid Build Coastguard Worker case GL_CONSTANT:
2162*8975f5c5SAndroid Build Coastguard Worker return TextureSrc::Constant;
2163*8975f5c5SAndroid Build Coastguard Worker case GL_PREVIOUS:
2164*8975f5c5SAndroid Build Coastguard Worker return TextureSrc::Previous;
2165*8975f5c5SAndroid Build Coastguard Worker case GL_PRIMARY_COLOR:
2166*8975f5c5SAndroid Build Coastguard Worker return TextureSrc::PrimaryColor;
2167*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE:
2168*8975f5c5SAndroid Build Coastguard Worker return TextureSrc::Texture;
2169*8975f5c5SAndroid Build Coastguard Worker default:
2170*8975f5c5SAndroid Build Coastguard Worker return TextureSrc::InvalidEnum;
2171*8975f5c5SAndroid Build Coastguard Worker }
2172*8975f5c5SAndroid Build Coastguard Worker }
2173*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureSrc from)2174*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureSrc from)
2175*8975f5c5SAndroid Build Coastguard Worker {
2176*8975f5c5SAndroid Build Coastguard Worker switch (from)
2177*8975f5c5SAndroid Build Coastguard Worker {
2178*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::Constant:
2179*8975f5c5SAndroid Build Coastguard Worker return GL_CONSTANT;
2180*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::Previous:
2181*8975f5c5SAndroid Build Coastguard Worker return GL_PREVIOUS;
2182*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::PrimaryColor:
2183*8975f5c5SAndroid Build Coastguard Worker return GL_PRIMARY_COLOR;
2184*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::Texture:
2185*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE;
2186*8975f5c5SAndroid Build Coastguard Worker default:
2187*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2188*8975f5c5SAndroid Build Coastguard Worker return 0;
2189*8975f5c5SAndroid Build Coastguard Worker }
2190*8975f5c5SAndroid Build Coastguard Worker }
2191*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureSrc value)2192*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureSrc value)
2193*8975f5c5SAndroid Build Coastguard Worker {
2194*8975f5c5SAndroid Build Coastguard Worker switch (value)
2195*8975f5c5SAndroid Build Coastguard Worker {
2196*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::Constant:
2197*8975f5c5SAndroid Build Coastguard Worker os << "GL_CONSTANT";
2198*8975f5c5SAndroid Build Coastguard Worker break;
2199*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::Previous:
2200*8975f5c5SAndroid Build Coastguard Worker os << "GL_PREVIOUS";
2201*8975f5c5SAndroid Build Coastguard Worker break;
2202*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::PrimaryColor:
2203*8975f5c5SAndroid Build Coastguard Worker os << "GL_PRIMARY_COLOR";
2204*8975f5c5SAndroid Build Coastguard Worker break;
2205*8975f5c5SAndroid Build Coastguard Worker case TextureSrc::Texture:
2206*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE";
2207*8975f5c5SAndroid Build Coastguard Worker break;
2208*8975f5c5SAndroid Build Coastguard Worker default:
2209*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2210*8975f5c5SAndroid Build Coastguard Worker break;
2211*8975f5c5SAndroid Build Coastguard Worker }
2212*8975f5c5SAndroid Build Coastguard Worker return os;
2213*8975f5c5SAndroid Build Coastguard Worker }
2214*8975f5c5SAndroid Build Coastguard Worker
2215*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2216*8975f5c5SAndroid Build Coastguard Worker TextureTarget FromGLenum<TextureTarget>(GLenum from)
2217*8975f5c5SAndroid Build Coastguard Worker {
2218*8975f5c5SAndroid Build Coastguard Worker switch (from)
2219*8975f5c5SAndroid Build Coastguard Worker {
2220*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D:
2221*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::_2D;
2222*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D_ARRAY:
2223*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::_2DArray;
2224*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D_MULTISAMPLE:
2225*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::_2DMultisample;
2226*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
2227*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::_2DMultisampleArray;
2228*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_3D:
2229*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::_3D;
2230*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_EXTERNAL_OES:
2231*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::External;
2232*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_RECTANGLE_ANGLE:
2233*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::Rectangle;
2234*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
2235*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::CubeMapPositiveX;
2236*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
2237*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::CubeMapNegativeX;
2238*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
2239*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::CubeMapPositiveY;
2240*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
2241*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::CubeMapNegativeY;
2242*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
2243*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::CubeMapPositiveZ;
2244*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
2245*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::CubeMapNegativeZ;
2246*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_ARRAY:
2247*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::CubeMapArray;
2248*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_VIDEO_IMAGE_WEBGL:
2249*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::VideoImage;
2250*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_BUFFER:
2251*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::Buffer;
2252*8975f5c5SAndroid Build Coastguard Worker default:
2253*8975f5c5SAndroid Build Coastguard Worker return TextureTarget::InvalidEnum;
2254*8975f5c5SAndroid Build Coastguard Worker }
2255*8975f5c5SAndroid Build Coastguard Worker }
2256*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureTarget from)2257*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureTarget from)
2258*8975f5c5SAndroid Build Coastguard Worker {
2259*8975f5c5SAndroid Build Coastguard Worker switch (from)
2260*8975f5c5SAndroid Build Coastguard Worker {
2261*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2D:
2262*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D;
2263*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2DArray:
2264*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D_ARRAY;
2265*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2DMultisample:
2266*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D_MULTISAMPLE;
2267*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2DMultisampleArray:
2268*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D_MULTISAMPLE_ARRAY;
2269*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_3D:
2270*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_3D;
2271*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::External:
2272*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_EXTERNAL_OES;
2273*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::Rectangle:
2274*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_RECTANGLE_ANGLE;
2275*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapPositiveX:
2276*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_POSITIVE_X;
2277*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapNegativeX:
2278*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_NEGATIVE_X;
2279*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapPositiveY:
2280*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_POSITIVE_Y;
2281*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapNegativeY:
2282*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_NEGATIVE_Y;
2283*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapPositiveZ:
2284*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_POSITIVE_Z;
2285*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapNegativeZ:
2286*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_NEGATIVE_Z;
2287*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapArray:
2288*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_ARRAY;
2289*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::VideoImage:
2290*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_VIDEO_IMAGE_WEBGL;
2291*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::Buffer:
2292*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_BUFFER;
2293*8975f5c5SAndroid Build Coastguard Worker default:
2294*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2295*8975f5c5SAndroid Build Coastguard Worker return 0;
2296*8975f5c5SAndroid Build Coastguard Worker }
2297*8975f5c5SAndroid Build Coastguard Worker }
2298*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureTarget value)2299*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureTarget value)
2300*8975f5c5SAndroid Build Coastguard Worker {
2301*8975f5c5SAndroid Build Coastguard Worker switch (value)
2302*8975f5c5SAndroid Build Coastguard Worker {
2303*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2D:
2304*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D";
2305*8975f5c5SAndroid Build Coastguard Worker break;
2306*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2DArray:
2307*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D_ARRAY";
2308*8975f5c5SAndroid Build Coastguard Worker break;
2309*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2DMultisample:
2310*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D_MULTISAMPLE";
2311*8975f5c5SAndroid Build Coastguard Worker break;
2312*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_2DMultisampleArray:
2313*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D_MULTISAMPLE_ARRAY";
2314*8975f5c5SAndroid Build Coastguard Worker break;
2315*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::_3D:
2316*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_3D";
2317*8975f5c5SAndroid Build Coastguard Worker break;
2318*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::External:
2319*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_EXTERNAL_OES";
2320*8975f5c5SAndroid Build Coastguard Worker break;
2321*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::Rectangle:
2322*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_RECTANGLE_ANGLE";
2323*8975f5c5SAndroid Build Coastguard Worker break;
2324*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapPositiveX:
2325*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_POSITIVE_X";
2326*8975f5c5SAndroid Build Coastguard Worker break;
2327*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapNegativeX:
2328*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_NEGATIVE_X";
2329*8975f5c5SAndroid Build Coastguard Worker break;
2330*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapPositiveY:
2331*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_POSITIVE_Y";
2332*8975f5c5SAndroid Build Coastguard Worker break;
2333*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapNegativeY:
2334*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y";
2335*8975f5c5SAndroid Build Coastguard Worker break;
2336*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapPositiveZ:
2337*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_POSITIVE_Z";
2338*8975f5c5SAndroid Build Coastguard Worker break;
2339*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapNegativeZ:
2340*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z";
2341*8975f5c5SAndroid Build Coastguard Worker break;
2342*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::CubeMapArray:
2343*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_ARRAY";
2344*8975f5c5SAndroid Build Coastguard Worker break;
2345*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::VideoImage:
2346*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_VIDEO_IMAGE_WEBGL";
2347*8975f5c5SAndroid Build Coastguard Worker break;
2348*8975f5c5SAndroid Build Coastguard Worker case TextureTarget::Buffer:
2349*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_BUFFER";
2350*8975f5c5SAndroid Build Coastguard Worker break;
2351*8975f5c5SAndroid Build Coastguard Worker default:
2352*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2353*8975f5c5SAndroid Build Coastguard Worker break;
2354*8975f5c5SAndroid Build Coastguard Worker }
2355*8975f5c5SAndroid Build Coastguard Worker return os;
2356*8975f5c5SAndroid Build Coastguard Worker }
2357*8975f5c5SAndroid Build Coastguard Worker
2358*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2359*8975f5c5SAndroid Build Coastguard Worker TextureType FromGLenum<TextureType>(GLenum from)
2360*8975f5c5SAndroid Build Coastguard Worker {
2361*8975f5c5SAndroid Build Coastguard Worker switch (from)
2362*8975f5c5SAndroid Build Coastguard Worker {
2363*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D:
2364*8975f5c5SAndroid Build Coastguard Worker return TextureType::_2D;
2365*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D_ARRAY:
2366*8975f5c5SAndroid Build Coastguard Worker return TextureType::_2DArray;
2367*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D_MULTISAMPLE:
2368*8975f5c5SAndroid Build Coastguard Worker return TextureType::_2DMultisample;
2369*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_2D_MULTISAMPLE_ARRAY:
2370*8975f5c5SAndroid Build Coastguard Worker return TextureType::_2DMultisampleArray;
2371*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_3D:
2372*8975f5c5SAndroid Build Coastguard Worker return TextureType::_3D;
2373*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_EXTERNAL_OES:
2374*8975f5c5SAndroid Build Coastguard Worker return TextureType::External;
2375*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_RECTANGLE_ANGLE:
2376*8975f5c5SAndroid Build Coastguard Worker return TextureType::Rectangle;
2377*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP:
2378*8975f5c5SAndroid Build Coastguard Worker return TextureType::CubeMap;
2379*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_CUBE_MAP_ARRAY:
2380*8975f5c5SAndroid Build Coastguard Worker return TextureType::CubeMapArray;
2381*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_VIDEO_IMAGE_WEBGL:
2382*8975f5c5SAndroid Build Coastguard Worker return TextureType::VideoImage;
2383*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_BUFFER:
2384*8975f5c5SAndroid Build Coastguard Worker return TextureType::Buffer;
2385*8975f5c5SAndroid Build Coastguard Worker default:
2386*8975f5c5SAndroid Build Coastguard Worker return TextureType::InvalidEnum;
2387*8975f5c5SAndroid Build Coastguard Worker }
2388*8975f5c5SAndroid Build Coastguard Worker }
2389*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TextureType from)2390*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TextureType from)
2391*8975f5c5SAndroid Build Coastguard Worker {
2392*8975f5c5SAndroid Build Coastguard Worker switch (from)
2393*8975f5c5SAndroid Build Coastguard Worker {
2394*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2D:
2395*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D;
2396*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2DArray:
2397*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D_ARRAY;
2398*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2DMultisample:
2399*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D_MULTISAMPLE;
2400*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2DMultisampleArray:
2401*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_2D_MULTISAMPLE_ARRAY;
2402*8975f5c5SAndroid Build Coastguard Worker case TextureType::_3D:
2403*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_3D;
2404*8975f5c5SAndroid Build Coastguard Worker case TextureType::External:
2405*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_EXTERNAL_OES;
2406*8975f5c5SAndroid Build Coastguard Worker case TextureType::Rectangle:
2407*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_RECTANGLE_ANGLE;
2408*8975f5c5SAndroid Build Coastguard Worker case TextureType::CubeMap:
2409*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP;
2410*8975f5c5SAndroid Build Coastguard Worker case TextureType::CubeMapArray:
2411*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_CUBE_MAP_ARRAY;
2412*8975f5c5SAndroid Build Coastguard Worker case TextureType::VideoImage:
2413*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_VIDEO_IMAGE_WEBGL;
2414*8975f5c5SAndroid Build Coastguard Worker case TextureType::Buffer:
2415*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_BUFFER;
2416*8975f5c5SAndroid Build Coastguard Worker default:
2417*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2418*8975f5c5SAndroid Build Coastguard Worker return 0;
2419*8975f5c5SAndroid Build Coastguard Worker }
2420*8975f5c5SAndroid Build Coastguard Worker }
2421*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TextureType value)2422*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TextureType value)
2423*8975f5c5SAndroid Build Coastguard Worker {
2424*8975f5c5SAndroid Build Coastguard Worker switch (value)
2425*8975f5c5SAndroid Build Coastguard Worker {
2426*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2D:
2427*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D";
2428*8975f5c5SAndroid Build Coastguard Worker break;
2429*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2DArray:
2430*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D_ARRAY";
2431*8975f5c5SAndroid Build Coastguard Worker break;
2432*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2DMultisample:
2433*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D_MULTISAMPLE";
2434*8975f5c5SAndroid Build Coastguard Worker break;
2435*8975f5c5SAndroid Build Coastguard Worker case TextureType::_2DMultisampleArray:
2436*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_2D_MULTISAMPLE_ARRAY";
2437*8975f5c5SAndroid Build Coastguard Worker break;
2438*8975f5c5SAndroid Build Coastguard Worker case TextureType::_3D:
2439*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_3D";
2440*8975f5c5SAndroid Build Coastguard Worker break;
2441*8975f5c5SAndroid Build Coastguard Worker case TextureType::External:
2442*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_EXTERNAL_OES";
2443*8975f5c5SAndroid Build Coastguard Worker break;
2444*8975f5c5SAndroid Build Coastguard Worker case TextureType::Rectangle:
2445*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_RECTANGLE_ANGLE";
2446*8975f5c5SAndroid Build Coastguard Worker break;
2447*8975f5c5SAndroid Build Coastguard Worker case TextureType::CubeMap:
2448*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP";
2449*8975f5c5SAndroid Build Coastguard Worker break;
2450*8975f5c5SAndroid Build Coastguard Worker case TextureType::CubeMapArray:
2451*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_CUBE_MAP_ARRAY";
2452*8975f5c5SAndroid Build Coastguard Worker break;
2453*8975f5c5SAndroid Build Coastguard Worker case TextureType::VideoImage:
2454*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_VIDEO_IMAGE_WEBGL";
2455*8975f5c5SAndroid Build Coastguard Worker break;
2456*8975f5c5SAndroid Build Coastguard Worker case TextureType::Buffer:
2457*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_BUFFER";
2458*8975f5c5SAndroid Build Coastguard Worker break;
2459*8975f5c5SAndroid Build Coastguard Worker default:
2460*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2461*8975f5c5SAndroid Build Coastguard Worker break;
2462*8975f5c5SAndroid Build Coastguard Worker }
2463*8975f5c5SAndroid Build Coastguard Worker return os;
2464*8975f5c5SAndroid Build Coastguard Worker }
2465*8975f5c5SAndroid Build Coastguard Worker
2466*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2467*8975f5c5SAndroid Build Coastguard Worker TilingMode FromGLenum<TilingMode>(GLenum from)
2468*8975f5c5SAndroid Build Coastguard Worker {
2469*8975f5c5SAndroid Build Coastguard Worker switch (from)
2470*8975f5c5SAndroid Build Coastguard Worker {
2471*8975f5c5SAndroid Build Coastguard Worker case GL_OPTIMAL_TILING_EXT:
2472*8975f5c5SAndroid Build Coastguard Worker return TilingMode::Optimal;
2473*8975f5c5SAndroid Build Coastguard Worker case GL_LINEAR_TILING_EXT:
2474*8975f5c5SAndroid Build Coastguard Worker return TilingMode::Linear;
2475*8975f5c5SAndroid Build Coastguard Worker default:
2476*8975f5c5SAndroid Build Coastguard Worker return TilingMode::InvalidEnum;
2477*8975f5c5SAndroid Build Coastguard Worker }
2478*8975f5c5SAndroid Build Coastguard Worker }
2479*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(TilingMode from)2480*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(TilingMode from)
2481*8975f5c5SAndroid Build Coastguard Worker {
2482*8975f5c5SAndroid Build Coastguard Worker switch (from)
2483*8975f5c5SAndroid Build Coastguard Worker {
2484*8975f5c5SAndroid Build Coastguard Worker case TilingMode::Optimal:
2485*8975f5c5SAndroid Build Coastguard Worker return GL_OPTIMAL_TILING_EXT;
2486*8975f5c5SAndroid Build Coastguard Worker case TilingMode::Linear:
2487*8975f5c5SAndroid Build Coastguard Worker return GL_LINEAR_TILING_EXT;
2488*8975f5c5SAndroid Build Coastguard Worker default:
2489*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2490*8975f5c5SAndroid Build Coastguard Worker return 0;
2491*8975f5c5SAndroid Build Coastguard Worker }
2492*8975f5c5SAndroid Build Coastguard Worker }
2493*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,TilingMode value)2494*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, TilingMode value)
2495*8975f5c5SAndroid Build Coastguard Worker {
2496*8975f5c5SAndroid Build Coastguard Worker switch (value)
2497*8975f5c5SAndroid Build Coastguard Worker {
2498*8975f5c5SAndroid Build Coastguard Worker case TilingMode::Optimal:
2499*8975f5c5SAndroid Build Coastguard Worker os << "GL_OPTIMAL_TILING_EXT";
2500*8975f5c5SAndroid Build Coastguard Worker break;
2501*8975f5c5SAndroid Build Coastguard Worker case TilingMode::Linear:
2502*8975f5c5SAndroid Build Coastguard Worker os << "GL_LINEAR_TILING_EXT";
2503*8975f5c5SAndroid Build Coastguard Worker break;
2504*8975f5c5SAndroid Build Coastguard Worker default:
2505*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2506*8975f5c5SAndroid Build Coastguard Worker break;
2507*8975f5c5SAndroid Build Coastguard Worker }
2508*8975f5c5SAndroid Build Coastguard Worker return os;
2509*8975f5c5SAndroid Build Coastguard Worker }
2510*8975f5c5SAndroid Build Coastguard Worker
2511*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2512*8975f5c5SAndroid Build Coastguard Worker VertexArrayType FromGLenum<VertexArrayType>(GLenum from)
2513*8975f5c5SAndroid Build Coastguard Worker {
2514*8975f5c5SAndroid Build Coastguard Worker switch (from)
2515*8975f5c5SAndroid Build Coastguard Worker {
2516*8975f5c5SAndroid Build Coastguard Worker case GL_COLOR_ARRAY:
2517*8975f5c5SAndroid Build Coastguard Worker return VertexArrayType::Color;
2518*8975f5c5SAndroid Build Coastguard Worker case GL_NORMAL_ARRAY:
2519*8975f5c5SAndroid Build Coastguard Worker return VertexArrayType::Normal;
2520*8975f5c5SAndroid Build Coastguard Worker case GL_POINT_SIZE_ARRAY_OES:
2521*8975f5c5SAndroid Build Coastguard Worker return VertexArrayType::PointSize;
2522*8975f5c5SAndroid Build Coastguard Worker case GL_TEXTURE_COORD_ARRAY:
2523*8975f5c5SAndroid Build Coastguard Worker return VertexArrayType::TextureCoord;
2524*8975f5c5SAndroid Build Coastguard Worker case GL_VERTEX_ARRAY:
2525*8975f5c5SAndroid Build Coastguard Worker return VertexArrayType::Vertex;
2526*8975f5c5SAndroid Build Coastguard Worker default:
2527*8975f5c5SAndroid Build Coastguard Worker return VertexArrayType::InvalidEnum;
2528*8975f5c5SAndroid Build Coastguard Worker }
2529*8975f5c5SAndroid Build Coastguard Worker }
2530*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(VertexArrayType from)2531*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(VertexArrayType from)
2532*8975f5c5SAndroid Build Coastguard Worker {
2533*8975f5c5SAndroid Build Coastguard Worker switch (from)
2534*8975f5c5SAndroid Build Coastguard Worker {
2535*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::Color:
2536*8975f5c5SAndroid Build Coastguard Worker return GL_COLOR_ARRAY;
2537*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::Normal:
2538*8975f5c5SAndroid Build Coastguard Worker return GL_NORMAL_ARRAY;
2539*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::PointSize:
2540*8975f5c5SAndroid Build Coastguard Worker return GL_POINT_SIZE_ARRAY_OES;
2541*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::TextureCoord:
2542*8975f5c5SAndroid Build Coastguard Worker return GL_TEXTURE_COORD_ARRAY;
2543*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::Vertex:
2544*8975f5c5SAndroid Build Coastguard Worker return GL_VERTEX_ARRAY;
2545*8975f5c5SAndroid Build Coastguard Worker default:
2546*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2547*8975f5c5SAndroid Build Coastguard Worker return 0;
2548*8975f5c5SAndroid Build Coastguard Worker }
2549*8975f5c5SAndroid Build Coastguard Worker }
2550*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,VertexArrayType value)2551*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, VertexArrayType value)
2552*8975f5c5SAndroid Build Coastguard Worker {
2553*8975f5c5SAndroid Build Coastguard Worker switch (value)
2554*8975f5c5SAndroid Build Coastguard Worker {
2555*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::Color:
2556*8975f5c5SAndroid Build Coastguard Worker os << "GL_COLOR_ARRAY";
2557*8975f5c5SAndroid Build Coastguard Worker break;
2558*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::Normal:
2559*8975f5c5SAndroid Build Coastguard Worker os << "GL_NORMAL_ARRAY";
2560*8975f5c5SAndroid Build Coastguard Worker break;
2561*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::PointSize:
2562*8975f5c5SAndroid Build Coastguard Worker os << "GL_POINT_SIZE_ARRAY_OES";
2563*8975f5c5SAndroid Build Coastguard Worker break;
2564*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::TextureCoord:
2565*8975f5c5SAndroid Build Coastguard Worker os << "GL_TEXTURE_COORD_ARRAY";
2566*8975f5c5SAndroid Build Coastguard Worker break;
2567*8975f5c5SAndroid Build Coastguard Worker case VertexArrayType::Vertex:
2568*8975f5c5SAndroid Build Coastguard Worker os << "GL_VERTEX_ARRAY";
2569*8975f5c5SAndroid Build Coastguard Worker break;
2570*8975f5c5SAndroid Build Coastguard Worker default:
2571*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2572*8975f5c5SAndroid Build Coastguard Worker break;
2573*8975f5c5SAndroid Build Coastguard Worker }
2574*8975f5c5SAndroid Build Coastguard Worker return os;
2575*8975f5c5SAndroid Build Coastguard Worker }
2576*8975f5c5SAndroid Build Coastguard Worker
2577*8975f5c5SAndroid Build Coastguard Worker template <>
FromGLenum(GLenum from)2578*8975f5c5SAndroid Build Coastguard Worker WrapMode FromGLenum<WrapMode>(GLenum from)
2579*8975f5c5SAndroid Build Coastguard Worker {
2580*8975f5c5SAndroid Build Coastguard Worker switch (from)
2581*8975f5c5SAndroid Build Coastguard Worker {
2582*8975f5c5SAndroid Build Coastguard Worker case GL_CLAMP_TO_EDGE:
2583*8975f5c5SAndroid Build Coastguard Worker return WrapMode::ClampToEdge;
2584*8975f5c5SAndroid Build Coastguard Worker case GL_CLAMP_TO_BORDER:
2585*8975f5c5SAndroid Build Coastguard Worker return WrapMode::ClampToBorder;
2586*8975f5c5SAndroid Build Coastguard Worker case GL_MIRRORED_REPEAT:
2587*8975f5c5SAndroid Build Coastguard Worker return WrapMode::MirroredRepeat;
2588*8975f5c5SAndroid Build Coastguard Worker case GL_REPEAT:
2589*8975f5c5SAndroid Build Coastguard Worker return WrapMode::Repeat;
2590*8975f5c5SAndroid Build Coastguard Worker default:
2591*8975f5c5SAndroid Build Coastguard Worker return WrapMode::InvalidEnum;
2592*8975f5c5SAndroid Build Coastguard Worker }
2593*8975f5c5SAndroid Build Coastguard Worker }
2594*8975f5c5SAndroid Build Coastguard Worker
ToGLenum(WrapMode from)2595*8975f5c5SAndroid Build Coastguard Worker GLenum ToGLenum(WrapMode from)
2596*8975f5c5SAndroid Build Coastguard Worker {
2597*8975f5c5SAndroid Build Coastguard Worker switch (from)
2598*8975f5c5SAndroid Build Coastguard Worker {
2599*8975f5c5SAndroid Build Coastguard Worker case WrapMode::ClampToEdge:
2600*8975f5c5SAndroid Build Coastguard Worker return GL_CLAMP_TO_EDGE;
2601*8975f5c5SAndroid Build Coastguard Worker case WrapMode::ClampToBorder:
2602*8975f5c5SAndroid Build Coastguard Worker return GL_CLAMP_TO_BORDER;
2603*8975f5c5SAndroid Build Coastguard Worker case WrapMode::MirroredRepeat:
2604*8975f5c5SAndroid Build Coastguard Worker return GL_MIRRORED_REPEAT;
2605*8975f5c5SAndroid Build Coastguard Worker case WrapMode::Repeat:
2606*8975f5c5SAndroid Build Coastguard Worker return GL_REPEAT;
2607*8975f5c5SAndroid Build Coastguard Worker default:
2608*8975f5c5SAndroid Build Coastguard Worker UNREACHABLE();
2609*8975f5c5SAndroid Build Coastguard Worker return 0;
2610*8975f5c5SAndroid Build Coastguard Worker }
2611*8975f5c5SAndroid Build Coastguard Worker }
2612*8975f5c5SAndroid Build Coastguard Worker
operator <<(std::ostream & os,WrapMode value)2613*8975f5c5SAndroid Build Coastguard Worker std::ostream &operator<<(std::ostream &os, WrapMode value)
2614*8975f5c5SAndroid Build Coastguard Worker {
2615*8975f5c5SAndroid Build Coastguard Worker switch (value)
2616*8975f5c5SAndroid Build Coastguard Worker {
2617*8975f5c5SAndroid Build Coastguard Worker case WrapMode::ClampToEdge:
2618*8975f5c5SAndroid Build Coastguard Worker os << "GL_CLAMP_TO_EDGE";
2619*8975f5c5SAndroid Build Coastguard Worker break;
2620*8975f5c5SAndroid Build Coastguard Worker case WrapMode::ClampToBorder:
2621*8975f5c5SAndroid Build Coastguard Worker os << "GL_CLAMP_TO_BORDER";
2622*8975f5c5SAndroid Build Coastguard Worker break;
2623*8975f5c5SAndroid Build Coastguard Worker case WrapMode::MirroredRepeat:
2624*8975f5c5SAndroid Build Coastguard Worker os << "GL_MIRRORED_REPEAT";
2625*8975f5c5SAndroid Build Coastguard Worker break;
2626*8975f5c5SAndroid Build Coastguard Worker case WrapMode::Repeat:
2627*8975f5c5SAndroid Build Coastguard Worker os << "GL_REPEAT";
2628*8975f5c5SAndroid Build Coastguard Worker break;
2629*8975f5c5SAndroid Build Coastguard Worker default:
2630*8975f5c5SAndroid Build Coastguard Worker os << "GL_INVALID_ENUM";
2631*8975f5c5SAndroid Build Coastguard Worker break;
2632*8975f5c5SAndroid Build Coastguard Worker }
2633*8975f5c5SAndroid Build Coastguard Worker return os;
2634*8975f5c5SAndroid Build Coastguard Worker }
2635*8975f5c5SAndroid Build Coastguard Worker
2636*8975f5c5SAndroid Build Coastguard Worker } // namespace gl
2637