// 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 GetStringBufferMode(uint32_t value);
static std::string GetStringBufferParameter(uint32_t value);
static std::string GetStringBufferParameter64(uint32_t value);
static std::string GetStringBufferTarget(uint32_t value);
static std::string GetStringBufferUsage(uint32_t value);
static std::string GetStringBufferfi(uint32_t value);
static std::string GetStringBufferfv(uint32_t value);
static std::string GetStringBufferiv(uint32_t value);
static std::string GetStringBufferuiv(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 GetStringCoverageModulationComponents(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 GetStringIndexedBufferTarget(uint32_t value);
static std::string GetStringIndexedGLState(uint32_t value);
static std::string GetStringIndexedStringType(uint32_t value);
static std::string GetStringInternalFormatParameter(uint32_t value);
static std::string GetStringMapBufferAccess(uint32_t value);
static std::string GetStringMatrixMode(uint32_t value);
static std::string GetStringPathCoordType(uint32_t value);
static std::string GetStringPathCoverMode(uint32_t value);
static std::string GetStringPathFillMode(uint32_t value);
static std::string GetStringPathFragmentInputGenMode(uint32_t value);
static std::string GetStringPathInstancedCoverMode(uint32_t value);
static std::string GetStringPathNameType(uint32_t value);
static std::string GetStringPathParameter(uint32_t value);
static std::string GetStringPathTransformType(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 GetStringReadBuffer(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 GetStringSyncCondition(uint32_t value);
static std::string GetStringSyncParameter(uint32_t value);
static std::string GetStringTexture3DTarget(uint32_t value);
static std::string GetStringTextureBindTarget(uint32_t value);
static std::string GetStringTextureCompareFunc(uint32_t value);
static std::string GetStringTextureCompareMode(uint32_t value);
static std::string GetStringTextureDepthRenderableInternalFormat(
    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 GetStringTextureSizedColorRenderableInternalFormat(
    uint32_t value);
static std::string GetStringTextureSizedTextureFilterableInternalFormat(
    uint32_t value);
static std::string GetStringTextureStencilRenderableInternalFormat(
    uint32_t value);
static std::string GetStringTextureSwizzle(uint32_t value);
static std::string GetStringTextureTarget(uint32_t value);
static std::string GetStringTextureUnsizedInternalFormat(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 GetStringUniformBlockParameter(uint32_t value);
static std::string GetStringUniformParameter(uint32_t value);
static std::string GetStringVertexAttribIType(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_
