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 GLboolean valid_false_only_table[] = {
80 static const GLenum valid_frame_buffer_parameter_table[] = {
81 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
82 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME,
83 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL,
84 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE,
87 static const GLenum valid_frame_buffer_target_table[] = {
91 static const GLenum valid_g_l_state_table[] = {
93 GL_ALIASED_LINE_WIDTH_RANGE,
94 GL_ALIASED_POINT_SIZE_RANGE,
96 GL_ARRAY_BUFFER_BINDING,
98 GL_COMPRESSED_TEXTURE_FORMATS,
102 GL_ELEMENT_ARRAY_BUFFER_BINDING,
103 GL_FRAMEBUFFER_BINDING,
104 GL_GENERATE_MIPMAP_HINT,
106 GL_IMPLEMENTATION_COLOR_READ_FORMAT,
107 GL_IMPLEMENTATION_COLOR_READ_TYPE,
108 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,
109 GL_MAX_CUBE_MAP_TEXTURE_SIZE,
110 GL_MAX_FRAGMENT_UNIFORM_VECTORS,
111 GL_MAX_RENDERBUFFER_SIZE,
112 GL_MAX_TEXTURE_IMAGE_UNITS,
114 GL_MAX_VARYING_VECTORS,
115 GL_MAX_VERTEX_ATTRIBS,
116 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS,
117 GL_MAX_VERTEX_UNIFORM_VECTORS,
118 GL_MAX_VIEWPORT_DIMS,
119 GL_NUM_COMPRESSED_TEXTURE_FORMATS,
120 GL_NUM_SHADER_BINARY_FORMATS,
123 GL_RENDERBUFFER_BINDING,
125 GL_SAMPLE_COVERAGE_INVERT,
126 GL_SAMPLE_COVERAGE_VALUE,
129 GL_SHADER_BINARY_FORMATS,
133 GL_TEXTURE_BINDING_2D,
134 GL_TEXTURE_BINDING_CUBE_MAP,
136 GL_UNPACK_FLIP_Y_CHROMIUM,
137 GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM,
138 GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
139 GL_BIND_GENERATES_RESOURCE_CHROMIUM,
140 GL_VERTEX_ARRAY_BINDING_OES,
143 GL_BLEND_EQUATION_RGB,
144 GL_BLEND_EQUATION_ALPHA,
149 GL_COLOR_CLEAR_VALUE,
150 GL_DEPTH_CLEAR_VALUE,
151 GL_STENCIL_CLEAR_VALUE,
158 GL_GENERATE_MIPMAP_HINT,
162 GL_POLYGON_OFFSET_FACTOR,
163 GL_POLYGON_OFFSET_UNITS,
164 GL_SAMPLE_COVERAGE_VALUE,
165 GL_SAMPLE_COVERAGE_INVERT,
169 GL_STENCIL_VALUE_MASK,
170 GL_STENCIL_BACK_FUNC,
172 GL_STENCIL_BACK_VALUE_MASK,
173 GL_STENCIL_WRITEMASK,
174 GL_STENCIL_BACK_WRITEMASK,
176 GL_STENCIL_PASS_DEPTH_FAIL,
177 GL_STENCIL_PASS_DEPTH_PASS,
178 GL_STENCIL_BACK_FAIL,
179 GL_STENCIL_BACK_PASS_DEPTH_FAIL,
180 GL_STENCIL_BACK_PASS_DEPTH_PASS,
186 GL_POLYGON_OFFSET_FILL,
187 GL_SAMPLE_ALPHA_TO_COVERAGE,
193 static const GLenum valid_get_max_index_type_table[] = {
194 GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, GL_UNSIGNED_INT,
197 static const GLenum valid_get_tex_param_target_table[] = {
198 GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP,
201 static const GLenum valid_hint_mode_table[] = {
202 GL_FASTEST, GL_NICEST, GL_DONT_CARE,
205 static const GLenum valid_hint_target_table[] = {
206 GL_GENERATE_MIPMAP_HINT,
209 static const GLenum valid_index_type_table[] = {
210 GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT,
213 static const GLenum valid_pixel_store_table[] = {
216 GL_UNPACK_FLIP_Y_CHROMIUM,
217 GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM,
218 GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM,
221 static const GLint valid_pixel_store_alignment_table[] = {
225 static const GLenum valid_pixel_type_table[] = {
226 GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_4_4_4_4,
227 GL_UNSIGNED_SHORT_5_5_5_1,
230 static const GLenum valid_program_parameter_table[] = {
231 GL_DELETE_STATUS, GL_LINK_STATUS,
232 GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH,
233 GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES,
234 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS,
235 GL_ACTIVE_UNIFORM_MAX_LENGTH,
238 static const GLenum valid_query_object_parameter_table[] = {
239 GL_QUERY_RESULT_EXT, GL_QUERY_RESULT_AVAILABLE_EXT,
242 static const GLenum valid_query_parameter_table[] = {
243 GL_CURRENT_QUERY_EXT,
246 static const GLenum valid_query_target_table[] = {
247 GL_ANY_SAMPLES_PASSED_EXT,
248 GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT,
249 GL_COMMANDS_ISSUED_CHROMIUM,
250 GL_LATENCY_QUERY_CHROMIUM,
251 GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM,
252 GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM,
253 GL_COMMANDS_COMPLETED_CHROMIUM,
256 static const GLenum valid_read_pixel_format_table[] = {
257 GL_ALPHA, GL_RGB, GL_RGBA,
260 static const GLenum valid_read_pixel_type_table[] = {
261 GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_4_4_4_4,
262 GL_UNSIGNED_SHORT_5_5_5_1,
265 static const GLenum valid_render_buffer_format_table[] = {
266 GL_RGBA4, GL_RGB565, GL_RGB5_A1, GL_DEPTH_COMPONENT16, GL_STENCIL_INDEX8,
269 static const GLenum valid_render_buffer_parameter_table[] = {
270 GL_RENDERBUFFER_RED_SIZE, GL_RENDERBUFFER_GREEN_SIZE,
271 GL_RENDERBUFFER_BLUE_SIZE, GL_RENDERBUFFER_ALPHA_SIZE,
272 GL_RENDERBUFFER_DEPTH_SIZE, GL_RENDERBUFFER_STENCIL_SIZE,
273 GL_RENDERBUFFER_WIDTH, GL_RENDERBUFFER_HEIGHT,
274 GL_RENDERBUFFER_INTERNAL_FORMAT,
277 static const GLenum valid_render_buffer_target_table[] = {
281 static const GLenum valid_reset_status_table[] = {
282 GL_GUILTY_CONTEXT_RESET_ARB, GL_INNOCENT_CONTEXT_RESET_ARB,
283 GL_UNKNOWN_CONTEXT_RESET_ARB,
286 static const GLenum valid_shader_parameter_table[] = {
287 GL_SHADER_TYPE, GL_DELETE_STATUS,
288 GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH,
289 GL_SHADER_SOURCE_LENGTH, GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE,
292 static const GLenum valid_shader_precision_table[] = {
293 GL_LOW_FLOAT, GL_MEDIUM_FLOAT, GL_HIGH_FLOAT,
294 GL_LOW_INT, GL_MEDIUM_INT, GL_HIGH_INT,
297 static const GLenum valid_shader_type_table[] = {
298 GL_VERTEX_SHADER, GL_FRAGMENT_SHADER,
301 static const GLenum valid_src_blend_factor_table[] = {
303 GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR,
304 GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR,
305 GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
306 GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA,
307 GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR,
308 GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA,
309 GL_SRC_ALPHA_SATURATE,
312 static const GLenum valid_stencil_op_table[] = {
313 GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR,
314 GL_INCR_WRAP, GL_DECR, GL_DECR_WRAP, GL_INVERT,
317 static const GLenum valid_string_type_table[] = {
318 GL_VENDOR, GL_RENDERER, GL_VERSION,
319 GL_SHADING_LANGUAGE_VERSION, GL_EXTENSIONS,
322 static const GLenum valid_texture_bind_target_table[] = {
323 GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP,
326 static const GLint valid_texture_border_table[] = {
330 static const GLenum valid_texture_format_table[] = {
331 GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA,
334 static const GLenum valid_texture_internal_format_table[] = {
335 GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_RGBA,
338 static const GLenum valid_texture_internal_format_storage_table[] = {
339 GL_RGB565, GL_RGBA4, GL_RGB5_A1, GL_ALPHA8_EXT,
340 GL_LUMINANCE8_EXT, GL_LUMINANCE8_ALPHA8_EXT, GL_RGB8_OES, GL_RGBA8_OES,
343 static const GLenum valid_texture_mag_filter_mode_table[] = {
344 GL_NEAREST, GL_LINEAR,
347 static const GLenum valid_texture_min_filter_mode_table[] = {
348 GL_NEAREST, GL_LINEAR,
349 GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST,
350 GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR,
353 static const GLenum valid_texture_parameter_table[] = {
354 GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_POOL_CHROMIUM,
355 GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T,
358 static const GLenum valid_texture_pool_table[] = {
359 GL_TEXTURE_POOL_MANAGED_CHROMIUM, GL_TEXTURE_POOL_UNMANAGED_CHROMIUM,
362 static const GLenum valid_texture_target_table[] = {
363 GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X,
364 GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
365 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
366 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
369 static const GLenum valid_texture_usage_table[] = {
370 GL_NONE, GL_FRAMEBUFFER_ATTACHMENT_ANGLE,
373 static const GLenum valid_texture_wrap_mode_table[] = {
374 GL_CLAMP_TO_EDGE, GL_MIRRORED_REPEAT, GL_REPEAT,
377 static const GLint valid_vertex_attrib_size_table[] = {
381 static const GLenum valid_vertex_attrib_type_table[] = {
382 GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_FLOAT,
385 static const GLenum valid_vertex_attribute_table[] = {
386 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING,
387 GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE,
388 GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE,
389 GL_CURRENT_VERTEX_ATTRIB,
392 static const GLenum valid_vertex_pointer_table[] = {
393 GL_VERTEX_ATTRIB_ARRAY_POINTER,
396 static const GLint valid_zero_only_table[] = {
400 Validators::Validators()
401 : attachment(valid_attachment_table, arraysize(valid_attachment_table)),
402 backbuffer_attachment(valid_backbuffer_attachment_table,
403 arraysize(valid_backbuffer_attachment_table)),
404 blit_filter(valid_blit_filter_table, arraysize(valid_blit_filter_table)),
405 buffer_parameter(valid_buffer_parameter_table,
406 arraysize(valid_buffer_parameter_table)),
407 buffer_target(valid_buffer_target_table,
408 arraysize(valid_buffer_target_table)),
409 buffer_usage(valid_buffer_usage_table,
410 arraysize(valid_buffer_usage_table)),
411 capability(valid_capability_table, arraysize(valid_capability_table)),
412 cmp_function(valid_cmp_function_table,
413 arraysize(valid_cmp_function_table)),
414 compressed_texture_format(),
415 draw_mode(valid_draw_mode_table, arraysize(valid_draw_mode_table)),
416 dst_blend_factor(valid_dst_blend_factor_table,
417 arraysize(valid_dst_blend_factor_table)),
418 equation(valid_equation_table, arraysize(valid_equation_table)),
419 face_mode(valid_face_mode_table, arraysize(valid_face_mode_table)),
420 face_type(valid_face_type_table, arraysize(valid_face_type_table)),
421 false_only(valid_false_only_table, arraysize(valid_false_only_table)),
422 frame_buffer_parameter(valid_frame_buffer_parameter_table,
423 arraysize(valid_frame_buffer_parameter_table)),
424 frame_buffer_target(valid_frame_buffer_target_table,
425 arraysize(valid_frame_buffer_target_table)),
426 g_l_state(valid_g_l_state_table, arraysize(valid_g_l_state_table)),
427 get_max_index_type(valid_get_max_index_type_table,
428 arraysize(valid_get_max_index_type_table)),
429 get_tex_param_target(valid_get_tex_param_target_table,
430 arraysize(valid_get_tex_param_target_table)),
431 hint_mode(valid_hint_mode_table, arraysize(valid_hint_mode_table)),
432 hint_target(valid_hint_target_table, arraysize(valid_hint_target_table)),
433 index_type(valid_index_type_table, arraysize(valid_index_type_table)),
434 pixel_store(valid_pixel_store_table, arraysize(valid_pixel_store_table)),
435 pixel_store_alignment(valid_pixel_store_alignment_table,
436 arraysize(valid_pixel_store_alignment_table)),
437 pixel_type(valid_pixel_type_table, arraysize(valid_pixel_type_table)),
438 program_parameter(valid_program_parameter_table,
439 arraysize(valid_program_parameter_table)),
440 query_object_parameter(valid_query_object_parameter_table,
441 arraysize(valid_query_object_parameter_table)),
442 query_parameter(valid_query_parameter_table,
443 arraysize(valid_query_parameter_table)),
444 query_target(valid_query_target_table,
445 arraysize(valid_query_target_table)),
446 read_pixel_format(valid_read_pixel_format_table,
447 arraysize(valid_read_pixel_format_table)),
448 read_pixel_type(valid_read_pixel_type_table,
449 arraysize(valid_read_pixel_type_table)),
450 render_buffer_format(valid_render_buffer_format_table,
451 arraysize(valid_render_buffer_format_table)),
452 render_buffer_parameter(valid_render_buffer_parameter_table,
453 arraysize(valid_render_buffer_parameter_table)),
454 render_buffer_target(valid_render_buffer_target_table,
455 arraysize(valid_render_buffer_target_table)),
456 reset_status(valid_reset_status_table,
457 arraysize(valid_reset_status_table)),
458 shader_binary_format(),
459 shader_parameter(valid_shader_parameter_table,
460 arraysize(valid_shader_parameter_table)),
461 shader_precision(valid_shader_precision_table,
462 arraysize(valid_shader_precision_table)),
463 shader_type(valid_shader_type_table, arraysize(valid_shader_type_table)),
464 src_blend_factor(valid_src_blend_factor_table,
465 arraysize(valid_src_blend_factor_table)),
466 stencil_op(valid_stencil_op_table, arraysize(valid_stencil_op_table)),
467 string_type(valid_string_type_table, arraysize(valid_string_type_table)),
468 texture_bind_target(valid_texture_bind_target_table,
469 arraysize(valid_texture_bind_target_table)),
470 texture_border(valid_texture_border_table,
471 arraysize(valid_texture_border_table)),
472 texture_format(valid_texture_format_table,
473 arraysize(valid_texture_format_table)),
474 texture_internal_format(valid_texture_internal_format_table,
475 arraysize(valid_texture_internal_format_table)),
476 texture_internal_format_storage(
477 valid_texture_internal_format_storage_table,
478 arraysize(valid_texture_internal_format_storage_table)),
479 texture_mag_filter_mode(valid_texture_mag_filter_mode_table,
480 arraysize(valid_texture_mag_filter_mode_table)),
481 texture_min_filter_mode(valid_texture_min_filter_mode_table,
482 arraysize(valid_texture_min_filter_mode_table)),
483 texture_parameter(valid_texture_parameter_table,
484 arraysize(valid_texture_parameter_table)),
485 texture_pool(valid_texture_pool_table,
486 arraysize(valid_texture_pool_table)),
487 texture_target(valid_texture_target_table,
488 arraysize(valid_texture_target_table)),
489 texture_usage(valid_texture_usage_table,
490 arraysize(valid_texture_usage_table)),
491 texture_wrap_mode(valid_texture_wrap_mode_table,
492 arraysize(valid_texture_wrap_mode_table)),
493 vertex_attrib_size(valid_vertex_attrib_size_table,
494 arraysize(valid_vertex_attrib_size_table)),
495 vertex_attrib_type(valid_vertex_attrib_type_table,
496 arraysize(valid_vertex_attrib_type_table)),
497 vertex_attribute(valid_vertex_attribute_table,
498 arraysize(valid_vertex_attribute_table)),
499 vertex_pointer(valid_vertex_pointer_table,
500 arraysize(valid_vertex_pointer_table)),
501 zero_only(valid_zero_only_table, arraysize(valid_zero_only_table)) {
504 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_