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_matrix_mode_table
[] = {
202 GL_PATH_PROJECTION_CHROMIUM
, GL_PATH_MODELVIEW_CHROMIUM
,
205 static const GLenum valid_pixel_store_table
[] = {
208 GL_UNPACK_FLIP_Y_CHROMIUM
,
209 GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM
,
210 GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM
,
213 static const GLint valid_pixel_store_alignment_table
[] = {
217 static const GLenum valid_pixel_type_table
[] = {
218 GL_UNSIGNED_BYTE
, GL_UNSIGNED_SHORT_5_6_5
, GL_UNSIGNED_SHORT_4_4_4_4
,
219 GL_UNSIGNED_SHORT_5_5_5_1
,
222 static const GLenum valid_program_parameter_table
[] = {
223 GL_DELETE_STATUS
, GL_LINK_STATUS
,
224 GL_VALIDATE_STATUS
, GL_INFO_LOG_LENGTH
,
225 GL_ATTACHED_SHADERS
, GL_ACTIVE_ATTRIBUTES
,
226 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
, GL_ACTIVE_UNIFORMS
,
227 GL_ACTIVE_UNIFORM_MAX_LENGTH
,
230 static const GLenum valid_query_object_parameter_table
[] = {
231 GL_QUERY_RESULT_EXT
, GL_QUERY_RESULT_AVAILABLE_EXT
,
234 static const GLenum valid_query_parameter_table
[] = {
235 GL_CURRENT_QUERY_EXT
,
238 static const GLenum valid_query_target_table
[] = {
239 GL_ANY_SAMPLES_PASSED_EXT
,
240 GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT
,
241 GL_COMMANDS_ISSUED_CHROMIUM
,
242 GL_LATENCY_QUERY_CHROMIUM
,
243 GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM
,
244 GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM
,
245 GL_COMMANDS_COMPLETED_CHROMIUM
,
248 static const GLenum valid_read_pixel_format_table
[] = {
249 GL_ALPHA
, GL_RGB
, GL_RGBA
,
252 static const GLenum valid_read_pixel_type_table
[] = {
253 GL_UNSIGNED_BYTE
, GL_UNSIGNED_SHORT_5_6_5
, GL_UNSIGNED_SHORT_4_4_4_4
,
254 GL_UNSIGNED_SHORT_5_5_5_1
,
257 static const GLenum valid_render_buffer_format_table
[] = {
258 GL_RGBA4
, GL_RGB565
, GL_RGB5_A1
, GL_DEPTH_COMPONENT16
, GL_STENCIL_INDEX8
,
261 static const GLenum valid_render_buffer_parameter_table
[] = {
262 GL_RENDERBUFFER_RED_SIZE
, GL_RENDERBUFFER_GREEN_SIZE
,
263 GL_RENDERBUFFER_BLUE_SIZE
, GL_RENDERBUFFER_ALPHA_SIZE
,
264 GL_RENDERBUFFER_DEPTH_SIZE
, GL_RENDERBUFFER_STENCIL_SIZE
,
265 GL_RENDERBUFFER_WIDTH
, GL_RENDERBUFFER_HEIGHT
,
266 GL_RENDERBUFFER_INTERNAL_FORMAT
,
269 static const GLenum valid_render_buffer_target_table
[] = {
273 static const GLenum valid_reset_status_table
[] = {
274 GL_GUILTY_CONTEXT_RESET_ARB
, GL_INNOCENT_CONTEXT_RESET_ARB
,
275 GL_UNKNOWN_CONTEXT_RESET_ARB
,
278 static const GLenum valid_shader_parameter_table
[] = {
279 GL_SHADER_TYPE
, GL_DELETE_STATUS
,
280 GL_COMPILE_STATUS
, GL_INFO_LOG_LENGTH
,
281 GL_SHADER_SOURCE_LENGTH
, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE
,
284 static const GLenum valid_shader_precision_table
[] = {
285 GL_LOW_FLOAT
, GL_MEDIUM_FLOAT
, GL_HIGH_FLOAT
,
286 GL_LOW_INT
, GL_MEDIUM_INT
, GL_HIGH_INT
,
289 static const GLenum valid_shader_type_table
[] = {
290 GL_VERTEX_SHADER
, GL_FRAGMENT_SHADER
,
293 static const GLenum valid_src_blend_factor_table
[] = {
295 GL_SRC_COLOR
, GL_ONE_MINUS_SRC_COLOR
,
296 GL_DST_COLOR
, GL_ONE_MINUS_DST_COLOR
,
297 GL_SRC_ALPHA
, GL_ONE_MINUS_SRC_ALPHA
,
298 GL_DST_ALPHA
, GL_ONE_MINUS_DST_ALPHA
,
299 GL_CONSTANT_COLOR
, GL_ONE_MINUS_CONSTANT_COLOR
,
300 GL_CONSTANT_ALPHA
, GL_ONE_MINUS_CONSTANT_ALPHA
,
301 GL_SRC_ALPHA_SATURATE
,
304 static const GLenum valid_stencil_op_table
[] = {
305 GL_KEEP
, GL_ZERO
, GL_REPLACE
, GL_INCR
,
306 GL_INCR_WRAP
, GL_DECR
, GL_DECR_WRAP
, GL_INVERT
,
309 static const GLenum valid_string_type_table
[] = {
310 GL_VENDOR
, GL_RENDERER
, GL_VERSION
,
311 GL_SHADING_LANGUAGE_VERSION
, GL_EXTENSIONS
,
314 static const GLenum valid_texture_bind_target_table
[] = {
315 GL_TEXTURE_2D
, GL_TEXTURE_CUBE_MAP
,
318 static const GLenum valid_texture_format_table
[] = {
319 GL_ALPHA
, GL_LUMINANCE
, GL_LUMINANCE_ALPHA
, GL_RGB
, GL_RGBA
,
322 static const GLenum valid_texture_internal_format_table
[] = {
323 GL_ALPHA
, GL_LUMINANCE
, GL_LUMINANCE_ALPHA
, GL_RGB
, GL_RGBA
,
326 static const GLenum valid_texture_internal_format_storage_table
[] = {
327 GL_RGB565
, GL_RGBA4
, GL_RGB5_A1
, GL_ALPHA8_EXT
,
328 GL_LUMINANCE8_EXT
, GL_LUMINANCE8_ALPHA8_EXT
, GL_RGB8_OES
, GL_RGBA8_OES
,
331 static const GLenum valid_texture_mag_filter_mode_table
[] = {
332 GL_NEAREST
, GL_LINEAR
,
335 static const GLenum valid_texture_min_filter_mode_table
[] = {
336 GL_NEAREST
, GL_LINEAR
,
337 GL_NEAREST_MIPMAP_NEAREST
, GL_LINEAR_MIPMAP_NEAREST
,
338 GL_NEAREST_MIPMAP_LINEAR
, GL_LINEAR_MIPMAP_LINEAR
,
341 static const GLenum valid_texture_parameter_table
[] = {
342 GL_TEXTURE_MAG_FILTER
, GL_TEXTURE_MIN_FILTER
, GL_TEXTURE_POOL_CHROMIUM
,
343 GL_TEXTURE_WRAP_S
, GL_TEXTURE_WRAP_T
,
346 static const GLenum valid_texture_pool_table
[] = {
347 GL_TEXTURE_POOL_MANAGED_CHROMIUM
, GL_TEXTURE_POOL_UNMANAGED_CHROMIUM
,
350 static const GLenum valid_texture_target_table
[] = {
351 GL_TEXTURE_2D
, GL_TEXTURE_CUBE_MAP_POSITIVE_X
,
352 GL_TEXTURE_CUBE_MAP_NEGATIVE_X
, GL_TEXTURE_CUBE_MAP_POSITIVE_Y
,
353 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
, GL_TEXTURE_CUBE_MAP_POSITIVE_Z
,
354 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
,
357 static const GLenum valid_texture_usage_table
[] = {
358 GL_NONE
, GL_FRAMEBUFFER_ATTACHMENT_ANGLE
,
361 static const GLenum valid_texture_wrap_mode_table
[] = {
362 GL_CLAMP_TO_EDGE
, GL_MIRRORED_REPEAT
, GL_REPEAT
,
365 static const GLint valid_vertex_attrib_size_table
[] = {
369 static const GLenum valid_vertex_attrib_type_table
[] = {
370 GL_BYTE
, GL_UNSIGNED_BYTE
, GL_SHORT
, GL_UNSIGNED_SHORT
, GL_FLOAT
,
373 static const GLenum valid_vertex_attribute_table
[] = {
374 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED
, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
,
375 GL_VERTEX_ATTRIB_ARRAY_ENABLED
, GL_VERTEX_ATTRIB_ARRAY_SIZE
,
376 GL_VERTEX_ATTRIB_ARRAY_STRIDE
, GL_VERTEX_ATTRIB_ARRAY_TYPE
,
377 GL_CURRENT_VERTEX_ATTRIB
,
380 static const GLenum valid_vertex_pointer_table
[] = {
381 GL_VERTEX_ATTRIB_ARRAY_POINTER
,
384 Validators::Validators()
385 : attachment(valid_attachment_table
, arraysize(valid_attachment_table
)),
386 backbuffer_attachment(valid_backbuffer_attachment_table
,
387 arraysize(valid_backbuffer_attachment_table
)),
388 blit_filter(valid_blit_filter_table
, arraysize(valid_blit_filter_table
)),
389 buffer_parameter(valid_buffer_parameter_table
,
390 arraysize(valid_buffer_parameter_table
)),
391 buffer_target(valid_buffer_target_table
,
392 arraysize(valid_buffer_target_table
)),
393 buffer_usage(valid_buffer_usage_table
,
394 arraysize(valid_buffer_usage_table
)),
395 capability(valid_capability_table
, arraysize(valid_capability_table
)),
396 cmp_function(valid_cmp_function_table
,
397 arraysize(valid_cmp_function_table
)),
398 compressed_texture_format(),
399 draw_mode(valid_draw_mode_table
, arraysize(valid_draw_mode_table
)),
400 dst_blend_factor(valid_dst_blend_factor_table
,
401 arraysize(valid_dst_blend_factor_table
)),
402 equation(valid_equation_table
, arraysize(valid_equation_table
)),
403 face_mode(valid_face_mode_table
, arraysize(valid_face_mode_table
)),
404 face_type(valid_face_type_table
, arraysize(valid_face_type_table
)),
405 frame_buffer_parameter(valid_frame_buffer_parameter_table
,
406 arraysize(valid_frame_buffer_parameter_table
)),
407 frame_buffer_target(valid_frame_buffer_target_table
,
408 arraysize(valid_frame_buffer_target_table
)),
409 g_l_state(valid_g_l_state_table
, arraysize(valid_g_l_state_table
)),
410 get_max_index_type(valid_get_max_index_type_table
,
411 arraysize(valid_get_max_index_type_table
)),
412 get_tex_param_target(valid_get_tex_param_target_table
,
413 arraysize(valid_get_tex_param_target_table
)),
414 hint_mode(valid_hint_mode_table
, arraysize(valid_hint_mode_table
)),
415 hint_target(valid_hint_target_table
, arraysize(valid_hint_target_table
)),
416 index_type(valid_index_type_table
, arraysize(valid_index_type_table
)),
417 matrix_mode(valid_matrix_mode_table
, arraysize(valid_matrix_mode_table
)),
418 pixel_store(valid_pixel_store_table
, arraysize(valid_pixel_store_table
)),
419 pixel_store_alignment(valid_pixel_store_alignment_table
,
420 arraysize(valid_pixel_store_alignment_table
)),
421 pixel_type(valid_pixel_type_table
, arraysize(valid_pixel_type_table
)),
422 program_parameter(valid_program_parameter_table
,
423 arraysize(valid_program_parameter_table
)),
424 query_object_parameter(valid_query_object_parameter_table
,
425 arraysize(valid_query_object_parameter_table
)),
426 query_parameter(valid_query_parameter_table
,
427 arraysize(valid_query_parameter_table
)),
428 query_target(valid_query_target_table
,
429 arraysize(valid_query_target_table
)),
430 read_pixel_format(valid_read_pixel_format_table
,
431 arraysize(valid_read_pixel_format_table
)),
432 read_pixel_type(valid_read_pixel_type_table
,
433 arraysize(valid_read_pixel_type_table
)),
434 render_buffer_format(valid_render_buffer_format_table
,
435 arraysize(valid_render_buffer_format_table
)),
436 render_buffer_parameter(valid_render_buffer_parameter_table
,
437 arraysize(valid_render_buffer_parameter_table
)),
438 render_buffer_target(valid_render_buffer_target_table
,
439 arraysize(valid_render_buffer_target_table
)),
440 reset_status(valid_reset_status_table
,
441 arraysize(valid_reset_status_table
)),
442 shader_binary_format(),
443 shader_parameter(valid_shader_parameter_table
,
444 arraysize(valid_shader_parameter_table
)),
445 shader_precision(valid_shader_precision_table
,
446 arraysize(valid_shader_precision_table
)),
447 shader_type(valid_shader_type_table
, arraysize(valid_shader_type_table
)),
448 src_blend_factor(valid_src_blend_factor_table
,
449 arraysize(valid_src_blend_factor_table
)),
450 stencil_op(valid_stencil_op_table
, arraysize(valid_stencil_op_table
)),
451 string_type(valid_string_type_table
, arraysize(valid_string_type_table
)),
452 texture_bind_target(valid_texture_bind_target_table
,
453 arraysize(valid_texture_bind_target_table
)),
454 texture_format(valid_texture_format_table
,
455 arraysize(valid_texture_format_table
)),
456 texture_internal_format(valid_texture_internal_format_table
,
457 arraysize(valid_texture_internal_format_table
)),
458 texture_internal_format_storage(
459 valid_texture_internal_format_storage_table
,
460 arraysize(valid_texture_internal_format_storage_table
)),
461 texture_mag_filter_mode(valid_texture_mag_filter_mode_table
,
462 arraysize(valid_texture_mag_filter_mode_table
)),
463 texture_min_filter_mode(valid_texture_min_filter_mode_table
,
464 arraysize(valid_texture_min_filter_mode_table
)),
465 texture_parameter(valid_texture_parameter_table
,
466 arraysize(valid_texture_parameter_table
)),
467 texture_pool(valid_texture_pool_table
,
468 arraysize(valid_texture_pool_table
)),
469 texture_target(valid_texture_target_table
,
470 arraysize(valid_texture_target_table
)),
471 texture_usage(valid_texture_usage_table
,
472 arraysize(valid_texture_usage_table
)),
473 texture_wrap_mode(valid_texture_wrap_mode_table
,
474 arraysize(valid_texture_wrap_mode_table
)),
475 vertex_attrib_size(valid_vertex_attrib_size_table
,
476 arraysize(valid_vertex_attrib_size_table
)),
477 vertex_attrib_type(valid_vertex_attrib_type_table
,
478 arraysize(valid_vertex_attrib_type_table
)),
479 vertex_attribute(valid_vertex_attribute_table
,
480 arraysize(valid_vertex_attribute_table
)),
481 vertex_pointer(valid_vertex_pointer_table
,
482 arraysize(valid_vertex_pointer_table
)) {
485 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_