DirectXTex: GenerateMips fails if asked to not generate any mips

This commit is contained in:
walbourn_cp 2014-07-11 16:57:54 -07:00
parent 4233e222e3
commit c568c51408

View File

@ -2489,6 +2489,9 @@ HRESULT GenerateMipMaps( const Image& baseImage, DWORD filter, size_t levels, Sc
if ( !_CalculateMipLevels(baseImage.width, baseImage.height, levels) )
return E_INVALIDARG;
if ( levels <= 1 )
return E_INVALIDARG;
if ( IsCompressed(baseImage.format) || IsTypeless(baseImage.format) || IsPlanar(baseImage.format) || IsPalettized(baseImage.format) )
{
return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
@ -2651,6 +2654,9 @@ HRESULT GenerateMipMaps( const Image* srcImages, size_t nimages, const TexMetada
if ( !_CalculateMipLevels(metadata.width, metadata.height, levels) )
return E_INVALIDARG;
if ( levels <= 1 )
return E_INVALIDARG;
std::vector<const Image> baseImages;
baseImages.reserve( metadata.arraySize );
for( size_t item=0; item < metadata.arraySize; ++item )
@ -2857,6 +2863,9 @@ HRESULT GenerateMipMaps3D( const Image* baseImages, size_t depth, DWORD filter,
if ( !_CalculateMipLevels3D(width, height, depth, levels) )
return E_INVALIDARG;
if ( levels <= 1 )
return E_INVALIDARG;
for( size_t slice=0; slice < depth; ++slice )
{
if ( !baseImages[slice].pixels )
@ -2957,6 +2966,9 @@ HRESULT GenerateMipMaps3D( const Image* srcImages, size_t nimages, const TexMeta
if ( !_CalculateMipLevels3D(metadata.width, metadata.height, metadata.depth, levels) )
return E_INVALIDARG;
if ( levels <= 1 )
return E_INVALIDARG;
std::vector<const Image> baseImages;
baseImages.reserve( metadata.depth );
for( size_t slice=0; slice < metadata.depth; ++slice )