chromium/third_party/angle/src/compiler/translator/ExtensionBehavior.h

//
// Copyright 2002 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ExtensionBehavior.h: Extension name enumeration and data structures for storing extension
// behavior.

#ifndef COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_
#define COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_

#include <cstdint>
#include <map>

namespace sh
{

enum class TExtension : uint8_t
{};

enum TBehavior : uint8_t
{};

const char *GetExtensionNameString(TExtension extension);
TExtension GetExtensionByName(const char *extension);
bool CheckExtensionVersion(TExtension extension, int version);

const char *GetBehaviorString(TBehavior b);

// Mapping between extension id and behavior.
TExtensionBehavior;

bool IsExtensionEnabled(const TExtensionBehavior &extBehavior, TExtension extension);

}  // namespace sh

#endif  // COMPILER_TRANSLATOR_EXTENSIONBEHAVIOR_H_