// 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_UTILS_AUTOGEN_H_
#define GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_AUTOGEN_H_

static std::string GetStringAttachment(uint32_t value);
static std::string GetStringBackbufferAttachment(uint32_t value);
static std::string GetStringBlitFilter(uint32_t value);
static std::string GetStringBufferParameter(uint32_t value);
static std::string GetStringBufferTarget(uint32_t value);
static std::string GetStringBufferUsage(uint32_t value);
static std::string GetStringCapability(uint32_t value);
static std::string GetStringCmpFunction(uint32_t value);
static std::string GetStringCompressedTextureFormat(uint32_t value);
static std::string GetStringDrawMode(uint32_t value);
static std::string GetStringDstBlendFactor(uint32_t value);
static std::string GetStringEquation(uint32_t value);
static std::string GetStringFaceMode(uint32_t value);
static std::string GetStringFaceType(uint32_t value);
static std::string GetStringFrameBufferParameter(uint32_t value);
static std::string GetStringFrameBufferTarget(uint32_t value);
static std::string GetStringGLState(uint32_t value);
static std::string GetStringGetMaxIndexType(uint32_t value);
static std::string GetStringGetTexParamTarget(uint32_t value);
static std::string GetStringHintMode(uint32_t value);
static std::string GetStringHintTarget(uint32_t value);
static std::string GetStringImageInternalFormat(uint32_t value);
static std::string GetStringImageUsage(uint32_t value);
static std::string GetStringIndexType(uint32_t value);
static std::string GetStringMatrixMode(uint32_t value);
static std::string GetStringPixelStore(uint32_t value);
static std::string GetStringPixelType(uint32_t value);
static std::string GetStringProgramParameter(uint32_t value);
static std::string GetStringQueryObjectParameter(uint32_t value);
static std::string GetStringQueryParameter(uint32_t value);
static std::string GetStringQueryTarget(uint32_t value);
static std::string GetStringReadPixelFormat(uint32_t value);
static std::string GetStringReadPixelType(uint32_t value);
static std::string GetStringRenderBufferFormat(uint32_t value);
static std::string GetStringRenderBufferParameter(uint32_t value);
static std::string GetStringRenderBufferTarget(uint32_t value);
static std::string GetStringResetStatus(uint32_t value);
static std::string GetStringSamplerParameter(uint32_t value);
static std::string GetStringShaderBinaryFormat(uint32_t value);
static std::string GetStringShaderParameter(uint32_t value);
static std::string GetStringShaderPrecision(uint32_t value);
static std::string GetStringShaderType(uint32_t value);
static std::string GetStringSrcBlendFactor(uint32_t value);
static std::string GetStringStencilOp(uint32_t value);
static std::string GetStringStringType(uint32_t value);
static std::string GetStringSubscriptionTarget(uint32_t value);
static std::string GetStringTexture3DTarget(uint32_t value);
static std::string GetStringTextureBindTarget(uint32_t value);
static std::string GetStringTextureFormat(uint32_t value);
static std::string GetStringTextureInternalFormat(uint32_t value);
static std::string GetStringTextureInternalFormatStorage(uint32_t value);
static std::string GetStringTextureMagFilterMode(uint32_t value);
static std::string GetStringTextureMinFilterMode(uint32_t value);
static std::string GetStringTextureParameter(uint32_t value);
static std::string GetStringTexturePool(uint32_t value);
static std::string GetStringTextureTarget(uint32_t value);
static std::string GetStringTextureUsage(uint32_t value);
static std::string GetStringTextureWrapMode(uint32_t value);
static std::string GetStringTransformFeedbackBindTarget(uint32_t value);
static std::string GetStringTransformFeedbackPrimitiveMode(uint32_t value);
static std::string GetStringValueBufferTarget(uint32_t value);
static std::string GetStringVertexAttribType(uint32_t value);
static std::string GetStringVertexAttribute(uint32_t value);
static std::string GetStringVertexPointer(uint32_t value);

#endif  // GPU_COMMAND_BUFFER_COMMON_GLES2_CMD_UTILS_AUTOGEN_H_
