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

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_
