chromium/third_party/angle/src/libANGLE/renderer/gl/formatutilsgl.h

//
// Copyright 2015 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.
//

// formatutilsgl.h: Queries for GL image formats and their translations to native
// GL formats.

#ifndef LIBANGLE_RENDERER_GL_FORMATUTILSGL_H_
#define LIBANGLE_RENDERER_GL_FORMATUTILSGL_H_

#include <map>
#include <string>
#include <vector>

#include "angle_gl.h"
#include "libANGLE/Version.h"
#include "libANGLE/renderer/gl/FunctionsGL.h"

namespace angle
{
struct FeaturesGL;
}  // namespace angle

namespace rx
{

namespace nativegl
{

struct SupportRequirement
{};

struct InternalFormat
{};
const InternalFormat &GetInternalFormatInfo(GLenum internalFormat, StandardGL standard);

struct TexImageFormat
{};
TexImageFormat GetTexImageFormat(const FunctionsGL *functions,
                                 const angle::FeaturesGL &features,
                                 GLenum internalFormat,
                                 GLenum format,
                                 GLenum type);

struct TexSubImageFormat
{};
TexSubImageFormat GetTexSubImageFormat(const FunctionsGL *functions,
                                       const angle::FeaturesGL &features,
                                       GLenum format,
                                       GLenum type);

struct CompressedTexImageFormat
{};
CompressedTexImageFormat GetCompressedTexImageFormat(const FunctionsGL *functions,
                                                     const angle::FeaturesGL &features,
                                                     GLenum internalFormat);

struct CompressedTexSubImageFormat
{};
CompressedTexSubImageFormat GetCompressedSubTexImageFormat(const FunctionsGL *functions,
                                                           const angle::FeaturesGL &features,
                                                           GLenum format);

struct CopyTexImageImageFormat
{};
CopyTexImageImageFormat GetCopyTexImageImageFormat(const FunctionsGL *functions,
                                                   const angle::FeaturesGL &features,
                                                   GLenum internalFormat,
                                                   GLenum framebufferType);

struct TexStorageFormat
{};
TexStorageFormat GetTexStorageFormat(const FunctionsGL *functions,
                                     const angle::FeaturesGL &features,
                                     GLenum internalFormat);

struct RenderbufferFormat
{};
RenderbufferFormat GetRenderbufferFormat(const FunctionsGL *functions,
                                         const angle::FeaturesGL &features,
                                         GLenum internalFormat);

struct ReadPixelsFormat
{};
ReadPixelsFormat GetReadPixelsFormat(const FunctionsGL *functions,
                                     const angle::FeaturesGL &features,
                                     GLenum readAttachmentFormat,
                                     GLenum format,
                                     GLenum type);
}  // namespace nativegl

}  // namespace rx

#endif  // LIBANGLE_RENDERER_GL_FORMATUTILSGL_H_