Commit 11505601 by Olli Etuaho

D3D11 Texture refactoring: Add ANGLEFormat enumeration to C++ code

Texture formats that are internal to ANGLE can now be uniquely identified using the ANGLEFormat enum. GetANGLEFormatInfo returns a structure with the DXGI texture formats associated with the ANGLE format. For starters, the ANGLEFormat enum is used when building texture info structures queried from GetTextureFormatInfo. BUG=angleproject:1244 TEST=angle_end2end_tests Change-Id: I58a2027a1d9b7a5621f943cc5ceeb88a858009e3 Reviewed-on: https://chromium-review.googlesource.com/328254Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
parent 1fbc59fe
...@@ -11,7 +11,31 @@ import json ...@@ -11,7 +11,31 @@ import json
import pprint import pprint
import re import re
template = """// GENERATED FILE - DO NOT EDIT. template_texture_format_table_autogen_h = """// GENERATED FILE - DO NOT EDIT.
// Generated by gen_texture_format_table.py using data from texture_format_data.json
//
// Copyright 2016 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.
//
namespace rx
{{
namespace d3d11
{{
enum ANGLEFormat
{{
{angle_format_enum}
}};
}} // namespace d3d11
}} // namespace rx
"""
template_texture_format_table_autogen_cpp = """// GENERATED FILE - DO NOT EDIT.
// Generated by gen_texture_format_table.py using data from texture_format_data.json // Generated by gen_texture_format_table.py using data from texture_format_data.json
// //
// Copyright 2015 The ANGLE Project Authors. All rights reserved. // Copyright 2015 The ANGLE Project Authors. All rights reserved.
...@@ -124,24 +148,18 @@ DXGIFormatSet::DXGIFormatSet() ...@@ -124,24 +148,18 @@ DXGIFormatSet::DXGIFormatSet()
// This function allows querying for the DXGI texture formats to use for textures, SRVs, RTVs and // This function allows querying for the DXGI texture formats to use for textures, SRVs, RTVs and
// DSVs given a GL internal format. // DSVs given a GL internal format.
TextureFormat::TextureFormat(GLenum internalFormat, TextureFormat::TextureFormat(GLenum internalFormat,
DXGI_FORMAT texFormat, const DXGIFormatSet &formatSet,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat,
InitializeTextureDataFunction internalFormatInitializer) InitializeTextureDataFunction internalFormatInitializer)
: dataInitializerFunction(internalFormatInitializer) : formatSet(formatSet), dataInitializerFunction(internalFormatInitializer)
{{ {{
formatSet.texFormat = texFormat;
formatSet.srvFormat = srvFormat;
formatSet.rtvFormat = rtvFormat;
formatSet.dsvFormat = dsvFormat;
// Compute the swizzle formats // Compute the swizzle formats
const gl::InternalFormat &formatInfo = gl::GetInternalFormatInfo(internalFormat); const gl::InternalFormat &formatInfo = gl::GetInternalFormatInfo(internalFormat);
if (internalFormat != GL_NONE && formatInfo.pixelBytes > 0) if (internalFormat != GL_NONE && formatInfo.pixelBytes > 0)
{{ {{
if (formatInfo.componentCount != 4 || texFormat == DXGI_FORMAT_UNKNOWN || if (formatInfo.componentCount != 4 || formatSet.texFormat == DXGI_FORMAT_UNKNOWN ||
srvFormat == DXGI_FORMAT_UNKNOWN || rtvFormat == DXGI_FORMAT_UNKNOWN) formatSet.srvFormat == DXGI_FORMAT_UNKNOWN ||
formatSet.rtvFormat == DXGI_FORMAT_UNKNOWN)
{{ {{
// Get the maximum sized component // Get the maximum sized component
unsigned int maxBits = 1; unsigned int maxBits = 1;
...@@ -185,25 +203,48 @@ TextureFormat::TextureFormat(GLenum internalFormat, ...@@ -185,25 +203,48 @@ TextureFormat::TextureFormat(GLenum internalFormat,
}} }}
// Gather all the load functions for this internal format // Gather all the load functions for this internal format
loadFunctions = GetLoadFunctionsMap(internalFormat, texFormat); loadFunctions = GetLoadFunctionsMap(internalFormat, formatSet.texFormat);
ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE); ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE);
}} }}
DXGIFormatSet::DXGIFormatSet(DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat)
: texFormat(texFormat), srvFormat(srvFormat), rtvFormat(rtvFormat), dsvFormat(dsvFormat)
{{
}}
const DXGIFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
{{
// clang-format off
switch (angleFormat)
{{
{angle_format_info_cases}
default:
break;
}}
// clang-format on
UNREACHABLE();
static const DXGIFormatSet defaultInfo;
return defaultInfo;
}}
const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
const Renderer11DeviceCaps &renderer11DeviceCaps) const Renderer11DeviceCaps &renderer11DeviceCaps)
{{ {{
// clang-format off // clang-format off
switch (internalFormat) switch (internalFormat)
{{ {{
{data} {texture_format_info_cases}
default: default:
break; break;
}} }}
// clang-format on // clang-format on
static const TextureFormat defaultInfo(GL_NONE, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, static const TextureFormat defaultInfo(GL_NONE, DXGIFormatSet(), nullptr);
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, nullptr);
return defaultInfo; return defaultInfo;
}} // GetTextureFormatInfo }} // GetTextureFormatInfo
...@@ -283,14 +324,9 @@ def get_internal_format_initializer(internal_format, angle_format): ...@@ -283,14 +324,9 @@ def get_internal_format_initializer(internal_format, angle_format):
return internal_format_initializer return internal_format_initializer
def get_texture_format_item(idx, internal_format, requirements_fn, angle_format): def get_texture_format_item(idx, internal_format, requirements_fn, angle_format_id, angle_format):
table_data = ''; table_data = '';
tex_format = angle_format["texFormat"] if "texFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
srv_format = angle_format["srvFormat"] if "srvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
rtv_format = angle_format["rtvFormat"] if "rtvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
dsv_format = angle_format["dsvFormat"] if "dsvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
internal_format_initializer = get_internal_format_initializer(internal_format, angle_format) internal_format_initializer = get_internal_format_initializer(internal_format, angle_format)
indent = ' ' indent = ' '
...@@ -303,10 +339,7 @@ def get_texture_format_item(idx, internal_format, requirements_fn, angle_format) ...@@ -303,10 +339,7 @@ def get_texture_format_item(idx, internal_format, requirements_fn, angle_format)
indent += ' ' indent += ' '
table_data += indent + 'static const TextureFormat textureFormat(internalFormat,\n' table_data += indent + 'static const TextureFormat textureFormat(internalFormat,\n'
table_data += indent + ' ' + tex_format + ',\n' table_data += indent + ' GetANGLEFormatSet(' + angle_format_id + '),\n'
table_data += indent + ' ' + srv_format + ',\n'
table_data += indent + ' ' + rtv_format + ',\n'
table_data += indent + ' ' + dsv_format + ',\n'
table_data += indent + ' ' + internal_format_initializer + ');\n' table_data += indent + ' ' + internal_format_initializer + ');\n'
table_data += indent + 'return textureFormat;\n' table_data += indent + 'return textureFormat;\n'
...@@ -315,7 +348,7 @@ def get_texture_format_item(idx, internal_format, requirements_fn, angle_format) ...@@ -315,7 +348,7 @@ def get_texture_format_item(idx, internal_format, requirements_fn, angle_format)
return table_data return table_data
def parse_json_into_switch_string(json_map, json_data): def parse_json_into_switch_texture_format_string(json_map, json_data):
table_data = '' table_data = ''
angle_format_map = {} angle_format_map = {}
...@@ -325,10 +358,12 @@ def parse_json_into_switch_string(json_map, json_data): ...@@ -325,10 +358,12 @@ def parse_json_into_switch_string(json_map, json_data):
table_data += ' {\n' table_data += ' {\n'
if isinstance(json_map[internal_format], basestring): if isinstance(json_map[internal_format], basestring):
table_data += get_texture_format_item(0, internal_format, None, json_data[json_map[internal_format]]) angle_format_id = json_map[internal_format]
table_data += get_texture_format_item(0, internal_format, None, angle_format_id, json_data[angle_format_id])
else: else:
for idx, requirements_map in enumerate(sorted(json_map[internal_format].iteritems())): for idx, requirements_map in enumerate(sorted(json_map[internal_format].iteritems())):
table_data += get_texture_format_item(idx, internal_format, requirements_map[0], json_data[requirements_map[1]]) angle_format_id = requirements_map[1]
table_data += get_texture_format_item(idx, internal_format, requirements_map[0], angle_format_id, json_data[angle_format_id])
table_data += ' else\n' table_data += ' else\n'
table_data += ' {\n' table_data += ' {\n'
table_data += ' break;\n' table_data += ' break;\n'
...@@ -338,6 +373,34 @@ def parse_json_into_switch_string(json_map, json_data): ...@@ -338,6 +373,34 @@ def parse_json_into_switch_string(json_map, json_data):
return table_data return table_data
def parse_json_into_switch_angle_format_string(json_data):
table_data = ''
for angle_format_item in sorted(json_data.iteritems()):
table_data += ' case ' + angle_format_item[0] + ':\n'
angle_format = angle_format_item[1]
tex_format = angle_format["texFormat"] if "texFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
srv_format = angle_format["srvFormat"] if "srvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
rtv_format = angle_format["rtvFormat"] if "rtvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
dsv_format = angle_format["dsvFormat"] if "dsvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
table_data += ' {\n'
table_data += ' static const DXGIFormatSet formatInfo(' + tex_format + ',\n'
table_data += ' ' + srv_format + ',\n'
table_data += ' ' + rtv_format + ',\n'
table_data += ' ' + dsv_format + ');\n'
table_data += ' return formatInfo;\n'
table_data += ' }\n'
return table_data
def parse_json_into_angle_format_enum_string(json_data):
enum_data = ''
index = 0
for angle_format_item in sorted(json_data.iteritems()):
if index > 0:
enum_data += ',\n'
enum_data += ' ' + angle_format_item[0]
index += 1
return enum_data
def reject_duplicate_keys(pairs): def reject_duplicate_keys(pairs):
found_keys = {} found_keys = {}
for key, value in pairs: for key, value in pairs:
...@@ -356,9 +419,15 @@ with open('texture_format_map.json') as texture_format_map_file: ...@@ -356,9 +419,15 @@ with open('texture_format_map.json') as texture_format_map_file:
json_map = json.loads(texture_format_map, object_pairs_hook=reject_duplicate_keys) json_map = json.loads(texture_format_map, object_pairs_hook=reject_duplicate_keys)
json_data = json.loads(texture_format_data, object_pairs_hook=reject_duplicate_keys) json_data = json.loads(texture_format_data, object_pairs_hook=reject_duplicate_keys)
table_data = parse_json_into_switch_string(json_map, json_data) texture_format_cases = parse_json_into_switch_texture_format_string(json_map, json_data)
output = template.format(data=table_data) angle_format_cases = parse_json_into_switch_angle_format_string(json_data)
output_cpp = template_texture_format_table_autogen_cpp.format(texture_format_info_cases=texture_format_cases, angle_format_info_cases=angle_format_cases)
with open('texture_format_table_autogen.cpp', 'wt') as out_file: with open('texture_format_table_autogen.cpp', 'wt') as out_file:
out_file.write(output) out_file.write(output_cpp)
out_file.close()
enum_data = parse_json_into_angle_format_enum_string(json_data)
output_h = template_texture_format_table_autogen_h.format(angle_format_enum=enum_data)
with open('texture_format_table_autogen.h', 'wt') as out_file:
out_file.write(output_h)
out_file.close() out_file.close()
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "common/platform.h" #include "common/platform.h"
#include "libANGLE/renderer/d3d/formatutilsD3D.h" #include "libANGLE/renderer/d3d/formatutilsD3D.h"
#include "libANGLE/renderer/d3d/d3d11/Renderer11.h" #include "libANGLE/renderer/d3d/d3d11/Renderer11.h"
#include "libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.h"
namespace rx namespace rx
{ {
...@@ -37,6 +38,10 @@ struct LoadImageFunctionInfo ...@@ -37,6 +38,10 @@ struct LoadImageFunctionInfo
struct DXGIFormatSet struct DXGIFormatSet
{ {
DXGIFormatSet(); DXGIFormatSet();
DXGIFormatSet(DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat);
DXGIFormatSet(const DXGIFormatSet &) = default; DXGIFormatSet(const DXGIFormatSet &) = default;
DXGIFormatSet &operator=(const DXGIFormatSet &) = default; DXGIFormatSet &operator=(const DXGIFormatSet &) = default;
...@@ -49,10 +54,7 @@ struct DXGIFormatSet ...@@ -49,10 +54,7 @@ struct DXGIFormatSet
struct TextureFormat : public angle::NonCopyable struct TextureFormat : public angle::NonCopyable
{ {
TextureFormat(GLenum internalFormat, TextureFormat(GLenum internalFormat,
DXGI_FORMAT texFormat, const DXGIFormatSet &formatSet,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat,
InitializeTextureDataFunction internalFormatInitializer); InitializeTextureDataFunction internalFormatInitializer);
DXGIFormatSet formatSet; DXGIFormatSet formatSet;
...@@ -64,6 +66,8 @@ struct TextureFormat : public angle::NonCopyable ...@@ -64,6 +66,8 @@ struct TextureFormat : public angle::NonCopyable
LoadFunctionMap loadFunctions; LoadFunctionMap loadFunctions;
}; };
const DXGIFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat);
const TextureFormat &GetTextureFormatInfo(GLenum internalformat, const TextureFormat &GetTextureFormatInfo(GLenum internalformat,
const Renderer11DeviceCaps &renderer11DeviceCaps); const Renderer11DeviceCaps &renderer11DeviceCaps);
......
...@@ -111,24 +111,18 @@ DXGIFormatSet::DXGIFormatSet() ...@@ -111,24 +111,18 @@ DXGIFormatSet::DXGIFormatSet()
// This function allows querying for the DXGI texture formats to use for textures, SRVs, RTVs and // This function allows querying for the DXGI texture formats to use for textures, SRVs, RTVs and
// DSVs given a GL internal format. // DSVs given a GL internal format.
TextureFormat::TextureFormat(GLenum internalFormat, TextureFormat::TextureFormat(GLenum internalFormat,
DXGI_FORMAT texFormat, const DXGIFormatSet &formatSet,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat,
InitializeTextureDataFunction internalFormatInitializer) InitializeTextureDataFunction internalFormatInitializer)
: dataInitializerFunction(internalFormatInitializer) : formatSet(formatSet), dataInitializerFunction(internalFormatInitializer)
{ {
formatSet.texFormat = texFormat;
formatSet.srvFormat = srvFormat;
formatSet.rtvFormat = rtvFormat;
formatSet.dsvFormat = dsvFormat;
// Compute the swizzle formats // Compute the swizzle formats
const gl::InternalFormat &formatInfo = gl::GetInternalFormatInfo(internalFormat); const gl::InternalFormat &formatInfo = gl::GetInternalFormatInfo(internalFormat);
if (internalFormat != GL_NONE && formatInfo.pixelBytes > 0) if (internalFormat != GL_NONE && formatInfo.pixelBytes > 0)
{ {
if (formatInfo.componentCount != 4 || texFormat == DXGI_FORMAT_UNKNOWN || if (formatInfo.componentCount != 4 || formatSet.texFormat == DXGI_FORMAT_UNKNOWN ||
srvFormat == DXGI_FORMAT_UNKNOWN || rtvFormat == DXGI_FORMAT_UNKNOWN) formatSet.srvFormat == DXGI_FORMAT_UNKNOWN ||
formatSet.rtvFormat == DXGI_FORMAT_UNKNOWN)
{ {
// Get the maximum sized component // Get the maximum sized component
unsigned int maxBits = 1; unsigned int maxBits = 1;
...@@ -172,11 +166,491 @@ TextureFormat::TextureFormat(GLenum internalFormat, ...@@ -172,11 +166,491 @@ TextureFormat::TextureFormat(GLenum internalFormat,
} }
// Gather all the load functions for this internal format // Gather all the load functions for this internal format
loadFunctions = GetLoadFunctionsMap(internalFormat, texFormat); loadFunctions = GetLoadFunctionsMap(internalFormat, formatSet.texFormat);
ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE); ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE);
} }
DXGIFormatSet::DXGIFormatSet(DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat)
: texFormat(texFormat), srvFormat(srvFormat), rtvFormat(rtvFormat), dsvFormat(dsvFormat)
{
}
const DXGIFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
{
// clang-format off
switch (angleFormat)
{
case ANGLE_FORMAT_A8_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_B4G4R4A4_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_B5G5R5A1_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_B5G6R5_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_B8G8R8A8_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_BC1_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_BC2_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_BC3_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_D16_UNORM_FL10:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16_TYPELESS,
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM);
return formatInfo;
}
case ANGLE_FORMAT_D16_UNORM_FL9_3:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_D16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM);
return formatInfo;
}
case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT);
return formatInfo;
}
case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT);
return formatInfo;
}
case ANGLE_FORMAT_D32_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32_TYPELESS,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT);
return formatInfo;
}
case ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32G8X24_TYPELESS,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT_S8X24_UINT);
return formatInfo;
}
case ANGLE_FORMAT_NONE:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R10G10B10A2_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R10G10B10A2_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R11G11B10_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16G16B16A16_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16G16B16A16_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16G16B16A16_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16G16_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16G16_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16G16_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R16_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32G32B32A32_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32G32B32A32_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32G32B32A32_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32G32_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32G32_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32G32_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32_FLOAT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R32_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8B8A8_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8B8A8_SNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8B8A8_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8B8A8_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8_SNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8_SINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8_SNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8_SNORM_NONRENDERABLE:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8_UNORM:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R8_UNORM_NONRENDERABLE:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_R9G9B9E5_SHAREDEXP:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN);
return formatInfo;
}
case ANGLE_FORMAT_X24_TYPELESS_G8_UINT:
{
static const DXGIFormatSet formatInfo(DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_X24_TYPELESS_G8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT);
return formatInfo;
}
default:
break;
}
// clang-format on
UNREACHABLE();
static const DXGIFormatSet defaultInfo;
return defaultInfo;
}
const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
const Renderer11DeviceCaps &renderer11DeviceCaps) const Renderer11DeviceCaps &renderer11DeviceCaps)
{ {
...@@ -188,20 +662,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -188,20 +662,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_A8_UNORM),
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -213,20 +681,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -213,20 +681,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_ALPHA16F_EXT: case GL_ALPHA16F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT),
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_ALPHA32F_EXT: case GL_ALPHA32F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT),
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -235,20 +697,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -235,20 +697,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_A8_UNORM),
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -260,40 +716,28 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -260,40 +716,28 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_BGR5_A1_ANGLEX: case GL_BGR5_A1_ANGLEX:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_B8G8R8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM),
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_BGRA4_ANGLEX: case GL_BGRA4_ANGLEX:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_B8G8R8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM),
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_BGRA8_EXT: case GL_BGRA8_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_B8G8R8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM),
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_BGRA_EXT: case GL_BGRA_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_B8G8R8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM),
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -302,10 +746,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -302,10 +746,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8_UNORM_NONRENDERABLE),
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -319,10 +760,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -319,10 +760,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE),
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -336,10 +774,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -336,10 +774,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
...@@ -353,10 +788,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -353,10 +788,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
...@@ -370,10 +802,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -370,10 +802,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -385,40 +814,28 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -385,40 +814,28 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT: case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_BC1_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_BC1_UNORM),
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_BC2_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_BC2_UNORM),
DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_BC3_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_BC3_UNORM),
DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_COMPRESSED_RGB_S3TC_DXT1_EXT: case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_BC1_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_BC1_UNORM),
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -427,10 +844,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -427,10 +844,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8_SNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8_SNORM_NONRENDERABLE),
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -444,10 +858,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -444,10 +858,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8_SNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE),
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -461,10 +872,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -461,10 +872,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -478,10 +886,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -478,10 +886,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
...@@ -495,10 +900,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -495,10 +900,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -512,20 +914,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -512,20 +914,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R24G8_TYPELESS, GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10),
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_D24_UNORM_S8_UINT, GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3),
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -539,20 +935,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -539,20 +935,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G8X24_TYPELESS, GetANGLEFormatSet(ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10),
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT_S8X24_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_UNKNOWN, GetANGLEFormatSet(ANGLE_FORMAT_NONE),
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -566,20 +956,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -566,20 +956,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16_TYPELESS, GetANGLEFormatSet(ANGLE_FORMAT_D16_UNORM_FL10),
DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_D16_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_D16_UNORM_FL9_3),
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -593,20 +977,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -593,20 +977,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R24G8_TYPELESS, GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10),
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_D24_UNORM_S8_UINT, GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3),
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -620,20 +998,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -620,20 +998,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32_TYPELESS, GetANGLEFormatSet(ANGLE_FORMAT_D32_FLOAT),
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_UNKNOWN, GetANGLEFormatSet(ANGLE_FORMAT_NONE),
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -647,10 +1019,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -647,10 +1019,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R24G8_TYPELESS, GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10),
DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -662,410 +1031,287 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -662,410 +1031,287 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE: case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_BC1_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_BC1_UNORM),
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_ETC1_RGB8_OES: case GL_ETC1_RGB8_OES:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE: case GL_LUMINANCE:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE16F_EXT: case GL_LUMINANCE16F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT),
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>); Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE32F_EXT: case GL_LUMINANCE32F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT),
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>); Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE8_ALPHA8_EXT: case GL_LUMINANCE8_ALPHA8_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE8_EXT: case GL_LUMINANCE8_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE_ALPHA: case GL_LUMINANCE_ALPHA:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE_ALPHA16F_EXT: case GL_LUMINANCE_ALPHA16F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT),
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE_ALPHA32F_EXT: case GL_LUMINANCE_ALPHA32F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT),
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_NONE: case GL_NONE:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_UNKNOWN, GetANGLEFormatSet(ANGLE_FORMAT_NONE),
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R11F_G11F_B10F: case GL_R11F_G11F_B10F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R11G11B10_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R11G11B10_FLOAT),
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R16F: case GL_R16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R16_FLOAT),
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R16I: case GL_R16I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R16_SINT),
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R16UI: case GL_R16UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R16_UINT),
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R32F: case GL_R32F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R32_FLOAT),
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R32I: case GL_R32I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R32_SINT),
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R32UI: case GL_R32UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R32_UINT),
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8: case GL_R8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8_UNORM),
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8I: case GL_R8I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R8_SINT),
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8UI: case GL_R8UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R8_UINT),
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8_SNORM: case GL_R8_SNORM:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8_SNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8_SNORM),
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG16F: case GL_RG16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16_FLOAT),
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG16I: case GL_RG16I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16_SINT),
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG16UI: case GL_RG16UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16_UINT),
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG32F: case GL_RG32F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32_FLOAT),
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG32I: case GL_RG32I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32_SINT),
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG32UI: case GL_RG32UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32_UINT),
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8: case GL_RG8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8_UNORM),
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8I: case GL_RG8I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R8G8_SINT),
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8UI: case GL_RG8UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R8G8_UINT),
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8_SNORM: case GL_RG8_SNORM:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8_SNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8_SNORM),
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGB: case GL_RGB:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
case GL_RGB10_A2: case GL_RGB10_A2:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R10G10B10A2_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R10G10B10A2_UNORM),
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGB10_A2UI: case GL_RGB10_A2UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R10G10B10A2_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R10G10B10A2_UINT),
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGB16F: case GL_RGB16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT),
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>); Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>);
return textureFormat; return textureFormat;
} }
case GL_RGB16I: case GL_RGB16I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_SINT),
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLshort, 0x0000, 0x0000, 0x0000, 0x0001>); Initialize4ComponentData<GLshort, 0x0000, 0x0000, 0x0000, 0x0001>);
return textureFormat; return textureFormat;
} }
case GL_RGB16UI: case GL_RGB16UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_UINT),
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x0001>); Initialize4ComponentData<GLushort, 0x0000, 0x0000, 0x0000, 0x0001>);
return textureFormat; return textureFormat;
} }
case GL_RGB32F: case GL_RGB32F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT),
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>); Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>);
return textureFormat; return textureFormat;
} }
case GL_RGB32I: case GL_RGB32I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_SINT),
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>); Initialize4ComponentData<GLint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
return textureFormat; return textureFormat;
} }
case GL_RGB32UI: case GL_RGB32UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_UINT),
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>); Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
return textureFormat; return textureFormat;
} }
...@@ -1074,20 +1320,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1074,20 +1320,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (SupportsFormat<DXGI_FORMAT_B5G6R5_UNORM,false>(renderer11DeviceCaps)) if (SupportsFormat<DXGI_FORMAT_B5G6R5_UNORM,false>(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
else if (SupportsFormat<DXGI_FORMAT_B5G6R5_UNORM,true>(renderer11DeviceCaps)) else if (SupportsFormat<DXGI_FORMAT_B5G6R5_UNORM,true>(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_B5G6R5_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_B5G6R5_UNORM),
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1101,20 +1341,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1101,20 +1341,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (SupportsFormat<DXGI_FORMAT_B5G5R5A1_UNORM,false>(renderer11DeviceCaps)) if (SupportsFormat<DXGI_FORMAT_B5G5R5A1_UNORM,false>(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (SupportsFormat<DXGI_FORMAT_B5G5R5A1_UNORM,true>(renderer11DeviceCaps)) else if (SupportsFormat<DXGI_FORMAT_B5G5R5A1_UNORM,true>(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_B5G5R5A1_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_B5G5R5A1_UNORM),
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1126,120 +1360,84 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1126,120 +1360,84 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_RGB8: case GL_RGB8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
case GL_RGB8I: case GL_RGB8I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SINT),
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x01>); Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x01>);
return textureFormat; return textureFormat;
} }
case GL_RGB8UI: case GL_RGB8UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UINT),
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0x01>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0x01>);
return textureFormat; return textureFormat;
} }
case GL_RGB8_SNORM: case GL_RGB8_SNORM:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_SNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SNORM),
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x7F>); Initialize4ComponentData<GLbyte, 0x00, 0x00, 0x00, 0x7F>);
return textureFormat; return textureFormat;
} }
case GL_RGB9_E5: case GL_RGB9_E5:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP, GetANGLEFormatSet(ANGLE_FORMAT_R9G9B9E5_SHAREDEXP),
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA: case GL_RGBA:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA16F: case GL_RGBA16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT),
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA16I: case GL_RGBA16I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_SINT),
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA16UI: case GL_RGBA16UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R16G16B16A16_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_UINT),
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA32F: case GL_RGBA32F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_FLOAT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT),
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA32I: case GL_RGBA32I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_SINT),
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA32UI: case GL_RGBA32UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R32G32B32A32_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_UINT),
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1248,20 +1446,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1248,20 +1446,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (SupportsFormat<DXGI_FORMAT_B4G4R4A4_UNORM,false>(renderer11DeviceCaps)) if (SupportsFormat<DXGI_FORMAT_B4G4R4A4_UNORM,false>(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (SupportsFormat<DXGI_FORMAT_B4G4R4A4_UNORM,true>(renderer11DeviceCaps)) else if (SupportsFormat<DXGI_FORMAT_B4G4R4A4_UNORM,true>(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_B4G4R4A4_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_B4G4R4A4_UNORM),
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1273,60 +1465,42 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1273,60 +1465,42 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_RGBA8: case GL_RGBA8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM),
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA8I: case GL_RGBA8I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_SINT, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SINT),
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA8UI: case GL_RGBA8UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UINT, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UINT),
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA8_SNORM: case GL_RGBA8_SNORM:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_SNORM, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SNORM),
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_SRGB8: case GL_SRGB8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE),
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
case GL_SRGB8_ALPHA8: case GL_SRGB8_ALPHA8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB),
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1335,20 +1509,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1335,20 +1509,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_R24G8_TYPELESS, GetANGLEFormatSet(ANGLE_FORMAT_X24_TYPELESS_G8_UINT),
DXGI_FORMAT_X24_TYPELESS_G8_UINT,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
else if (OnlyFL9_3(renderer11DeviceCaps)) else if (OnlyFL9_3(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
DXGI_FORMAT_D24_UNORM_S8_UINT, GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3),
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1363,8 +1531,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1363,8 +1531,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
} }
// clang-format on // clang-format on
static const TextureFormat defaultInfo(GL_NONE, DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, static const TextureFormat defaultInfo(GL_NONE, DXGIFormatSet(), nullptr);
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN, nullptr);
return defaultInfo; return defaultInfo;
} // GetTextureFormatInfo } // GetTextureFormatInfo
......
// GENERATED FILE - DO NOT EDIT.
// Generated by gen_texture_format_table.py using data from texture_format_data.json
//
// Copyright 2016 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.
//
namespace rx
{
namespace d3d11
{
enum ANGLEFormat
{
ANGLE_FORMAT_A8_UNORM,
ANGLE_FORMAT_B4G4R4A4_UNORM,
ANGLE_FORMAT_B5G5R5A1_UNORM,
ANGLE_FORMAT_B5G6R5_UNORM,
ANGLE_FORMAT_B8G8R8A8_UNORM,
ANGLE_FORMAT_BC1_UNORM,
ANGLE_FORMAT_BC2_UNORM,
ANGLE_FORMAT_BC3_UNORM,
ANGLE_FORMAT_D16_UNORM_FL10,
ANGLE_FORMAT_D16_UNORM_FL9_3,
ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10,
ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3,
ANGLE_FORMAT_D32_FLOAT,
ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10,
ANGLE_FORMAT_NONE,
ANGLE_FORMAT_R10G10B10A2_UINT,
ANGLE_FORMAT_R10G10B10A2_UNORM,
ANGLE_FORMAT_R11G11B10_FLOAT,
ANGLE_FORMAT_R16G16B16A16_FLOAT,
ANGLE_FORMAT_R16G16B16A16_SINT,
ANGLE_FORMAT_R16G16B16A16_UINT,
ANGLE_FORMAT_R16G16_FLOAT,
ANGLE_FORMAT_R16G16_SINT,
ANGLE_FORMAT_R16G16_UINT,
ANGLE_FORMAT_R16_FLOAT,
ANGLE_FORMAT_R16_SINT,
ANGLE_FORMAT_R16_UINT,
ANGLE_FORMAT_R32G32B32A32_FLOAT,
ANGLE_FORMAT_R32G32B32A32_SINT,
ANGLE_FORMAT_R32G32B32A32_UINT,
ANGLE_FORMAT_R32G32_FLOAT,
ANGLE_FORMAT_R32G32_SINT,
ANGLE_FORMAT_R32G32_UINT,
ANGLE_FORMAT_R32_FLOAT,
ANGLE_FORMAT_R32_SINT,
ANGLE_FORMAT_R32_UINT,
ANGLE_FORMAT_R8G8B8A8_SINT,
ANGLE_FORMAT_R8G8B8A8_SNORM,
ANGLE_FORMAT_R8G8B8A8_UINT,
ANGLE_FORMAT_R8G8B8A8_UNORM,
ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE,
ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB,
ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE,
ANGLE_FORMAT_R8G8_SINT,
ANGLE_FORMAT_R8G8_SNORM,
ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE,
ANGLE_FORMAT_R8G8_UINT,
ANGLE_FORMAT_R8G8_UNORM,
ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE,
ANGLE_FORMAT_R8_SINT,
ANGLE_FORMAT_R8_SNORM,
ANGLE_FORMAT_R8_SNORM_NONRENDERABLE,
ANGLE_FORMAT_R8_UINT,
ANGLE_FORMAT_R8_UNORM,
ANGLE_FORMAT_R8_UNORM_NONRENDERABLE,
ANGLE_FORMAT_R9G9B9E5_SHAREDEXP,
ANGLE_FORMAT_X24_TYPELESS_G8_UINT
};
} // namespace d3d11
} // namespace rx
...@@ -387,6 +387,7 @@ ...@@ -387,6 +387,7 @@
'libANGLE/renderer/d3d/d3d11/Trim11.cpp', 'libANGLE/renderer/d3d/d3d11/Trim11.cpp',
'libANGLE/renderer/d3d/d3d11/Trim11.h', 'libANGLE/renderer/d3d/d3d11/Trim11.h',
'libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp', 'libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp',
'libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.h',
'libANGLE/renderer/d3d/d3d11/texture_format_table.h', 'libANGLE/renderer/d3d/d3d11/texture_format_table.h',
'libANGLE/renderer/d3d/d3d11/VertexArray11.h', 'libANGLE/renderer/d3d/d3d11/VertexArray11.h',
'libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp', 'libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment