1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file.
4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// This file is auto-generated from
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// gpu/command_buffer/build_gles2_cmd_buffer.py
7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// It's formatted by clang-format using chromium coding style:
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)//    clang-format -i -style=chromium filename
9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// DO NOT EDIT!
10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)static const GLES2Util::EnumToString enum_to_string_table[] = {
15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x78EC, "GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM",
17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8825, "GL_DRAW_BUFFER0_EXT",
20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0BC1, "GL_ALPHA_TEST_FUNC_QCOM",
23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x884C, "GL_TEXTURE_COMPARE_MODE_EXT",
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0BC2, "GL_ALPHA_TEST_REF_QCOM",
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x884D, "GL_TEXTURE_COMPARE_FUNC_EXT",
32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x884E, "GL_COMPARE_REF_TO_TEXTURE_EXT",
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x93A1, "GL_BGRA8_EXT",
38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0, "GL_FALSE",
41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x00400000, "GL_STENCIL_BUFFER_BIT6_QCOM",
44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x9138, "GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG",
47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8FC4, "GL_SHADER_BINARY_VIV",
50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x9130, "GL_SGX_PROGRAM_BINARY_IMG",
53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x9133, "GL_RENDERBUFFER_SAMPLES_IMG",
56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x82E0, "GL_BUFFER_KHR",
59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x9135, "GL_MAX_SAMPLES_IMG",
62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x9134, "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG",
65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
67f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x9137, "GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG",
68f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
69f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
70f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x9136, "GL_TEXTURE_SAMPLES_IMG",
71f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
72f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
73f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x00000020, "GL_COLOR_BUFFER_BIT5_QCOM",
74f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
75f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
76f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0008, "GL_MAP_INVALIDATE_BUFFER_BIT_EXT",
77f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
78f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
79f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0BC0, "GL_ALPHA_TEST_QCOM",
80f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
81f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
82f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0006, "GL_TRIANGLE_FAN",
83f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
84f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
85f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0004, "GL_TRIANGLES",
86f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
87f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
88f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0005, "GL_TRIANGLE_STRIP",
89f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
90f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
91f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0002, "GL_LINE_LOOP",
92f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
93f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
94f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0003, "GL_LINE_STRIP",
95f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
96f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
97f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0000, "GL_POINTS",
98f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
99f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
100f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x0001, "GL_LINES",
101f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
102f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
103f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x78F0, "GL_IMAGE_ROWBYTES_CHROMIUM",
104f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
105f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
106f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x88B8, "GL_READ_ONLY",
107f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
108f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
109f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x88B9, "GL_WRITE_ONLY_OES",
110f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
111f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
112f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8211, "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",
113f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
114f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
115f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8210, "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",
116f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
117f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
118f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8741, "GL_PROGRAM_BINARY_LENGTH_OES",
119f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
120f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
121f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8740, "GL_Z400_BINARY_AMD",
122f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
123f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
124f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8192, "GL_GENERATE_MIPMAP_HINT",
125f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
126f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
127f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8A54, "GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT",
128f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
129f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
130f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8A55, "GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT",
131f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
132f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
133f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8A56, "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT",
134f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
135f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
136f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8A57, "GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT",
137f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
138f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
139f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8A51, "GL_RGB_RAW_422_APPLE",
140f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
141f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
142f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x87F9, "GL_3DC_X_AMD",
143f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
144f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
145f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8A53, "GL_SYNC_OBJECT_APPLE",
146f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
147f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
148f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DF8, "GL_SHADER_BINARY_FORMATS",
149f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
150f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
151f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DF9, "GL_NUM_SHADER_BINARY_FORMATS",
152f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
153f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
154f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x826D, "GL_DEBUG_GROUP_STACK_DEPTH_KHR",
155f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
156f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
157f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x826B, "GL_DEBUG_SEVERITY_NOTIFICATION_KHR",
158f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
159f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
160f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x826C, "GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR",
161f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
162f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
163f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B59, "GL_BOOL_VEC4",
164f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
165f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
166f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x826A, "GL_DEBUG_TYPE_POP_GROUP_KHR",
167f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
168f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
169f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B57, "GL_BOOL_VEC2",
170f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
171f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
172f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DF1, "GL_MEDIUM_FLOAT",
173f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
174f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
175f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B55, "GL_INT_VEC4",
176f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
177f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
178f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B54, "GL_INT_VEC3",
179f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
180f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
181f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DF4, "GL_MEDIUM_INT",
182f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
183f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
184f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DF5, "GL_HIGH_INT",
185f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
186f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
187f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B51, "GL_FLOAT_VEC3",
188f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
189f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
190f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B50, "GL_FLOAT_VEC2",
191f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
192f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
193f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x806F, "GL_TEXTURE_3D_OES",
194f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
195f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
196f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x92E0, "GL_DEBUG_OUTPUT_KHR",
197f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
198f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
199f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x806A, "GL_TEXTURE_BINDING_3D_OES",
200f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
201f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
202f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8CE3, "GL_COLOR_ATTACHMENT3_EXT",
203f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
204f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
205f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x1904, "GL_GREEN_NV",
206f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
207f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
208f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x928D, "GL_DST_OUT_NV",
209f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
210f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
211f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8069, "GL_TEXTURE_BINDING_2D",
212f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
213f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
214f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8261, "GL_NO_RESET_NOTIFICATION_EXT",
215f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
216f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
217f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DFA, "GL_SHADER_COMPILER",
218f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
219f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
220f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DFB, "GL_MAX_VERTEX_UNIFORM_VECTORS",
221f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
222f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
223f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8DFC, "GL_MAX_VARYING_VECTORS",
224f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
225f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
226f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B5C, "GL_FLOAT_MAT4",
227f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
228f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
229f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8B5B, "GL_FLOAT_MAT3",
230f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
231f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
232f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8268, "GL_DEBUG_TYPE_MARKER_KHR",
233f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
234f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
235f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8269, "GL_DEBUG_TYPE_PUSH_GROUP_KHR",
236f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
237f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
238f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x1905, "GL_BLUE_NV",
239f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
240f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
241f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x87FF, "GL_PROGRAM_BINARY_FORMATS_OES",
242f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
243f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
244f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x87FE, "GL_NUM_PROGRAM_BINARY_FORMATS_OES",
245f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
246f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
247f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x2600, "GL_NEAREST",
248f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
249f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
250f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x2601, "GL_LINEAR",
251f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
252f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    {
253f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)     0x8C03, "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",
254    },
255    {
256     0x9242, "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM",
257    },
258    {
259     0x88BB, "GL_BUFFER_ACCESS_OES",
260    },
261    {
262     0x88BC, "GL_BUFFER_MAPPED_OES",
263    },
264    {
265     0x88BD, "GL_BUFFER_MAP_POINTER_OES",
266    },
267    {
268     0x88BF, "GL_TIME_ELAPSED_EXT",
269    },
270    {
271     0x0C10, "GL_SCISSOR_BOX",
272    },
273    {
274     0x0C11, "GL_SCISSOR_TEST",
275    },
276    {
277     0x80000000, "GL_MULTISAMPLE_BUFFER_BIT7_QCOM",
278    },
279    {
280     0x8A48, "GL_TEXTURE_SRGB_DECODE_EXT",
281    },
282    {
283     0x300E, "GL_CONTEXT_LOST",
284    },
285    {
286     0x02000000, "GL_MULTISAMPLE_BUFFER_BIT1_QCOM",
287    },
288    {
289     0x8C2F, "GL_ANY_SAMPLES_PASSED_EXT",
290    },
291    {
292     0x8BD2, "GL_TEXTURE_WIDTH_QCOM",
293    },
294    {
295     0x8BD3, "GL_TEXTURE_HEIGHT_QCOM",
296    },
297    {
298     0x8BD4, "GL_TEXTURE_DEPTH_QCOM",
299    },
300    {
301     0x8BD5, "GL_TEXTURE_INTERNAL_FORMAT_QCOM",
302    },
303    {
304     0x8BD6, "GL_TEXTURE_FORMAT_QCOM",
305    },
306    {
307     0x8BD7, "GL_TEXTURE_TYPE_QCOM",
308    },
309    {
310     0x8B8D, "GL_CURRENT_PROGRAM",
311    },
312    {
313     0x8BD9, "GL_TEXTURE_NUM_LEVELS_QCOM",
314    },
315    {
316     0x00200000, "GL_STENCIL_BUFFER_BIT5_QCOM",
317    },
318    {
319     0x8B8A, "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH",
320    },
321    {
322     0x8B8B, "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES",
323    },
324    {
325     0x8B8C, "GL_SHADING_LANGUAGE_VERSION",
326    },
327    {
328     0x8BDA, "GL_TEXTURE_TARGET_QCOM",
329    },
330    {
331     0x8BDB, "GL_TEXTURE_OBJECT_VALID_QCOM",
332    },
333    {
334     0x8BDC, "GL_STATE_RESTORE",
335    },
336    {
337     0x8B88, "GL_SHADER_SOURCE_LENGTH",
338    },
339    {
340     0x8B89, "GL_ACTIVE_ATTRIBUTES",
341    },
342    {
343     0x93C9, "GL_COMPRESSED_RGBA_ASTC_6x6x6_OES",
344    },
345    {
346     0x93C8, "GL_COMPRESSED_RGBA_ASTC_6x6x5_OES",
347    },
348    {
349     0x8B84, "GL_INFO_LOG_LENGTH",
350    },
351    {
352     0x8B85, "GL_ATTACHED_SHADERS",
353    },
354    {
355     0x8B86, "GL_ACTIVE_UNIFORMS",
356    },
357    {
358     0x8B87, "GL_ACTIVE_UNIFORM_MAX_LENGTH",
359    },
360    {
361     0x8B80, "GL_DELETE_STATUS",
362    },
363    {
364     0x8B81, "GL_COMPILE_STATUS",
365    },
366    {
367     0x8B82, "GL_LINK_STATUS",
368    },
369    {
370     0x8B83, "GL_VALIDATE_STATUS",
371    },
372    {
373     0x8D48, "GL_STENCIL_INDEX8",
374    },
375    {
376     0x8D46, "GL_STENCIL_INDEX1_OES",
377    },
378    {
379     0x8D47, "GL_STENCIL_INDEX4_OES",
380    },
381    {
382     0x8D44, "GL_RENDERBUFFER_INTERNAL_FORMAT",
383    },
384    {
385     0x00000100, "GL_DEPTH_BUFFER_BIT",
386    },
387    {
388     0x8D42, "GL_RENDERBUFFER_WIDTH",
389    },
390    {
391     0x8D43, "GL_RENDERBUFFER_HEIGHT",
392    },
393    {
394     0x8D40, "GL_FRAMEBUFFER",
395    },
396    {
397     0x8D41, "GL_RENDERBUFFER",
398    },
399    {
400     0x0BD0, "GL_DITHER",
401    },
402    {
403     0x93D3, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",
404    },
405    {
406     0x1801, "GL_DEPTH_EXT",
407    },
408    {
409     0x1800, "GL_COLOR_EXT",
410    },
411    {
412     0x1802, "GL_STENCIL_EXT",
413    },
414    {
415     0x0B21, "GL_LINE_WIDTH",
416    },
417    {
418     0x81A5, "GL_DEPTH_COMPONENT16",
419    },
420    {
421     0x81A6, "GL_DEPTH_COMPONENT24_OES",
422    },
423    {
424     0x81A7, "GL_DEPTH_COMPONENT32_OES",
425    },
426    {
427     0x88FE, "GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",
428    },
429    {
430     0x8B6A, "GL_FLOAT_MAT4x3_NV",
431    },
432    {
433     0x93D0, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",
434    },
435    {
436     0x9143, "GL_MAX_DEBUG_MESSAGE_LENGTH_KHR",
437    },
438    {
439     0x9144, "GL_MAX_DEBUG_LOGGED_MESSAGES_KHR",
440    },
441    {
442     0x9145, "GL_DEBUG_LOGGED_MESSAGES_KHR",
443    },
444    {
445     0x9146, "GL_DEBUG_SEVERITY_HIGH_KHR",
446    },
447    {
448     0x9147, "GL_DEBUG_SEVERITY_MEDIUM_KHR",
449    },
450    {
451     0x9148, "GL_DEBUG_SEVERITY_LOW_KHR",
452    },
453    {
454     0x9260, "GL_GCCSO_SHADER_BINARY_FJ",
455    },
456    {
457     0x8F60, "GL_MALI_SHADER_BINARY_ARM",
458    },
459    {
460     0x8F61, "GL_MALI_PROGRAM_BINARY_ARM",
461    },
462    {
463     0x87EE, "GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD",
464    },
465    {
466     0x822B, "GL_RG8_EXT",
467    },
468    {
469     0x822F, "GL_RG16F_EXT",
470    },
471    {
472     0x822D, "GL_R16F_EXT",
473    },
474    {
475     0x822E, "GL_R32F_EXT",
476    },
477    {
478     1, "GL_ES_VERSION_2_0",
479    },
480    {
481     0x84F9, "GL_DEPTH_STENCIL_OES",
482    },
483    {
484     0x8368, "GL_UNSIGNED_INT_2_10_10_10_REV_EXT",
485    },
486    {
487     0x8819, "GL_LUMINANCE_ALPHA32F_EXT",
488    },
489    {
490     0x8818, "GL_LUMINANCE32F_EXT",
491    },
492    {
493     0x8363, "GL_UNSIGNED_SHORT_5_6_5",
494    },
495    {
496     0x8814, "GL_RGBA32F_EXT",
497    },
498    {
499     0x84F2, "GL_ALL_COMPLETED_NV",
500    },
501    {
502     0x8816, "GL_ALPHA32F_EXT",
503    },
504    {
505     0x84F4, "GL_FENCE_CONDITION_NV",
506    },
507    {
508     0x8366, "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT",
509    },
510    {
511     0x8365, "GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT",
512    },
513    {
514     0x84F7, "GL_COMMANDS_COMPLETED_CHROMIUM",
515    },
516    {
517     0x881E, "GL_LUMINANCE16F_EXT",
518    },
519    {
520     0x84FA, "GL_UNSIGNED_INT_24_8_OES",
521    },
522    {
523     0x881F, "GL_LUMINANCE_ALPHA16F_EXT",
524    },
525    {
526     0x881A, "GL_RGBA16F_EXT",
527    },
528    {
529     0x84FE, "GL_TEXTURE_MAX_ANISOTROPY_EXT",
530    },
531    {
532     0x0901, "GL_CCW",
533    },
534    {
535     0x0900, "GL_CW",
536    },
537    {
538     0x8229, "GL_R8_EXT",
539    },
540    {
541     0x9283, "GL_DISJOINT_NV",
542    },
543    {
544     0x8227, "GL_RG_EXT",
545    },
546    {
547     0x8B66, "GL_FLOAT_MAT2x4_NV",
548    },
549    {
550     0x8B67, "GL_FLOAT_MAT3x2_NV",
551    },
552    {
553     0x8B65, "GL_FLOAT_MAT2x3_NV",
554    },
555    {
556     0x8B62, "GL_SAMPLER_2D_SHADOW_EXT",
557    },
558    {
559     0x8B63, "GL_SAMPLER_2D_RECT_ARB",
560    },
561    {
562     0x8B60, "GL_SAMPLER_CUBE",
563    },
564    {
565     0x00001000, "GL_DEPTH_BUFFER_BIT4_QCOM",
566    },
567    {
568     0x8B68, "GL_FLOAT_MAT3x4_NV",
569    },
570    {
571     0x83F0, "GL_COMPRESSED_RGB_S3TC_DXT1_EXT",
572    },
573    {
574     0x00000080, "GL_COLOR_BUFFER_BIT7_QCOM",
575    },
576    {
577     0x88F0, "GL_DEPTH24_STENCIL8_OES",
578    },
579    {
580     0x80A0, "GL_SAMPLE_COVERAGE",
581    },
582    {
583     0x928F, "GL_DST_ATOP_NV",
584    },
585    {
586     0x80A9, "GL_SAMPLES",
587    },
588    {
589     0x80A8, "GL_SAMPLE_BUFFERS",
590    },
591    {
592     0x0D55, "GL_ALPHA_BITS",
593    },
594    {
595     0x0D54, "GL_BLUE_BITS",
596    },
597    {
598     0x0D57, "GL_STENCIL_BITS",
599    },
600    {
601     0x0D56, "GL_DEPTH_BITS",
602    },
603    {
604     0x8CD5, "GL_FRAMEBUFFER_COMPLETE",
605    },
606    {
607     0x0D50, "GL_SUBPIXEL_BITS",
608    },
609    {
610     0x0D53, "GL_GREEN_BITS",
611    },
612    {
613     0x0D52, "GL_RED_BITS",
614    },
615    {
616     0x8037, "GL_POLYGON_OFFSET_FILL",
617    },
618    {
619     0x928C, "GL_SRC_OUT_NV",
620    },
621    {
622     0x8034, "GL_UNSIGNED_SHORT_5_5_5_1",
623    },
624    {
625     0x8033, "GL_UNSIGNED_SHORT_4_4_4_4",
626    },
627    {
628     0x928B, "GL_DST_IN_NV",
629    },
630    {
631     0x0305, "GL_ONE_MINUS_DST_ALPHA",
632    },
633    {
634     0x0304, "GL_DST_ALPHA",
635    },
636    {
637     0x0307, "GL_ONE_MINUS_DST_COLOR",
638    },
639    {
640     0x0306, "GL_DST_COLOR",
641    },
642    {
643     0x0301, "GL_ONE_MINUS_SRC_COLOR",
644    },
645    {
646     0x0300, "GL_SRC_COLOR",
647    },
648    {
649     0x0303, "GL_ONE_MINUS_SRC_ALPHA",
650    },
651    {
652     0x0302, "GL_SRC_ALPHA",
653    },
654    {
655     0x0308, "GL_SRC_ALPHA_SATURATE",
656    },
657    {
658     0x2A00, "GL_POLYGON_OFFSET_UNITS",
659    },
660    {
661     0xFFFFFFFF, "GL_ALL_SHADER_BITS_EXT",
662    },
663    {
664     0x00800000, "GL_STENCIL_BUFFER_BIT7_QCOM",
665    },
666    {
667     0x8C4D, "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV",
668    },
669    {
670     0x00020000, "GL_STENCIL_BUFFER_BIT1_QCOM",
671    },
672    {
673     0x8D00, "GL_DEPTH_ATTACHMENT",
674    },
675    {
676     0x8FA0, "GL_PERFMON_GLOBAL_MODE_QCOM",
677    },
678    {
679     0x8815, "GL_RGB32F_EXT",
680    },
681    {
682     0x813D, "GL_TEXTURE_MAX_LEVEL_APPLE",
683    },
684    {
685     0x8DFD, "GL_MAX_FRAGMENT_UNIFORM_VECTORS",
686    },
687    {
688     0x8CDD, "GL_FRAMEBUFFER_UNSUPPORTED",
689    },
690    {
691     0x8CDF, "GL_MAX_COLOR_ATTACHMENTS_EXT",
692    },
693    {
694     0x90F3, "GL_CONTEXT_ROBUST_ACCESS_EXT",
695    },
696    {
697     0x90F2, "GL_MAX_MULTIVIEW_BUFFERS_EXT",
698    },
699    {
700     0x90F1, "GL_MULTIVIEW_EXT",
701    },
702    {
703     0x90F0, "GL_COLOR_ATTACHMENT_EXT",
704    },
705    {
706     0x803C, "GL_ALPHA8_OES",
707    },
708    {
709     0x84F5, "GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM",
710    },
711    {
712     0x882A, "GL_DRAW_BUFFER5_EXT",
713    },
714    {
715     0x80AA, "GL_SAMPLE_COVERAGE_VALUE",
716    },
717    {
718     0x84F6, "GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM",
719    },
720    {
721     0x80AB, "GL_SAMPLE_COVERAGE_INVERT",
722    },
723    {
724     0x8C41, "GL_SRGB8_NV",
725    },
726    {
727     0x8C40, "GL_SRGB_EXT",
728    },
729    {
730     0x882B, "GL_DRAW_BUFFER6_EXT",
731    },
732    {
733     0x8C17, "GL_UNSIGNED_NORMALIZED_EXT",
734    },
735    {
736     0x8A4A, "GL_SKIP_DECODE_EXT",
737    },
738    {
739     0x8A4F, "GL_PROGRAM_PIPELINE_OBJECT_EXT",
740    },
741    {
742     0x882C, "GL_DRAW_BUFFER7_EXT",
743    },
744    {
745     0x0010, "GL_MAP_FLUSH_EXPLICIT_BIT_EXT",
746    },
747    {
748     0x882D, "GL_DRAW_BUFFER8_EXT",
749    },
750    {
751     0x0BA6, "GL_PATH_MODELVIEW_MATRIX_CHROMIUM",
752    },
753    {
754     0x8F37, "GL_COPY_WRITE_BUFFER_NV",
755    },
756    {
757     0x8F36, "GL_COPY_READ_BUFFER_NV",
758    },
759    {
760     0x84FF, "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT",
761    },
762    {
763     0x6000, "GL_TEXTURE_POOL_CHROMIUM",
764    },
765    {
766     0x0B74, "GL_DEPTH_FUNC",
767    },
768    {
769     0x8A49, "GL_DECODE_EXT",
770    },
771    {
772     0x881B, "GL_RGB16F_EXT",
773    },
774    {
775     0x0B71, "GL_DEPTH_TEST",
776    },
777    {
778     0x0B70, "GL_DEPTH_RANGE",
779    },
780    {
781     0x0B73, "GL_DEPTH_CLEAR_VALUE",
782    },
783    {
784     0x0B72, "GL_DEPTH_WRITEMASK",
785    },
786    {
787     0x85BA, "GL_UNSIGNED_SHORT_8_8_APPLE",
788    },
789    {
790     0x882E, "GL_DRAW_BUFFER9_EXT",
791    },
792    {
793     0x6001, "GL_TEXTURE_POOL_MANAGED_CHROMIUM",
794    },
795    {
796     0x8073, "GL_MAX_3D_TEXTURE_SIZE_OES",
797    },
798    {
799     0x8072, "GL_TEXTURE_WRAP_R_OES",
800    },
801    {
802     0x9289, "GL_DST_OVER_NV",
803    },
804    {
805     0x882F, "GL_DRAW_BUFFER10_EXT",
806    },
807    {
808     0x8074, "GL_VERTEX_ARRAY_KHR",
809    },
810    {
811     0x80E1, "GL_BGRA_EXT",
812    },
813    {
814     0x8ED7, "GL_COVERAGE_AUTOMATIC_NV",
815    },
816    {
817     0x8ED6, "GL_COVERAGE_EDGE_FRAGMENTS_NV",
818    },
819    {
820     0x8ED5, "GL_COVERAGE_ALL_FRAGMENTS_NV",
821    },
822    {
823     0x8ED4, "GL_COVERAGE_SAMPLES_NV",
824    },
825    {
826     0x8ED3, "GL_COVERAGE_BUFFERS_NV",
827    },
828    {
829     0x8ED2, "GL_COVERAGE_ATTACHMENT_NV",
830    },
831    {
832     0x8ED1, "GL_COVERAGE_COMPONENT4_NV",
833    },
834    {
835     0x8ED0, "GL_COVERAGE_COMPONENT_NV",
836    },
837    {
838     0x9288, "GL_SRC_OVER_NV",
839    },
840    {
841     0x800B, "GL_FUNC_REVERSE_SUBTRACT",
842    },
843    {
844     0x00000400, "GL_STENCIL_BUFFER_BIT",
845    },
846    {
847     0x800A, "GL_FUNC_SUBTRACT",
848    },
849    {
850     0x8E2C, "GL_DEPTH_COMPONENT16_NONLINEAR_NV",
851    },
852    {
853     0x889F, "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",
854    },
855    {
856     0x8219, "GL_FRAMEBUFFER_UNDEFINED_OES",
857    },
858    {
859     0x8E22, "GL_TRANSFORM_FEEDBACK",
860    },
861    {
862     0x8E28, "GL_TIMESTAMP_EXT",
863    },
864    {
865     0x8006, "GL_FUNC_ADD",
866    },
867    {
868     0x8007, "GL_MIN_EXT",
869    },
870    {
871     0x8004, "GL_ONE_MINUS_CONSTANT_ALPHA",
872    },
873    {
874     0x8005, "GL_BLEND_COLOR",
875    },
876    {
877     0x8002, "GL_ONE_MINUS_CONSTANT_COLOR",
878    },
879    {
880     0x8003, "GL_CONSTANT_ALPHA",
881    },
882    {
883     0x8001, "GL_CONSTANT_COLOR",
884    },
885    {
886     0x0204, "GL_GREATER",
887    },
888    {
889     0x0205, "GL_NOTEQUAL",
890    },
891    {
892     0x0206, "GL_GEQUAL",
893    },
894    {
895     0x0207, "GL_ALWAYS",
896    },
897    {
898     0x0200, "GL_NEVER",
899    },
900    {
901     0x0201, "GL_LESS",
902    },
903    {
904     0x0202, "GL_EQUAL",
905    },
906    {
907     0x0203, "GL_LEQUAL",
908    },
909    {
910     0x2901, "GL_REPEAT",
911    },
912    {
913     0x92A0, "GL_EXCLUSION_NV",
914    },
915    {
916     0x93D8, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",
917    },
918    {
919     0x93D9, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",
920    },
921    {
922     0x8FB2, "GL_GPU_OPTIMIZED_QCOM",
923    },
924    {
925     0x190A, "GL_LUMINANCE_ALPHA",
926    },
927    {
928     0x8FB0, "GL_BINNING_CONTROL_HINT_QCOM",
929    },
930    {
931     0x92A1, "GL_CONTRAST_NV",
932    },
933    {
934     0x1E00, "GL_KEEP",
935    },
936    {
937     0x1E01, "GL_REPLACE",
938    },
939    {
940     0x1E02, "GL_INCR",
941    },
942    {
943     0x1E03, "GL_DECR",
944    },
945    {
946     0x93D6, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",
947    },
948    {
949     0x93D7, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",
950    },
951    {
952     0x93D4, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",
953    },
954    {
955     0x93D5, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",
956    },
957    {
958     0x0BE2, "GL_BLEND",
959    },
960    {
961     0x84CB, "GL_TEXTURE11",
962    },
963    {
964     0x8D55, "GL_RENDERBUFFER_STENCIL_SIZE",
965    },
966    {
967     0x8D54, "GL_RENDERBUFFER_DEPTH_SIZE",
968    },
969    {
970     0x8D57, "GL_MAX_SAMPLES_ANGLE",
971    },
972    {
973     0x8D56, "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE",
974    },
975    {
976     0x8D51, "GL_RENDERBUFFER_GREEN_SIZE",
977    },
978    {
979     0x8D50, "GL_RENDERBUFFER_RED_SIZE",
980    },
981    {
982     0x8D53, "GL_RENDERBUFFER_ALPHA_SIZE",
983    },
984    {
985     0x8D52, "GL_RENDERBUFFER_BLUE_SIZE",
986    },
987    {
988     0x92A6, "GL_VIVIDLIGHT_NV",
989    },
990    {
991     0x78F1, "GL_IMAGE_MAP_CHROMIUM",
992    },
993    {
994     0x00080000, "GL_STENCIL_BUFFER_BIT3_QCOM",
995    },
996    {
997     0x92A7, "GL_LINEARLIGHT_NV",
998    },
999    {
1000     0x886A, "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED",
1001    },
1002    {
1003     0x0C01, "GL_DRAW_BUFFER_EXT",
1004    },
1005    {
1006     0x78F2, "GL_IMAGE_SCANOUT_CHROMIUM",
1007    },
1008    {
1009     0x93C7, "GL_COMPRESSED_RGBA_ASTC_6x5x5_OES",
1010    },
1011    {
1012     0x8B5F, "GL_SAMPLER_3D_OES",
1013    },
1014    {
1015     0x8B95, "GL_PALETTE8_RGB8_OES",
1016    },
1017    {
1018     0x9250, "GL_SHADER_BINARY_DMP",
1019    },
1020    {
1021     0x10000000, "GL_MULTISAMPLE_BUFFER_BIT4_QCOM",
1022    },
1023    {
1024     0x8C92, "GL_ATC_RGB_AMD",
1025    },
1026    {
1027     0x9154, "GL_VERTEX_ARRAY_OBJECT_EXT",
1028    },
1029    {
1030     0x9153, "GL_QUERY_OBJECT_EXT",
1031    },
1032    {
1033     0x8864, "GL_QUERY_COUNTER_BITS_EXT",
1034    },
1035    {
1036     0x9151, "GL_BUFFER_OBJECT_EXT",
1037    },
1038    {
1039     0x8C93, "GL_ATC_RGBA_EXPLICIT_ALPHA_AMD",
1040    },
1041    {
1042     0x00000002, "GL_CONTEXT_FLAG_DEBUG_BIT_KHR",
1043    },
1044    {
1045     0x00000001, "GL_SYNC_FLUSH_COMMANDS_BIT_APPLE",
1046    },
1047    {
1048     0x9248, "GL_OVERLAY_TRANSFORM_ROTATE_90_CHROMIUM",
1049    },
1050    {
1051     0x00000004, "GL_COLOR_BUFFER_BIT2_QCOM",
1052    },
1053    {
1054     0x1702, "GL_TEXTURE",
1055    },
1056    {
1057     0x00000008, "GL_COLOR_BUFFER_BIT3_QCOM",
1058    },
1059    {
1060     0x8B58, "GL_BOOL_VEC3",
1061    },
1062    {
1063     0x8828, "GL_DRAW_BUFFER3_EXT",
1064    },
1065    {
1066     0x8DF0, "GL_LOW_FLOAT",
1067    },
1068    {
1069     0x1906, "GL_ALPHA",
1070    },
1071    {
1072     0x1907, "GL_RGB",
1073    },
1074    {
1075     0x8FBB, "GL_GPU_DISJOINT_EXT",
1076    },
1077    {
1078     0x1902, "GL_DEPTH_COMPONENT",
1079    },
1080    {
1081     0x8B56, "GL_BOOL",
1082    },
1083    {
1084     0x93DB, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",
1085    },
1086    {
1087     0x8B9B, "GL_IMPLEMENTATION_COLOR_READ_FORMAT",
1088    },
1089    {
1090     0x8B9A, "GL_IMPLEMENTATION_COLOR_READ_TYPE",
1091    },
1092    {
1093     0x93DA, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",
1094    },
1095    {
1096     0x1908, "GL_RGBA",
1097    },
1098    {
1099     0x8DF2, "GL_HIGH_FLOAT",
1100    },
1101    {
1102     0x93DD, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",
1103    },
1104    {
1105     0x8827, "GL_DRAW_BUFFER2_EXT",
1106    },
1107    {
1108     0x9243, "GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM",
1109    },
1110    {
1111     0x8DF3, "GL_LOW_INT",
1112    },
1113    {
1114     0x82E8, "GL_MAX_LABEL_LENGTH_KHR",
1115    },
1116    {
1117     0x82E6, "GL_SAMPLER_KHR",
1118    },
1119    {
1120     0x0C02, "GL_READ_BUFFER_EXT",
1121    },
1122    {
1123     0x82E3, "GL_QUERY_KHR",
1124    },
1125    {
1126     0x82E2, "GL_PROGRAM_KHR",
1127    },
1128    {
1129     0x82E1, "GL_SHADER_KHR",
1130    },
1131    {
1132     0x8B52, "GL_FLOAT_VEC4",
1133    },
1134    {
1135     0x9240, "GL_UNPACK_FLIP_Y_CHROMIUM",
1136    },
1137    {
1138     0x8DF6, "GL_UNSIGNED_INT_10_10_10_2_OES",
1139    },
1140    {
1141     0x8230, "GL_RG32F_EXT",
1142    },
1143    {
1144     0x8DF7, "GL_INT_10_10_10_2_OES",
1145    },
1146    {
1147     0x9246, "GL_OVERLAY_TRANSFORM_FLIP_HORIZONTAL_CHROMIUM",
1148    },
1149    {
1150     0x8B69, "GL_FLOAT_MAT4x2_NV",
1151    },
1152    {
1153     0x812D, "GL_CLAMP_TO_BORDER_NV",
1154    },
1155    {
1156     0x812F, "GL_CLAMP_TO_EDGE",
1157    },
1158    {
1159     0x86A3, "GL_COMPRESSED_TEXTURE_FORMATS",
1160    },
1161    {
1162     0x9244, "GL_BIND_GENERATES_RESOURCE_CHROMIUM",
1163    },
1164    {
1165     0x86A2, "GL_NUM_COMPRESSED_TEXTURE_FORMATS",
1166    },
1167    {
1168     0x0CF3, "GL_UNPACK_SKIP_ROWS_EXT",
1169    },
1170    {
1171     0x0CF2, "GL_UNPACK_ROW_LENGTH_EXT",
1172    },
1173    {
1174     0x140C, "GL_FIXED",
1175    },
1176    {
1177     0x8008, "GL_MAX_EXT",
1178    },
1179    {
1180     0x0CF5, "GL_UNPACK_ALIGNMENT",
1181    },
1182    {
1183     0x0CF4, "GL_UNPACK_SKIP_PIXELS_EXT",
1184    },
1185    {
1186     0x8009, "GL_BLEND_EQUATION",
1187    },
1188    {
1189     0x1401, "GL_UNSIGNED_BYTE",
1190    },
1191    {
1192     0x1400, "GL_BYTE",
1193    },
1194    {
1195     0x1403, "GL_UNSIGNED_SHORT",
1196    },
1197    {
1198     0x1402, "GL_SHORT",
1199    },
1200    {
1201     0x1405, "GL_UNSIGNED_INT",
1202    },
1203    {
1204     0x1404, "GL_INT",
1205    },
1206    {
1207     0x1406, "GL_FLOAT",
1208    },
1209    {
1210     0x8043, "GL_LUMINANCE4_ALPHA4_OES",
1211    },
1212    {
1213     0x8040, "GL_LUMINANCE8_OES",
1214    },
1215    {
1216     0x8045, "GL_LUMINANCE8_ALPHA8_OES",
1217    },
1218    {
1219     0x8CD1, "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",
1220    },
1221    {
1222     0x00040000, "GL_STENCIL_BUFFER_BIT2_QCOM",
1223    },
1224    {
1225     0x8CD0, "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",
1226    },
1227    {
1228     0x8CE4, "GL_COLOR_ATTACHMENT4_EXT",
1229    },
1230    {
1231     0x8CD3, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",
1232    },
1233    {
1234     0x929E, "GL_DIFFERENCE_NV",
1235    },
1236    {
1237     0x0B90, "GL_STENCIL_TEST",
1238    },
1239    {
1240     0x8CD2, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",
1241    },
1242    {
1243     0x881C, "GL_ALPHA16F_EXT",
1244    },
1245    {
1246     0x928E, "GL_SRC_ATOP_NV",
1247    },
1248    {
1249     0x8CD4, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES",
1250    },
1251    {
1252     0x9298, "GL_LIGHTEN_NV",
1253    },
1254    {
1255     0x8CD7, "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",
1256    },
1257    {
1258     0x9112, "GL_OBJECT_TYPE_APPLE",
1259    },
1260    {
1261     0x8038, "GL_POLYGON_OFFSET_FACTOR",
1262    },
1263    {
1264     0x851A, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z",
1265    },
1266    {
1267     0x851C, "GL_MAX_CUBE_MAP_TEXTURE_SIZE",
1268    },
1269    {
1270     0x8CD9, "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS",
1271    },
1272    {
1273     0x84CC, "GL_TEXTURE12",
1274    },
1275    {
1276     0x0BA2, "GL_VIEWPORT",
1277    },
1278    {
1279     0x84CA, "GL_TEXTURE10",
1280    },
1281    {
1282     0x0BA7, "GL_PATH_PROJECTION_MATRIX_CHROMIUM",
1283    },
1284    {
1285     0x84CF, "GL_TEXTURE15",
1286    },
1287    {
1288     0x84CE, "GL_TEXTURE14",
1289    },
1290    {
1291     0x84CD, "GL_TEXTURE13",
1292    },
1293    {
1294     0x9115, "GL_SYNC_FLAGS_APPLE",
1295    },
1296    {
1297     0x9286, "GL_SRC_NV",
1298    },
1299    {
1300     0x83F3, "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE",
1301    },
1302    {
1303     0x83F2, "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE",
1304    },
1305    {
1306     0x83F1, "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT",
1307    },
1308    {
1309     0x9114, "GL_SYNC_STATUS_APPLE",
1310    },
1311    {
1312     0x8C0A, "GL_SGX_BINARY_IMG",
1313    },
1314    {
1315     0x9285, "GL_BLEND_ADVANCED_COHERENT_NV",
1316    },
1317    {
1318     0x911C, "GL_CONDITION_SATISFIED_APPLE",
1319    },
1320    {
1321     0x911B, "GL_TIMEOUT_EXPIRED_APPLE",
1322    },
1323    {
1324     0x911A, "GL_ALREADY_SIGNALED_APPLE",
1325    },
1326    {
1327     0x9284, "GL_CONJOINT_NV",
1328    },
1329    {
1330     0x911D, "GL_WAIT_FAILED_APPLE",
1331    },
1332    {
1333     0x929A, "GL_COLORBURN_NV",
1334    },
1335    {
1336     0x929B, "GL_HARDLIGHT_NV",
1337    },
1338    {
1339     0x929C, "GL_SOFTLIGHT_NV",
1340    },
1341    {
1342     0x846D, "GL_ALIASED_POINT_SIZE_RANGE",
1343    },
1344    {
1345     0x846E, "GL_ALIASED_LINE_WIDTH_RANGE",
1346    },
1347    {
1348     0x929F, "GL_MINUS_NV",
1349    },
1350    {
1351     0x9282, "GL_UNCORRELATED_NV",
1352    },
1353    {
1354     0x9113, "GL_SYNC_CONDITION_APPLE",
1355    },
1356    {
1357     0x93A4, "GL_PACK_REVERSE_ROW_ORDER_ANGLE",
1358    },
1359    {
1360     0x9111, "GL_MAX_SERVER_WAIT_TIMEOUT_APPLE",
1361    },
1362    {
1363     0x93A6, "GL_PROGRAM_BINARY_ANGLE",
1364    },
1365    {
1366     0x9117, "GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE",
1367    },
1368    {
1369     0x93A0, "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE",
1370    },
1371    {
1372     0x93A3, "GL_FRAMEBUFFER_ATTACHMENT_ANGLE",
1373    },
1374    {
1375     0x93A2, "GL_TEXTURE_USAGE_ANGLE",
1376    },
1377    {
1378     0x8802, "GL_STENCIL_BACK_PASS_DEPTH_FAIL",
1379    },
1380    {
1381     0x9119, "GL_SIGNALED_APPLE",
1382    },
1383    {
1384     0x9118, "GL_UNSIGNALED_APPLE",
1385    },
1386    {
1387     0x9294, "GL_MULTIPLY_NV",
1388    },
1389    {
1390     0x9295, "GL_SCREEN_NV",
1391    },
1392    {
1393     0x9296, "GL_OVERLAY_NV",
1394    },
1395    {
1396     0x9297, "GL_DARKEN_NV",
1397    },
1398    {
1399     0x0020, "GL_MAP_UNSYNCHRONIZED_BIT_EXT",
1400    },
1401    {
1402     0x8C01, "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG",
1403    },
1404    {
1405     0x8C00, "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG",
1406    },
1407    {
1408     0x8A52, "GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT",
1409    },
1410    {
1411     0x8C02, "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",
1412    },
1413    {
1414     0x84C9, "GL_TEXTURE9",
1415    },
1416    {
1417     0x84C8, "GL_TEXTURE8",
1418    },
1419    {
1420     0x8869, "GL_MAX_VERTEX_ATTRIBS",
1421    },
1422    {
1423     0x84C3, "GL_TEXTURE3",
1424    },
1425    {
1426     0x84C2, "GL_TEXTURE2",
1427    },
1428    {
1429     0x84C1, "GL_TEXTURE1",
1430    },
1431    {
1432     0x84C0, "GL_TEXTURE0",
1433    },
1434    {
1435     0x84C7, "GL_TEXTURE7",
1436    },
1437    {
1438     0x84C6, "GL_TEXTURE6",
1439    },
1440    {
1441     0x84C5, "GL_TEXTURE5",
1442    },
1443    {
1444     0x8803, "GL_STENCIL_BACK_PASS_DEPTH_PASS",
1445    },
1446    {
1447     0x928A, "GL_SRC_IN_NV",
1448    },
1449    {
1450     0x8518, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y",
1451    },
1452    {
1453     0x8519, "GL_TEXTURE_CUBE_MAP_POSITIVE_Z",
1454    },
1455    {
1456     0x8514, "GL_TEXTURE_BINDING_CUBE_MAP",
1457    },
1458    {
1459     0x8515, "GL_TEXTURE_CUBE_MAP_POSITIVE_X",
1460    },
1461    {
1462     0x8516, "GL_TEXTURE_CUBE_MAP_NEGATIVE_X",
1463    },
1464    {
1465     0x8517, "GL_TEXTURE_CUBE_MAP_POSITIVE_Y",
1466    },
1467    {
1468     0x8513, "GL_TEXTURE_CUBE_MAP",
1469    },
1470    {
1471     0x8626, "GL_CURRENT_VERTEX_ATTRIB",
1472    },
1473    {
1474     0x92B1, "GL_PLUS_CLAMPED_NV",
1475    },
1476    {
1477     0x92B0, "GL_HSL_LUMINOSITY_NV",
1478    },
1479    {
1480     0x92B3, "GL_MINUS_CLAMPED_NV",
1481    },
1482    {
1483     0x92B2, "GL_PLUS_CLAMPED_ALPHA_NV",
1484    },
1485    {
1486     0x8765, "GL_BUFFER_USAGE",
1487    },
1488    {
1489     0x8764, "GL_BUFFER_SIZE",
1490    },
1491    {
1492     0x8B99, "GL_PALETTE8_RGB5_A1_OES",
1493    },
1494    {
1495     0x0503, "GL_STACK_OVERFLOW_KHR",
1496    },
1497    {
1498     0x0502, "GL_INVALID_OPERATION",
1499    },
1500    {
1501     0x0501, "GL_INVALID_VALUE",
1502    },
1503    {
1504     0x0500, "GL_INVALID_ENUM",
1505    },
1506    {
1507     64, "GL_MAILBOX_SIZE_CHROMIUM",
1508    },
1509    {
1510     0x0506, "GL_INVALID_FRAMEBUFFER_OPERATION",
1511    },
1512    {
1513     0x0505, "GL_OUT_OF_MEMORY",
1514    },
1515    {
1516     0x0504, "GL_STACK_UNDERFLOW_KHR",
1517    },
1518    {
1519     0x0B44, "GL_CULL_FACE",
1520    },
1521    {
1522     0x8B5E, "GL_SAMPLER_2D",
1523    },
1524    {
1525     0x0B46, "GL_FRONT_FACE",
1526    },
1527    {
1528     0x8FB3, "GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM",
1529    },
1530    {
1531     0x824A, "GL_DEBUG_SOURCE_APPLICATION_KHR",
1532    },
1533    {
1534     0x824B, "GL_DEBUG_SOURCE_OTHER_KHR",
1535    },
1536    {
1537     0x824C, "GL_DEBUG_TYPE_ERROR_KHR",
1538    },
1539    {
1540     0x824D, "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR",
1541    },
1542    {
1543     0x824E, "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR",
1544    },
1545    {
1546     0x824F, "GL_DEBUG_TYPE_PORTABILITY_KHR",
1547    },
1548    {
1549     0x8B31, "GL_VERTEX_SHADER",
1550    },
1551    {
1552     0x8B30, "GL_FRAGMENT_SHADER",
1553    },
1554    {
1555     0x8FB1, "GL_CPU_OPTIMIZED_QCOM",
1556    },
1557    {
1558     0x93D2, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",
1559    },
1560    {
1561     0x8B5A, "GL_FLOAT_MAT2",
1562    },
1563    {
1564     0x84D8, "GL_TEXTURE24",
1565    },
1566    {
1567     0x84D9, "GL_TEXTURE25",
1568    },
1569    {
1570     0x84D6, "GL_TEXTURE22",
1571    },
1572    {
1573     0x84D7, "GL_TEXTURE23",
1574    },
1575    {
1576     0x84D4, "GL_TEXTURE20",
1577    },
1578    {
1579     0x0D05, "GL_PACK_ALIGNMENT",
1580    },
1581    {
1582     0x84D2, "GL_TEXTURE18",
1583    },
1584    {
1585     0x84D3, "GL_TEXTURE19",
1586    },
1587    {
1588     0x84D0, "GL_TEXTURE16",
1589    },
1590    {
1591     0x84D1, "GL_TEXTURE17",
1592    },
1593    {
1594     0x93D1, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",
1595    },
1596    {
1597     0x84DF, "GL_TEXTURE31",
1598    },
1599    {
1600     0x8B97, "GL_PALETTE8_R5_G6_B5_OES",
1601    },
1602    {
1603     0x84DD, "GL_TEXTURE29",
1604    },
1605    {
1606     0x84DE, "GL_TEXTURE30",
1607    },
1608    {
1609     0x84DB, "GL_TEXTURE27",
1610    },
1611    {
1612     0x84DC, "GL_TEXTURE28",
1613    },
1614    {
1615     0x6002, "GL_TEXTURE_POOL_UNMANAGED_CHROMIUM",
1616    },
1617    {
1618     0x84DA, "GL_TEXTURE26",
1619    },
1620    {
1621     0x8242, "GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR",
1622    },
1623    {
1624     0x8243, "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR",
1625    },
1626    {
1627     0x8244, "GL_DEBUG_CALLBACK_FUNCTION_KHR",
1628    },
1629    {
1630     0x8245, "GL_DEBUG_CALLBACK_USER_PARAM_KHR",
1631    },
1632    {
1633     0x8246, "GL_DEBUG_SOURCE_API_KHR",
1634    },
1635    {
1636     0x8247, "GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR",
1637    },
1638    {
1639     0x8248, "GL_DEBUG_SOURCE_SHADER_COMPILER_KHR",
1640    },
1641    {
1642     0x8249, "GL_DEBUG_SOURCE_THIRD_PARTY_KHR",
1643    },
1644    {
1645     0x8B94, "GL_PALETTE4_RGB5_A1_OES",
1646    },
1647    {
1648     0x00000040, "GL_COLOR_BUFFER_BIT6_QCOM",
1649    },
1650    {
1651     0x8645, "GL_VERTEX_ATTRIB_ARRAY_POINTER",
1652    },
1653    {
1654     0x8865, "GL_CURRENT_QUERY_EXT",
1655    },
1656    {
1657     0x8866, "GL_QUERY_RESULT_EXT",
1658    },
1659    {
1660     0x8867, "GL_QUERY_RESULT_AVAILABLE_EXT",
1661    },
1662    {
1663     0x08000000, "GL_MULTISAMPLE_BUFFER_BIT3_QCOM",
1664    },
1665    {
1666     0x87FA, "GL_3DC_XY_AMD",
1667    },
1668    {
1669     0x84C4, "GL_TEXTURE4",
1670    },
1671    {
1672     0x85B5, "GL_VERTEX_ARRAY_BINDING_OES",
1673    },
1674    {
1675     0x8D6A, "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT",
1676    },
1677    {
1678     0x8D6C, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT",
1679    },
1680    {
1681     0x8252, "GL_LOSE_CONTEXT_ON_RESET_EXT",
1682    },
1683    {
1684     0x8C4C, "GL_COMPRESSED_SRGB_S3TC_DXT1_NV",
1685    },
1686    {
1687     0x8C4E, "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV",
1688    },
1689    {
1690     0x1102, "GL_NICEST",
1691    },
1692    {
1693     0x8C4F, "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV",
1694    },
1695    {
1696     0x93E9, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES",
1697    },
1698    {
1699     0x93E8, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES",
1700    },
1701    {
1702     0x8C43, "GL_SRGB8_ALPHA8_EXT",
1703    },
1704    {
1705     0x8C42, "GL_SRGB_ALPHA_EXT",
1706    },
1707    {
1708     0x8C45, "GL_SLUMINANCE8_ALPHA8_NV",
1709    },
1710    {
1711     0x8C44, "GL_SLUMINANCE_ALPHA_NV",
1712    },
1713    {
1714     0x8C47, "GL_SLUMINANCE8_NV",
1715    },
1716    {
1717     0x8C46, "GL_SLUMINANCE_NV",
1718    },
1719    {
1720     0x93E1, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES",
1721    },
1722    {
1723     0x93E0, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES",
1724    },
1725    {
1726     0x93E3, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES",
1727    },
1728    {
1729     0x93E2, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES",
1730    },
1731    {
1732     0x93E5, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES",
1733    },
1734    {
1735     0x93E4, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES",
1736    },
1737    {
1738     0x93E7, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES",
1739    },
1740    {
1741     0x93E6, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES",
1742    },
1743    {
1744     0x8D68, "GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES",
1745    },
1746    {
1747     0x1700, "GL_PATH_MODELVIEW_CHROMIUM",
1748    },
1749    {
1750     0x85BB, "GL_UNSIGNED_SHORT_8_8_REV_APPLE",
1751    },
1752    {
1753     0x8D61, "GL_HALF_FLOAT_OES",
1754    },
1755    {
1756     0x8D62, "GL_RGB565",
1757    },
1758    {
1759     0x8D64, "GL_ETC1_RGB8_OES",
1760    },
1761    {
1762     0x8D65, "GL_TEXTURE_EXTERNAL_OES",
1763    },
1764    {
1765     0x8D66, "GL_SAMPLER_EXTERNAL_OES",
1766    },
1767    {
1768     0x8D67, "GL_TEXTURE_BINDING_EXTERNAL_OES",
1769    },
1770    {
1771     0x04000000, "GL_MULTISAMPLE_BUFFER_BIT2_QCOM",
1772    },
1773    {
1774     0x8CEE, "GL_COLOR_ATTACHMENT14_EXT",
1775    },
1776    {
1777     0x1701, "GL_PATH_PROJECTION_CHROMIUM",
1778    },
1779    {
1780     0x2800, "GL_TEXTURE_MAG_FILTER",
1781    },
1782    {
1783     0x2801, "GL_TEXTURE_MIN_FILTER",
1784    },
1785    {
1786     0x2802, "GL_TEXTURE_WRAP_S",
1787    },
1788    {
1789     0x2803, "GL_TEXTURE_WRAP_T",
1790    },
1791    {
1792     0x2703, "GL_LINEAR_MIPMAP_LINEAR",
1793    },
1794    {
1795     0x8B98, "GL_PALETTE8_RGBA4_OES",
1796    },
1797    {
1798     0x84F3, "GL_FENCE_STATUS_NV",
1799    },
1800    {
1801     0x2702, "GL_NEAREST_MIPMAP_LINEAR",
1802    },
1803    {
1804     0x1F03, "GL_EXTENSIONS",
1805    },
1806    {
1807     0x1F02, "GL_VERSION",
1808    },
1809    {
1810     0x1F01, "GL_RENDERER",
1811    },
1812    {
1813     0x1F00, "GL_VENDOR",
1814    },
1815    {
1816     0x9247, "GL_OVERLAY_TRANSFORM_FLIP_VERTICAL_CHROMIUM",
1817    },
1818    {
1819     0x2701, "GL_LINEAR_MIPMAP_NEAREST",
1820    },
1821    {
1822     0x9245, "GL_OVERLAY_TRANSFORM_NONE_CHROMIUM",
1823    },
1824    {
1825     0x92B4, "GL_INVERT_OVG_NV",
1826    },
1827    {
1828     0x9249, "GL_OVERLAY_TRANSFORM_ROTATE_180_CHROMIUM",
1829    },
1830    {
1831     0x0B94, "GL_STENCIL_FAIL",
1832    },
1833    {
1834     0x8B4C, "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS",
1835    },
1836    {
1837     0x8B4D, "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS",
1838    },
1839    {
1840     0x8B4F, "GL_SHADER_TYPE",
1841    },
1842    {
1843     0x00004000, "GL_COLOR_BUFFER_BIT",
1844    },
1845    {
1846     0x00000010, "GL_COLOR_BUFFER_BIT4_QCOM",
1847    },
1848    {
1849     0x8834, "GL_DRAW_BUFFER15_EXT",
1850    },
1851    {
1852     0x8833, "GL_DRAW_BUFFER14_EXT",
1853    },
1854    {
1855     0x8832, "GL_DRAW_BUFFER13_EXT",
1856    },
1857    {
1858     0x8831, "GL_DRAW_BUFFER12_EXT",
1859    },
1860    {
1861     0x8830, "GL_DRAW_BUFFER11_EXT",
1862    },
1863    {
1864     0x8DC5, "GL_SAMPLER_CUBE_SHADOW_NV",
1865    },
1866    {
1867     0x93B8, "GL_COMPRESSED_RGBA_ASTC_10x5_KHR",
1868    },
1869    {
1870     0x9241, "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM",
1871    },
1872    {
1873     0x00010000, "GL_STENCIL_BUFFER_BIT0_QCOM",
1874    },
1875    {
1876     0x0B93, "GL_STENCIL_VALUE_MASK",
1877    },
1878    {
1879     0x0B92, "GL_STENCIL_FUNC",
1880    },
1881    {
1882     0x0B91, "GL_STENCIL_CLEAR_VALUE",
1883    },
1884    {
1885     0x883D, "GL_BLEND_EQUATION_ALPHA",
1886    },
1887    {
1888     0x0B97, "GL_STENCIL_REF",
1889    },
1890    {
1891     0x0B96, "GL_STENCIL_PASS_DEPTH_PASS",
1892    },
1893    {
1894     0x0B95, "GL_STENCIL_PASS_DEPTH_FAIL",
1895    },
1896    {
1897     0x2700, "GL_NEAREST_MIPMAP_NEAREST",
1898    },
1899    {
1900     0x0B98, "GL_STENCIL_WRITEMASK",
1901    },
1902    {
1903     0x8B40, "GL_PROGRAM_OBJECT_EXT",
1904    },
1905    {
1906     0x1004, "GL_TEXTURE_BORDER_COLOR_NV",
1907    },
1908    {
1909     0x8B48, "GL_SHADER_OBJECT_EXT",
1910    },
1911    {
1912     0x912F, "GL_TEXTURE_IMMUTABLE_FORMAT_EXT",
1913    },
1914    {
1915     0x924A, "GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM",
1916    },
1917    {
1918     0x20000000, "GL_MULTISAMPLE_BUFFER_BIT5_QCOM",
1919    },
1920    {
1921     0x0DE1, "GL_TEXTURE_2D",
1922    },
1923    {
1924     0x80C9, "GL_BLEND_SRC_RGB",
1925    },
1926    {
1927     0x80C8, "GL_BLEND_DST_RGB",
1928    },
1929    {
1930     0x8059, "GL_RGB10_A2_EXT",
1931    },
1932    {
1933     0x8058, "GL_RGBA8_OES",
1934    },
1935    {
1936     0x8B93, "GL_PALETTE4_RGBA4_OES",
1937    },
1938    {
1939     0x00002000, "GL_DEPTH_BUFFER_BIT5_QCOM",
1940    },
1941    {
1942     0x8051, "GL_RGB8_OES",
1943    },
1944    {
1945     0x8052, "GL_RGB10_EXT",
1946    },
1947    {
1948     0x8CAB, "GL_RENDERBUFFER_SAMPLES_ANGLE",
1949    },
1950    {
1951     0x8057, "GL_RGB5_A1",
1952    },
1953    {
1954     0x8056, "GL_RGBA4",
1955    },
1956    {
1957     0x150A, "GL_INVERT",
1958    },
1959    {
1960     0x01000000, "GL_MULTISAMPLE_BUFFER_BIT0_QCOM",
1961    },
1962    {
1963     0x78ED, "GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM",
1964    },
1965    {
1966     0x78EE, "GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM",
1967    },
1968    {
1969     0x78EF, "GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM",
1970    },
1971    {
1972     0x0B45, "GL_CULL_FACE_MODE",
1973    },
1974    {
1975     0x8B92, "GL_PALETTE4_R5_G6_B5_OES",
1976    },
1977    {
1978     0x00100000, "GL_STENCIL_BUFFER_BIT4_QCOM",
1979    },
1980    {
1981     0x9299, "GL_COLORDODGE_NV",
1982    },
1983    {
1984     0x8D20, "GL_STENCIL_ATTACHMENT",
1985    },
1986    {
1987     0x8B91, "GL_PALETTE4_RGBA8_OES",
1988    },
1989    {
1990     0x00000200, "GL_DEPTH_BUFFER_BIT1_QCOM",
1991    },
1992    {
1993     0x00008000, "GL_COVERAGE_BUFFER_BIT_NV",
1994    },
1995    {
1996     0x1506, "GL_XOR_NV",
1997    },
1998    {
1999     0x8CA8, "GL_READ_FRAMEBUFFER_ANGLE",
2000    },
2001    {
2002     0x8CA9, "GL_DRAW_FRAMEBUFFER_ANGLE",
2003    },
2004    {
2005     0x8CA6, "GL_FRAMEBUFFER_BINDING",
2006    },
2007    {
2008     0x8CA7, "GL_RENDERBUFFER_BINDING",
2009    },
2010    {
2011     0x8CA4, "GL_STENCIL_BACK_VALUE_MASK",
2012    },
2013    {
2014     0x8CA5, "GL_STENCIL_BACK_WRITEMASK",
2015    },
2016    {
2017     0x8B90, "GL_PALETTE4_RGB8_OES",
2018    },
2019    {
2020     0x8CA3, "GL_STENCIL_BACK_REF",
2021    },
2022    {
2023     0x80CB, "GL_BLEND_SRC_ALPHA",
2024    },
2025    {
2026     0x80CA, "GL_BLEND_DST_ALPHA",
2027    },
2028    {
2029     0x8CE7, "GL_COLOR_ATTACHMENT7_EXT",
2030    },
2031    {
2032     0x93B0, "GL_COMPRESSED_RGBA_ASTC_4x4_KHR",
2033    },
2034    {
2035     0x93B1, "GL_COMPRESSED_RGBA_ASTC_5x4_KHR",
2036    },
2037    {
2038     0x93B2, "GL_COMPRESSED_RGBA_ASTC_5x5_KHR",
2039    },
2040    {
2041     0x93B3, "GL_COMPRESSED_RGBA_ASTC_6x5_KHR",
2042    },
2043    {
2044     0x93B4, "GL_COMPRESSED_RGBA_ASTC_6x6_KHR",
2045    },
2046    {
2047     0x93B5, "GL_COMPRESSED_RGBA_ASTC_8x5_KHR",
2048    },
2049    {
2050     0x93B6, "GL_COMPRESSED_RGBA_ASTC_8x6_KHR",
2051    },
2052    {
2053     0x93B7, "GL_COMPRESSED_RGBA_ASTC_8x8_KHR",
2054    },
2055    {
2056     0x8CD6, "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT",
2057    },
2058    {
2059     0x93B9, "GL_COMPRESSED_RGBA_ASTC_10x6_KHR",
2060    },
2061    {
2062     0x8253, "GL_GUILTY_CONTEXT_RESET_EXT",
2063    },
2064    {
2065     0x8CE5, "GL_COLOR_ATTACHMENT5_EXT",
2066    },
2067    {
2068     0x8CE9, "GL_COLOR_ATTACHMENT9_EXT",
2069    },
2070    {
2071     0x8B96, "GL_PALETTE8_RGBA8_OES",
2072    },
2073    {
2074     0x8872, "GL_MAX_TEXTURE_IMAGE_UNITS",
2075    },
2076    {
2077     0x8508, "GL_DECR_WRAP",
2078    },
2079    {
2080     0x92AD, "GL_HSL_HUE_NV",
2081    },
2082    {
2083     0x92AE, "GL_HSL_SATURATION_NV",
2084    },
2085    {
2086     0x92AF, "GL_HSL_COLOR_NV",
2087    },
2088    {
2089     0x8DC4, "GL_SAMPLER_2D_ARRAY_SHADOW_NV",
2090    },
2091    {
2092     0x8507, "GL_INCR_WRAP",
2093    },
2094    {
2095     0x8895, "GL_ELEMENT_ARRAY_BUFFER_BINDING",
2096    },
2097    {
2098     0x8894, "GL_ARRAY_BUFFER_BINDING",
2099    },
2100    {
2101     0x92A3, "GL_INVERT_RGB_NV",
2102    },
2103    {
2104     0x92A4, "GL_LINEARDODGE_NV",
2105    },
2106    {
2107     0x92A5, "GL_LINEARBURN_NV",
2108    },
2109    {
2110     0x8893, "GL_ELEMENT_ARRAY_BUFFER",
2111    },
2112    {
2113     0x8892, "GL_ARRAY_BUFFER",
2114    },
2115    {
2116     0x92A8, "GL_PINLIGHT_NV",
2117    },
2118    {
2119     0x92A9, "GL_HARDMIX_NV",
2120    },
2121    {
2122     0x8BD8, "GL_TEXTURE_IMAGE_VALID_QCOM",
2123    },
2124    {
2125     0x84D5, "GL_TEXTURE21",
2126    },
2127    {
2128     0x9287, "GL_DST_NV",
2129    },
2130    {
2131     0x93BA, "GL_COMPRESSED_RGBA_ASTC_10x8_KHR",
2132    },
2133    {
2134     0x93BB, "GL_COMPRESSED_RGBA_ASTC_10x10_KHR",
2135    },
2136    {
2137     0x93BC, "GL_COMPRESSED_RGBA_ASTC_12x10_KHR",
2138    },
2139    {
2140     0x93BD, "GL_COMPRESSED_RGBA_ASTC_12x12_KHR",
2141    },
2142    {
2143     0x84E8, "GL_MAX_RENDERBUFFER_SIZE",
2144    },
2145    {
2146     0x9281, "GL_BLEND_OVERLAP_NV",
2147    },
2148    {
2149     0x9280, "GL_BLEND_PREMULTIPLIED_SRC_NV",
2150    },
2151    {
2152     0x8370, "GL_MIRRORED_REPEAT",
2153    },
2154    {
2155     0x84E0, "GL_ACTIVE_TEXTURE",
2156    },
2157    {
2158     0x8800, "GL_STENCIL_BACK_FUNC",
2159    },
2160    {
2161     0x8801, "GL_STENCIL_BACK_FAIL",
2162    },
2163    {
2164     0x0D33, "GL_MAX_TEXTURE_SIZE",
2165    },
2166    {
2167     0x8624, "GL_VERTEX_ATTRIB_ARRAY_STRIDE",
2168    },
2169    {
2170     0x8625, "GL_VERTEX_ATTRIB_ARRAY_TYPE",
2171    },
2172    {
2173     0x8622, "GL_VERTEX_ATTRIB_ARRAY_ENABLED",
2174    },
2175    {
2176     0x8623, "GL_VERTEX_ATTRIB_ARRAY_SIZE",
2177    },
2178    {
2179     0x8DB9, "GL_FRAMEBUFFER_SRGB_EXT",
2180    },
2181    {
2182     0x8259, "GL_ACTIVE_PROGRAM_EXT",
2183    },
2184    {
2185     0x8258, "GL_PROGRAM_SEPARABLE_EXT",
2186    },
2187    {
2188     0x8256, "GL_RESET_NOTIFICATION_STRATEGY_EXT",
2189    },
2190    {
2191     0x8255, "GL_UNKNOWN_CONTEXT_RESET_EXT",
2192    },
2193    {
2194     0x8254, "GL_INNOCENT_CONTEXT_RESET_EXT",
2195    },
2196    {
2197     0x1100, "GL_DONT_CARE",
2198    },
2199    {
2200     0x1101, "GL_FASTEST",
2201    },
2202    {
2203     0x8251, "GL_DEBUG_TYPE_OTHER_KHR",
2204    },
2205    {
2206     0x8250, "GL_DEBUG_TYPE_PERFORMANCE_KHR",
2207    },
2208    {
2209     0x8CEB, "GL_COLOR_ATTACHMENT11_EXT",
2210    },
2211    {
2212     0x8CEC, "GL_COLOR_ATTACHMENT12_EXT",
2213    },
2214    {
2215     0x0408, "GL_FRONT_AND_BACK",
2216    },
2217    {
2218     0x8CEA, "GL_COLOR_ATTACHMENT10_EXT",
2219    },
2220    {
2221     0x8CEF, "GL_COLOR_ATTACHMENT15_EXT",
2222    },
2223    {
2224     0x8CED, "GL_COLOR_ATTACHMENT13_EXT",
2225    },
2226    {
2227     0x8829, "GL_DRAW_BUFFER4_EXT",
2228    },
2229    {
2230     0x0404, "GL_FRONT",
2231    },
2232    {
2233     0x0405, "GL_BACK",
2234    },
2235    {
2236     0x88E1, "GL_STREAM_READ",
2237    },
2238    {
2239     0x88E0, "GL_STREAM_DRAW",
2240    },
2241    {
2242     0x88E4, "GL_STATIC_DRAW",
2243    },
2244    {
2245     0x93C6, "GL_COMPRESSED_RGBA_ASTC_5x5x5_OES",
2246    },
2247    {
2248     0x88E8, "GL_DYNAMIC_DRAW",
2249    },
2250    {
2251     0x9291, "GL_PLUS_NV",
2252    },
2253    {
2254     0x8CAA, "GL_READ_FRAMEBUFFER_BINDING_ANGLE",
2255    },
2256    {
2257     0x93C5, "GL_COMPRESSED_RGBA_ASTC_5x5x4_OES",
2258    },
2259    {
2260     0x40000000, "GL_MULTISAMPLE_BUFFER_BIT6_QCOM",
2261    },
2262    {
2263     0x9116, "GL_SYNC_FENCE_APPLE",
2264    },
2265    {
2266     0x93C4, "GL_COMPRESSED_RGBA_ASTC_5x4x4_OES",
2267    },
2268    {
2269     0x88EE, "GL_ETC1_SRGB8_NV",
2270    },
2271    {
2272     0x93C3, "GL_COMPRESSED_RGBA_ASTC_4x4x4_OES",
2273    },
2274    {
2275     0x00000800, "GL_DEPTH_BUFFER_BIT3_QCOM",
2276    },
2277    {
2278     0x1903, "GL_RED_EXT",
2279    },
2280    {
2281     0x93C2, "GL_COMPRESSED_RGBA_ASTC_4x4x3_OES",
2282    },
2283    {
2284     0x8CE2, "GL_COLOR_ATTACHMENT2_EXT",
2285    },
2286    {
2287     0x8BC1, "GL_COUNTER_RANGE_AMD",
2288    },
2289    {
2290     0x8CE0, "GL_COLOR_ATTACHMENT0",
2291    },
2292    {
2293     0x8CE1, "GL_COLOR_ATTACHMENT1_EXT",
2294    },
2295    {
2296     0x8CE6, "GL_COLOR_ATTACHMENT6_EXT",
2297    },
2298    {
2299     0x93C1, "GL_COMPRESSED_RGBA_ASTC_4x3x3_OES",
2300    },
2301    {
2302     0x8A1F, "GL_RGB_422_APPLE",
2303    },
2304    {
2305     0x93DC, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",
2306    },
2307    {
2308     0x9292, "GL_PLUS_DARKER_NV",
2309    },
2310    {
2311     0x8CE8, "GL_COLOR_ATTACHMENT8_EXT",
2312    },
2313    {
2314     0x93C0, "GL_COMPRESSED_RGBA_ASTC_3x3x3_OES",
2315    },
2316    {
2317     0x0C23, "GL_COLOR_WRITEMASK",
2318    },
2319    {
2320     0x0C22, "GL_COLOR_CLEAR_VALUE",
2321    },
2322    {
2323     0x8823, "GL_WRITEONLY_RENDERING_QCOM",
2324    },
2325    {
2326     0x8824, "GL_MAX_DRAW_BUFFERS_EXT",
2327    },
2328    {
2329     0x825A, "GL_PROGRAM_PIPELINE_BINDING_EXT",
2330    },
2331    {
2332     0x1909, "GL_LUMINANCE",
2333    },
2334    {
2335     0x0D3A, "GL_MAX_VIEWPORT_DIMS",
2336    },
2337    {
2338     0x8B53, "GL_INT_VEC2",
2339    },
2340    {
2341     0x8826, "GL_DRAW_BUFFER1_EXT",
2342    },
2343    {
2344     0x809E, "GL_SAMPLE_ALPHA_TO_COVERAGE",
2345    },
2346    {
2347     0x8BC0, "GL_COUNTER_TYPE_AMD",
2348    },
2349    {
2350     0x8BC3, "GL_PERCENTAGE_AMD",
2351    },
2352    {
2353     0x8BC2, "GL_UNSIGNED_INT64_AMD",
2354    },
2355    {
2356     0x8BC5, "GL_PERFMON_RESULT_SIZE_AMD",
2357    },
2358    {
2359     0x8BC4, "GL_PERFMON_RESULT_AVAILABLE_AMD",
2360    },
2361    {
2362     0x8BC6, "GL_PERFMON_RESULT_AMD",
2363    },
2364};
2365
2366const GLES2Util::EnumToString* const GLES2Util::enum_to_string_table_ =
2367    enum_to_string_table;
2368const size_t GLES2Util::enum_to_string_table_len_ =
2369    sizeof(enum_to_string_table) / sizeof(enum_to_string_table[0]);
2370
2371std::string GLES2Util::GetStringAttachment(uint32_t value) {
2372  static const EnumToString string_table[] = {
2373      {GL_COLOR_ATTACHMENT0, "GL_COLOR_ATTACHMENT0"},
2374      {GL_DEPTH_ATTACHMENT, "GL_DEPTH_ATTACHMENT"},
2375      {GL_STENCIL_ATTACHMENT, "GL_STENCIL_ATTACHMENT"},
2376  };
2377  return GLES2Util::GetQualifiedEnumString(
2378      string_table, arraysize(string_table), value);
2379}
2380
2381std::string GLES2Util::GetStringBackbufferAttachment(uint32_t value) {
2382  static const EnumToString string_table[] = {
2383      {GL_COLOR_EXT, "GL_COLOR_EXT"},
2384      {GL_DEPTH_EXT, "GL_DEPTH_EXT"},
2385      {GL_STENCIL_EXT, "GL_STENCIL_EXT"},
2386  };
2387  return GLES2Util::GetQualifiedEnumString(
2388      string_table, arraysize(string_table), value);
2389}
2390
2391std::string GLES2Util::GetStringBlitFilter(uint32_t value) {
2392  static const EnumToString string_table[] = {
2393      {GL_NEAREST, "GL_NEAREST"}, {GL_LINEAR, "GL_LINEAR"},
2394  };
2395  return GLES2Util::GetQualifiedEnumString(
2396      string_table, arraysize(string_table), value);
2397}
2398
2399std::string GLES2Util::GetStringBufferParameter(uint32_t value) {
2400  static const EnumToString string_table[] = {
2401      {GL_BUFFER_SIZE, "GL_BUFFER_SIZE"}, {GL_BUFFER_USAGE, "GL_BUFFER_USAGE"},
2402  };
2403  return GLES2Util::GetQualifiedEnumString(
2404      string_table, arraysize(string_table), value);
2405}
2406
2407std::string GLES2Util::GetStringBufferTarget(uint32_t value) {
2408  static const EnumToString string_table[] = {
2409      {GL_ARRAY_BUFFER, "GL_ARRAY_BUFFER"},
2410      {GL_ELEMENT_ARRAY_BUFFER, "GL_ELEMENT_ARRAY_BUFFER"},
2411  };
2412  return GLES2Util::GetQualifiedEnumString(
2413      string_table, arraysize(string_table), value);
2414}
2415
2416std::string GLES2Util::GetStringBufferUsage(uint32_t value) {
2417  static const EnumToString string_table[] = {
2418      {GL_STREAM_DRAW, "GL_STREAM_DRAW"},
2419      {GL_STATIC_DRAW, "GL_STATIC_DRAW"},
2420      {GL_DYNAMIC_DRAW, "GL_DYNAMIC_DRAW"},
2421  };
2422  return GLES2Util::GetQualifiedEnumString(
2423      string_table, arraysize(string_table), value);
2424}
2425
2426std::string GLES2Util::GetStringCapability(uint32_t value) {
2427  static const EnumToString string_table[] = {
2428      {GL_BLEND, "GL_BLEND"},
2429      {GL_CULL_FACE, "GL_CULL_FACE"},
2430      {GL_DEPTH_TEST, "GL_DEPTH_TEST"},
2431      {GL_DITHER, "GL_DITHER"},
2432      {GL_POLYGON_OFFSET_FILL, "GL_POLYGON_OFFSET_FILL"},
2433      {GL_SAMPLE_ALPHA_TO_COVERAGE, "GL_SAMPLE_ALPHA_TO_COVERAGE"},
2434      {GL_SAMPLE_COVERAGE, "GL_SAMPLE_COVERAGE"},
2435      {GL_SCISSOR_TEST, "GL_SCISSOR_TEST"},
2436      {GL_STENCIL_TEST, "GL_STENCIL_TEST"},
2437  };
2438  return GLES2Util::GetQualifiedEnumString(
2439      string_table, arraysize(string_table), value);
2440}
2441
2442std::string GLES2Util::GetStringCmpFunction(uint32_t value) {
2443  static const EnumToString string_table[] = {
2444      {GL_NEVER, "GL_NEVER"},
2445      {GL_LESS, "GL_LESS"},
2446      {GL_EQUAL, "GL_EQUAL"},
2447      {GL_LEQUAL, "GL_LEQUAL"},
2448      {GL_GREATER, "GL_GREATER"},
2449      {GL_NOTEQUAL, "GL_NOTEQUAL"},
2450      {GL_GEQUAL, "GL_GEQUAL"},
2451      {GL_ALWAYS, "GL_ALWAYS"},
2452  };
2453  return GLES2Util::GetQualifiedEnumString(
2454      string_table, arraysize(string_table), value);
2455}
2456
2457std::string GLES2Util::GetStringCompressedTextureFormat(uint32_t value) {
2458  return GLES2Util::GetQualifiedEnumString(NULL, 0, value);
2459}
2460
2461std::string GLES2Util::GetStringDrawMode(uint32_t value) {
2462  static const EnumToString string_table[] = {
2463      {GL_POINTS, "GL_POINTS"},
2464      {GL_LINE_STRIP, "GL_LINE_STRIP"},
2465      {GL_LINE_LOOP, "GL_LINE_LOOP"},
2466      {GL_LINES, "GL_LINES"},
2467      {GL_TRIANGLE_STRIP, "GL_TRIANGLE_STRIP"},
2468      {GL_TRIANGLE_FAN, "GL_TRIANGLE_FAN"},
2469      {GL_TRIANGLES, "GL_TRIANGLES"},
2470  };
2471  return GLES2Util::GetQualifiedEnumString(
2472      string_table, arraysize(string_table), value);
2473}
2474
2475std::string GLES2Util::GetStringDstBlendFactor(uint32_t value) {
2476  static const EnumToString string_table[] = {
2477      {GL_ZERO, "GL_ZERO"},
2478      {GL_ONE, "GL_ONE"},
2479      {GL_SRC_COLOR, "GL_SRC_COLOR"},
2480      {GL_ONE_MINUS_SRC_COLOR, "GL_ONE_MINUS_SRC_COLOR"},
2481      {GL_DST_COLOR, "GL_DST_COLOR"},
2482      {GL_ONE_MINUS_DST_COLOR, "GL_ONE_MINUS_DST_COLOR"},
2483      {GL_SRC_ALPHA, "GL_SRC_ALPHA"},
2484      {GL_ONE_MINUS_SRC_ALPHA, "GL_ONE_MINUS_SRC_ALPHA"},
2485      {GL_DST_ALPHA, "GL_DST_ALPHA"},
2486      {GL_ONE_MINUS_DST_ALPHA, "GL_ONE_MINUS_DST_ALPHA"},
2487      {GL_CONSTANT_COLOR, "GL_CONSTANT_COLOR"},
2488      {GL_ONE_MINUS_CONSTANT_COLOR, "GL_ONE_MINUS_CONSTANT_COLOR"},
2489      {GL_CONSTANT_ALPHA, "GL_CONSTANT_ALPHA"},
2490      {GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA"},
2491  };
2492  return GLES2Util::GetQualifiedEnumString(
2493      string_table, arraysize(string_table), value);
2494}
2495
2496std::string GLES2Util::GetStringEquation(uint32_t value) {
2497  static const EnumToString string_table[] = {
2498      {GL_FUNC_ADD, "GL_FUNC_ADD"},
2499      {GL_FUNC_SUBTRACT, "GL_FUNC_SUBTRACT"},
2500      {GL_FUNC_REVERSE_SUBTRACT, "GL_FUNC_REVERSE_SUBTRACT"},
2501  };
2502  return GLES2Util::GetQualifiedEnumString(
2503      string_table, arraysize(string_table), value);
2504}
2505
2506std::string GLES2Util::GetStringFaceMode(uint32_t value) {
2507  static const EnumToString string_table[] = {
2508      {GL_CW, "GL_CW"}, {GL_CCW, "GL_CCW"},
2509  };
2510  return GLES2Util::GetQualifiedEnumString(
2511      string_table, arraysize(string_table), value);
2512}
2513
2514std::string GLES2Util::GetStringFaceType(uint32_t value) {
2515  static const EnumToString string_table[] = {
2516      {GL_FRONT, "GL_FRONT"},
2517      {GL_BACK, "GL_BACK"},
2518      {GL_FRONT_AND_BACK, "GL_FRONT_AND_BACK"},
2519  };
2520  return GLES2Util::GetQualifiedEnumString(
2521      string_table, arraysize(string_table), value);
2522}
2523
2524std::string GLES2Util::GetStringFrameBufferParameter(uint32_t value) {
2525  static const EnumToString string_table[] = {
2526      {GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
2527       "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"},
2528      {GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
2529       "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"},
2530      {GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
2531       "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"},
2532      {GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
2533       "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"},
2534  };
2535  return GLES2Util::GetQualifiedEnumString(
2536      string_table, arraysize(string_table), value);
2537}
2538
2539std::string GLES2Util::GetStringFrameBufferTarget(uint32_t value) {
2540  static const EnumToString string_table[] = {
2541      {GL_FRAMEBUFFER, "GL_FRAMEBUFFER"},
2542  };
2543  return GLES2Util::GetQualifiedEnumString(
2544      string_table, arraysize(string_table), value);
2545}
2546
2547std::string GLES2Util::GetStringGLState(uint32_t value) {
2548  static const EnumToString string_table[] = {
2549      {GL_ACTIVE_TEXTURE, "GL_ACTIVE_TEXTURE"},
2550      {GL_ALIASED_LINE_WIDTH_RANGE, "GL_ALIASED_LINE_WIDTH_RANGE"},
2551      {GL_ALIASED_POINT_SIZE_RANGE, "GL_ALIASED_POINT_SIZE_RANGE"},
2552      {GL_ALPHA_BITS, "GL_ALPHA_BITS"},
2553      {GL_ARRAY_BUFFER_BINDING, "GL_ARRAY_BUFFER_BINDING"},
2554      {GL_BLUE_BITS, "GL_BLUE_BITS"},
2555      {GL_COMPRESSED_TEXTURE_FORMATS, "GL_COMPRESSED_TEXTURE_FORMATS"},
2556      {GL_CURRENT_PROGRAM, "GL_CURRENT_PROGRAM"},
2557      {GL_DEPTH_BITS, "GL_DEPTH_BITS"},
2558      {GL_DEPTH_RANGE, "GL_DEPTH_RANGE"},
2559      {GL_ELEMENT_ARRAY_BUFFER_BINDING, "GL_ELEMENT_ARRAY_BUFFER_BINDING"},
2560      {GL_FRAMEBUFFER_BINDING, "GL_FRAMEBUFFER_BINDING"},
2561      {GL_GENERATE_MIPMAP_HINT, "GL_GENERATE_MIPMAP_HINT"},
2562      {GL_GREEN_BITS, "GL_GREEN_BITS"},
2563      {GL_IMPLEMENTATION_COLOR_READ_FORMAT,
2564       "GL_IMPLEMENTATION_COLOR_READ_FORMAT"},
2565      {GL_IMPLEMENTATION_COLOR_READ_TYPE, "GL_IMPLEMENTATION_COLOR_READ_TYPE"},
2566      {GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
2567       "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"},
2568      {GL_MAX_CUBE_MAP_TEXTURE_SIZE, "GL_MAX_CUBE_MAP_TEXTURE_SIZE"},
2569      {GL_MAX_FRAGMENT_UNIFORM_VECTORS, "GL_MAX_FRAGMENT_UNIFORM_VECTORS"},
2570      {GL_MAX_RENDERBUFFER_SIZE, "GL_MAX_RENDERBUFFER_SIZE"},
2571      {GL_MAX_TEXTURE_IMAGE_UNITS, "GL_MAX_TEXTURE_IMAGE_UNITS"},
2572      {GL_MAX_TEXTURE_SIZE, "GL_MAX_TEXTURE_SIZE"},
2573      {GL_MAX_VARYING_VECTORS, "GL_MAX_VARYING_VECTORS"},
2574      {GL_MAX_VERTEX_ATTRIBS, "GL_MAX_VERTEX_ATTRIBS"},
2575      {GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"},
2576      {GL_MAX_VERTEX_UNIFORM_VECTORS, "GL_MAX_VERTEX_UNIFORM_VECTORS"},
2577      {GL_MAX_VIEWPORT_DIMS, "GL_MAX_VIEWPORT_DIMS"},
2578      {GL_NUM_COMPRESSED_TEXTURE_FORMATS, "GL_NUM_COMPRESSED_TEXTURE_FORMATS"},
2579      {GL_NUM_SHADER_BINARY_FORMATS, "GL_NUM_SHADER_BINARY_FORMATS"},
2580      {GL_PACK_ALIGNMENT, "GL_PACK_ALIGNMENT"},
2581      {GL_RED_BITS, "GL_RED_BITS"},
2582      {GL_RENDERBUFFER_BINDING, "GL_RENDERBUFFER_BINDING"},
2583      {GL_SAMPLE_BUFFERS, "GL_SAMPLE_BUFFERS"},
2584      {GL_SAMPLE_COVERAGE_INVERT, "GL_SAMPLE_COVERAGE_INVERT"},
2585      {GL_SAMPLE_COVERAGE_VALUE, "GL_SAMPLE_COVERAGE_VALUE"},
2586      {GL_SAMPLES, "GL_SAMPLES"},
2587      {GL_SCISSOR_BOX, "GL_SCISSOR_BOX"},
2588      {GL_SHADER_BINARY_FORMATS, "GL_SHADER_BINARY_FORMATS"},
2589      {GL_SHADER_COMPILER, "GL_SHADER_COMPILER"},
2590      {GL_SUBPIXEL_BITS, "GL_SUBPIXEL_BITS"},
2591      {GL_STENCIL_BITS, "GL_STENCIL_BITS"},
2592      {GL_TEXTURE_BINDING_2D, "GL_TEXTURE_BINDING_2D"},
2593      {GL_TEXTURE_BINDING_CUBE_MAP, "GL_TEXTURE_BINDING_CUBE_MAP"},
2594      {GL_UNPACK_ALIGNMENT, "GL_UNPACK_ALIGNMENT"},
2595      {GL_UNPACK_FLIP_Y_CHROMIUM, "GL_UNPACK_FLIP_Y_CHROMIUM"},
2596      {GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM,
2597       "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM"},
2598      {GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
2599       "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM"},
2600      {GL_BIND_GENERATES_RESOURCE_CHROMIUM,
2601       "GL_BIND_GENERATES_RESOURCE_CHROMIUM"},
2602      {GL_VERTEX_ARRAY_BINDING_OES, "GL_VERTEX_ARRAY_BINDING_OES"},
2603      {GL_VIEWPORT, "GL_VIEWPORT"},
2604      {GL_BLEND_COLOR, "GL_BLEND_COLOR"},
2605      {GL_BLEND_EQUATION_RGB, "GL_BLEND_EQUATION_RGB"},
2606      {GL_BLEND_EQUATION_ALPHA, "GL_BLEND_EQUATION_ALPHA"},
2607      {GL_BLEND_SRC_RGB, "GL_BLEND_SRC_RGB"},
2608      {GL_BLEND_DST_RGB, "GL_BLEND_DST_RGB"},
2609      {GL_BLEND_SRC_ALPHA, "GL_BLEND_SRC_ALPHA"},
2610      {GL_BLEND_DST_ALPHA, "GL_BLEND_DST_ALPHA"},
2611      {GL_COLOR_CLEAR_VALUE, "GL_COLOR_CLEAR_VALUE"},
2612      {GL_DEPTH_CLEAR_VALUE, "GL_DEPTH_CLEAR_VALUE"},
2613      {GL_STENCIL_CLEAR_VALUE, "GL_STENCIL_CLEAR_VALUE"},
2614      {GL_COLOR_WRITEMASK, "GL_COLOR_WRITEMASK"},
2615      {GL_CULL_FACE_MODE, "GL_CULL_FACE_MODE"},
2616      {GL_DEPTH_FUNC, "GL_DEPTH_FUNC"},
2617      {GL_DEPTH_WRITEMASK, "GL_DEPTH_WRITEMASK"},
2618      {GL_FRONT_FACE, "GL_FRONT_FACE"},
2619      {GL_LINE_WIDTH, "GL_LINE_WIDTH"},
2620      {GL_POLYGON_OFFSET_FACTOR, "GL_POLYGON_OFFSET_FACTOR"},
2621      {GL_POLYGON_OFFSET_UNITS, "GL_POLYGON_OFFSET_UNITS"},
2622      {GL_STENCIL_FUNC, "GL_STENCIL_FUNC"},
2623      {GL_STENCIL_REF, "GL_STENCIL_REF"},
2624      {GL_STENCIL_VALUE_MASK, "GL_STENCIL_VALUE_MASK"},
2625      {GL_STENCIL_BACK_FUNC, "GL_STENCIL_BACK_FUNC"},
2626      {GL_STENCIL_BACK_REF, "GL_STENCIL_BACK_REF"},
2627      {GL_STENCIL_BACK_VALUE_MASK, "GL_STENCIL_BACK_VALUE_MASK"},
2628      {GL_STENCIL_WRITEMASK, "GL_STENCIL_WRITEMASK"},
2629      {GL_STENCIL_BACK_WRITEMASK, "GL_STENCIL_BACK_WRITEMASK"},
2630      {GL_STENCIL_FAIL, "GL_STENCIL_FAIL"},
2631      {GL_STENCIL_PASS_DEPTH_FAIL, "GL_STENCIL_PASS_DEPTH_FAIL"},
2632      {GL_STENCIL_PASS_DEPTH_PASS, "GL_STENCIL_PASS_DEPTH_PASS"},
2633      {GL_STENCIL_BACK_FAIL, "GL_STENCIL_BACK_FAIL"},
2634      {GL_STENCIL_BACK_PASS_DEPTH_FAIL, "GL_STENCIL_BACK_PASS_DEPTH_FAIL"},
2635      {GL_STENCIL_BACK_PASS_DEPTH_PASS, "GL_STENCIL_BACK_PASS_DEPTH_PASS"},
2636      {GL_BLEND, "GL_BLEND"},
2637      {GL_CULL_FACE, "GL_CULL_FACE"},
2638      {GL_DEPTH_TEST, "GL_DEPTH_TEST"},
2639      {GL_DITHER, "GL_DITHER"},
2640      {GL_POLYGON_OFFSET_FILL, "GL_POLYGON_OFFSET_FILL"},
2641      {GL_SAMPLE_ALPHA_TO_COVERAGE, "GL_SAMPLE_ALPHA_TO_COVERAGE"},
2642      {GL_SAMPLE_COVERAGE, "GL_SAMPLE_COVERAGE"},
2643      {GL_SCISSOR_TEST, "GL_SCISSOR_TEST"},
2644      {GL_STENCIL_TEST, "GL_STENCIL_TEST"},
2645  };
2646  return GLES2Util::GetQualifiedEnumString(
2647      string_table, arraysize(string_table), value);
2648}
2649
2650std::string GLES2Util::GetStringGetMaxIndexType(uint32_t value) {
2651  static const EnumToString string_table[] = {
2652      {GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE"},
2653      {GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
2654      {GL_UNSIGNED_INT, "GL_UNSIGNED_INT"},
2655  };
2656  return GLES2Util::GetQualifiedEnumString(
2657      string_table, arraysize(string_table), value);
2658}
2659
2660std::string GLES2Util::GetStringGetTexParamTarget(uint32_t value) {
2661  static const EnumToString string_table[] = {
2662      {GL_TEXTURE_2D, "GL_TEXTURE_2D"},
2663      {GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP"},
2664  };
2665  return GLES2Util::GetQualifiedEnumString(
2666      string_table, arraysize(string_table), value);
2667}
2668
2669std::string GLES2Util::GetStringHintMode(uint32_t value) {
2670  static const EnumToString string_table[] = {
2671      {GL_FASTEST, "GL_FASTEST"},
2672      {GL_NICEST, "GL_NICEST"},
2673      {GL_DONT_CARE, "GL_DONT_CARE"},
2674  };
2675  return GLES2Util::GetQualifiedEnumString(
2676      string_table, arraysize(string_table), value);
2677}
2678
2679std::string GLES2Util::GetStringHintTarget(uint32_t value) {
2680  static const EnumToString string_table[] = {
2681      {GL_GENERATE_MIPMAP_HINT, "GL_GENERATE_MIPMAP_HINT"},
2682  };
2683  return GLES2Util::GetQualifiedEnumString(
2684      string_table, arraysize(string_table), value);
2685}
2686
2687std::string GLES2Util::GetStringIndexType(uint32_t value) {
2688  static const EnumToString string_table[] = {
2689      {GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE"},
2690      {GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
2691  };
2692  return GLES2Util::GetQualifiedEnumString(
2693      string_table, arraysize(string_table), value);
2694}
2695
2696std::string GLES2Util::GetStringMatrixMode(uint32_t value) {
2697  static const EnumToString string_table[] = {
2698      {GL_PATH_PROJECTION_CHROMIUM, "GL_PATH_PROJECTION_CHROMIUM"},
2699      {GL_PATH_MODELVIEW_CHROMIUM, "GL_PATH_MODELVIEW_CHROMIUM"},
2700  };
2701  return GLES2Util::GetQualifiedEnumString(
2702      string_table, arraysize(string_table), value);
2703}
2704
2705std::string GLES2Util::GetStringPixelStore(uint32_t value) {
2706  static const EnumToString string_table[] = {
2707      {GL_PACK_ALIGNMENT, "GL_PACK_ALIGNMENT"},
2708      {GL_UNPACK_ALIGNMENT, "GL_UNPACK_ALIGNMENT"},
2709      {GL_UNPACK_FLIP_Y_CHROMIUM, "GL_UNPACK_FLIP_Y_CHROMIUM"},
2710      {GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM,
2711       "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM"},
2712      {GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
2713       "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM"},
2714  };
2715  return GLES2Util::GetQualifiedEnumString(
2716      string_table, arraysize(string_table), value);
2717}
2718
2719std::string GLES2Util::GetStringPixelType(uint32_t value) {
2720  static const EnumToString string_table[] = {
2721      {GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE"},
2722      {GL_UNSIGNED_SHORT_5_6_5, "GL_UNSIGNED_SHORT_5_6_5"},
2723      {GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4"},
2724      {GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1"},
2725  };
2726  return GLES2Util::GetQualifiedEnumString(
2727      string_table, arraysize(string_table), value);
2728}
2729
2730std::string GLES2Util::GetStringProgramParameter(uint32_t value) {
2731  static const EnumToString string_table[] = {
2732      {GL_DELETE_STATUS, "GL_DELETE_STATUS"},
2733      {GL_LINK_STATUS, "GL_LINK_STATUS"},
2734      {GL_VALIDATE_STATUS, "GL_VALIDATE_STATUS"},
2735      {GL_INFO_LOG_LENGTH, "GL_INFO_LOG_LENGTH"},
2736      {GL_ATTACHED_SHADERS, "GL_ATTACHED_SHADERS"},
2737      {GL_ACTIVE_ATTRIBUTES, "GL_ACTIVE_ATTRIBUTES"},
2738      {GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"},
2739      {GL_ACTIVE_UNIFORMS, "GL_ACTIVE_UNIFORMS"},
2740      {GL_ACTIVE_UNIFORM_MAX_LENGTH, "GL_ACTIVE_UNIFORM_MAX_LENGTH"},
2741  };
2742  return GLES2Util::GetQualifiedEnumString(
2743      string_table, arraysize(string_table), value);
2744}
2745
2746std::string GLES2Util::GetStringQueryObjectParameter(uint32_t value) {
2747  static const EnumToString string_table[] = {
2748      {GL_QUERY_RESULT_EXT, "GL_QUERY_RESULT_EXT"},
2749      {GL_QUERY_RESULT_AVAILABLE_EXT, "GL_QUERY_RESULT_AVAILABLE_EXT"},
2750  };
2751  return GLES2Util::GetQualifiedEnumString(
2752      string_table, arraysize(string_table), value);
2753}
2754
2755std::string GLES2Util::GetStringQueryParameter(uint32_t value) {
2756  static const EnumToString string_table[] = {
2757      {GL_CURRENT_QUERY_EXT, "GL_CURRENT_QUERY_EXT"},
2758  };
2759  return GLES2Util::GetQualifiedEnumString(
2760      string_table, arraysize(string_table), value);
2761}
2762
2763std::string GLES2Util::GetStringQueryTarget(uint32_t value) {
2764  static const EnumToString string_table[] = {
2765      {GL_ANY_SAMPLES_PASSED_EXT, "GL_ANY_SAMPLES_PASSED_EXT"},
2766      {GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT,
2767       "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"},
2768      {GL_COMMANDS_ISSUED_CHROMIUM, "GL_COMMANDS_ISSUED_CHROMIUM"},
2769      {GL_LATENCY_QUERY_CHROMIUM, "GL_LATENCY_QUERY_CHROMIUM"},
2770      {GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM,
2771       "GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM"},
2772      {GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM,
2773       "GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM"},
2774      {GL_COMMANDS_COMPLETED_CHROMIUM, "GL_COMMANDS_COMPLETED_CHROMIUM"},
2775  };
2776  return GLES2Util::GetQualifiedEnumString(
2777      string_table, arraysize(string_table), value);
2778}
2779
2780std::string GLES2Util::GetStringReadPixelFormat(uint32_t value) {
2781  static const EnumToString string_table[] = {
2782      {GL_ALPHA, "GL_ALPHA"}, {GL_RGB, "GL_RGB"}, {GL_RGBA, "GL_RGBA"},
2783  };
2784  return GLES2Util::GetQualifiedEnumString(
2785      string_table, arraysize(string_table), value);
2786}
2787
2788std::string GLES2Util::GetStringReadPixelType(uint32_t value) {
2789  static const EnumToString string_table[] = {
2790      {GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE"},
2791      {GL_UNSIGNED_SHORT_5_6_5, "GL_UNSIGNED_SHORT_5_6_5"},
2792      {GL_UNSIGNED_SHORT_4_4_4_4, "GL_UNSIGNED_SHORT_4_4_4_4"},
2793      {GL_UNSIGNED_SHORT_5_5_5_1, "GL_UNSIGNED_SHORT_5_5_5_1"},
2794  };
2795  return GLES2Util::GetQualifiedEnumString(
2796      string_table, arraysize(string_table), value);
2797}
2798
2799std::string GLES2Util::GetStringRenderBufferFormat(uint32_t value) {
2800  static const EnumToString string_table[] = {
2801      {GL_RGBA4, "GL_RGBA4"},
2802      {GL_RGB565, "GL_RGB565"},
2803      {GL_RGB5_A1, "GL_RGB5_A1"},
2804      {GL_DEPTH_COMPONENT16, "GL_DEPTH_COMPONENT16"},
2805      {GL_STENCIL_INDEX8, "GL_STENCIL_INDEX8"},
2806  };
2807  return GLES2Util::GetQualifiedEnumString(
2808      string_table, arraysize(string_table), value);
2809}
2810
2811std::string GLES2Util::GetStringRenderBufferParameter(uint32_t value) {
2812  static const EnumToString string_table[] = {
2813      {GL_RENDERBUFFER_RED_SIZE, "GL_RENDERBUFFER_RED_SIZE"},
2814      {GL_RENDERBUFFER_GREEN_SIZE, "GL_RENDERBUFFER_GREEN_SIZE"},
2815      {GL_RENDERBUFFER_BLUE_SIZE, "GL_RENDERBUFFER_BLUE_SIZE"},
2816      {GL_RENDERBUFFER_ALPHA_SIZE, "GL_RENDERBUFFER_ALPHA_SIZE"},
2817      {GL_RENDERBUFFER_DEPTH_SIZE, "GL_RENDERBUFFER_DEPTH_SIZE"},
2818      {GL_RENDERBUFFER_STENCIL_SIZE, "GL_RENDERBUFFER_STENCIL_SIZE"},
2819      {GL_RENDERBUFFER_WIDTH, "GL_RENDERBUFFER_WIDTH"},
2820      {GL_RENDERBUFFER_HEIGHT, "GL_RENDERBUFFER_HEIGHT"},
2821      {GL_RENDERBUFFER_INTERNAL_FORMAT, "GL_RENDERBUFFER_INTERNAL_FORMAT"},
2822  };
2823  return GLES2Util::GetQualifiedEnumString(
2824      string_table, arraysize(string_table), value);
2825}
2826
2827std::string GLES2Util::GetStringRenderBufferTarget(uint32_t value) {
2828  static const EnumToString string_table[] = {
2829      {GL_RENDERBUFFER, "GL_RENDERBUFFER"},
2830  };
2831  return GLES2Util::GetQualifiedEnumString(
2832      string_table, arraysize(string_table), value);
2833}
2834
2835std::string GLES2Util::GetStringResetStatus(uint32_t value) {
2836  static const EnumToString string_table[] = {
2837      {GL_GUILTY_CONTEXT_RESET_ARB, "GL_GUILTY_CONTEXT_RESET_ARB"},
2838      {GL_INNOCENT_CONTEXT_RESET_ARB, "GL_INNOCENT_CONTEXT_RESET_ARB"},
2839      {GL_UNKNOWN_CONTEXT_RESET_ARB, "GL_UNKNOWN_CONTEXT_RESET_ARB"},
2840  };
2841  return GLES2Util::GetQualifiedEnumString(
2842      string_table, arraysize(string_table), value);
2843}
2844
2845std::string GLES2Util::GetStringShaderBinaryFormat(uint32_t value) {
2846  return GLES2Util::GetQualifiedEnumString(NULL, 0, value);
2847}
2848
2849std::string GLES2Util::GetStringShaderParameter(uint32_t value) {
2850  static const EnumToString string_table[] = {
2851      {GL_SHADER_TYPE, "GL_SHADER_TYPE"},
2852      {GL_DELETE_STATUS, "GL_DELETE_STATUS"},
2853      {GL_COMPILE_STATUS, "GL_COMPILE_STATUS"},
2854      {GL_INFO_LOG_LENGTH, "GL_INFO_LOG_LENGTH"},
2855      {GL_SHADER_SOURCE_LENGTH, "GL_SHADER_SOURCE_LENGTH"},
2856      {GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
2857       "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"},
2858  };
2859  return GLES2Util::GetQualifiedEnumString(
2860      string_table, arraysize(string_table), value);
2861}
2862
2863std::string GLES2Util::GetStringShaderPrecision(uint32_t value) {
2864  static const EnumToString string_table[] = {
2865      {GL_LOW_FLOAT, "GL_LOW_FLOAT"},
2866      {GL_MEDIUM_FLOAT, "GL_MEDIUM_FLOAT"},
2867      {GL_HIGH_FLOAT, "GL_HIGH_FLOAT"},
2868      {GL_LOW_INT, "GL_LOW_INT"},
2869      {GL_MEDIUM_INT, "GL_MEDIUM_INT"},
2870      {GL_HIGH_INT, "GL_HIGH_INT"},
2871  };
2872  return GLES2Util::GetQualifiedEnumString(
2873      string_table, arraysize(string_table), value);
2874}
2875
2876std::string GLES2Util::GetStringShaderType(uint32_t value) {
2877  static const EnumToString string_table[] = {
2878      {GL_VERTEX_SHADER, "GL_VERTEX_SHADER"},
2879      {GL_FRAGMENT_SHADER, "GL_FRAGMENT_SHADER"},
2880  };
2881  return GLES2Util::GetQualifiedEnumString(
2882      string_table, arraysize(string_table), value);
2883}
2884
2885std::string GLES2Util::GetStringSrcBlendFactor(uint32_t value) {
2886  static const EnumToString string_table[] = {
2887      {GL_ZERO, "GL_ZERO"},
2888      {GL_ONE, "GL_ONE"},
2889      {GL_SRC_COLOR, "GL_SRC_COLOR"},
2890      {GL_ONE_MINUS_SRC_COLOR, "GL_ONE_MINUS_SRC_COLOR"},
2891      {GL_DST_COLOR, "GL_DST_COLOR"},
2892      {GL_ONE_MINUS_DST_COLOR, "GL_ONE_MINUS_DST_COLOR"},
2893      {GL_SRC_ALPHA, "GL_SRC_ALPHA"},
2894      {GL_ONE_MINUS_SRC_ALPHA, "GL_ONE_MINUS_SRC_ALPHA"},
2895      {GL_DST_ALPHA, "GL_DST_ALPHA"},
2896      {GL_ONE_MINUS_DST_ALPHA, "GL_ONE_MINUS_DST_ALPHA"},
2897      {GL_CONSTANT_COLOR, "GL_CONSTANT_COLOR"},
2898      {GL_ONE_MINUS_CONSTANT_COLOR, "GL_ONE_MINUS_CONSTANT_COLOR"},
2899      {GL_CONSTANT_ALPHA, "GL_CONSTANT_ALPHA"},
2900      {GL_ONE_MINUS_CONSTANT_ALPHA, "GL_ONE_MINUS_CONSTANT_ALPHA"},
2901      {GL_SRC_ALPHA_SATURATE, "GL_SRC_ALPHA_SATURATE"},
2902  };
2903  return GLES2Util::GetQualifiedEnumString(
2904      string_table, arraysize(string_table), value);
2905}
2906
2907std::string GLES2Util::GetStringStencilOp(uint32_t value) {
2908  static const EnumToString string_table[] = {
2909      {GL_KEEP, "GL_KEEP"},
2910      {GL_ZERO, "GL_ZERO"},
2911      {GL_REPLACE, "GL_REPLACE"},
2912      {GL_INCR, "GL_INCR"},
2913      {GL_INCR_WRAP, "GL_INCR_WRAP"},
2914      {GL_DECR, "GL_DECR"},
2915      {GL_DECR_WRAP, "GL_DECR_WRAP"},
2916      {GL_INVERT, "GL_INVERT"},
2917  };
2918  return GLES2Util::GetQualifiedEnumString(
2919      string_table, arraysize(string_table), value);
2920}
2921
2922std::string GLES2Util::GetStringStringType(uint32_t value) {
2923  static const EnumToString string_table[] = {
2924      {GL_VENDOR, "GL_VENDOR"},
2925      {GL_RENDERER, "GL_RENDERER"},
2926      {GL_VERSION, "GL_VERSION"},
2927      {GL_SHADING_LANGUAGE_VERSION, "GL_SHADING_LANGUAGE_VERSION"},
2928      {GL_EXTENSIONS, "GL_EXTENSIONS"},
2929  };
2930  return GLES2Util::GetQualifiedEnumString(
2931      string_table, arraysize(string_table), value);
2932}
2933
2934std::string GLES2Util::GetStringTextureBindTarget(uint32_t value) {
2935  static const EnumToString string_table[] = {
2936      {GL_TEXTURE_2D, "GL_TEXTURE_2D"},
2937      {GL_TEXTURE_CUBE_MAP, "GL_TEXTURE_CUBE_MAP"},
2938  };
2939  return GLES2Util::GetQualifiedEnumString(
2940      string_table, arraysize(string_table), value);
2941}
2942
2943std::string GLES2Util::GetStringTextureFormat(uint32_t value) {
2944  static const EnumToString string_table[] = {
2945      {GL_ALPHA, "GL_ALPHA"},
2946      {GL_LUMINANCE, "GL_LUMINANCE"},
2947      {GL_LUMINANCE_ALPHA, "GL_LUMINANCE_ALPHA"},
2948      {GL_RGB, "GL_RGB"},
2949      {GL_RGBA, "GL_RGBA"},
2950  };
2951  return GLES2Util::GetQualifiedEnumString(
2952      string_table, arraysize(string_table), value);
2953}
2954
2955std::string GLES2Util::GetStringTextureInternalFormat(uint32_t value) {
2956  static const EnumToString string_table[] = {
2957      {GL_ALPHA, "GL_ALPHA"},
2958      {GL_LUMINANCE, "GL_LUMINANCE"},
2959      {GL_LUMINANCE_ALPHA, "GL_LUMINANCE_ALPHA"},
2960      {GL_RGB, "GL_RGB"},
2961      {GL_RGBA, "GL_RGBA"},
2962  };
2963  return GLES2Util::GetQualifiedEnumString(
2964      string_table, arraysize(string_table), value);
2965}
2966
2967std::string GLES2Util::GetStringTextureInternalFormatStorage(uint32_t value) {
2968  static const EnumToString string_table[] = {
2969      {GL_RGB565, "GL_RGB565"},
2970      {GL_RGBA4, "GL_RGBA4"},
2971      {GL_RGB5_A1, "GL_RGB5_A1"},
2972      {GL_ALPHA8_EXT, "GL_ALPHA8_EXT"},
2973      {GL_LUMINANCE8_EXT, "GL_LUMINANCE8_EXT"},
2974      {GL_LUMINANCE8_ALPHA8_EXT, "GL_LUMINANCE8_ALPHA8_EXT"},
2975      {GL_RGB8_OES, "GL_RGB8_OES"},
2976      {GL_RGBA8_OES, "GL_RGBA8_OES"},
2977  };
2978  return GLES2Util::GetQualifiedEnumString(
2979      string_table, arraysize(string_table), value);
2980}
2981
2982std::string GLES2Util::GetStringTextureMagFilterMode(uint32_t value) {
2983  static const EnumToString string_table[] = {
2984      {GL_NEAREST, "GL_NEAREST"}, {GL_LINEAR, "GL_LINEAR"},
2985  };
2986  return GLES2Util::GetQualifiedEnumString(
2987      string_table, arraysize(string_table), value);
2988}
2989
2990std::string GLES2Util::GetStringTextureMinFilterMode(uint32_t value) {
2991  static const EnumToString string_table[] = {
2992      {GL_NEAREST, "GL_NEAREST"},
2993      {GL_LINEAR, "GL_LINEAR"},
2994      {GL_NEAREST_MIPMAP_NEAREST, "GL_NEAREST_MIPMAP_NEAREST"},
2995      {GL_LINEAR_MIPMAP_NEAREST, "GL_LINEAR_MIPMAP_NEAREST"},
2996      {GL_NEAREST_MIPMAP_LINEAR, "GL_NEAREST_MIPMAP_LINEAR"},
2997      {GL_LINEAR_MIPMAP_LINEAR, "GL_LINEAR_MIPMAP_LINEAR"},
2998  };
2999  return GLES2Util::GetQualifiedEnumString(
3000      string_table, arraysize(string_table), value);
3001}
3002
3003std::string GLES2Util::GetStringTextureParameter(uint32_t value) {
3004  static const EnumToString string_table[] = {
3005      {GL_TEXTURE_MAG_FILTER, "GL_TEXTURE_MAG_FILTER"},
3006      {GL_TEXTURE_MIN_FILTER, "GL_TEXTURE_MIN_FILTER"},
3007      {GL_TEXTURE_POOL_CHROMIUM, "GL_TEXTURE_POOL_CHROMIUM"},
3008      {GL_TEXTURE_WRAP_S, "GL_TEXTURE_WRAP_S"},
3009      {GL_TEXTURE_WRAP_T, "GL_TEXTURE_WRAP_T"},
3010  };
3011  return GLES2Util::GetQualifiedEnumString(
3012      string_table, arraysize(string_table), value);
3013}
3014
3015std::string GLES2Util::GetStringTexturePool(uint32_t value) {
3016  static const EnumToString string_table[] = {
3017      {GL_TEXTURE_POOL_MANAGED_CHROMIUM, "GL_TEXTURE_POOL_MANAGED_CHROMIUM"},
3018      {GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
3019       "GL_TEXTURE_POOL_UNMANAGED_CHROMIUM"},
3020  };
3021  return GLES2Util::GetQualifiedEnumString(
3022      string_table, arraysize(string_table), value);
3023}
3024
3025std::string GLES2Util::GetStringTextureTarget(uint32_t value) {
3026  static const EnumToString string_table[] = {
3027      {GL_TEXTURE_2D, "GL_TEXTURE_2D"},
3028      {GL_TEXTURE_CUBE_MAP_POSITIVE_X, "GL_TEXTURE_CUBE_MAP_POSITIVE_X"},
3029      {GL_TEXTURE_CUBE_MAP_NEGATIVE_X, "GL_TEXTURE_CUBE_MAP_NEGATIVE_X"},
3030      {GL_TEXTURE_CUBE_MAP_POSITIVE_Y, "GL_TEXTURE_CUBE_MAP_POSITIVE_Y"},
3031      {GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"},
3032      {GL_TEXTURE_CUBE_MAP_POSITIVE_Z, "GL_TEXTURE_CUBE_MAP_POSITIVE_Z"},
3033      {GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"},
3034  };
3035  return GLES2Util::GetQualifiedEnumString(
3036      string_table, arraysize(string_table), value);
3037}
3038
3039std::string GLES2Util::GetStringTextureUsage(uint32_t value) {
3040  static const EnumToString string_table[] = {
3041      {GL_NONE, "GL_NONE"},
3042      {GL_FRAMEBUFFER_ATTACHMENT_ANGLE, "GL_FRAMEBUFFER_ATTACHMENT_ANGLE"},
3043  };
3044  return GLES2Util::GetQualifiedEnumString(
3045      string_table, arraysize(string_table), value);
3046}
3047
3048std::string GLES2Util::GetStringTextureWrapMode(uint32_t value) {
3049  static const EnumToString string_table[] = {
3050      {GL_CLAMP_TO_EDGE, "GL_CLAMP_TO_EDGE"},
3051      {GL_MIRRORED_REPEAT, "GL_MIRRORED_REPEAT"},
3052      {GL_REPEAT, "GL_REPEAT"},
3053  };
3054  return GLES2Util::GetQualifiedEnumString(
3055      string_table, arraysize(string_table), value);
3056}
3057
3058std::string GLES2Util::GetStringVertexAttribType(uint32_t value) {
3059  static const EnumToString string_table[] = {
3060      {GL_BYTE, "GL_BYTE"},
3061      {GL_UNSIGNED_BYTE, "GL_UNSIGNED_BYTE"},
3062      {GL_SHORT, "GL_SHORT"},
3063      {GL_UNSIGNED_SHORT, "GL_UNSIGNED_SHORT"},
3064      {GL_FLOAT, "GL_FLOAT"},
3065  };
3066  return GLES2Util::GetQualifiedEnumString(
3067      string_table, arraysize(string_table), value);
3068}
3069
3070std::string GLES2Util::GetStringVertexAttribute(uint32_t value) {
3071  static const EnumToString string_table[] = {
3072      {GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"},
3073      {GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
3074       "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"},
3075      {GL_VERTEX_ATTRIB_ARRAY_ENABLED, "GL_VERTEX_ATTRIB_ARRAY_ENABLED"},
3076      {GL_VERTEX_ATTRIB_ARRAY_SIZE, "GL_VERTEX_ATTRIB_ARRAY_SIZE"},
3077      {GL_VERTEX_ATTRIB_ARRAY_STRIDE, "GL_VERTEX_ATTRIB_ARRAY_STRIDE"},
3078      {GL_VERTEX_ATTRIB_ARRAY_TYPE, "GL_VERTEX_ATTRIB_ARRAY_TYPE"},
3079      {GL_CURRENT_VERTEX_ATTRIB, "GL_CURRENT_VERTEX_ATTRIB"},
3080  };
3081  return GLES2Util::GetQualifiedEnumString(
3082      string_table, arraysize(string_table), value);
3083}
3084
3085std::string GLES2Util::GetStringVertexPointer(uint32_t value) {
3086  static const EnumToString string_table[] = {
3087      {GL_VERTEX_ATTRIB_ARRAY_POINTER, "GL_VERTEX_ATTRIB_ARRAY_POINTER"},
3088  };
3089  return GLES2Util::GetQualifiedEnumString(
3090      string_table, arraysize(string_table), value);
3091}
3092
3093#endif  // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_IMPLEMENTATION_AUTOGEN_H_
3094