Commit bc21e18b by Olli Etuaho

D3D11 Texture refactoring: Store ANGLEFormat in TextureStorage11

This is needed to enable removing GetDXGIFormatInfo calls, which are difficult to use correctly due to a texture format being associated with multiple DXGI formats. This is done in preparation of changing some of the DXGI formats associated with integer textures. BUG=angleproject:1244 TEST=angle_end2end_tests, dEQP-GLES3.functional.fbo.* (no regressions) Change-Id: I992c4c06189887c1b9de02f9b63dd9a474fcffab Reviewed-on: https://chromium-review.googlesource.com/329094Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
parent 0011bb60
...@@ -178,7 +178,7 @@ static unsigned int getDSVSubresourceIndex(ID3D11Resource *resource, ID3D11Depth ...@@ -178,7 +178,7 @@ static unsigned int getDSVSubresourceIndex(ID3D11Resource *resource, ID3D11Depth
return D3D11CalcSubresource(mipSlice, arraySlice, mipLevels); return D3D11CalcSubresource(mipSlice, arraySlice, mipLevels);
} }
RenderTarget11::RenderTarget11() RenderTarget11::RenderTarget11(d3d11::ANGLEFormat angleFormat) : mANGLEFormat(angleFormat)
{ {
} }
...@@ -211,9 +211,17 @@ void RenderTarget11::signalDirty() ...@@ -211,9 +211,17 @@ void RenderTarget11::signalDirty()
mDirtyCallbacks.clear(); mDirtyCallbacks.clear();
} }
TextureRenderTarget11::TextureRenderTarget11(ID3D11RenderTargetView *rtv, ID3D11Resource *resource, ID3D11ShaderResourceView *srv, TextureRenderTarget11::TextureRenderTarget11(ID3D11RenderTargetView *rtv,
GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei samples) ID3D11Resource *resource,
: mWidth(width), ID3D11ShaderResourceView *srv,
GLenum internalFormat,
d3d11::ANGLEFormat angleFormat,
GLsizei width,
GLsizei height,
GLsizei depth,
GLsizei samples)
: RenderTarget11(angleFormat),
mWidth(width),
mHeight(height), mHeight(height),
mDepth(depth), mDepth(depth),
mInternalFormat(internalFormat), mInternalFormat(internalFormat),
...@@ -248,11 +256,20 @@ TextureRenderTarget11::TextureRenderTarget11(ID3D11RenderTargetView *rtv, ID3D11 ...@@ -248,11 +256,20 @@ TextureRenderTarget11::TextureRenderTarget11(ID3D11RenderTargetView *rtv, ID3D11
mRenderTarget->GetDesc(&desc); mRenderTarget->GetDesc(&desc);
mDXGIFormat = desc.Format; mDXGIFormat = desc.Format;
} }
} ASSERT(mANGLEFormat != d3d11::ANGLE_FORMAT_NONE || mWidth == 0 || mHeight == 0);
}
TextureRenderTarget11::TextureRenderTarget11(ID3D11DepthStencilView *dsv, ID3D11Resource *resource, ID3D11ShaderResourceView *srv,
GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei samples) TextureRenderTarget11::TextureRenderTarget11(ID3D11DepthStencilView *dsv,
: mWidth(width), ID3D11Resource *resource,
ID3D11ShaderResourceView *srv,
GLenum internalFormat,
d3d11::ANGLEFormat angleFormat,
GLsizei width,
GLsizei height,
GLsizei depth,
GLsizei samples)
: RenderTarget11(angleFormat),
mWidth(width),
mHeight(height), mHeight(height),
mDepth(depth), mDepth(depth),
mInternalFormat(internalFormat), mInternalFormat(internalFormat),
...@@ -287,6 +304,7 @@ TextureRenderTarget11::TextureRenderTarget11(ID3D11DepthStencilView *dsv, ID3D11 ...@@ -287,6 +304,7 @@ TextureRenderTarget11::TextureRenderTarget11(ID3D11DepthStencilView *dsv, ID3D11
mDepthStencil->GetDesc(&desc); mDepthStencil->GetDesc(&desc);
mDXGIFormat = desc.Format; mDXGIFormat = desc.Format;
} }
ASSERT(mANGLEFormat != d3d11::ANGLE_FORMAT_NONE || mWidth == 0 || mHeight == 0);
} }
TextureRenderTarget11::~TextureRenderTarget11() TextureRenderTarget11::~TextureRenderTarget11()
...@@ -352,12 +370,19 @@ DXGI_FORMAT TextureRenderTarget11::getDXGIFormat() const ...@@ -352,12 +370,19 @@ DXGI_FORMAT TextureRenderTarget11::getDXGIFormat() const
return mDXGIFormat; return mDXGIFormat;
} }
SurfaceRenderTarget11::SurfaceRenderTarget11(SwapChain11 *swapChain, Renderer11 *renderer, bool depth) SurfaceRenderTarget11::SurfaceRenderTarget11(SwapChain11 *swapChain,
: mSwapChain(swapChain), Renderer11 *renderer,
bool depth)
: RenderTarget11(d3d11::ANGLE_FORMAT_NONE), // format will be determined in constructor body
mSwapChain(swapChain),
mRenderer(renderer), mRenderer(renderer),
mDepth(depth) mDepth(depth)
{ {
ASSERT(mSwapChain); ASSERT(mSwapChain);
mANGLEFormat = d3d11::GetTextureFormatInfo(getInternalFormatInternal(),
mRenderer->getRenderer11DeviceCaps())
.formatSet.format;
} }
SurfaceRenderTarget11::~SurfaceRenderTarget11() SurfaceRenderTarget11::~SurfaceRenderTarget11()
...@@ -381,6 +406,11 @@ GLsizei SurfaceRenderTarget11::getDepth() const ...@@ -381,6 +406,11 @@ GLsizei SurfaceRenderTarget11::getDepth() const
GLenum SurfaceRenderTarget11::getInternalFormat() const GLenum SurfaceRenderTarget11::getInternalFormat() const
{ {
return getInternalFormatInternal();
}
GLenum SurfaceRenderTarget11::getInternalFormatInternal() const
{
return (mDepth ? mSwapChain->GetDepthBufferInternalFormat() : mSwapChain->GetRenderTargetInternalFormat()); return (mDepth ? mSwapChain->GetDepthBufferInternalFormat() : mSwapChain->GetRenderTargetInternalFormat());
} }
...@@ -407,7 +437,8 @@ ID3D11DepthStencilView *SurfaceRenderTarget11::getDepthStencilView() const ...@@ -407,7 +437,8 @@ ID3D11DepthStencilView *SurfaceRenderTarget11::getDepthStencilView() const
ID3D11ShaderResourceView *SurfaceRenderTarget11::getShaderResourceView() const ID3D11ShaderResourceView *SurfaceRenderTarget11::getShaderResourceView() const
{ {
return (mDepth ? mSwapChain->getDepthStencilShaderResource() : mSwapChain->getRenderTargetShaderResource()); return (mDepth ? mSwapChain->getDepthStencilShaderResource()
: mSwapChain->getRenderTargetShaderResource());
} }
unsigned int SurfaceRenderTarget11::getSubresourceIndex() const unsigned int SurfaceRenderTarget11::getSubresourceIndex() const
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#define LIBANGLE_RENDERER_D3D_D3D11_RENDERTARGET11_H_ #define LIBANGLE_RENDERER_D3D_D3D11_RENDERTARGET11_H_
#include "libANGLE/renderer/d3d/RenderTargetD3D.h" #include "libANGLE/renderer/d3d/RenderTargetD3D.h"
#include "libANGLE/renderer/d3d/d3d11/texture_format_table.h"
#include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h" #include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
...@@ -22,7 +23,7 @@ class Renderer11; ...@@ -22,7 +23,7 @@ class Renderer11;
class RenderTarget11 : public RenderTargetD3D class RenderTarget11 : public RenderTargetD3D
{ {
public: public:
RenderTarget11(); RenderTarget11(d3d11::ANGLEFormat angleFormat);
virtual ~RenderTarget11(); virtual ~RenderTarget11();
virtual ID3D11Resource *getTexture() const = 0; virtual ID3D11Resource *getTexture() const = 0;
...@@ -38,18 +39,36 @@ class RenderTarget11 : public RenderTargetD3D ...@@ -38,18 +39,36 @@ class RenderTarget11 : public RenderTargetD3D
void removeDirtyCallback(const NotificationCallback *callback); void removeDirtyCallback(const NotificationCallback *callback);
void signalDirty() override; void signalDirty() override;
d3d11::ANGLEFormat getANGLEFormat() const { return mANGLEFormat; }
protected: protected:
std::set<const NotificationCallback *> mDirtyCallbacks; std::set<const NotificationCallback *> mDirtyCallbacks;
d3d11::ANGLEFormat mANGLEFormat;
}; };
class TextureRenderTarget11 : public RenderTarget11 class TextureRenderTarget11 : public RenderTarget11
{ {
public: public:
// TextureRenderTarget11 takes ownership of any D3D11 resources it is given and will AddRef them // TextureRenderTarget11 takes ownership of any D3D11 resources it is given and will AddRef them
TextureRenderTarget11(ID3D11RenderTargetView *rtv, ID3D11Resource *resource, ID3D11ShaderResourceView *srv, TextureRenderTarget11(ID3D11RenderTargetView *rtv,
GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei samples); ID3D11Resource *resource,
TextureRenderTarget11(ID3D11DepthStencilView *dsv, ID3D11Resource *resource, ID3D11ShaderResourceView *srv, ID3D11ShaderResourceView *srv,
GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei samples); GLenum internalFormat,
d3d11::ANGLEFormat angleFormat,
GLsizei width,
GLsizei height,
GLsizei depth,
GLsizei samples);
TextureRenderTarget11(ID3D11DepthStencilView *dsv,
ID3D11Resource *resource,
ID3D11ShaderResourceView *srv,
GLenum internalFormat,
d3d11::ANGLEFormat angleFormat,
GLsizei width,
GLsizei height,
GLsizei depth,
GLsizei samples);
virtual ~TextureRenderTarget11(); virtual ~TextureRenderTarget11();
GLsizei getWidth() const override; GLsizei getWidth() const override;
...@@ -104,6 +123,10 @@ class SurfaceRenderTarget11 : public RenderTarget11 ...@@ -104,6 +123,10 @@ class SurfaceRenderTarget11 : public RenderTarget11
DXGI_FORMAT getDXGIFormat() const override; DXGI_FORMAT getDXGIFormat() const override;
private: private:
// The internal versions of the functions are needed so that they can be safely called
// from the constructor.
GLenum getInternalFormatInternal() const;
SwapChain11 *mSwapChain; SwapChain11 *mSwapChain;
Renderer11 *mRenderer; Renderer11 *mRenderer;
bool mDepth; bool mDepth;
......
...@@ -3131,7 +3131,9 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G ...@@ -3131,7 +3131,9 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G
return gl::Error(GL_OUT_OF_MEMORY, "Failed to create render target depth stencil view, result: 0x%X.", result); return gl::Error(GL_OUT_OF_MEMORY, "Failed to create render target depth stencil view, result: 0x%X.", result);
} }
*outRT = new TextureRenderTarget11(dsv, texture, srv, format, width, height, 1, supportedSamples); *outRT =
new TextureRenderTarget11(dsv, texture, srv, format, formatInfo.formatSet.format,
width, height, 1, supportedSamples);
SafeRelease(dsv); SafeRelease(dsv);
} }
...@@ -3158,7 +3160,9 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G ...@@ -3158,7 +3160,9 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G
mDeviceContext->ClearRenderTargetView(rtv, clearValues); mDeviceContext->ClearRenderTargetView(rtv, clearValues);
} }
*outRT = new TextureRenderTarget11(rtv, texture, srv, format, width, height, 1, supportedSamples); *outRT =
new TextureRenderTarget11(rtv, texture, srv, format, formatInfo.formatSet.format,
width, height, 1, supportedSamples);
SafeRelease(rtv); SafeRelease(rtv);
} }
...@@ -3172,7 +3176,9 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G ...@@ -3172,7 +3176,9 @@ gl::Error Renderer11::createRenderTarget(int width, int height, GLenum format, G
} }
else else
{ {
*outRT = new TextureRenderTarget11(reinterpret_cast<ID3D11RenderTargetView*>(NULL), NULL, NULL, format, width, height, 1, supportedSamples); *outRT = new TextureRenderTarget11(reinterpret_cast<ID3D11RenderTargetView *>(nullptr),
nullptr, nullptr, format, d3d11::ANGLE_FORMAT_NONE,
width, height, 1, supportedSamples);
} }
return gl::Error(GL_NO_ERROR); return gl::Error(GL_NO_ERROR);
......
...@@ -771,7 +771,6 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swap ...@@ -771,7 +771,6 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swap
D3D11_TEXTURE2D_DESC texDesc; D3D11_TEXTURE2D_DESC texDesc;
mTexture->GetDesc(&texDesc); mTexture->GetDesc(&texDesc);
mMipLevels = texDesc.MipLevels; mMipLevels = texDesc.MipLevels;
mTextureFormatSet.texFormat = texDesc.Format;
mTextureWidth = texDesc.Width; mTextureWidth = texDesc.Width;
mTextureHeight = texDesc.Height; mTextureHeight = texDesc.Height;
mTextureDepth = 1; mTextureDepth = 1;
...@@ -779,22 +778,10 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swap ...@@ -779,22 +778,10 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer, SwapChain11 *swap
mInternalFormat = swapchain->GetRenderTargetInternalFormat(); mInternalFormat = swapchain->GetRenderTargetInternalFormat();
ID3D11ShaderResourceView *srv = swapchain->getRenderTargetShaderResource(); const auto &formatInfo =
D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc; d3d11::GetTextureFormatInfo(mInternalFormat, mRenderer->getRenderer11DeviceCaps());
srv->GetDesc(&srvDesc); mTextureFormatSet = formatInfo.formatSet;
mTextureFormatSet.srvFormat = srvDesc.Format;
ID3D11RenderTargetView *offscreenRTV = swapchain->getRenderTarget();
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
offscreenRTV->GetDesc(&rtvDesc);
mTextureFormatSet.rtvFormat = rtvDesc.Format;
const d3d11::DXGIFormat &dxgiFormatInfo = d3d11::GetDXGIFormatInfo(mTextureFormatSet.texFormat);
const d3d11::TextureFormat &formatInfo = d3d11::GetTextureFormatInfo(
dxgiFormatInfo.internalFormat, mRenderer->getRenderer11DeviceCaps());
mSwizzleFormatSet = formatInfo.swizzleFormatSet; mSwizzleFormatSet = formatInfo.swizzleFormatSet;
mTextureFormatSet.dsvFormat = DXGI_FORMAT_UNKNOWN;
} }
TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer, TextureStorage11_2D::TextureStorage11_2D(Renderer11 *renderer,
...@@ -1250,8 +1237,8 @@ gl::Error TextureStorage11_2D::getRenderTarget(const gl::ImageIndex &index, Rend ...@@ -1250,8 +1237,8 @@ gl::Error TextureStorage11_2D::getRenderTarget(const gl::ImageIndex &index, Rend
} }
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
mLevelZeroRenderTarget = mLevelZeroRenderTarget = new TextureRenderTarget11(
new TextureRenderTarget11(rtv, mLevelZeroTexture, nullptr, mInternalFormat, rtv, mLevelZeroTexture, nullptr, mInternalFormat, mTextureFormatSet.format,
getLevelWidth(level), getLevelHeight(level), 1, 0); getLevelWidth(level), getLevelHeight(level), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
...@@ -1281,8 +1268,9 @@ gl::Error TextureStorage11_2D::getRenderTarget(const gl::ImageIndex &index, Rend ...@@ -1281,8 +1268,9 @@ gl::Error TextureStorage11_2D::getRenderTarget(const gl::ImageIndex &index, Rend
result); result);
} }
mRenderTarget[level] = new TextureRenderTarget11( mRenderTarget[level] =
rtv, texture, srv, mInternalFormat, getLevelWidth(level), getLevelHeight(level), 1, 0); new TextureRenderTarget11(rtv, texture, srv, mInternalFormat, mTextureFormatSet.format,
getLevelWidth(level), getLevelHeight(level), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
SafeRelease(rtv); SafeRelease(rtv);
...@@ -1311,8 +1299,9 @@ gl::Error TextureStorage11_2D::getRenderTarget(const gl::ImageIndex &index, Rend ...@@ -1311,8 +1299,9 @@ gl::Error TextureStorage11_2D::getRenderTarget(const gl::ImageIndex &index, Rend
result); result);
} }
mRenderTarget[level] = new TextureRenderTarget11( mRenderTarget[level] =
dsv, texture, srv, mInternalFormat, getLevelWidth(level), getLevelHeight(level), 1, 0); new TextureRenderTarget11(dsv, texture, srv, mInternalFormat, mTextureFormatSet.format,
getLevelWidth(level), getLevelHeight(level), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
SafeRelease(dsv); SafeRelease(dsv);
...@@ -1460,45 +1449,12 @@ TextureStorage11_EGLImage::TextureStorage11_EGLImage(Renderer11 *renderer, EGLIm ...@@ -1460,45 +1449,12 @@ TextureStorage11_EGLImage::TextureStorage11_EGLImage(Renderer11 *renderer, EGLIm
mCurrentRenderTarget = reinterpret_cast<uintptr_t>(renderTarget11); mCurrentRenderTarget = reinterpret_cast<uintptr_t>(renderTarget11);
mMipLevels = 1; mMipLevels = 1;
mTextureFormatSet.texFormat = renderTarget11->getDXGIFormat(); mTextureFormatSet = d3d11::GetANGLEFormatSet(renderTarget11->getANGLEFormat());
mSwizzleFormatSet = d3d11::GetANGLEFormatSet(mTextureFormatSet.swizzleFormat);
mTextureWidth = renderTarget11->getWidth(); mTextureWidth = renderTarget11->getWidth();
mTextureHeight = renderTarget11->getHeight(); mTextureHeight = renderTarget11->getHeight();
mTextureDepth = 1; mTextureDepth = 1;
mInternalFormat = renderTarget11->getInternalFormat(); mInternalFormat = renderTarget11->getInternalFormat();
ID3D11ShaderResourceView *srv = renderTarget11->getShaderResourceView();
D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc;
srv->GetDesc(&srvDesc);
mTextureFormatSet.srvFormat = srvDesc.Format;
ID3D11RenderTargetView *rtv = renderTarget11->getRenderTargetView();
if (rtv != nullptr)
{
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
rtv->GetDesc(&rtvDesc);
mTextureFormatSet.rtvFormat = rtvDesc.Format;
}
else
{
mTextureFormatSet.rtvFormat = DXGI_FORMAT_UNKNOWN;
}
ID3D11DepthStencilView *dsv = renderTarget11->getDepthStencilView();
if (dsv != nullptr)
{
D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc;
dsv->GetDesc(&dsvDesc);
mTextureFormatSet.dsvFormat = dsvDesc.Format;
}
else
{
mTextureFormatSet.dsvFormat = DXGI_FORMAT_UNKNOWN;
}
const d3d11::DXGIFormat &dxgiFormatInfo = d3d11::GetDXGIFormatInfo(mTextureFormatSet.texFormat);
const d3d11::TextureFormat &formatInfo = d3d11::GetTextureFormatInfo(
dxgiFormatInfo.internalFormat, mRenderer->getRenderer11DeviceCaps());
mSwizzleFormatSet = formatInfo.swizzleFormatSet;
} }
TextureStorage11_EGLImage::~TextureStorage11_EGLImage() TextureStorage11_EGLImage::~TextureStorage11_EGLImage()
...@@ -2251,8 +2207,8 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index, ...@@ -2251,8 +2207,8 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index,
} }
ASSERT(SUCCEEDED(result)); ASSERT(SUCCEEDED(result));
mLevelZeroRenderTarget[faceIndex] = mLevelZeroRenderTarget[faceIndex] = new TextureRenderTarget11(
new TextureRenderTarget11(rtv, mLevelZeroTexture, nullptr, mInternalFormat, rtv, mLevelZeroTexture, nullptr, mInternalFormat, mTextureFormatSet.format,
getLevelWidth(level), getLevelHeight(level), 1, 0); getLevelWidth(level), getLevelHeight(level), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
...@@ -2320,8 +2276,8 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index, ...@@ -2320,8 +2276,8 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index,
d3d11::SetDebugName(rtv, "TexStorageCube.RenderTargetRTV"); d3d11::SetDebugName(rtv, "TexStorageCube.RenderTargetRTV");
mRenderTarget[faceIndex][level] = mRenderTarget[faceIndex][level] = new TextureRenderTarget11(
new TextureRenderTarget11(rtv, texture, srv, mInternalFormat, getLevelWidth(level), rtv, texture, srv, mInternalFormat, mTextureFormatSet.format, getLevelWidth(level),
getLevelHeight(level), 1, 0); getLevelHeight(level), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
...@@ -2353,8 +2309,8 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index, ...@@ -2353,8 +2309,8 @@ gl::Error TextureStorage11_Cube::getRenderTarget(const gl::ImageIndex &index,
d3d11::SetDebugName(dsv, "TexStorageCube.RenderTargetDSV"); d3d11::SetDebugName(dsv, "TexStorageCube.RenderTargetDSV");
mRenderTarget[faceIndex][level] = mRenderTarget[faceIndex][level] = new TextureRenderTarget11(
new TextureRenderTarget11(dsv, texture, srv, mInternalFormat, getLevelWidth(level), dsv, texture, srv, mInternalFormat, mTextureFormatSet.format, getLevelWidth(level),
getLevelHeight(level), 1, 0); getLevelHeight(level), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
...@@ -2797,8 +2753,8 @@ gl::Error TextureStorage11_3D::getRenderTarget(const gl::ImageIndex &index, Rend ...@@ -2797,8 +2753,8 @@ gl::Error TextureStorage11_3D::getRenderTarget(const gl::ImageIndex &index, Rend
d3d11::SetDebugName(rtv, "TexStorage3D.RTV"); d3d11::SetDebugName(rtv, "TexStorage3D.RTV");
mLevelRenderTargets[mipLevel] = new TextureRenderTarget11( mLevelRenderTargets[mipLevel] = new TextureRenderTarget11(
rtv, texture, srv, mInternalFormat, getLevelWidth(mipLevel), rtv, texture, srv, mInternalFormat, mTextureFormatSet.format,
getLevelHeight(mipLevel), getLevelDepth(mipLevel), 0); getLevelWidth(mipLevel), getLevelHeight(mipLevel), getLevelDepth(mipLevel), 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
SafeRelease(rtv); SafeRelease(rtv);
...@@ -2851,8 +2807,8 @@ gl::Error TextureStorage11_3D::getRenderTarget(const gl::ImageIndex &index, Rend ...@@ -2851,8 +2807,8 @@ gl::Error TextureStorage11_3D::getRenderTarget(const gl::ImageIndex &index, Rend
d3d11::SetDebugName(rtv, "TexStorage3D.LayerRTV"); d3d11::SetDebugName(rtv, "TexStorage3D.LayerRTV");
mLevelLayerRenderTargets[key] = mLevelLayerRenderTargets[key] = new TextureRenderTarget11(
new TextureRenderTarget11(rtv, texture, srv, mInternalFormat, rtv, texture, srv, mInternalFormat, mTextureFormatSet.format,
getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0); getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
...@@ -3242,8 +3198,8 @@ gl::Error TextureStorage11_2DArray::getRenderTarget(const gl::ImageIndex &index, ...@@ -3242,8 +3198,8 @@ gl::Error TextureStorage11_2DArray::getRenderTarget(const gl::ImageIndex &index,
d3d11::SetDebugName(rtv, "TexStorage2DArray.RenderTargetRTV"); d3d11::SetDebugName(rtv, "TexStorage2DArray.RenderTargetRTV");
mRenderTargets[key] = mRenderTargets[key] = new TextureRenderTarget11(
new TextureRenderTarget11(rtv, texture, srv, mInternalFormat, rtv, texture, srv, mInternalFormat, mTextureFormatSet.format,
getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0); getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
...@@ -3275,8 +3231,8 @@ gl::Error TextureStorage11_2DArray::getRenderTarget(const gl::ImageIndex &index, ...@@ -3275,8 +3231,8 @@ gl::Error TextureStorage11_2DArray::getRenderTarget(const gl::ImageIndex &index,
d3d11::SetDebugName(dsv, "TexStorage2DArray.RenderTargetDSV"); d3d11::SetDebugName(dsv, "TexStorage2DArray.RenderTargetDSV");
mRenderTargets[key] = mRenderTargets[key] = new TextureRenderTarget11(
new TextureRenderTarget11(dsv, texture, srv, mInternalFormat, dsv, texture, srv, mInternalFormat, mTextureFormatSet.format,
getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0); getLevelWidth(mipLevel), getLevelHeight(mipLevel), 1, 0);
// RenderTarget will take ownership of these resources // RenderTarget will take ownership of these resources
......
...@@ -136,7 +136,8 @@ bool SupportsFormat(const Renderer11DeviceCaps &deviceCaps) ...@@ -136,7 +136,8 @@ bool SupportsFormat(const Renderer11DeviceCaps &deviceCaps)
}} // namespace }} // namespace
ANGLEFormatSet::ANGLEFormatSet() ANGLEFormatSet::ANGLEFormatSet()
: texFormat(DXGI_FORMAT_UNKNOWN), : format(ANGLE_FORMAT_NONE),
texFormat(DXGI_FORMAT_UNKNOWN),
srvFormat(DXGI_FORMAT_UNKNOWN), srvFormat(DXGI_FORMAT_UNKNOWN),
rtvFormat(DXGI_FORMAT_UNKNOWN), rtvFormat(DXGI_FORMAT_UNKNOWN),
dsvFormat(DXGI_FORMAT_UNKNOWN), dsvFormat(DXGI_FORMAT_UNKNOWN),
...@@ -149,10 +150,11 @@ ANGLEFormatSet::ANGLEFormatSet() ...@@ -149,10 +150,11 @@ ANGLEFormatSet::ANGLEFormatSet()
// 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,
const ANGLEFormatSet &formatSet, const ANGLEFormat angleFormat,
InitializeTextureDataFunction internalFormatInitializer) InitializeTextureDataFunction internalFormatInitializer)
: formatSet(formatSet), dataInitializerFunction(internalFormatInitializer) : dataInitializerFunction(internalFormatInitializer)
{{ {{
formatSet = GetANGLEFormatSet(angleFormat);
swizzleFormatSet = GetANGLEFormatSet(formatSet.swizzleFormat); swizzleFormatSet = GetANGLEFormatSet(formatSet.swizzleFormat);
// Gather all the load functions for this internal format // Gather all the load functions for this internal format
...@@ -161,12 +163,14 @@ TextureFormat::TextureFormat(GLenum internalFormat, ...@@ -161,12 +163,14 @@ TextureFormat::TextureFormat(GLenum internalFormat,
ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE); ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE);
}} }}
ANGLEFormatSet::ANGLEFormatSet(DXGI_FORMAT texFormat, ANGLEFormatSet::ANGLEFormatSet(ANGLEFormat format,
DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat, DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat, DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat, DXGI_FORMAT dsvFormat,
ANGLEFormat swizzleFormat) ANGLEFormat swizzleFormat)
: texFormat(texFormat), : format(format),
texFormat(texFormat),
srvFormat(srvFormat), srvFormat(srvFormat),
rtvFormat(rtvFormat), rtvFormat(rtvFormat),
dsvFormat(dsvFormat), dsvFormat(dsvFormat),
...@@ -202,7 +206,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -202,7 +206,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
}} }}
// clang-format on // clang-format on
static const TextureFormat defaultInfo(GL_NONE, ANGLEFormatSet(), nullptr); static const TextureFormat defaultInfo(GL_NONE, ANGLE_FORMAT_NONE, nullptr);
return defaultInfo; return defaultInfo;
}} // GetTextureFormatInfo }} // GetTextureFormatInfo
...@@ -347,7 +351,7 @@ def get_texture_format_item(idx, internal_format, requirements_fn, angle_format_ ...@@ -347,7 +351,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 + ' GetANGLEFormatSet(' + angle_format_id + '),\n' table_data += indent + ' ' + angle_format_id + ',\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'
...@@ -392,7 +396,8 @@ def parse_json_into_switch_angle_format_string(json_data): ...@@ -392,7 +396,8 @@ def parse_json_into_switch_angle_format_string(json_data):
dsv_format = angle_format["dsvFormat"] if "dsvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN" dsv_format = angle_format["dsvFormat"] if "dsvFormat" in angle_format else "DXGI_FORMAT_UNKNOWN"
swizzle_format = get_swizzle_format_id(angle_format_item[0], angle_format) swizzle_format = get_swizzle_format_id(angle_format_item[0], angle_format)
table_data += ' {\n' table_data += ' {\n'
table_data += ' static const ANGLEFormatSet formatInfo(' + tex_format + ',\n' table_data += ' static const ANGLEFormatSet formatInfo(' + angle_format_item[0] + ',\n'
table_data += ' ' + tex_format + ',\n'
table_data += ' ' + srv_format + ',\n' table_data += ' ' + srv_format + ',\n'
table_data += ' ' + rtv_format + ',\n' table_data += ' ' + rtv_format + ',\n'
table_data += ' ' + dsv_format + ',\n' table_data += ' ' + dsv_format + ',\n'
...@@ -431,7 +436,9 @@ with open('texture_format_map.json') as texture_format_map_file: ...@@ -431,7 +436,9 @@ with open('texture_format_map.json') as texture_format_map_file:
texture_format_cases = parse_json_into_switch_texture_format_string(json_map, json_data) texture_format_cases = parse_json_into_switch_texture_format_string(json_map, json_data)
angle_format_cases = parse_json_into_switch_angle_format_string(json_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) 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_cpp) out_file.write(output_cpp)
out_file.close() out_file.close()
......
...@@ -38,7 +38,8 @@ struct LoadImageFunctionInfo ...@@ -38,7 +38,8 @@ struct LoadImageFunctionInfo
struct ANGLEFormatSet struct ANGLEFormatSet
{ {
ANGLEFormatSet(); ANGLEFormatSet();
ANGLEFormatSet(DXGI_FORMAT texFormat, ANGLEFormatSet(ANGLEFormat format,
DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat, DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat, DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat, DXGI_FORMAT dsvFormat,
...@@ -46,6 +47,8 @@ struct ANGLEFormatSet ...@@ -46,6 +47,8 @@ struct ANGLEFormatSet
ANGLEFormatSet(const ANGLEFormatSet &) = default; ANGLEFormatSet(const ANGLEFormatSet &) = default;
ANGLEFormatSet &operator=(const ANGLEFormatSet &) = default; ANGLEFormatSet &operator=(const ANGLEFormatSet &) = default;
ANGLEFormat format;
DXGI_FORMAT texFormat; DXGI_FORMAT texFormat;
DXGI_FORMAT srvFormat; DXGI_FORMAT srvFormat;
DXGI_FORMAT rtvFormat; DXGI_FORMAT rtvFormat;
...@@ -57,7 +60,7 @@ struct ANGLEFormatSet ...@@ -57,7 +60,7 @@ struct ANGLEFormatSet
struct TextureFormat : public angle::NonCopyable struct TextureFormat : public angle::NonCopyable
{ {
TextureFormat(GLenum internalFormat, TextureFormat(GLenum internalFormat,
const ANGLEFormatSet &formatSet, const ANGLEFormat angleFormat,
InitializeTextureDataFunction internalFormatInitializer); InitializeTextureDataFunction internalFormatInitializer);
ANGLEFormatSet formatSet; ANGLEFormatSet formatSet;
......
...@@ -98,7 +98,8 @@ bool SupportsFormat(const Renderer11DeviceCaps &deviceCaps) ...@@ -98,7 +98,8 @@ bool SupportsFormat(const Renderer11DeviceCaps &deviceCaps)
} // namespace } // namespace
ANGLEFormatSet::ANGLEFormatSet() ANGLEFormatSet::ANGLEFormatSet()
: texFormat(DXGI_FORMAT_UNKNOWN), : format(ANGLE_FORMAT_NONE),
texFormat(DXGI_FORMAT_UNKNOWN),
srvFormat(DXGI_FORMAT_UNKNOWN), srvFormat(DXGI_FORMAT_UNKNOWN),
rtvFormat(DXGI_FORMAT_UNKNOWN), rtvFormat(DXGI_FORMAT_UNKNOWN),
dsvFormat(DXGI_FORMAT_UNKNOWN), dsvFormat(DXGI_FORMAT_UNKNOWN),
...@@ -111,10 +112,11 @@ ANGLEFormatSet::ANGLEFormatSet() ...@@ -111,10 +112,11 @@ ANGLEFormatSet::ANGLEFormatSet()
// 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,
const ANGLEFormatSet &formatSet, const ANGLEFormat angleFormat,
InitializeTextureDataFunction internalFormatInitializer) InitializeTextureDataFunction internalFormatInitializer)
: formatSet(formatSet), dataInitializerFunction(internalFormatInitializer) : dataInitializerFunction(internalFormatInitializer)
{ {
formatSet = GetANGLEFormatSet(angleFormat);
swizzleFormatSet = GetANGLEFormatSet(formatSet.swizzleFormat); swizzleFormatSet = GetANGLEFormatSet(formatSet.swizzleFormat);
// Gather all the load functions for this internal format // Gather all the load functions for this internal format
...@@ -123,12 +125,14 @@ TextureFormat::TextureFormat(GLenum internalFormat, ...@@ -123,12 +125,14 @@ TextureFormat::TextureFormat(GLenum internalFormat,
ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE); ASSERT(loadFunctions.size() != 0 || internalFormat == GL_NONE);
} }
ANGLEFormatSet::ANGLEFormatSet(DXGI_FORMAT texFormat, ANGLEFormatSet::ANGLEFormatSet(ANGLEFormat format,
DXGI_FORMAT texFormat,
DXGI_FORMAT srvFormat, DXGI_FORMAT srvFormat,
DXGI_FORMAT rtvFormat, DXGI_FORMAT rtvFormat,
DXGI_FORMAT dsvFormat, DXGI_FORMAT dsvFormat,
ANGLEFormat swizzleFormat) ANGLEFormat swizzleFormat)
: texFormat(texFormat), : format(format),
texFormat(texFormat),
srvFormat(srvFormat), srvFormat(srvFormat),
rtvFormat(rtvFormat), rtvFormat(rtvFormat),
dsvFormat(dsvFormat), dsvFormat(dsvFormat),
...@@ -143,7 +147,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -143,7 +147,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
{ {
case ANGLE_FORMAT_A8_UNORM: case ANGLE_FORMAT_A8_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_A8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_A8_UNORM, DXGI_FORMAT_A8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -152,7 +157,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -152,7 +157,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_B4G4R4A4_UNORM: case ANGLE_FORMAT_B4G4R4A4_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_B4G4R4A4_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_B4G4R4A4_UNORM, DXGI_FORMAT_B4G4R4A4_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -161,7 +167,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -161,7 +167,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_B5G5R5A1_UNORM: case ANGLE_FORMAT_B5G5R5A1_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_B5G5R5A1_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_B5G5R5A1_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -170,7 +177,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -170,7 +177,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_B5G6R5_UNORM: case ANGLE_FORMAT_B5G6R5_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_B5G6R5_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G6R5_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -179,7 +187,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -179,7 +187,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_B8G8R8A8_UNORM: case ANGLE_FORMAT_B8G8R8A8_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_B8G8R8A8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_B8G8R8A8_UNORM, DXGI_FORMAT_B8G8R8A8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -188,7 +197,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -188,7 +197,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_BC1_UNORM: case ANGLE_FORMAT_BC1_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_BC1_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC1_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -197,7 +207,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -197,7 +207,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_BC2_UNORM: case ANGLE_FORMAT_BC2_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_BC2_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_BC2_UNORM,
DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_BC2_UNORM, DXGI_FORMAT_BC2_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -206,7 +217,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -206,7 +217,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_BC3_UNORM: case ANGLE_FORMAT_BC3_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_BC3_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_BC3_UNORM,
DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_BC3_UNORM, DXGI_FORMAT_BC3_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -215,7 +227,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -215,7 +227,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_D16_UNORM_FL10: case ANGLE_FORMAT_D16_UNORM_FL10:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16_TYPELESS, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D16_UNORM_FL10,
DXGI_FORMAT_R16_TYPELESS,
DXGI_FORMAT_R16_UNORM, DXGI_FORMAT_R16_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM, DXGI_FORMAT_D16_UNORM,
...@@ -224,7 +237,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -224,7 +237,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_D16_UNORM_FL9_3: case ANGLE_FORMAT_D16_UNORM_FL9_3:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_D16_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D16_UNORM_FL9_3,
DXGI_FORMAT_D16_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D16_UNORM, DXGI_FORMAT_D16_UNORM,
...@@ -233,7 +247,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -233,7 +247,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10: case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R24G8_TYPELESS, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_R24_UNORM_X8_TYPELESS, DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT, DXGI_FORMAT_D24_UNORM_S8_UINT,
...@@ -242,7 +257,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -242,7 +257,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3: case ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_D24_UNORM_S8_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3,
DXGI_FORMAT_D24_UNORM_S8_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT, DXGI_FORMAT_D24_UNORM_S8_UINT,
...@@ -251,7 +267,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -251,7 +267,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_D32_FLOAT: case ANGLE_FORMAT_D32_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32_TYPELESS, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D32_FLOAT,
DXGI_FORMAT_R32_TYPELESS,
DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT, DXGI_FORMAT_D32_FLOAT,
...@@ -260,7 +277,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -260,7 +277,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10: case ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32G8X24_TYPELESS, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10,
DXGI_FORMAT_R32G8X24_TYPELESS,
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS, DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D32_FLOAT_S8X24_UINT, DXGI_FORMAT_D32_FLOAT_S8X24_UINT,
...@@ -269,7 +287,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -269,7 +287,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_NONE: case ANGLE_FORMAT_NONE:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_UNKNOWN, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_NONE,
DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -278,7 +297,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -278,7 +297,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R10G10B10A2_UINT: case ANGLE_FORMAT_R10G10B10A2_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R10G10B10A2_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT, DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_R10G10B10A2_UINT, DXGI_FORMAT_R10G10B10A2_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -287,7 +307,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -287,7 +307,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R10G10B10A2_UNORM: case ANGLE_FORMAT_R10G10B10A2_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R10G10B10A2_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_R10G10B10A2_UNORM, DXGI_FORMAT_R10G10B10A2_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -296,7 +317,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -296,7 +317,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R11G11B10_FLOAT: case ANGLE_FORMAT_R11G11B10_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R11G11B10_FLOAT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_R11G11B10_FLOAT, DXGI_FORMAT_R11G11B10_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -305,7 +327,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -305,7 +327,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16G16B16A16_FLOAT: case ANGLE_FORMAT_R16G16B16A16_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16G16B16A16_FLOAT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_R16G16B16A16_FLOAT, DXGI_FORMAT_R16G16B16A16_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -314,7 +337,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -314,7 +337,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16G16B16A16_SINT: case ANGLE_FORMAT_R16G16B16A16_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16G16B16A16_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT, DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_R16G16B16A16_SINT, DXGI_FORMAT_R16G16B16A16_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -323,7 +347,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -323,7 +347,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16G16B16A16_UINT: case ANGLE_FORMAT_R16G16B16A16_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16G16B16A16_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT, DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_R16G16B16A16_UINT, DXGI_FORMAT_R16G16B16A16_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -332,7 +357,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -332,7 +357,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16G16B16A16_UNORM: case ANGLE_FORMAT_R16G16B16A16_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16G16B16A16_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM, DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_R16G16B16A16_UNORM, DXGI_FORMAT_R16G16B16A16_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -341,7 +367,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -341,7 +367,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16G16_FLOAT: case ANGLE_FORMAT_R16G16_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16G16_FLOAT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_R16G16_FLOAT, DXGI_FORMAT_R16G16_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -350,7 +377,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -350,7 +377,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16G16_SINT: case ANGLE_FORMAT_R16G16_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16G16_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT, DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_R16G16_SINT, DXGI_FORMAT_R16G16_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -359,7 +387,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -359,7 +387,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16G16_UINT: case ANGLE_FORMAT_R16G16_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16G16_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_R16G16_UINT, DXGI_FORMAT_R16G16_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -368,7 +397,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -368,7 +397,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16_FLOAT: case ANGLE_FORMAT_R16_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16_FLOAT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_R16_FLOAT, DXGI_FORMAT_R16_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -377,7 +407,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -377,7 +407,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16_SINT: case ANGLE_FORMAT_R16_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT, DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_R16_SINT, DXGI_FORMAT_R16_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -386,7 +417,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -386,7 +417,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R16_UINT: case ANGLE_FORMAT_R16_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R16_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT, DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_R16_UINT, DXGI_FORMAT_R16_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -395,7 +427,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -395,7 +427,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32G32B32A32_FLOAT: case ANGLE_FORMAT_R32G32B32A32_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32G32B32A32_FLOAT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_R32G32B32A32_FLOAT, DXGI_FORMAT_R32G32B32A32_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -404,7 +437,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -404,7 +437,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32G32B32A32_SINT: case ANGLE_FORMAT_R32G32B32A32_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32G32B32A32_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT, DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_R32G32B32A32_SINT, DXGI_FORMAT_R32G32B32A32_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -413,7 +447,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -413,7 +447,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32G32B32A32_UINT: case ANGLE_FORMAT_R32G32B32A32_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32G32B32A32_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT, DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_R32G32B32A32_UINT, DXGI_FORMAT_R32G32B32A32_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -422,7 +457,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -422,7 +457,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32G32_FLOAT: case ANGLE_FORMAT_R32G32_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32G32_FLOAT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_R32G32_FLOAT, DXGI_FORMAT_R32G32_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -431,7 +467,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -431,7 +467,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32G32_SINT: case ANGLE_FORMAT_R32G32_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32G32_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_R32G32_SINT, DXGI_FORMAT_R32G32_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -440,7 +477,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -440,7 +477,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32G32_UINT: case ANGLE_FORMAT_R32G32_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32G32_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_R32G32_UINT, DXGI_FORMAT_R32G32_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -449,7 +487,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -449,7 +487,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32_FLOAT: case ANGLE_FORMAT_R32_FLOAT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32_FLOAT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_R32_FLOAT, DXGI_FORMAT_R32_FLOAT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -458,7 +497,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -458,7 +497,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32_SINT: case ANGLE_FORMAT_R32_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT, DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_R32_SINT, DXGI_FORMAT_R32_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -467,7 +507,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -467,7 +507,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R32_UINT: case ANGLE_FORMAT_R32_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R32_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_R32_UINT, DXGI_FORMAT_R32_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -476,7 +517,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -476,7 +517,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8B8A8_SINT: case ANGLE_FORMAT_R8G8B8A8_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT, DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_R8G8B8A8_SINT, DXGI_FORMAT_R8G8B8A8_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -485,7 +527,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -485,7 +527,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8B8A8_SNORM: case ANGLE_FORMAT_R8G8B8A8_SNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_SNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_R8G8B8A8_SNORM, DXGI_FORMAT_R8G8B8A8_SNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -494,7 +537,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -494,7 +537,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8B8A8_UINT: case ANGLE_FORMAT_R8G8B8A8_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT, DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_R8G8B8A8_UINT, DXGI_FORMAT_R8G8B8A8_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -503,7 +547,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -503,7 +547,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8B8A8_UNORM: case ANGLE_FORMAT_R8G8B8A8_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -512,7 +557,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -512,7 +557,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE: case ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE,
DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_FORMAT_R8G8B8A8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -521,7 +567,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -521,7 +567,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB: case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -530,7 +577,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -530,7 +577,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE: case ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -539,7 +587,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -539,7 +587,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8_SINT: case ANGLE_FORMAT_R8G8_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT, DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_R8G8_SINT, DXGI_FORMAT_R8G8_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -548,7 +597,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -548,7 +597,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8_SNORM: case ANGLE_FORMAT_R8G8_SNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8_SNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM, DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -557,7 +607,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -557,7 +607,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE: case ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8_SNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE,
DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_R8G8_SNORM, DXGI_FORMAT_R8G8_SNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -566,7 +617,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -566,7 +617,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8_UINT: case ANGLE_FORMAT_R8G8_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT, DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_R8G8_UINT, DXGI_FORMAT_R8G8_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -575,7 +627,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -575,7 +627,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8_UNORM: case ANGLE_FORMAT_R8G8_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -584,7 +637,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -584,7 +637,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE: case ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8G8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE,
DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_R8G8_UNORM, DXGI_FORMAT_R8G8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -593,7 +647,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -593,7 +647,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8_SINT: case ANGLE_FORMAT_R8_SINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8_SINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT, DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_R8_SINT, DXGI_FORMAT_R8_SINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -602,7 +657,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -602,7 +657,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8_SNORM: case ANGLE_FORMAT_R8_SNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8_SNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM, DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -611,7 +667,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -611,7 +667,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8_SNORM_NONRENDERABLE: case ANGLE_FORMAT_R8_SNORM_NONRENDERABLE:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8_SNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_SNORM_NONRENDERABLE,
DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_R8_SNORM, DXGI_FORMAT_R8_SNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -620,7 +677,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -620,7 +677,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8_UINT: case ANGLE_FORMAT_R8_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8_UINT, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT, DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_R8_UINT, DXGI_FORMAT_R8_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -629,7 +687,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -629,7 +687,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8_UNORM: case ANGLE_FORMAT_R8_UNORM:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -638,7 +697,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -638,7 +697,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R8_UNORM_NONRENDERABLE: case ANGLE_FORMAT_R8_UNORM_NONRENDERABLE:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R8_UNORM, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R8_UNORM_NONRENDERABLE,
DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_R8_UNORM, DXGI_FORMAT_R8_UNORM,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -647,7 +707,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -647,7 +707,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_R9G9B9E5_SHAREDEXP: case ANGLE_FORMAT_R9G9B9E5_SHAREDEXP:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R9G9B9E5_SHAREDEXP, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_R9G9B9E5_SHAREDEXP, DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
...@@ -656,7 +717,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat) ...@@ -656,7 +717,8 @@ const ANGLEFormatSet &GetANGLEFormatSet(ANGLEFormat angleFormat)
} }
case ANGLE_FORMAT_X24_TYPELESS_G8_UINT: case ANGLE_FORMAT_X24_TYPELESS_G8_UINT:
{ {
static const ANGLEFormatSet formatInfo(DXGI_FORMAT_R24G8_TYPELESS, static const ANGLEFormatSet formatInfo(ANGLE_FORMAT_X24_TYPELESS_G8_UINT,
DXGI_FORMAT_R24G8_TYPELESS,
DXGI_FORMAT_X24_TYPELESS_G8_UINT, DXGI_FORMAT_X24_TYPELESS_G8_UINT,
DXGI_FORMAT_UNKNOWN, DXGI_FORMAT_UNKNOWN,
DXGI_FORMAT_D24_UNORM_S8_UINT, DXGI_FORMAT_D24_UNORM_S8_UINT,
...@@ -685,14 +747,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -685,14 +747,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_A8_UNORM), ANGLE_FORMAT_A8_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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -704,14 +766,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -704,14 +766,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_ALPHA16F_EXT: case GL_ALPHA16F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT), ANGLE_FORMAT_R16G16B16A16_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_ALPHA32F_EXT: case GL_ALPHA32F_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT), ANGLE_FORMAT_R32G32B32A32_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -720,14 +782,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -720,14 +782,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_A8_UNORM), ANGLE_FORMAT_A8_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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -739,28 +801,28 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -739,28 +801,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,
GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM), ANGLE_FORMAT_B8G8R8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_BGRA4_ANGLEX: case GL_BGRA4_ANGLEX:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM), ANGLE_FORMAT_B8G8R8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_BGRA8_EXT: case GL_BGRA8_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM), ANGLE_FORMAT_B8G8R8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_BGRA_EXT: case GL_BGRA_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_B8G8R8A8_UNORM), ANGLE_FORMAT_B8G8R8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -769,7 +831,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -769,7 +831,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8_UNORM_NONRENDERABLE), ANGLE_FORMAT_R8_UNORM_NONRENDERABLE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -783,7 +845,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -783,7 +845,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE), ANGLE_FORMAT_R8G8_UNORM_NONRENDERABLE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -797,7 +859,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -797,7 +859,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
...@@ -811,7 +873,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -811,7 +873,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
...@@ -825,7 +887,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -825,7 +887,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -837,28 +899,28 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -837,28 +899,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,
GetANGLEFormatSet(ANGLE_FORMAT_BC1_UNORM), ANGLE_FORMAT_BC1_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_BC2_UNORM), ANGLE_FORMAT_BC2_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_BC3_UNORM), ANGLE_FORMAT_BC3_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_BC1_UNORM), ANGLE_FORMAT_BC1_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -867,7 +929,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -867,7 +929,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8_SNORM_NONRENDERABLE), ANGLE_FORMAT_R8_SNORM_NONRENDERABLE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -881,7 +943,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -881,7 +943,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE), ANGLE_FORMAT_R8G8_SNORM_NONRENDERABLE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -895,7 +957,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -895,7 +957,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -909,7 +971,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -909,7 +971,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE,
Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>); Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>);
return textureFormat; return textureFormat;
} }
...@@ -923,7 +985,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -923,7 +985,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -937,14 +999,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -937,14 +999,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10), ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10,
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,
GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3), ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -958,14 +1020,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -958,14 +1020,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10), ANGLE_FORMAT_D32_FLOAT_S8X24_UINT_FL10,
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,
GetANGLEFormatSet(ANGLE_FORMAT_NONE), ANGLE_FORMAT_NONE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -979,14 +1041,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -979,14 +1041,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_D16_UNORM_FL10), ANGLE_FORMAT_D16_UNORM_FL10,
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,
GetANGLEFormatSet(ANGLE_FORMAT_D16_UNORM_FL9_3), ANGLE_FORMAT_D16_UNORM_FL9_3,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1000,14 +1062,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1000,14 +1062,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10), ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10,
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,
GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3), ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1021,14 +1083,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1021,14 +1083,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_D32_FLOAT), ANGLE_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,
GetANGLEFormatSet(ANGLE_FORMAT_NONE), ANGLE_FORMAT_NONE,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1042,7 +1104,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1042,7 +1104,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10), ANGLE_FORMAT_D24_UNORM_S8_UINT_FL10,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1054,287 +1116,287 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1054,287 +1116,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,
GetANGLEFormatSet(ANGLE_FORMAT_BC1_UNORM), ANGLE_FORMAT_BC1_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_NONRENDERABLE,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT), ANGLE_FORMAT_R16G16B16A16_FLOAT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT), ANGLE_FORMAT_R32G32B32A32_FLOAT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_LUMINANCE8_EXT: case GL_LUMINANCE8_EXT:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT), ANGLE_FORMAT_R16G16B16A16_FLOAT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT), ANGLE_FORMAT_R32G32B32A32_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_NONE: case GL_NONE:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_NONE), ANGLE_FORMAT_NONE,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R11G11B10_FLOAT), ANGLE_FORMAT_R11G11B10_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R16F: case GL_R16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16_FLOAT), ANGLE_FORMAT_R16_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R16I: case GL_R16I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16_SINT), ANGLE_FORMAT_R16_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R16UI: case GL_R16UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16_UINT), ANGLE_FORMAT_R16_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R32F: case GL_R32F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32_FLOAT), ANGLE_FORMAT_R32_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R32I: case GL_R32I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32_SINT), ANGLE_FORMAT_R32_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R32UI: case GL_R32UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32_UINT), ANGLE_FORMAT_R32_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8: case GL_R8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8_UNORM), ANGLE_FORMAT_R8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8I: case GL_R8I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8_SINT), ANGLE_FORMAT_R8_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8UI: case GL_R8UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8_UINT), ANGLE_FORMAT_R8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_R8_SNORM: case GL_R8_SNORM:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8_SNORM), ANGLE_FORMAT_R8_SNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG16F: case GL_RG16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16_FLOAT), ANGLE_FORMAT_R16G16_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG16I: case GL_RG16I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16_SINT), ANGLE_FORMAT_R16G16_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG16UI: case GL_RG16UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16_UINT), ANGLE_FORMAT_R16G16_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG32F: case GL_RG32F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32_FLOAT), ANGLE_FORMAT_R32G32_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG32I: case GL_RG32I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32_SINT), ANGLE_FORMAT_R32G32_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG32UI: case GL_RG32UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32_UINT), ANGLE_FORMAT_R32G32_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8: case GL_RG8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8_UNORM), ANGLE_FORMAT_R8G8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8I: case GL_RG8I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8_SINT), ANGLE_FORMAT_R8G8_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8UI: case GL_RG8UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8_UINT), ANGLE_FORMAT_R8G8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RG8_SNORM: case GL_RG8_SNORM:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8_SNORM), ANGLE_FORMAT_R8G8_SNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGB: case GL_RGB:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R10G10B10A2_UNORM), ANGLE_FORMAT_R10G10B10A2_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGB10_A2UI: case GL_RGB10_A2UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R10G10B10A2_UINT), ANGLE_FORMAT_R10G10B10A2_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGB16F: case GL_RGB16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT), ANGLE_FORMAT_R16G16B16A16_FLOAT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_SINT), ANGLE_FORMAT_R16G16B16A16_SINT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_UINT), ANGLE_FORMAT_R16G16B16A16_UINT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT), ANGLE_FORMAT_R32G32B32A32_FLOAT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_SINT), ANGLE_FORMAT_R32G32B32A32_SINT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_UINT), ANGLE_FORMAT_R32G32B32A32_UINT,
Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>); Initialize4ComponentData<GLuint, 0x00000000, 0x00000000, 0x00000000, 0x00000001>);
return textureFormat; return textureFormat;
} }
...@@ -1343,14 +1405,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1343,14 +1405,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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_B5G6R5_UNORM), ANGLE_FORMAT_B5G6R5_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1364,14 +1426,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1364,14 +1426,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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_B5G5R5A1_UNORM), ANGLE_FORMAT_B5G5R5A1_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1383,84 +1445,84 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1383,84 +1445,84 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_RGB8: case GL_RGB8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SINT), ANGLE_FORMAT_R8G8B8A8_SINT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UINT), ANGLE_FORMAT_R8G8B8A8_UINT,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SNORM), ANGLE_FORMAT_R8G8B8A8_SNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R9G9B9E5_SHAREDEXP), ANGLE_FORMAT_R9G9B9E5_SHAREDEXP,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA: case GL_RGBA:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA16F: case GL_RGBA16F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_FLOAT), ANGLE_FORMAT_R16G16B16A16_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA16I: case GL_RGBA16I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_SINT), ANGLE_FORMAT_R16G16B16A16_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA16UI: case GL_RGBA16UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R16G16B16A16_UINT), ANGLE_FORMAT_R16G16B16A16_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA32F: case GL_RGBA32F:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_FLOAT), ANGLE_FORMAT_R32G32B32A32_FLOAT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA32I: case GL_RGBA32I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_SINT), ANGLE_FORMAT_R32G32B32A32_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA32UI: case GL_RGBA32UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R32G32B32A32_UINT), ANGLE_FORMAT_R32G32B32A32_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1469,14 +1531,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1469,14 +1531,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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
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,
GetANGLEFormatSet(ANGLE_FORMAT_B4G4R4A4_UNORM), ANGLE_FORMAT_B4G4R4A4_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1488,42 +1550,42 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1488,42 +1550,42 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
case GL_RGBA8: case GL_RGBA8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM), ANGLE_FORMAT_R8G8B8A8_UNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA8I: case GL_RGBA8I:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SINT), ANGLE_FORMAT_R8G8B8A8_SINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA8UI: case GL_RGBA8UI:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UINT), ANGLE_FORMAT_R8G8B8A8_UINT,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_RGBA8_SNORM: case GL_RGBA8_SNORM:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_SNORM), ANGLE_FORMAT_R8G8B8A8_SNORM,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
case GL_SRGB8: case GL_SRGB8:
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE), ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB_NONRENDERABLE,
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,
GetANGLEFormatSet(ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB), ANGLE_FORMAT_R8G8B8A8_UNORM_SRGB,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1532,14 +1594,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1532,14 +1594,14 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
if (OnlyFL10Plus(renderer11DeviceCaps)) if (OnlyFL10Plus(renderer11DeviceCaps))
{ {
static const TextureFormat textureFormat(internalFormat, static const TextureFormat textureFormat(internalFormat,
GetANGLEFormatSet(ANGLE_FORMAT_X24_TYPELESS_G8_UINT), ANGLE_FORMAT_X24_TYPELESS_G8_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,
GetANGLEFormatSet(ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3), ANGLE_FORMAT_D24_UNORM_S8_UINT_FL9_3,
nullptr); nullptr);
return textureFormat; return textureFormat;
} }
...@@ -1554,7 +1616,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat, ...@@ -1554,7 +1616,7 @@ const TextureFormat &GetTextureFormatInfo(GLenum internalFormat,
} }
// clang-format on // clang-format on
static const TextureFormat defaultInfo(GL_NONE, ANGLEFormatSet(), nullptr); static const TextureFormat defaultInfo(GL_NONE, ANGLE_FORMAT_NONE, nullptr);
return defaultInfo; return defaultInfo;
} // GetTextureFormatInfo } // GetTextureFormatInfo
......
...@@ -124,6 +124,16 @@ class FramebufferFormatsTest : public ANGLETest ...@@ -124,6 +124,16 @@ class FramebufferFormatsTest : public ANGLETest
EXPECT_GL_NO_ERROR(); EXPECT_GL_NO_ERROR();
} }
void testZeroHeightRenderbuffer()
{
glGenRenderbuffers(1, &mRenderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, mRenderbuffer);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, 1, 0);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
mRenderbuffer);
EXPECT_GL_NO_ERROR();
}
void SetUp() override void SetUp() override
{ {
ANGLETest::SetUp(); ANGLETest::SetUp();
...@@ -303,6 +313,18 @@ TEST_P(FramebufferFormatsTest, IncompleteCubeMap) ...@@ -303,6 +313,18 @@ TEST_P(FramebufferFormatsTest, IncompleteCubeMap)
ASSERT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION); ASSERT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
} }
// Test that a renderbuffer with zero height but nonzero width is handled without crashes/asserts.
TEST_P(FramebufferFormatsTest, ZeroHeightRenderbuffer)
{
if (getClientVersion() < 3)
{
std::cout << "Test skipped due to missing ES3" << std::endl;
return;
}
testZeroHeightRenderbuffer();
}
// Use this to select which configurations (e.g. which renderer, which GLES major version) these // Use this to select which configurations (e.g. which renderer, which GLES major version) these
// tests should be run against. // tests should be run against.
ANGLE_INSTANTIATE_TEST(FramebufferFormatsTest, ANGLE_INSTANTIATE_TEST(FramebufferFormatsTest,
......
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