mirror of
https://github.com/microsoft/DirectXTex.git
synced 2025-07-13 13:40:14 +02:00
DirectXTex: GenerateMips fails if asked to not generate any mips
This commit is contained in:
parent
4233e222e3
commit
c568c51408
@ -2489,6 +2489,9 @@ HRESULT GenerateMipMaps( const Image& baseImage, DWORD filter, size_t levels, Sc
|
|||||||
if ( !_CalculateMipLevels(baseImage.width, baseImage.height, levels) )
|
if ( !_CalculateMipLevels(baseImage.width, baseImage.height, levels) )
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
if ( levels <= 1 )
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
if ( IsCompressed(baseImage.format) || IsTypeless(baseImage.format) || IsPlanar(baseImage.format) || IsPalettized(baseImage.format) )
|
if ( IsCompressed(baseImage.format) || IsTypeless(baseImage.format) || IsPlanar(baseImage.format) || IsPalettized(baseImage.format) )
|
||||||
{
|
{
|
||||||
return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
|
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) )
|
if ( !_CalculateMipLevels(metadata.width, metadata.height, levels) )
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
if ( levels <= 1 )
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
std::vector<const Image> baseImages;
|
std::vector<const Image> baseImages;
|
||||||
baseImages.reserve( metadata.arraySize );
|
baseImages.reserve( metadata.arraySize );
|
||||||
for( size_t item=0; item < metadata.arraySize; ++item )
|
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) )
|
if ( !_CalculateMipLevels3D(width, height, depth, levels) )
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
if ( levels <= 1 )
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
for( size_t slice=0; slice < depth; ++slice )
|
for( size_t slice=0; slice < depth; ++slice )
|
||||||
{
|
{
|
||||||
if ( !baseImages[slice].pixels )
|
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) )
|
if ( !_CalculateMipLevels3D(metadata.width, metadata.height, metadata.depth, levels) )
|
||||||
return E_INVALIDARG;
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
if ( levels <= 1 )
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
std::vector<const Image> baseImages;
|
std::vector<const Image> baseImages;
|
||||||
baseImages.reserve( metadata.depth );
|
baseImages.reserve( metadata.depth );
|
||||||
for( size_t slice=0; slice < metadata.depth; ++slice )
|
for( size_t slice=0; slice < metadata.depth; ++slice )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user