1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // This file is auto-generated from
6 // gpu/command_buffer/build_gles2_cmd_buffer.py
7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename
11 #ifndef GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_
12 #define GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_
14 static const GLenum valid_attachment_table
[] = {
15 GL_COLOR_ATTACHMENT0
, GL_DEPTH_ATTACHMENT
, GL_STENCIL_ATTACHMENT
,
18 static const GLenum valid_backbuffer_attachment_table
[] = {
19 GL_COLOR_EXT
, GL_DEPTH_EXT
, GL_STENCIL_EXT
,
22 static const GLenum valid_blit_filter_table
[] = {
23 GL_NEAREST
, GL_LINEAR
,
26 static const GLenum valid_buffer_parameter_table
[] = {
27 GL_BUFFER_SIZE
, GL_BUFFER_USAGE
,
30 static const GLenum valid_buffer_target_table
[] = {
31 GL_ARRAY_BUFFER
, GL_ELEMENT_ARRAY_BUFFER
,
34 static const GLenum valid_buffer_usage_table
[] = {
35 GL_STREAM_DRAW
, GL_STATIC_DRAW
, GL_DYNAMIC_DRAW
,
38 static const GLenum valid_capability_table
[] = {
39 GL_BLEND
, GL_CULL_FACE
, GL_DEPTH_TEST
,
40 GL_DITHER
, GL_POLYGON_OFFSET_FILL
, GL_SAMPLE_ALPHA_TO_COVERAGE
,
41 GL_SAMPLE_COVERAGE
, GL_SCISSOR_TEST
, GL_STENCIL_TEST
,
44 static const GLenum valid_cmp_function_table
[] = {
45 GL_NEVER
, GL_LESS
, GL_EQUAL
, GL_LEQUAL
,
46 GL_GREATER
, GL_NOTEQUAL
, GL_GEQUAL
, GL_ALWAYS
,
49 static const GLenum valid_draw_mode_table
[] = {
50 GL_POINTS
, GL_LINE_STRIP
, GL_LINE_LOOP
, GL_LINES
,
51 GL_TRIANGLE_STRIP
, GL_TRIANGLE_FAN
, GL_TRIANGLES
,
54 static const GLenum valid_dst_blend_factor_table
[] = {
56 GL_SRC_COLOR
, GL_ONE_MINUS_SRC_COLOR
,
57 GL_DST_COLOR
, GL_ONE_MINUS_DST_COLOR
,
58 GL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
,
59 GL_DST_ALPHA
, GL_ONE_MINUS_DST_ALPHA
,
60 GL_CONSTANT_COLOR
, GL_ONE_MINUS_CONSTANT_COLOR
,
61 GL_CONSTANT_ALPHA
, GL_ONE_MINUS_CONSTANT_ALPHA
,
64 static const GLenum valid_equation_table
[] = {
65 GL_FUNC_ADD
, GL_FUNC_SUBTRACT
, GL_FUNC_REVERSE_SUBTRACT
,
68 static const GLenum valid_face_mode_table
[] = {
72 static const GLenum valid_face_type_table
[] = {
73 GL_FRONT
, GL_BACK
, GL_FRONT_AND_BACK
,
76 static const GLenum valid_frame_buffer_parameter_table
[] = {
77 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
,
78 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
,
79 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL
,
80 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
,
83 static const GLenum valid_frame_buffer_target_table
[] = {
87 static const GLenum valid_g_l_state_table
[] = {
89 GL_ALIASED_LINE_WIDTH_RANGE
,
90 GL_ALIASED_POINT_SIZE_RANGE
,
92 GL_ARRAY_BUFFER_BINDING
,
94 GL_COMPRESSED_TEXTURE_FORMATS
,
98 GL_ELEMENT_ARRAY_BUFFER_BINDING
,
99 GL_FRAMEBUFFER_BINDING
,
100 GL_GENERATE_MIPMAP_HINT
,
102 GL_IMPLEMENTATION_COLOR_READ_FORMAT
,
103 GL_IMPLEMENTATION_COLOR_READ_TYPE
,
104 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS
,
105 GL_MAX_CUBE_MAP_TEXTURE_SIZE
,
106 GL_MAX_FRAGMENT_UNIFORM_VECTORS
,
107 GL_MAX_RENDERBUFFER_SIZE
,
108 GL_MAX_TEXTURE_IMAGE_UNITS
,
110 GL_MAX_VARYING_VECTORS
,
111 GL_MAX_VERTEX_ATTRIBS
,
112 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS
,
113 GL_MAX_VERTEX_UNIFORM_VECTORS
,
114 GL_MAX_VIEWPORT_DIMS
,
115 GL_NUM_COMPRESSED_TEXTURE_FORMATS
,
116 GL_NUM_SHADER_BINARY_FORMATS
,
119 GL_RENDERBUFFER_BINDING
,
121 GL_SAMPLE_COVERAGE_INVERT
,
122 GL_SAMPLE_COVERAGE_VALUE
,
125 GL_SHADER_BINARY_FORMATS
,
129 GL_TEXTURE_BINDING_2D
,
130 GL_TEXTURE_BINDING_CUBE_MAP
,
132 GL_UNPACK_FLIP_Y_CHROMIUM
,
133 GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM
,
134 GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM
,
135 GL_BIND_GENERATES_RESOURCE_CHROMIUM
,
136 GL_VERTEX_ARRAY_BINDING_OES
,
139 GL_BLEND_EQUATION_RGB
,
140 GL_BLEND_EQUATION_ALPHA
,
145 GL_COLOR_CLEAR_VALUE
,
146 GL_DEPTH_CLEAR_VALUE
,
147 GL_STENCIL_CLEAR_VALUE
,
154 GL_POLYGON_OFFSET_FACTOR
,
155 GL_POLYGON_OFFSET_UNITS
,
158 GL_STENCIL_VALUE_MASK
,
159 GL_STENCIL_BACK_FUNC
,
161 GL_STENCIL_BACK_VALUE_MASK
,
162 GL_STENCIL_WRITEMASK
,
163 GL_STENCIL_BACK_WRITEMASK
,
165 GL_STENCIL_PASS_DEPTH_FAIL
,
166 GL_STENCIL_PASS_DEPTH_PASS
,
167 GL_STENCIL_BACK_FAIL
,
168 GL_STENCIL_BACK_PASS_DEPTH_FAIL
,
169 GL_STENCIL_BACK_PASS_DEPTH_PASS
,
174 GL_POLYGON_OFFSET_FILL
,
175 GL_SAMPLE_ALPHA_TO_COVERAGE
,
181 static const GLenum valid_get_max_index_type_table
[] = {
182 GL_UNSIGNED_BYTE
, GL_UNSIGNED_SHORT
, GL_UNSIGNED_INT
,
185 static const GLenum valid_get_tex_param_target_table
[] = {
186 GL_TEXTURE_2D
, GL_TEXTURE_CUBE_MAP
,
189 static const GLenum valid_hint_mode_table
[] = {
190 GL_FASTEST
, GL_NICEST
, GL_DONT_CARE
,
193 static const GLenum valid_hint_target_table
[] = {
194 GL_GENERATE_MIPMAP_HINT
,
197 static const GLenum valid_index_type_table
[] = {
198 GL_UNSIGNED_BYTE
, GL_UNSIGNED_SHORT
,
201 static const GLenum valid_pixel_store_table
[] = {
204 GL_UNPACK_FLIP_Y_CHROMIUM
,
205 GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM
,
206 GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM
,
209 static const GLint valid_pixel_store_alignment_table
[] = {
213 static const GLenum valid_pixel_type_table
[] = {
214 GL_UNSIGNED_BYTE
, GL_UNSIGNED_SHORT_5_6_5
, GL_UNSIGNED_SHORT_4_4_4_4
,
215 GL_UNSIGNED_SHORT_5_5_5_1
,
218 static const GLenum valid_program_parameter_table
[] = {
219 GL_DELETE_STATUS
, GL_LINK_STATUS
,
220 GL_VALIDATE_STATUS
, GL_INFO_LOG_LENGTH
,
221 GL_ATTACHED_SHADERS
, GL_ACTIVE_ATTRIBUTES
,
222 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
, GL_ACTIVE_UNIFORMS
,
223 GL_ACTIVE_UNIFORM_MAX_LENGTH
,
226 static const GLenum valid_query_object_parameter_table
[] = {
227 GL_QUERY_RESULT_EXT
, GL_QUERY_RESULT_AVAILABLE_EXT
,
230 static const GLenum valid_query_parameter_table
[] = {
231 GL_CURRENT_QUERY_EXT
,
234 static const GLenum valid_query_target_table
[] = {
235 GL_ANY_SAMPLES_PASSED_EXT
,
236 GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
,
237 GL_COMMANDS_ISSUED_CHROMIUM
,
238 GL_LATENCY_QUERY_CHROMIUM
,
239 GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM
,
240 GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM
,
241 GL_COMMANDS_COMPLETED_CHROMIUM
,
244 static const GLenum valid_read_pixel_format_table
[] = {
245 GL_ALPHA
, GL_RGB
, GL_RGBA
,
248 static const GLenum valid_read_pixel_type_table
[] = {
249 GL_UNSIGNED_BYTE
, GL_UNSIGNED_SHORT_5_6_5
, GL_UNSIGNED_SHORT_4_4_4_4
,
250 GL_UNSIGNED_SHORT_5_5_5_1
,
253 static const GLenum valid_render_buffer_format_table
[] = {
254 GL_RGBA4
, GL_RGB565
, GL_RGB5_A1
, GL_DEPTH_COMPONENT16
, GL_STENCIL_INDEX8
,
257 static const GLenum valid_render_buffer_parameter_table
[] = {
258 GL_RENDERBUFFER_RED_SIZE
, GL_RENDERBUFFER_GREEN_SIZE
,
259 GL_RENDERBUFFER_BLUE_SIZE
, GL_RENDERBUFFER_ALPHA_SIZE
,
260 GL_RENDERBUFFER_DEPTH_SIZE
, GL_RENDERBUFFER_STENCIL_SIZE
,
261 GL_RENDERBUFFER_WIDTH
, GL_RENDERBUFFER_HEIGHT
,
262 GL_RENDERBUFFER_INTERNAL_FORMAT
,
265 static const GLenum valid_render_buffer_target_table
[] = {
269 static const GLenum valid_reset_status_table
[] = {
270 GL_GUILTY_CONTEXT_RESET_ARB
, GL_INNOCENT_CONTEXT_RESET_ARB
,
271 GL_UNKNOWN_CONTEXT_RESET_ARB
,
274 static const GLenum valid_shader_parameter_table
[] = {
275 GL_SHADER_TYPE
, GL_DELETE_STATUS
,
276 GL_COMPILE_STATUS
, GL_INFO_LOG_LENGTH
,
277 GL_SHADER_SOURCE_LENGTH
, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
,
280 static const GLenum valid_shader_precision_table
[] = {
281 GL_LOW_FLOAT
, GL_MEDIUM_FLOAT
, GL_HIGH_FLOAT
,
282 GL_LOW_INT
, GL_MEDIUM_INT
, GL_HIGH_INT
,
285 static const GLenum valid_shader_type_table
[] = {
286 GL_VERTEX_SHADER
, GL_FRAGMENT_SHADER
,
289 static const GLenum valid_src_blend_factor_table
[] = {
291 GL_SRC_COLOR
, GL_ONE_MINUS_SRC_COLOR
,
292 GL_DST_COLOR
, GL_ONE_MINUS_DST_COLOR
,
293 GL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
,
294 GL_DST_ALPHA
, GL_ONE_MINUS_DST_ALPHA
,
295 GL_CONSTANT_COLOR
, GL_ONE_MINUS_CONSTANT_COLOR
,
296 GL_CONSTANT_ALPHA
, GL_ONE_MINUS_CONSTANT_ALPHA
,
297 GL_SRC_ALPHA_SATURATE
,
300 static const GLenum valid_stencil_op_table
[] = {
301 GL_KEEP
, GL_ZERO
, GL_REPLACE
, GL_INCR
,
302 GL_INCR_WRAP
, GL_DECR
, GL_DECR_WRAP
, GL_INVERT
,
305 static const GLenum valid_string_type_table
[] = {
306 GL_VENDOR
, GL_RENDERER
, GL_VERSION
,
307 GL_SHADING_LANGUAGE_VERSION
, GL_EXTENSIONS
,
310 static const GLenum valid_texture_bind_target_table
[] = {
311 GL_TEXTURE_2D
, GL_TEXTURE_CUBE_MAP
,
314 static const GLenum valid_texture_format_table
[] = {
315 GL_ALPHA
, GL_LUMINANCE
, GL_LUMINANCE_ALPHA
, GL_RGB
, GL_RGBA
,
318 static const GLenum valid_texture_internal_format_table
[] = {
319 GL_ALPHA
, GL_LUMINANCE
, GL_LUMINANCE_ALPHA
, GL_RGB
, GL_RGBA
,
322 static const GLenum valid_texture_internal_format_storage_table
[] = {
323 GL_RGB565
, GL_RGBA4
, GL_RGB5_A1
, GL_ALPHA8_EXT
,
324 GL_LUMINANCE8_EXT
, GL_LUMINANCE8_ALPHA8_EXT
, GL_RGB8_OES
, GL_RGBA8_OES
,
327 static const GLenum valid_texture_mag_filter_mode_table
[] = {
328 GL_NEAREST
, GL_LINEAR
,
331 static const GLenum valid_texture_min_filter_mode_table
[] = {
332 GL_NEAREST
, GL_LINEAR
,
333 GL_NEAREST_MIPMAP_NEAREST
, GL_LINEAR_MIPMAP_NEAREST
,
334 GL_NEAREST_MIPMAP_LINEAR
, GL_LINEAR_MIPMAP_LINEAR
,
337 static const GLenum valid_texture_parameter_table
[] = {
338 GL_TEXTURE_MAG_FILTER
, GL_TEXTURE_MIN_FILTER
, GL_TEXTURE_POOL_CHROMIUM
,
339 GL_TEXTURE_WRAP_S
, GL_TEXTURE_WRAP_T
,
342 static const GLenum valid_texture_pool_table
[] = {
343 GL_TEXTURE_POOL_MANAGED_CHROMIUM
, GL_TEXTURE_POOL_UNMANAGED_CHROMIUM
,
346 static const GLenum valid_texture_target_table
[] = {
347 GL_TEXTURE_2D
, GL_TEXTURE_CUBE_MAP_POSITIVE_X
,
348 GL_TEXTURE_CUBE_MAP_NEGATIVE_X
, GL_TEXTURE_CUBE_MAP_POSITIVE_Y
,
349 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
, GL_TEXTURE_CUBE_MAP_POSITIVE_Z
,
350 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
,
353 static const GLenum valid_texture_usage_table
[] = {
354 GL_NONE
, GL_FRAMEBUFFER_ATTACHMENT_ANGLE
,
357 static const GLenum valid_texture_wrap_mode_table
[] = {
358 GL_CLAMP_TO_EDGE
, GL_MIRRORED_REPEAT
, GL_REPEAT
,
361 static const GLint valid_vertex_attrib_size_table
[] = {
365 static const GLenum valid_vertex_attrib_type_table
[] = {
366 GL_BYTE
, GL_UNSIGNED_BYTE
, GL_SHORT
, GL_UNSIGNED_SHORT
, GL_FLOAT
,
369 static const GLenum valid_vertex_attribute_table
[] = {
370 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
,
371 GL_VERTEX_ATTRIB_ARRAY_ENABLED
, GL_VERTEX_ATTRIB_ARRAY_SIZE
,
372 GL_VERTEX_ATTRIB_ARRAY_STRIDE
, GL_VERTEX_ATTRIB_ARRAY_TYPE
,
373 GL_CURRENT_VERTEX_ATTRIB
,
376 static const GLenum valid_vertex_pointer_table
[] = {
377 GL_VERTEX_ATTRIB_ARRAY_POINTER
,
380 Validators::Validators()
381 : attachment(valid_attachment_table
, arraysize(valid_attachment_table
)),
382 backbuffer_attachment(valid_backbuffer_attachment_table
,
383 arraysize(valid_backbuffer_attachment_table
)),
384 blit_filter(valid_blit_filter_table
, arraysize(valid_blit_filter_table
)),
385 buffer_parameter(valid_buffer_parameter_table
,
386 arraysize(valid_buffer_parameter_table
)),
387 buffer_target(valid_buffer_target_table
,
388 arraysize(valid_buffer_target_table
)),
389 buffer_usage(valid_buffer_usage_table
,
390 arraysize(valid_buffer_usage_table
)),
391 capability(valid_capability_table
, arraysize(valid_capability_table
)),
392 cmp_function(valid_cmp_function_table
,
393 arraysize(valid_cmp_function_table
)),
394 compressed_texture_format(),
395 draw_mode(valid_draw_mode_table
, arraysize(valid_draw_mode_table
)),
396 dst_blend_factor(valid_dst_blend_factor_table
,
397 arraysize(valid_dst_blend_factor_table
)),
398 equation(valid_equation_table
, arraysize(valid_equation_table
)),
399 face_mode(valid_face_mode_table
, arraysize(valid_face_mode_table
)),
400 face_type(valid_face_type_table
, arraysize(valid_face_type_table
)),
401 frame_buffer_parameter(valid_frame_buffer_parameter_table
,
402 arraysize(valid_frame_buffer_parameter_table
)),
403 frame_buffer_target(valid_frame_buffer_target_table
,
404 arraysize(valid_frame_buffer_target_table
)),
405 g_l_state(valid_g_l_state_table
, arraysize(valid_g_l_state_table
)),
406 get_max_index_type(valid_get_max_index_type_table
,
407 arraysize(valid_get_max_index_type_table
)),
408 get_tex_param_target(valid_get_tex_param_target_table
,
409 arraysize(valid_get_tex_param_target_table
)),
410 hint_mode(valid_hint_mode_table
, arraysize(valid_hint_mode_table
)),
411 hint_target(valid_hint_target_table
, arraysize(valid_hint_target_table
)),
412 index_type(valid_index_type_table
, arraysize(valid_index_type_table
)),
413 pixel_store(valid_pixel_store_table
, arraysize(valid_pixel_store_table
)),
414 pixel_store_alignment(valid_pixel_store_alignment_table
,
415 arraysize(valid_pixel_store_alignment_table
)),
416 pixel_type(valid_pixel_type_table
, arraysize(valid_pixel_type_table
)),
417 program_parameter(valid_program_parameter_table
,
418 arraysize(valid_program_parameter_table
)),
419 query_object_parameter(valid_query_object_parameter_table
,
420 arraysize(valid_query_object_parameter_table
)),
421 query_parameter(valid_query_parameter_table
,
422 arraysize(valid_query_parameter_table
)),
423 query_target(valid_query_target_table
,
424 arraysize(valid_query_target_table
)),
425 read_pixel_format(valid_read_pixel_format_table
,
426 arraysize(valid_read_pixel_format_table
)),
427 read_pixel_type(valid_read_pixel_type_table
,
428 arraysize(valid_read_pixel_type_table
)),
429 render_buffer_format(valid_render_buffer_format_table
,
430 arraysize(valid_render_buffer_format_table
)),
431 render_buffer_parameter(valid_render_buffer_parameter_table
,
432 arraysize(valid_render_buffer_parameter_table
)),
433 render_buffer_target(valid_render_buffer_target_table
,
434 arraysize(valid_render_buffer_target_table
)),
435 reset_status(valid_reset_status_table
,
436 arraysize(valid_reset_status_table
)),
437 shader_binary_format(),
438 shader_parameter(valid_shader_parameter_table
,
439 arraysize(valid_shader_parameter_table
)),
440 shader_precision(valid_shader_precision_table
,
441 arraysize(valid_shader_precision_table
)),
442 shader_type(valid_shader_type_table
, arraysize(valid_shader_type_table
)),
443 src_blend_factor(valid_src_blend_factor_table
,
444 arraysize(valid_src_blend_factor_table
)),
445 stencil_op(valid_stencil_op_table
, arraysize(valid_stencil_op_table
)),
446 string_type(valid_string_type_table
, arraysize(valid_string_type_table
)),
447 texture_bind_target(valid_texture_bind_target_table
,
448 arraysize(valid_texture_bind_target_table
)),
449 texture_format(valid_texture_format_table
,
450 arraysize(valid_texture_format_table
)),
451 texture_internal_format(valid_texture_internal_format_table
,
452 arraysize(valid_texture_internal_format_table
)),
453 texture_internal_format_storage(
454 valid_texture_internal_format_storage_table
,
455 arraysize(valid_texture_internal_format_storage_table
)),
456 texture_mag_filter_mode(valid_texture_mag_filter_mode_table
,
457 arraysize(valid_texture_mag_filter_mode_table
)),
458 texture_min_filter_mode(valid_texture_min_filter_mode_table
,
459 arraysize(valid_texture_min_filter_mode_table
)),
460 texture_parameter(valid_texture_parameter_table
,
461 arraysize(valid_texture_parameter_table
)),
462 texture_pool(valid_texture_pool_table
,
463 arraysize(valid_texture_pool_table
)),
464 texture_target(valid_texture_target_table
,
465 arraysize(valid_texture_target_table
)),
466 texture_usage(valid_texture_usage_table
,
467 arraysize(valid_texture_usage_table
)),
468 texture_wrap_mode(valid_texture_wrap_mode_table
,
469 arraysize(valid_texture_wrap_mode_table
)),
470 vertex_attrib_size(valid_vertex_attrib_size_table
,
471 arraysize(valid_vertex_attrib_size_table
)),
472 vertex_attrib_type(valid_vertex_attrib_type_table
,
473 arraysize(valid_vertex_attrib_type_table
)),
474 vertex_attribute(valid_vertex_attribute_table
,
475 arraysize(valid_vertex_attribute_table
)),
476 vertex_pointer(valid_vertex_pointer_table
,
477 arraysize(valid_vertex_pointer_table
)) {
480 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_