blob: b4933ab6ecc7d76c247200a5c74881aad6b44345 [file] [log] [blame]
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_texture_format_table.py using data from texture_format_data.json
//
// Copyright 2018 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.
//
// texture_format_table:
// Queries for full textureFormat information based in internalFormat
//
#include "libANGLE/renderer/d3d/d3d11/texture_format_table.h"
#include "image_util/copyimage.h"
#include "image_util/generatemip.h"
#include "image_util/loadimage.h"
#include "libANGLE/renderer/d3d/d3d11/formatutils11.h"
#include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
#include "libANGLE/renderer/d3d/d3d11/texture_format_table_utils.h"
using namespace angle;
namespace rx
{
namespace d3d11
{
// static
const Format &Format::Get(GLenum internalFormat, const Renderer11DeviceCaps &deviceCaps)
{
// clang-format off
switch (internalFormat)
{
case GL_ALPHA16F_EXT:
{
static constexpr Format info(GL_ALPHA16F_EXT,
angle::FormatID::R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_FLOAT,
GL_RGBA16F,
nullptr);
return info;
}
case GL_ALPHA32F_EXT:
{
static constexpr Format info(GL_ALPHA32F_EXT,
angle::FormatID::R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_FLOAT,
GL_RGBA32F,
nullptr);
return info;
}
case GL_ALPHA8_EXT:
{
if (OnlyFL10Plus(deviceCaps))
{
static constexpr Format info(GL_ALPHA8_EXT,
angle::FormatID::A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_ALPHA8_EXT,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
}
case GL_BGR565_ANGLEX:
{
if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
{
static constexpr Format info(GL_BGR565_ANGLEX,
angle::FormatID::B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B5G6R5_UNORM,
GL_RGBA8,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_BGR565_ANGLEX,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
}
case GL_BGR5_A1_ANGLEX:
{
static constexpr Format info(GL_BGR5_A1_ANGLEX,
angle::FormatID::B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM,
GL_BGRA8_EXT,
nullptr);
return info;
}
case GL_BGRA4_ANGLEX:
{
static constexpr Format info(GL_BGRA4_ANGLEX,
angle::FormatID::B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM,
GL_BGRA8_EXT,
nullptr);
return info;
}
case GL_BGRA8_EXT:
{
static constexpr Format info(GL_BGRA8_EXT,
angle::FormatID::B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM,
GL_BGRA8_EXT,
nullptr);
return info;
}
case GL_BGRA8_SRGB_ANGLEX:
{
static constexpr Format info(GL_BGRA8_SRGB_ANGLEX,
angle::FormatID::B8G8R8A8_UNORM_SRGB,
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
GL_BGRA8_SRGB_ANGLEX,
nullptr);
return info;
}
case GL_BGRX8_ANGLEX:
{
if (OnlyFL11_1Plus(deviceCaps))
{
static constexpr Format info(GL_BGRX8_ANGLEX,
angle::FormatID::B8G8R8X8_UNORM,
DXGI_FORMAT_B8G8R8X8_UNORM,
DXGI_FORMAT_B8G8R8X8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8X8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B8G8R8X8_UNORM,
GL_BGRX8_ANGLEX,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_BGRX8_ANGLEX,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
}
case GL_COMPRESSED_R11_EAC:
{
static constexpr Format info(GL_COMPRESSED_R11_EAC,
angle::FormatID::R16_UNORM,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_UNORM,
GL_RGBA16_EXT,
nullptr);
return info;
}
case GL_COMPRESSED_RG11_EAC:
{
static constexpr Format info(GL_COMPRESSED_RG11_EAC,
angle::FormatID::R16G16_UNORM,
DXGI_FORMAT_R16G16_UNORM,
DXGI_FORMAT_R16G16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_UNORM,
GL_RGBA16_EXT,
nullptr);
return info;
}
case GL_COMPRESSED_RGB8_ETC2:
{
static constexpr Format info(GL_COMPRESSED_RGB8_ETC2,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE:
{
static constexpr Format info(GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE,
angle::FormatID::BC1_RGB_UNORM_BLOCK,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
{
static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
{
static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
angle::FormatID::BC1_RGBA_UNORM_BLOCK,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA8_ETC2_EAC:
{
static constexpr Format info(GL_COMPRESSED_RGBA8_ETC2_EAC,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:
{
static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_BPTC_UNORM_EXT:
{
static constexpr Format info(GL_COMPRESSED_RGBA_BPTC_UNORM_EXT,
angle::FormatID::BPTC_RGBA_UNORM_BLOCK,
DXGI_FORMAT_BC7_UNORM,
DXGI_FORMAT_BC7_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC7_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
{
static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
angle::FormatID::BC1_RGBA_UNORM_BLOCK,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
{
static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,
angle::FormatID::BC2_RGBA_UNORM_BLOCK,
DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC2_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
{
static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,
angle::FormatID::BC3_RGBA_UNORM_BLOCK,
DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC3_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:
{
static constexpr Format info(GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,
angle::FormatID::BPTC_RGB_SIGNED_FLOAT_BLOCK,
DXGI_FORMAT_BC6H_SF16,
DXGI_FORMAT_BC6H_SF16,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC6H_SF16,
GL_RGBA32F,
nullptr);
return info;
}
case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:
{
static constexpr Format info(GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,
angle::FormatID::BPTC_RGB_UNSIGNED_FLOAT_BLOCK,
DXGI_FORMAT_BC6H_UF16,
DXGI_FORMAT_BC6H_UF16,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC6H_UF16,
GL_RGBA32F,
nullptr);
return info;
}
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
{
static constexpr Format info(GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
angle::FormatID::BC1_RGB_UNORM_BLOCK,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_SIGNED_R11_EAC:
{
static constexpr Format info(GL_COMPRESSED_SIGNED_R11_EAC,
angle::FormatID::R16_SNORM,
DXGI_FORMAT_R16_SNORM,
DXGI_FORMAT_R16_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_SNORM,
GL_RGBA16_SNORM_EXT,
nullptr);
return info;
}
case GL_COMPRESSED_SIGNED_RG11_EAC:
{
static constexpr Format info(GL_COMPRESSED_SIGNED_RG11_EAC,
angle::FormatID::R16G16_SNORM,
DXGI_FORMAT_R16G16_SNORM,
DXGI_FORMAT_R16G16_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_SNORM,
GL_RGBA16_SNORM_EXT,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
angle::FormatID::R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
GL_SRGB8_ALPHA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_ETC2:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_ETC2,
angle::FormatID::R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
GL_SRGB8_ALPHA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE,
angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM_SRGB,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
angle::FormatID::R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
GL_SRGB8_ALPHA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
{
static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM_SRGB,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:
{
static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,
angle::FormatID::BPTC_SRGB_ALPHA_UNORM_BLOCK,
DXGI_FORMAT_BC7_UNORM_SRGB,
DXGI_FORMAT_BC7_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC7_UNORM_SRGB,
GL_SRGB8_ALPHA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
{
static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM_SRGB,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
{
static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
angle::FormatID::BC2_RGBA_UNORM_SRGB_BLOCK,
DXGI_FORMAT_BC2_UNORM_SRGB,
DXGI_FORMAT_BC2_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC2_UNORM_SRGB,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
{
static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
angle::FormatID::BC3_RGBA_UNORM_SRGB_BLOCK,
DXGI_FORMAT_BC3_UNORM_SRGB,
DXGI_FORMAT_BC3_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC3_UNORM_SRGB,
GL_RGBA8,
nullptr);
return info;
}
case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
{
static constexpr Format info(GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_BC1_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM_SRGB,
GL_RGBA8,
nullptr);
return info;
}
case GL_DEPTH24_STENCIL8:
{
if (OnlyFL10Plus(deviceCaps))
{
static constexpr Format info(GL_DEPTH24_STENCIL8,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
GL_RGBA32F,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_DEPTH24_STENCIL8,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
GL_RGBA32F,
nullptr);
return info;
}
}
case GL_DEPTH32F_STENCIL8:
{
static constexpr Format info(GL_DEPTH32F_STENCIL8,
angle::FormatID::D32_FLOAT_S8X24_UINT,
DXGI_FORMAT_R32G8X24_TYPELESS,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT_S8X24_UINT,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
GL_RGBA32F,
nullptr);
return info;
}
case GL_DEPTH_COMPONENT16:
{
if (OnlyFL10Plus(deviceCaps))
{
static constexpr Format info(GL_DEPTH_COMPONENT16,
angle::FormatID::D16_UNORM,
DXGI_FORMAT_R16_TYPELESS,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM,
DXGI_FORMAT_R16_UNORM,
GL_RGBA16_EXT,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_DEPTH_COMPONENT16,
angle::FormatID::D16_UNORM,
DXGI_FORMAT_D16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM,
DXGI_FORMAT_UNKNOWN,
GL_RGBA16_EXT,
nullptr);
return info;
}
}
case GL_DEPTH_COMPONENT24:
{
if (OnlyFL10Plus(deviceCaps))
{
static constexpr Format info(GL_DEPTH_COMPONENT24,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
GL_RGBA32F,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_DEPTH_COMPONENT24,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
GL_RGBA32F,
nullptr);
return info;
}
}
case GL_DEPTH_COMPONENT32F:
{
static constexpr Format info(GL_DEPTH_COMPONENT32F,
angle::FormatID::D32_FLOAT,
DXGI_FORMAT_R32_TYPELESS,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
GL_RGBA32F,
nullptr);
return info;
}
case GL_DEPTH_COMPONENT32_OES:
{
if (OnlyFL10Plus(deviceCaps))
{
static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
GL_RGBA32F,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
GL_RGBA32F,
nullptr);
return info;
}
}
case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE:
{
static constexpr Format info(GL_ETC1_RGB8_LOSSY_DECODE_ANGLE,
angle::FormatID::BC1_RGB_UNORM_BLOCK,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_BC1_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_ETC1_RGB8_OES:
{
static constexpr Format info(GL_ETC1_RGB8_OES,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_LUMINANCE16F_EXT:
{
static constexpr Format info(GL_LUMINANCE16F_EXT,
angle::FormatID::R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_FLOAT,
GL_RGBA16F,
Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
return info;
}
case GL_LUMINANCE32F_EXT:
{
static constexpr Format info(GL_LUMINANCE32F_EXT,
angle::FormatID::R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_FLOAT,
GL_RGBA32F,
Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
return info;
}
case GL_LUMINANCE8_ALPHA8_EXT:
{
static constexpr Format info(GL_LUMINANCE8_ALPHA8_EXT,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_LUMINANCE8_EXT:
{
static constexpr Format info(GL_LUMINANCE8_EXT,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_LUMINANCE_ALPHA16F_EXT:
{
static constexpr Format info(GL_LUMINANCE_ALPHA16F_EXT,
angle::FormatID::R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_FLOAT,
GL_RGBA16F,
nullptr);
return info;
}
case GL_LUMINANCE_ALPHA32F_EXT:
{
static constexpr Format info(GL_LUMINANCE_ALPHA32F_EXT,
angle::FormatID::R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_FLOAT,
GL_RGBA32F,
nullptr);
return info;
}
case GL_NONE:
{
static constexpr Format info(GL_NONE,
angle::FormatID::NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
GL_NONE,
nullptr);
return info;
}
case GL_R11F_G11F_B10F:
{
static constexpr Format info(GL_R11F_G11F_B10F,
angle::FormatID::R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R11G11B10_FLOAT,
GL_RGBA16F_EXT,
nullptr);
return info;
}
case GL_R16F:
{
static constexpr Format info(GL_R16F,
angle::FormatID::R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_FLOAT,
GL_RGBA16F_EXT,
nullptr);
return info;
}
case GL_R16I:
{
static constexpr Format info(GL_R16I,
angle::FormatID::R16_SINT,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_SINT,
GL_RGBA16I,
nullptr);
return info;
}
case GL_R16UI:
{
static constexpr Format info(GL_R16UI,
angle::FormatID::R16_UINT,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_UINT,
GL_RGBA16I,
nullptr);
return info;
}
case GL_R16_EXT:
{
static constexpr Format info(GL_R16_EXT,
angle::FormatID::R16_UNORM,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_UNORM,
GL_RGBA16_EXT,
nullptr);
return info;
}
case GL_R16_SNORM_EXT:
{
static constexpr Format info(GL_R16_SNORM_EXT,
angle::FormatID::R16_SNORM,
DXGI_FORMAT_R16_SNORM,
DXGI_FORMAT_R16_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16_SNORM,
GL_RGBA16_SNORM_EXT,
nullptr);
return info;
}
case GL_R32F:
{
static constexpr Format info(GL_R32F,
angle::FormatID::R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32_FLOAT,
GL_RGBA32F,
nullptr);
return info;
}
case GL_R32I:
{
static constexpr Format info(GL_R32I,
angle::FormatID::R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32_SINT,
GL_RGBA32I,
nullptr);
return info;
}
case GL_R32UI:
{
static constexpr Format info(GL_R32UI,
angle::FormatID::R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32_UINT,
GL_RGBA32I,
nullptr);
return info;
}
case GL_R8:
{
static constexpr Format info(GL_R8,
angle::FormatID::R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_R8I:
{
static constexpr Format info(GL_R8I,
angle::FormatID::R8_SINT,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8_SINT,
GL_RGBA8I,
nullptr);
return info;
}
case GL_R8UI:
{
static constexpr Format info(GL_R8UI,
angle::FormatID::R8_UINT,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8_UINT,
GL_RGBA8I,
nullptr);
return info;
}
case GL_R8_SNORM:
{
static constexpr Format info(GL_R8_SNORM,
angle::FormatID::R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8_SNORM,
GL_RGBA8_SNORM,
nullptr);
return info;
}
case GL_RG16F:
{
static constexpr Format info(GL_RG16F,
angle::FormatID::R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_FLOAT,
GL_RGBA16F_EXT,
nullptr);
return info;
}
case GL_RG16I:
{
static constexpr Format info(GL_RG16I,
angle::FormatID::R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_SINT,
GL_RGBA16I,
nullptr);
return info;
}
case GL_RG16UI:
{
static constexpr Format info(GL_RG16UI,
angle::FormatID::R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_UINT,
GL_RGBA16I,
nullptr);
return info;
}
case GL_RG16_EXT:
{
static constexpr Format info(GL_RG16_EXT,
angle::FormatID::R16G16_UNORM,
DXGI_FORMAT_R16G16_UNORM,
DXGI_FORMAT_R16G16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_UNORM,
GL_RGBA16_EXT,
nullptr);
return info;
}
case GL_RG16_SNORM_EXT:
{
static constexpr Format info(GL_RG16_SNORM_EXT,
angle::FormatID::R16G16_SNORM,
DXGI_FORMAT_R16G16_SNORM,
DXGI_FORMAT_R16G16_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16_SNORM,
GL_RGBA16_SNORM_EXT,
nullptr);
return info;
}
case GL_RG32F:
{
static constexpr Format info(GL_RG32F,
angle::FormatID::R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32_FLOAT,
GL_RGBA32F,
nullptr);
return info;
}
case GL_RG32I:
{
static constexpr Format info(GL_RG32I,
angle::FormatID::R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32_SINT,
GL_RGBA32I,
nullptr);
return info;
}
case GL_RG32UI:
{
static constexpr Format info(GL_RG32UI,
angle::FormatID::R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32_UINT,
GL_RGBA32I,
nullptr);
return info;
}
case GL_RG8:
{
static constexpr Format info(GL_RG8,
angle::FormatID::R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_RG8I:
{
static constexpr Format info(GL_RG8I,
angle::FormatID::R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8_SINT,
GL_RGBA8I,
nullptr);
return info;
}
case GL_RG8UI:
{
static constexpr Format info(GL_RG8UI,
angle::FormatID::R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8_UINT,
GL_RGBA8I,
nullptr);
return info;
}
case GL_RG8_SNORM:
{
static constexpr Format info(GL_RG8_SNORM,
angle::FormatID::R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8_SNORM,
GL_RGBA8_SNORM,
nullptr);
return info;
}
case GL_RGB:
{
static constexpr Format info(GL_RGB,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_RGB10_A2:
{
static constexpr Format info(GL_RGB10_A2,
angle::FormatID::R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R10G10B10A2_UNORM,
GL_RGBA16_EXT,
nullptr);
return info;
}
case GL_RGB10_A2UI:
{
static constexpr Format info(GL_RGB10_A2UI,
angle::FormatID::R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R10G10B10A2_UINT,
GL_RGBA16I,
nullptr);
return info;
}
case GL_RGB16F:
{
static constexpr Format info(GL_RGB16F,
angle::FormatID::R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_FLOAT,
GL_RGBA16F,
Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
return info;
}
case GL_RGB16I:
{
static constexpr Format info(GL_RGB16I,
angle::FormatID::R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_SINT,
GL_RGBA16I,
Initialize4ComponentData<GLshort, 0x0000, 0x0000, 0x0000, 0x0001>);
return info;
}
case GL_RGB16UI:
{
static constexpr Format info(GL_RGB16UI,
angle::FormatID::R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_UINT,
GL_RGBA16UI,
Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x0001>);
return info;
}
case GL_RGB16_EXT:
{
static constexpr Format info(GL_RGB16_EXT,
angle::FormatID::R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_UNORM,
GL_RGBA16_EXT,
Initialize4ComponentData<GLubyte, 0x0000, 0x0000, 0x0000, 0xFFFF>);
return info;
}
case GL_RGB16_SNORM_EXT:
{
static constexpr Format info(GL_RGB16_SNORM_EXT,
angle::FormatID::R16G16B16A16_SNORM,
DXGI_FORMAT_R16G16B16A16_SNORM,
DXGI_FORMAT_R16G16B16A16_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_SNORM,
GL_RGBA16_SNORM_EXT,
Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x7FFF>);
return info;
}
case GL_RGB32F:
{
static constexpr Format info(GL_RGB32F,
angle::FormatID::R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_FLOAT,
GL_RGBA32F,
Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
return info;
}
case GL_RGB32I:
{
static constexpr Format info(GL_RGB32I,
angle::FormatID::R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_SINT,
GL_RGBA32I,
Initialize4ComponentData<GLint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
return info;
}
case GL_RGB32UI:
{
static constexpr Format info(GL_RGB32UI,
angle::FormatID::R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_UINT,
GL_RGBA32UI,
Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
return info;
}
case GL_RGB565:
{
if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
{
static constexpr Format info(GL_RGB565,
angle::FormatID::B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B5G6R5_UNORM,
GL_RGBA8,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_RGB565,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
}
case GL_RGB5_A1:
{
if (SupportsFormat(DXGI_FORMAT_B5G5R5A1_UNORM, deviceCaps))
{
static constexpr Format info(GL_RGB5_A1,
angle::FormatID::B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B5G5R5A1_UNORM,
GL_RGBA8,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_RGB5_A1,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
}
case GL_RGB8:
{
static constexpr Format info(GL_RGB8,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_RGB8I:
{
static constexpr Format info(GL_RGB8I,
angle::FormatID::R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_SINT,
GL_RGBA8I,
Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x01>);
return info;
}
case GL_RGB8UI:
{
static constexpr Format info(GL_RGB8UI,
angle::FormatID::R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UINT,
GL_RGBA8UI,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0x01>);
return info;
}
case GL_RGB8_SNORM:
{
static constexpr Format info(GL_RGB8_SNORM,
angle::FormatID::R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_SNORM,
GL_RGBA8_SNORM,
Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x7F>);
return info;
}
case GL_RGB9_E5:
{
static constexpr Format info(GL_RGB9_E5,
angle::FormatID::R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
GL_RGBA16F_EXT,
nullptr);
return info;
}
case GL_RGBA:
{
static constexpr Format info(GL_RGBA,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_RGBA16F:
{
static constexpr Format info(GL_RGBA16F,
angle::FormatID::R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_FLOAT,
GL_RGBA16F,
nullptr);
return info;
}
case GL_RGBA16I:
{
static constexpr Format info(GL_RGBA16I,
angle::FormatID::R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_SINT,
GL_RGBA16I,
nullptr);
return info;
}
case GL_RGBA16UI:
{
static constexpr Format info(GL_RGBA16UI,
angle::FormatID::R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_UINT,
GL_RGBA16UI,
nullptr);
return info;
}
case GL_RGBA16_EXT:
{
static constexpr Format info(GL_RGBA16_EXT,
angle::FormatID::R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_UNORM,
GL_RGBA16_EXT,
nullptr);
return info;
}
case GL_RGBA16_SNORM_EXT:
{
static constexpr Format info(GL_RGBA16_SNORM_EXT,
angle::FormatID::R16G16B16A16_SNORM,
DXGI_FORMAT_R16G16B16A16_SNORM,
DXGI_FORMAT_R16G16B16A16_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R16G16B16A16_SNORM,
GL_RGBA16_SNORM_EXT,
nullptr);
return info;
}
case GL_RGBA32F:
{
static constexpr Format info(GL_RGBA32F,
angle::FormatID::R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_FLOAT,
GL_RGBA32F,
nullptr);
return info;
}
case GL_RGBA32I:
{
static constexpr Format info(GL_RGBA32I,
angle::FormatID::R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_SINT,
GL_RGBA32I,
nullptr);
return info;
}
case GL_RGBA32UI:
{
static constexpr Format info(GL_RGBA32UI,
angle::FormatID::R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R32G32B32A32_UINT,
GL_RGBA32UI,
nullptr);
return info;
}
case GL_RGBA4:
{
if (SupportsFormat(DXGI_FORMAT_B4G4R4A4_UNORM, deviceCaps))
{
static constexpr Format info(GL_RGBA4,
angle::FormatID::B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_B4G4R4A4_UNORM,
GL_RGBA4,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_RGBA4,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
}
case GL_RGBA8:
{
static constexpr Format info(GL_RGBA8,
angle::FormatID::R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM,
GL_RGBA8,
nullptr);
return info;
}
case GL_RGBA8I:
{
static constexpr Format info(GL_RGBA8I,
angle::FormatID::R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_SINT,
GL_RGBA8I,
nullptr);
return info;
}
case GL_RGBA8UI:
{
static constexpr Format info(GL_RGBA8UI,
angle::FormatID::R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UINT,
GL_RGBA8UI,
nullptr);
return info;
}
case GL_RGBA8_SNORM:
{
static constexpr Format info(GL_RGBA8_SNORM,
angle::FormatID::R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_SNORM,
GL_RGBA8_SNORM,
nullptr);
return info;
}
case GL_SRGB8:
{
static constexpr Format info(GL_SRGB8,
angle::FormatID::R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
GL_SRGB8_ALPHA8,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return info;
}
case GL_SRGB8_ALPHA8:
{
static constexpr Format info(GL_SRGB8_ALPHA8,
angle::FormatID::R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
GL_SRGB8_ALPHA8,
nullptr);
return info;
}
case GL_STENCIL_INDEX8:
{
if (OnlyFL10Plus(deviceCaps))
{
static constexpr Format info(GL_STENCIL_INDEX8,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
GL_RGBA32F,
nullptr);
return info;
}
else
{
static constexpr Format info(GL_STENCIL_INDEX8,
angle::FormatID::D24_UNORM_S8_UINT,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
GL_RGBA32F,
nullptr);
return info;
}
}
default:
break;
}
// clang-format on
UNREACHABLE();
static constexpr Format defaultInfo;
return defaultInfo;
}
} // namespace d3d11
} // namespace rx