// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// This file is auto-generated from
// gpu/command_buffer/build_gles2_cmd_buffer.py
// It's formatted by clang-format using chromium coding style:
//    clang-format -i -style=chromium filename
// DO NOT EDIT!

#ifndef GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_IDS_AUTOGEN_H_
#define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_IDS_AUTOGEN_H_

#define GLES2_COMMAND_LIST(OP)                           \
  OP(ActiveTexture)                            /* 256 */ \
  OP(AttachShader)                             /* 257 */ \
  OP(BindAttribLocationBucket)                 /* 258 */ \
  OP(BindBuffer)                               /* 259 */ \
  OP(BindBufferBase)                           /* 260 */ \
  OP(BindBufferRange)                          /* 261 */ \
  OP(BindFramebuffer)                          /* 262 */ \
  OP(BindRenderbuffer)                         /* 263 */ \
  OP(BindSampler)                              /* 264 */ \
  OP(BindTexture)                              /* 265 */ \
  OP(BindTransformFeedback)                    /* 266 */ \
  OP(BlendColor)                               /* 267 */ \
  OP(BlendEquation)                            /* 268 */ \
  OP(BlendEquationSeparate)                    /* 269 */ \
  OP(BlendFunc)                                /* 270 */ \
  OP(BlendFuncSeparate)                        /* 271 */ \
  OP(BufferData)                               /* 272 */ \
  OP(BufferSubData)                            /* 273 */ \
  OP(CheckFramebufferStatus)                   /* 274 */ \
  OP(Clear)                                    /* 275 */ \
  OP(ClearBufferfi)                            /* 276 */ \
  OP(ClearBufferfvImmediate)                   /* 277 */ \
  OP(ClearBufferivImmediate)                   /* 278 */ \
  OP(ClearBufferuivImmediate)                  /* 279 */ \
  OP(ClearColor)                               /* 280 */ \
  OP(ClearDepthf)                              /* 281 */ \
  OP(ClearStencil)                             /* 282 */ \
  OP(ColorMask)                                /* 283 */ \
  OP(CompileShader)                            /* 284 */ \
  OP(CompressedTexImage2DBucket)               /* 285 */ \
  OP(CompressedTexImage2D)                     /* 286 */ \
  OP(CompressedTexSubImage2DBucket)            /* 287 */ \
  OP(CompressedTexSubImage2D)                  /* 288 */ \
  OP(CopyBufferSubData)                        /* 289 */ \
  OP(CopyTexImage2D)                           /* 290 */ \
  OP(CopyTexSubImage2D)                        /* 291 */ \
  OP(CopyTexSubImage3D)                        /* 292 */ \
  OP(CreateProgram)                            /* 293 */ \
  OP(CreateShader)                             /* 294 */ \
  OP(CullFace)                                 /* 295 */ \
  OP(DeleteBuffersImmediate)                   /* 296 */ \
  OP(DeleteFramebuffersImmediate)              /* 297 */ \
  OP(DeleteProgram)                            /* 298 */ \
  OP(DeleteRenderbuffersImmediate)             /* 299 */ \
  OP(DeleteSamplersImmediate)                  /* 300 */ \
  OP(DeleteSync)                               /* 301 */ \
  OP(DeleteShader)                             /* 302 */ \
  OP(DeleteTexturesImmediate)                  /* 303 */ \
  OP(DeleteTransformFeedbacksImmediate)        /* 304 */ \
  OP(DepthFunc)                                /* 305 */ \
  OP(DepthMask)                                /* 306 */ \
  OP(DepthRangef)                              /* 307 */ \
  OP(DetachShader)                             /* 308 */ \
  OP(Disable)                                  /* 309 */ \
  OP(DisableVertexAttribArray)                 /* 310 */ \
  OP(DrawArrays)                               /* 311 */ \
  OP(DrawElements)                             /* 312 */ \
  OP(Enable)                                   /* 313 */ \
  OP(EnableVertexAttribArray)                  /* 314 */ \
  OP(FenceSync)                                /* 315 */ \
  OP(Finish)                                   /* 316 */ \
  OP(Flush)                                    /* 317 */ \
  OP(FramebufferRenderbuffer)                  /* 318 */ \
  OP(FramebufferTexture2D)                     /* 319 */ \
  OP(FramebufferTextureLayer)                  /* 320 */ \
  OP(FrontFace)                                /* 321 */ \
  OP(GenBuffersImmediate)                      /* 322 */ \
  OP(GenerateMipmap)                           /* 323 */ \
  OP(GenFramebuffersImmediate)                 /* 324 */ \
  OP(GenRenderbuffersImmediate)                /* 325 */ \
  OP(GenSamplersImmediate)                     /* 326 */ \
  OP(GenTexturesImmediate)                     /* 327 */ \
  OP(GenTransformFeedbacksImmediate)           /* 328 */ \
  OP(GetActiveAttrib)                          /* 329 */ \
  OP(GetActiveUniform)                         /* 330 */ \
  OP(GetAttachedShaders)                       /* 331 */ \
  OP(GetAttribLocation)                        /* 332 */ \
  OP(GetBooleanv)                              /* 333 */ \
  OP(GetBufferParameteriv)                     /* 334 */ \
  OP(GetError)                                 /* 335 */ \
  OP(GetFloatv)                                /* 336 */ \
  OP(GetFragDataLocation)                      /* 337 */ \
  OP(GetFramebufferAttachmentParameteriv)      /* 338 */ \
  OP(GetIntegerv)                              /* 339 */ \
  OP(GetInternalformativ)                      /* 340 */ \
  OP(GetProgramiv)                             /* 341 */ \
  OP(GetProgramInfoLog)                        /* 342 */ \
  OP(GetRenderbufferParameteriv)               /* 343 */ \
  OP(GetSamplerParameterfv)                    /* 344 */ \
  OP(GetSamplerParameteriv)                    /* 345 */ \
  OP(GetShaderiv)                              /* 346 */ \
  OP(GetShaderInfoLog)                         /* 347 */ \
  OP(GetShaderPrecisionFormat)                 /* 348 */ \
  OP(GetShaderSource)                          /* 349 */ \
  OP(GetString)                                /* 350 */ \
  OP(GetTexParameterfv)                        /* 351 */ \
  OP(GetTexParameteriv)                        /* 352 */ \
  OP(GetUniformfv)                             /* 353 */ \
  OP(GetUniformiv)                             /* 354 */ \
  OP(GetUniformLocation)                       /* 355 */ \
  OP(GetVertexAttribfv)                        /* 356 */ \
  OP(GetVertexAttribiv)                        /* 357 */ \
  OP(GetVertexAttribPointerv)                  /* 358 */ \
  OP(Hint)                                     /* 359 */ \
  OP(InvalidateFramebufferImmediate)           /* 360 */ \
  OP(InvalidateSubFramebufferImmediate)        /* 361 */ \
  OP(IsBuffer)                                 /* 362 */ \
  OP(IsEnabled)                                /* 363 */ \
  OP(IsFramebuffer)                            /* 364 */ \
  OP(IsProgram)                                /* 365 */ \
  OP(IsRenderbuffer)                           /* 366 */ \
  OP(IsSampler)                                /* 367 */ \
  OP(IsShader)                                 /* 368 */ \
  OP(IsSync)                                   /* 369 */ \
  OP(IsTexture)                                /* 370 */ \
  OP(IsTransformFeedback)                      /* 371 */ \
  OP(LineWidth)                                /* 372 */ \
  OP(LinkProgram)                              /* 373 */ \
  OP(PauseTransformFeedback)                   /* 374 */ \
  OP(PixelStorei)                              /* 375 */ \
  OP(PolygonOffset)                            /* 376 */ \
  OP(ReadBuffer)                               /* 377 */ \
  OP(ReadPixels)                               /* 378 */ \
  OP(ReleaseShaderCompiler)                    /* 379 */ \
  OP(RenderbufferStorage)                      /* 380 */ \
  OP(ResumeTransformFeedback)                  /* 381 */ \
  OP(SampleCoverage)                           /* 382 */ \
  OP(SamplerParameterf)                        /* 383 */ \
  OP(SamplerParameterfvImmediate)              /* 384 */ \
  OP(SamplerParameteri)                        /* 385 */ \
  OP(SamplerParameterivImmediate)              /* 386 */ \
  OP(Scissor)                                  /* 387 */ \
  OP(ShaderBinary)                             /* 388 */ \
  OP(ShaderSourceBucket)                       /* 389 */ \
  OP(StencilFunc)                              /* 390 */ \
  OP(StencilFuncSeparate)                      /* 391 */ \
  OP(StencilMask)                              /* 392 */ \
  OP(StencilMaskSeparate)                      /* 393 */ \
  OP(StencilOp)                                /* 394 */ \
  OP(StencilOpSeparate)                        /* 395 */ \
  OP(TexImage2D)                               /* 396 */ \
  OP(TexImage3D)                               /* 397 */ \
  OP(TexParameterf)                            /* 398 */ \
  OP(TexParameterfvImmediate)                  /* 399 */ \
  OP(TexParameteri)                            /* 400 */ \
  OP(TexParameterivImmediate)                  /* 401 */ \
  OP(TexStorage3D)                             /* 402 */ \
  OP(TexSubImage2D)                            /* 403 */ \
  OP(TexSubImage3D)                            /* 404 */ \
  OP(TransformFeedbackVaryingsBucket)          /* 405 */ \
  OP(Uniform1f)                                /* 406 */ \
  OP(Uniform1fvImmediate)                      /* 407 */ \
  OP(Uniform1i)                                /* 408 */ \
  OP(Uniform1ivImmediate)                      /* 409 */ \
  OP(Uniform1ui)                               /* 410 */ \
  OP(Uniform1uivImmediate)                     /* 411 */ \
  OP(Uniform2f)                                /* 412 */ \
  OP(Uniform2fvImmediate)                      /* 413 */ \
  OP(Uniform2i)                                /* 414 */ \
  OP(Uniform2ivImmediate)                      /* 415 */ \
  OP(Uniform2ui)                               /* 416 */ \
  OP(Uniform2uivImmediate)                     /* 417 */ \
  OP(Uniform3f)                                /* 418 */ \
  OP(Uniform3fvImmediate)                      /* 419 */ \
  OP(Uniform3i)                                /* 420 */ \
  OP(Uniform3ivImmediate)                      /* 421 */ \
  OP(Uniform3ui)                               /* 422 */ \
  OP(Uniform3uivImmediate)                     /* 423 */ \
  OP(Uniform4f)                                /* 424 */ \
  OP(Uniform4fvImmediate)                      /* 425 */ \
  OP(Uniform4i)                                /* 426 */ \
  OP(Uniform4ivImmediate)                      /* 427 */ \
  OP(Uniform4ui)                               /* 428 */ \
  OP(Uniform4uivImmediate)                     /* 429 */ \
  OP(UniformMatrix2fvImmediate)                /* 430 */ \
  OP(UniformMatrix2x3fvImmediate)              /* 431 */ \
  OP(UniformMatrix2x4fvImmediate)              /* 432 */ \
  OP(UniformMatrix3fvImmediate)                /* 433 */ \
  OP(UniformMatrix3x2fvImmediate)              /* 434 */ \
  OP(UniformMatrix3x4fvImmediate)              /* 435 */ \
  OP(UniformMatrix4fvImmediate)                /* 436 */ \
  OP(UniformMatrix4x2fvImmediate)              /* 437 */ \
  OP(UniformMatrix4x3fvImmediate)              /* 438 */ \
  OP(UseProgram)                               /* 439 */ \
  OP(ValidateProgram)                          /* 440 */ \
  OP(VertexAttrib1f)                           /* 441 */ \
  OP(VertexAttrib1fvImmediate)                 /* 442 */ \
  OP(VertexAttrib2f)                           /* 443 */ \
  OP(VertexAttrib2fvImmediate)                 /* 444 */ \
  OP(VertexAttrib3f)                           /* 445 */ \
  OP(VertexAttrib3fvImmediate)                 /* 446 */ \
  OP(VertexAttrib4f)                           /* 447 */ \
  OP(VertexAttrib4fvImmediate)                 /* 448 */ \
  OP(VertexAttribI4i)                          /* 449 */ \
  OP(VertexAttribI4ivImmediate)                /* 450 */ \
  OP(VertexAttribI4ui)                         /* 451 */ \
  OP(VertexAttribI4uivImmediate)               /* 452 */ \
  OP(VertexAttribIPointer)                     /* 453 */ \
  OP(VertexAttribPointer)                      /* 454 */ \
  OP(Viewport)                                 /* 455 */ \
  OP(BlitFramebufferCHROMIUM)                  /* 456 */ \
  OP(RenderbufferStorageMultisampleCHROMIUM)   /* 457 */ \
  OP(RenderbufferStorageMultisampleEXT)        /* 458 */ \
  OP(FramebufferTexture2DMultisampleEXT)       /* 459 */ \
  OP(TexStorage2DEXT)                          /* 460 */ \
  OP(GenQueriesEXTImmediate)                   /* 461 */ \
  OP(DeleteQueriesEXTImmediate)                /* 462 */ \
  OP(BeginQueryEXT)                            /* 463 */ \
  OP(BeginTransformFeedback)                   /* 464 */ \
  OP(EndQueryEXT)                              /* 465 */ \
  OP(EndTransformFeedback)                     /* 466 */ \
  OP(InsertEventMarkerEXT)                     /* 467 */ \
  OP(PushGroupMarkerEXT)                       /* 468 */ \
  OP(PopGroupMarkerEXT)                        /* 469 */ \
  OP(GenVertexArraysOESImmediate)              /* 470 */ \
  OP(DeleteVertexArraysOESImmediate)           /* 471 */ \
  OP(IsVertexArrayOES)                         /* 472 */ \
  OP(BindVertexArrayOES)                       /* 473 */ \
  OP(SwapBuffers)                              /* 474 */ \
  OP(GetMaxValueInBufferCHROMIUM)              /* 475 */ \
  OP(EnableFeatureCHROMIUM)                    /* 476 */ \
  OP(ResizeCHROMIUM)                           /* 477 */ \
  OP(GetRequestableExtensionsCHROMIUM)         /* 478 */ \
  OP(RequestExtensionCHROMIUM)                 /* 479 */ \
  OP(GetProgramInfoCHROMIUM)                   /* 480 */ \
  OP(GetTranslatedShaderSourceANGLE)           /* 481 */ \
  OP(PostSubBufferCHROMIUM)                    /* 482 */ \
  OP(TexImageIOSurface2DCHROMIUM)              /* 483 */ \
  OP(CopyTextureCHROMIUM)                      /* 484 */ \
  OP(DrawArraysInstancedANGLE)                 /* 485 */ \
  OP(DrawElementsInstancedANGLE)               /* 486 */ \
  OP(VertexAttribDivisorANGLE)                 /* 487 */ \
  OP(GenMailboxCHROMIUM)                       /* 488 */ \
  OP(ProduceTextureCHROMIUMImmediate)          /* 489 */ \
  OP(ProduceTextureDirectCHROMIUMImmediate)    /* 490 */ \
  OP(ConsumeTextureCHROMIUMImmediate)          /* 491 */ \
  OP(CreateAndConsumeTextureCHROMIUMImmediate) /* 492 */ \
  OP(BindUniformLocationCHROMIUMBucket)        /* 493 */ \
  OP(GenValuebuffersCHROMIUMImmediate)         /* 494 */ \
  OP(DeleteValuebuffersCHROMIUMImmediate)      /* 495 */ \
  OP(IsValuebufferCHROMIUM)                    /* 496 */ \
  OP(BindValuebufferCHROMIUM)                  /* 497 */ \
  OP(SubscribeValueCHROMIUM)                   /* 498 */ \
  OP(PopulateSubscribedValuesCHROMIUM)         /* 499 */ \
  OP(UniformValuebufferCHROMIUM)               /* 500 */ \
  OP(BindTexImage2DCHROMIUM)                   /* 501 */ \
  OP(ReleaseTexImage2DCHROMIUM)                /* 502 */ \
  OP(TraceBeginCHROMIUM)                       /* 503 */ \
  OP(TraceEndCHROMIUM)                         /* 504 */ \
  OP(AsyncTexSubImage2DCHROMIUM)               /* 505 */ \
  OP(AsyncTexImage2DCHROMIUM)                  /* 506 */ \
  OP(WaitAsyncTexImage2DCHROMIUM)              /* 507 */ \
  OP(WaitAllAsyncTexImage2DCHROMIUM)           /* 508 */ \
  OP(DiscardFramebufferEXTImmediate)           /* 509 */ \
  OP(LoseContextCHROMIUM)                      /* 510 */ \
  OP(InsertSyncPointCHROMIUM)                  /* 511 */ \
  OP(WaitSyncPointCHROMIUM)                    /* 512 */ \
  OP(DrawBuffersEXTImmediate)                  /* 513 */ \
  OP(DiscardBackbufferCHROMIUM)                /* 514 */ \
  OP(ScheduleOverlayPlaneCHROMIUM)             /* 515 */ \
  OP(SwapInterval)                             /* 516 */ \
  OP(MatrixLoadfCHROMIUMImmediate)             /* 517 */ \
  OP(MatrixLoadIdentityCHROMIUM)               /* 518 */ \
  OP(BlendBarrierKHR)                          /* 519 */

enum CommandId {
  kStartPoint = cmd::kLastCommonId,  // All GLES2 commands start after this.
#define GLES2_CMD_OP(name) k##name,
  GLES2_COMMAND_LIST(GLES2_CMD_OP)
#undef GLES2_CMD_OP
      kNumCommands
};

#endif  // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_IDS_AUTOGEN_H_
