Merged the d3d format info and mip generation tables since both used the same keys.

git-svn-id: https://angleproject.googlecode.com/svn/branches/es3proto@2364 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 92b9cd57
......@@ -417,39 +417,7 @@ static bool getD3D11ES2FormatInfo(GLint internalFormat, GLuint clientVersion, D3
}
}
// A map for determining the mip map generation function given a texture's internal DXGI format
typedef std::pair<DXGI_FORMAT, MipGenerationFunction> FormatMipPair;
typedef std::map<DXGI_FORMAT, MipGenerationFunction> FormatMipMap;
static FormatMipMap buildFormatMipMap()
{
FormatMipMap map;
// | DXGI format | Mip generation function |
map.insert(FormatMipPair(DXGI_FORMAT_A8_UNORM, GenerateMip<A8> ));
map.insert(FormatMipPair(DXGI_FORMAT_R8_UNORM, GenerateMip<R8> ));
map.insert(FormatMipPair(DXGI_FORMAT_R8G8_UNORM, GenerateMip<R8G8> ));
map.insert(FormatMipPair(DXGI_FORMAT_R8G8B8A8_UNORM, GenerateMip<R8G8B8A8> ));
map.insert(FormatMipPair(DXGI_FORMAT_B8G8R8A8_UNORM, GenerateMip<B8G8R8A8> ));
map.insert(FormatMipPair(DXGI_FORMAT_R16_FLOAT, GenerateMip<R16F> ));
map.insert(FormatMipPair(DXGI_FORMAT_R16G16_FLOAT, GenerateMip<R16G16F> ));
map.insert(FormatMipPair(DXGI_FORMAT_R16G16B16A16_FLOAT, GenerateMip<R16G16B16A16F>));
map.insert(FormatMipPair(DXGI_FORMAT_R32_FLOAT, GenerateMip<R32F> ));
map.insert(FormatMipPair(DXGI_FORMAT_R32G32_FLOAT, GenerateMip<R32G32F> ));
map.insert(FormatMipPair(DXGI_FORMAT_R32G32B32_FLOAT, GenerateMip<R32G32B32F> ));
map.insert(FormatMipPair(DXGI_FORMAT_R32G32B32A32_FLOAT, GenerateMip<R32G32B32A32F>));
map.insert(FormatMipPair(DXGI_FORMAT_R10G10B10A2_UNORM, GenerateMip<R10G10B10A2> ));
map.insert(FormatMipPair(DXGI_FORMAT_R9G9B9E5_SHAREDEXP, GenerateMip<R9G9B9E5> ));
return map;
}
// A map to determine the pixel size of a given DXGI format
// A map to determine the pixel size and mipmap generation function of a given DXGI format
struct DXGIFormatInfo
{
GLuint mPixelBits;
......@@ -457,12 +425,16 @@ struct DXGIFormatInfo
GLuint mBlockHeight;
GLint mInternalFormat;
MipGenerationFunction mMipGenerationFunction;
DXGIFormatInfo()
: mPixelBits(0), mInternalFormat(GL_NONE)
: mPixelBits(0), mBlockWidth(0), mBlockHeight(0), mInternalFormat(GL_NONE), mMipGenerationFunction(NULL)
{ }
DXGIFormatInfo(GLuint pixelBits, GLuint blockWidth, GLuint blockHeight, GLint internalFormat)
: mPixelBits(pixelBits), mBlockWidth(blockWidth), mBlockHeight(blockHeight), mInternalFormat(internalFormat)
DXGIFormatInfo(GLuint pixelBits, GLuint blockWidth, GLuint blockHeight, GLint internalFormat,
MipGenerationFunction mipFunc)
: mPixelBits(pixelBits), mBlockWidth(blockWidth), mBlockHeight(blockHeight), mInternalFormat(internalFormat),
mMipGenerationFunction(mipFunc)
{ }
};
......@@ -473,39 +445,39 @@ static DXGIFormatInfoMap buildDXGIFormatInfoMap()
{
DXGIFormatInfoMap map;
// | DXGI format | S |W |H | Internal format |
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_UNKNOWN, DXGIFormatInfo( 0, 0, 0, GL_NONE )));
// | DXGI format | S |W |H | Internal format | Mip generation function |
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_UNKNOWN, DXGIFormatInfo( 0, 0, 0, GL_NONE, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_A8_UNORM, DXGIFormatInfo( 8, 1, 1, GL_ALPHA8_EXT )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8_UNORM, DXGIFormatInfo( 8, 1, 1, GL_R8 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8G8_UNORM, DXGIFormatInfo( 16, 1, 1, GL_RG8 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8G8B8A8_UNORM, DXGIFormatInfo( 32, 1, 1, GL_RGBA8 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGIFormatInfo( 32, 1, 1, GL_SRGB8_ALPHA8 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_B8G8R8A8_UNORM, DXGIFormatInfo( 32, 1, 1, GL_BGRA8_EXT )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_A8_UNORM, DXGIFormatInfo( 8, 1, 1, GL_ALPHA8_EXT, GenerateMip<A8> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8_UNORM, DXGIFormatInfo( 8, 1, 1, GL_R8, GenerateMip<R8> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8G8_UNORM, DXGIFormatInfo( 16, 1, 1, GL_RG8, GenerateMip<R8G8> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8G8B8A8_UNORM, DXGIFormatInfo( 32, 1, 1, GL_RGBA8, GenerateMip<R8G8B8A8> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, DXGIFormatInfo( 32, 1, 1, GL_SRGB8_ALPHA8, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_B8G8R8A8_UNORM, DXGIFormatInfo( 32, 1, 1, GL_BGRA8_EXT, GenerateMip<B8G8R8A8> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R10G10B10A2_UNORM, DXGIFormatInfo( 32, 1, 1, GL_RGB10_A2 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R10G10B10A2_UNORM, DXGIFormatInfo( 32, 1, 1, GL_RGB10_A2, GenerateMip<R10G10B10A2> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16_FLOAT, DXGIFormatInfo( 16, 1, 1, GL_R16F )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16G16_FLOAT, DXGIFormatInfo( 32, 1, 1, GL_RG16F )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGIFormatInfo( 64, 1, 1, GL_RGBA16F )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16_FLOAT, DXGIFormatInfo( 16, 1, 1, GL_R16F, GenerateMip<R16F> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16G16_FLOAT, DXGIFormatInfo( 32, 1, 1, GL_RG16F, GenerateMip<R16G16F> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16G16B16A16_FLOAT, DXGIFormatInfo( 64, 1, 1, GL_RGBA16F, GenerateMip<R16G16B16A16F>)));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32_FLOAT, DXGIFormatInfo( 32, 1, 1, GL_R32F )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32G32_FLOAT, DXGIFormatInfo( 64, 1, 1, GL_RG32F )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32G32B32_FLOAT, DXGIFormatInfo( 96, 1, 1, GL_RGB32F )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGIFormatInfo(128, 1, 1, GL_RGBA32F )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32_FLOAT, DXGIFormatInfo( 32, 1, 1, GL_R32F, GenerateMip<R32F> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32G32_FLOAT, DXGIFormatInfo( 64, 1, 1, GL_RG32F, GenerateMip<R32G32F> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32G32B32_FLOAT, DXGIFormatInfo( 96, 1, 1, GL_RGB32F, GenerateMip<R32G32B32F> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32G32B32A32_FLOAT, DXGIFormatInfo(128, 1, 1, GL_RGBA32F, GenerateMip<R32G32B32A32F>)));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R9G9B9E5_SHAREDEXP, DXGIFormatInfo( 32, 1, 1, GL_RGB9_E5 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R9G9B9E5_SHAREDEXP, DXGIFormatInfo( 32, 1, 1, GL_RGB9_E5, GenerateMip<R9G9B9E5> )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16_TYPELESS, DXGIFormatInfo( 16, 1, 1, GL_DEPTH_COMPONENT16 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_D16_UNORM, DXGIFormatInfo( 16, 1, 1, GL_DEPTH_COMPONENT16 )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32_TYPELESS, DXGIFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT32_OES )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_D32_FLOAT, DXGIFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT32_OES )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R24G8_TYPELESS, DXGIFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_D24_UNORM_S8_UINT, DXGIFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R16_TYPELESS, DXGIFormatInfo( 16, 1, 1, GL_DEPTH_COMPONENT16, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_D16_UNORM, DXGIFormatInfo( 16, 1, 1, GL_DEPTH_COMPONENT16, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R32_TYPELESS, DXGIFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT32_OES, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_D32_FLOAT, DXGIFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT32_OES, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_R24G8_TYPELESS, DXGIFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_D24_UNORM_S8_UINT, DXGIFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_BC1_UNORM, DXGIFormatInfo( 64, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_BC2_UNORM, DXGIFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE)));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_BC3_UNORM, DXGIFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE)));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_BC1_UNORM, DXGIFormatInfo( 64, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_BC2_UNORM, DXGIFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, NULL )));
map.insert(DXGIFormatInfoPair(DXGI_FORMAT_BC3_UNORM, DXGIFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, NULL )));
return map;
}
......@@ -533,11 +505,10 @@ namespace d3d11
MipGenerationFunction GetMipGenerationFunction(DXGI_FORMAT format)
{
static const FormatMipMap formatMipMap = buildFormatMipMap();
FormatMipMap::const_iterator iter = formatMipMap.find(format);
if (iter != formatMipMap.end())
DXGIFormatInfo formatInfo;
if (getDXGIFormatInfo(format, &formatInfo))
{
return iter->second;
return formatInfo.mMipGenerationFunction;
}
else
{
......@@ -802,11 +773,10 @@ namespace d3d11_gl
GLint GetInternalFormat(DXGI_FORMAT format)
{
static const DXGIFormatInfoMap infoMap = buildDXGIFormatInfoMap();
DXGIFormatInfoMap::const_iterator iter = infoMap.find(format);
if (iter != infoMap.end())
DXGIFormatInfo formatInfo;
if (getDXGIFormatInfo(format, &formatInfo))
{
return iter->second.mInternalFormat;
return formatInfo.mInternalFormat;
}
else
{
......@@ -818,4 +788,3 @@ GLint GetInternalFormat(DXGI_FORMAT format)
}
}
......@@ -152,26 +152,7 @@ static bool getD3D9FormatInfo(GLint internalFormat, D3D9FormatInfo *outFormatInf
}
}
// A map for determining the mip map generation function given a texture's internal D3D format
typedef std::pair<D3DFORMAT, MipGenerationFunction> FormatMipPair;
typedef std::map<D3DFORMAT, MipGenerationFunction> FormatMipMap;
static FormatMipMap buildFormatMipMap()
{
FormatMipMap map;
// | D3DFORMAT | Mip generation function |
map.insert(FormatMipPair(D3DFMT_L8, GenerateMip<L8> ));
map.insert(FormatMipPair(D3DFMT_A8L8, GenerateMip<A8L8> ));
map.insert(FormatMipPair(D3DFMT_A8R8G8B8, GenerateMip<A8R8G8B8> ));
map.insert(FormatMipPair(D3DFMT_X8R8G8B8, GenerateMip<A8R8G8B8> ));
map.insert(FormatMipPair(D3DFMT_A16B16G16R16F, GenerateMip<A16B16G16R16F>));
map.insert(FormatMipPair(D3DFMT_A32B32G32R32F, GenerateMip<A32B32G32R32F>));
return map;
}
// A map to determine the pixel size of a given D3D format
// A map to determine the pixel size and mip generation function of a given D3D format
struct D3DFormatInfo
{
GLuint mPixelBits;
......@@ -179,12 +160,16 @@ struct D3DFormatInfo
GLuint mBlockHeight;
GLint mInternalFormat;
MipGenerationFunction mMipGenerationFunction;
D3DFormatInfo()
: mPixelBits(0), mBlockWidth(0), mBlockHeight(0), mInternalFormat(GL_NONE)
: mPixelBits(0), mBlockWidth(0), mBlockHeight(0), mInternalFormat(GL_NONE), mMipGenerationFunction(NULL)
{ }
D3DFormatInfo(GLuint pixelBits, GLuint blockWidth, GLuint blockHeight, GLint internalFormat)
: mPixelBits(pixelBits), mBlockWidth(blockWidth), mBlockHeight(blockHeight), mInternalFormat(internalFormat)
D3DFormatInfo(GLuint pixelBits, GLuint blockWidth, GLuint blockHeight, GLint internalFormat,
MipGenerationFunction mipFunc)
: mPixelBits(pixelBits), mBlockWidth(blockWidth), mBlockHeight(blockHeight), mInternalFormat(internalFormat),
mMipGenerationFunction(mipFunc)
{ }
};
......@@ -195,31 +180,31 @@ static D3D9FormatInfoMap buildD3D9FormatInfoMap()
{
D3D9FormatInfoMap map;
// | D3DFORMAT | | S |W |H | Internal format |
map.insert(D3D9FormatInfoPair(D3DFMT_NULL, D3DFormatInfo( 0, 0, 0, GL_NONE )));
map.insert(D3D9FormatInfoPair(D3DFMT_UNKNOWN, D3DFormatInfo( 0, 0, 0, GL_NONE )));
// | D3DFORMAT | | S |W |H | Internal format | Mip generation function |
map.insert(D3D9FormatInfoPair(D3DFMT_NULL, D3DFormatInfo( 0, 0, 0, GL_NONE, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_UNKNOWN, D3DFormatInfo( 0, 0, 0, GL_NONE, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_L8, D3DFormatInfo( 8, 1, 1, GL_LUMINANCE8_EXT )));
map.insert(D3D9FormatInfoPair(D3DFMT_A8, D3DFormatInfo( 8, 1, 1, GL_ALPHA8_EXT )));
map.insert(D3D9FormatInfoPair(D3DFMT_A8L8, D3DFormatInfo( 16, 1, 1, GL_LUMINANCE8_ALPHA8_EXT )));
map.insert(D3D9FormatInfoPair(D3DFMT_A4R4G4B4, D3DFormatInfo( 16, 1, 1, GL_RGBA4 )));
map.insert(D3D9FormatInfoPair(D3DFMT_A1R5G5B5, D3DFormatInfo( 16, 1, 1, GL_RGB5_A1 )));
map.insert(D3D9FormatInfoPair(D3DFMT_R5G6B5, D3DFormatInfo( 16, 1, 1, GL_RGB565 )));
map.insert(D3D9FormatInfoPair(D3DFMT_X8R8G8B8, D3DFormatInfo( 32, 1, 1, GL_RGB8_OES )));
map.insert(D3D9FormatInfoPair(D3DFMT_A8R8G8B8, D3DFormatInfo( 32, 1, 1, GL_RGBA8_OES )));
map.insert(D3D9FormatInfoPair(D3DFMT_A16B16G16R16F, D3DFormatInfo( 64, 1, 1, GL_RGBA16F_EXT )));
map.insert(D3D9FormatInfoPair(D3DFMT_A32B32G32R32F, D3DFormatInfo(128, 1, 1, GL_RGBA32F_EXT )));
map.insert(D3D9FormatInfoPair(D3DFMT_L8, D3DFormatInfo( 8, 1, 1, GL_LUMINANCE8_EXT, GenerateMip<L8> )));
map.insert(D3D9FormatInfoPair(D3DFMT_A8, D3DFormatInfo( 8, 1, 1, GL_ALPHA8_EXT, GenerateMip<A8> )));
map.insert(D3D9FormatInfoPair(D3DFMT_A8L8, D3DFormatInfo( 16, 1, 1, GL_LUMINANCE8_ALPHA8_EXT, GenerateMip<A8L8> )));
map.insert(D3D9FormatInfoPair(D3DFMT_A4R4G4B4, D3DFormatInfo( 16, 1, 1, GL_RGBA4, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_A1R5G5B5, D3DFormatInfo( 16, 1, 1, GL_RGB5_A1, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_R5G6B5, D3DFormatInfo( 16, 1, 1, GL_RGB565, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_X8R8G8B8, D3DFormatInfo( 32, 1, 1, GL_RGB8_OES, GenerateMip<A8R8G8B8> )));
map.insert(D3D9FormatInfoPair(D3DFMT_A8R8G8B8, D3DFormatInfo( 32, 1, 1, GL_RGBA8_OES, GenerateMip<A8R8G8B8> )));
map.insert(D3D9FormatInfoPair(D3DFMT_A16B16G16R16F, D3DFormatInfo( 64, 1, 1, GL_RGBA16F_EXT, GenerateMip<A16B16G16R16F>)));
map.insert(D3D9FormatInfoPair(D3DFMT_A32B32G32R32F, D3DFormatInfo(128, 1, 1, GL_RGBA32F_EXT, GenerateMip<A32B32G32R32F>)));
map.insert(D3D9FormatInfoPair(D3DFMT_D16, D3DFormatInfo( 16, 1, 1, GL_DEPTH_COMPONENT16 )));
map.insert(D3D9FormatInfoPair(D3DFMT_D24S8, D3DFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES )));
map.insert(D3D9FormatInfoPair(D3DFMT_D24X8, D3DFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT16 )));
map.insert(D3D9FormatInfoPair(D3DFMT_D32, D3DFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT32_OES )));
map.insert(D3D9FormatInfoPair(D3DFMT_D16, D3DFormatInfo( 16, 1, 1, GL_DEPTH_COMPONENT16, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_D24S8, D3DFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_D24X8, D3DFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT16, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_D32, D3DFormatInfo( 32, 1, 1, GL_DEPTH_COMPONENT32_OES, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_INTZ, D3DFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES )));
map.insert(D3D9FormatInfoPair(D3DFMT_INTZ, D3DFormatInfo( 32, 1, 1, GL_DEPTH24_STENCIL8_OES, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_DXT1, D3DFormatInfo( 64, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT )));
map.insert(D3D9FormatInfoPair(D3DFMT_DXT3, D3DFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE)));
map.insert(D3D9FormatInfoPair(D3DFMT_DXT5, D3DFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE)));
map.insert(D3D9FormatInfoPair(D3DFMT_DXT1, D3DFormatInfo( 64, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_DXT3, D3DFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, NULL )));
map.insert(D3D9FormatInfoPair(D3DFMT_DXT5, D3DFormatInfo(128, 4, 4, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, NULL )));
return map;
}
......@@ -247,11 +232,10 @@ namespace d3d9
MipGenerationFunction GetMipGenerationFunction(D3DFORMAT format)
{
static const FormatMipMap mipFunctionMap = buildFormatMipMap();
FormatMipMap::const_iterator iter = mipFunctionMap.find(format);
if (iter != mipFunctionMap.end())
D3DFormatInfo d3dFormatInfo;
if (getD3D9FormatInfo(format, &d3dFormatInfo))
{
return iter->second;
return d3dFormatInfo.mMipGenerationFunction;
}
else
{
......
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