DirectXTex: Added IsVolumemap() helper to TexMetadata

This commit is contained in:
walbourn_cp 2014-01-30 16:48:52 -08:00
parent c5c8fece25
commit c43f736184
3 changed files with 8 additions and 5 deletions

View File

@ -123,11 +123,14 @@ namespace DirectX
// Returns size_t(-1) to indicate an out-of-range error
bool IsCubemap() const { return (miscFlags & TEX_MISC_TEXTURECUBE) != 0; }
// Helpers for miscFlags
// Helper for miscFlags
bool IsPMAlpha() const { return ((miscFlags2 & TEX_MISC2_ALPHA_MODE_MASK) == TEX_ALPHA_MODE_PREMULTIPLIED) != 0; }
void SetAlphaMode( TEX_ALPHA_MODE mode ) { miscFlags2 = (miscFlags2 & ~TEX_MISC2_ALPHA_MODE_MASK) | static_cast<uint32_t>(mode); }
// Helpers for miscFlags2
bool IsVolumemap() const { return (dimension == TEX_DIMENSION_TEXTURE3D); }
// Helper for dimension
};
enum DDS_FLAGS

View File

@ -30,7 +30,7 @@ static HRESULT _Capture( _In_ ID3D11DeviceContext* pContext, _In_ ID3D11Resource
if ( !pContext || !pSource || !result.GetPixels() )
return E_POINTER;
if ( metadata.dimension == TEX_DIMENSION_TEXTURE3D )
if ( metadata.IsVolumemap() )
{
//--- Volume texture ----------------------------------------------------------
assert( metadata.arraySize == 1 );
@ -378,7 +378,7 @@ HRESULT CreateTextureEx( ID3D11Device* pDevice, const Image* srcImages, size_t n
return E_OUTOFMEMORY;
// Fill out subresource array
if ( metadata.dimension == TEX_DIMENSION_TEXTURE3D )
if ( metadata.IsVolumemap() )
{
//--- Volume case -------------------------------------------------------------
if ( !metadata.depth )

View File

@ -2644,7 +2644,7 @@ HRESULT GenerateMipMaps( const Image* srcImages, size_t nimages, const TexMetada
if ( !srcImages || !nimages || !IsValid(metadata.format) )
return E_INVALIDARG;
if ( metadata.dimension == TEX_DIMENSION_TEXTURE3D
if ( metadata.IsVolumemap()
|| IsCompressed( metadata.format ) || IsVideo( metadata.format ) )
return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
@ -2953,7 +2953,7 @@ HRESULT GenerateMipMaps3D( const Image* srcImages, size_t nimages, const TexMeta
if ( filter & TEX_FILTER_FORCE_WIC )
return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );
if ( metadata.dimension != TEX_DIMENSION_TEXTURE3D
if ( !metadata.IsVolumemap()
|| IsCompressed( metadata.format ) || IsVideo( metadata.format ) )
return HRESULT_FROM_WIN32( ERROR_NOT_SUPPORTED );