From b47a7d13d9c9eeee4d3ac390abf9c3d216930cd6 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 6 Jan 2017 17:16:43 -0800 Subject: [PATCH] Code review feedback --- DirectXTex/DirectXTexD3D11.cpp | 16 ++++++++++------ DirectXTex/DirectXTexDDS.cpp | 10 +++++++--- DirectXTex/DirectXTexMisc.cpp | 4 ++-- WICTextureLoader/WICTextureLoader.cpp | 1 + 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/DirectXTex/DirectXTexD3D11.cpp b/DirectXTex/DirectXTexD3D11.cpp index d05744d..45974dc 100644 --- a/DirectXTex/DirectXTexD3D11.cpp +++ b/DirectXTex/DirectXTexD3D11.cpp @@ -26,6 +26,10 @@ using namespace DirectX; using Microsoft::WRL::ComPtr; +static_assert(TEX_DIMENSION_TEXTURE1D == D3D11_RESOURCE_DIMENSION_TEXTURE1D, "header enum mismatch"); +static_assert(TEX_DIMENSION_TEXTURE2D == D3D11_RESOURCE_DIMENSION_TEXTURE2D, "header enum mismatch"); +static_assert(TEX_DIMENSION_TEXTURE3D == D3D11_RESOURCE_DIMENSION_TEXTURE3D, "header enum mismatch"); + namespace { HRESULT Capture( @@ -425,7 +429,7 @@ HRESULT DirectX::CreateTextureEx( return E_INVALIDARG; if ((metadata.width > UINT32_MAX) || (metadata.height > UINT32_MAX) - || (metadata.mipLevels > UINT32_MAX) || (metadata.arraySize > UINT32_MAX)) + || (metadata.mipLevels > UINT16_MAX) || (metadata.arraySize > UINT16_MAX)) return E_INVALIDARG; std::unique_ptr initData(new (std::nothrow) D3D11_SUBRESOURCE_DATA[metadata.mipLevels * metadata.arraySize]); @@ -439,7 +443,7 @@ HRESULT DirectX::CreateTextureEx( if (!metadata.depth) return E_INVALIDARG; - if (metadata.depth > UINT32_MAX) + if (metadata.depth > UINT16_MAX) return E_INVALIDARG; if (metadata.arraySize > 1) @@ -537,7 +541,7 @@ HRESULT DirectX::CreateTextureEx( { case TEX_DIMENSION_TEXTURE1D: { - D3D11_TEXTURE1D_DESC desc; + D3D11_TEXTURE1D_DESC desc = {}; desc.Width = static_cast(metadata.width); desc.MipLevels = static_cast(metadata.mipLevels); desc.ArraySize = static_cast(metadata.arraySize); @@ -553,7 +557,7 @@ HRESULT DirectX::CreateTextureEx( case TEX_DIMENSION_TEXTURE2D: { - D3D11_TEXTURE2D_DESC desc; + D3D11_TEXTURE2D_DESC desc = {}; desc.Width = static_cast(metadata.width); desc.Height = static_cast(metadata.height); desc.MipLevels = static_cast(metadata.mipLevels); @@ -575,7 +579,7 @@ HRESULT DirectX::CreateTextureEx( case TEX_DIMENSION_TEXTURE3D: { - D3D11_TEXTURE3D_DESC desc; + D3D11_TEXTURE3D_DESC desc = {}; desc.Width = static_cast(metadata.width); desc.Height = static_cast(metadata.height); desc.Depth = static_cast(metadata.depth); @@ -711,7 +715,7 @@ HRESULT DirectX::CreateShaderResourceViewEx( //------------------------------------------------------------------------------------- -// Save a texture resource to a DDS file in memory/on disk +// Save a texture resource //------------------------------------------------------------------------------------- _Use_decl_annotations_ HRESULT DirectX::CaptureTexture( diff --git a/DirectXTex/DirectXTexDDS.cpp b/DirectXTex/DirectXTexDDS.cpp index b2cea91..199dfcb 100644 --- a/DirectXTex/DirectXTexDDS.cpp +++ b/DirectXTex/DirectXTexDDS.cpp @@ -19,6 +19,10 @@ using namespace DirectX; +static_assert(TEX_DIMENSION_TEXTURE1D == DDS_DIMENSION_TEXTURE1D, "header enum mismatch"); +static_assert(TEX_DIMENSION_TEXTURE2D == DDS_DIMENSION_TEXTURE2D, "header enum mismatch"); +static_assert(TEX_DIMENSION_TEXTURE3D == DDS_DIMENSION_TEXTURE3D, "header enum mismatch"); + namespace { //------------------------------------------------------------------------------------- @@ -607,7 +611,7 @@ HRESULT DirectX::_EncodeDDSHeader( { header->dwFlags |= DDS_HEADER_FLAGS_MIPMAP; - if (metadata.mipLevels > UINT32_MAX) + if (metadata.mipLevels > UINT16_MAX) return E_INVALIDARG; header->dwMipMapCount = static_cast(metadata.mipLevels); @@ -645,7 +649,7 @@ HRESULT DirectX::_EncodeDDSHeader( case TEX_DIMENSION_TEXTURE3D: if (metadata.height > UINT32_MAX || metadata.width > UINT32_MAX - || metadata.depth > UINT32_MAX) + || metadata.depth > UINT16_MAX) return E_INVALIDARG; header->dwFlags |= DDS_HEADER_FLAGS_VOLUME; @@ -688,7 +692,7 @@ HRESULT DirectX::_EncodeDDSHeader( ext->dxgiFormat = metadata.format; ext->resourceDimension = metadata.dimension; - if (metadata.arraySize > UINT32_MAX) + if (metadata.arraySize > UINT16_MAX) return E_INVALIDARG; static_assert(TEX_MISC_TEXTURECUBE == DDS_RESOURCE_MISC_TEXTURECUBE, "DDS header mismatch"); diff --git a/DirectXTex/DirectXTexMisc.cpp b/DirectXTex/DirectXTexMisc.cpp index 281c85a..b94143d 100644 --- a/DirectXTex/DirectXTexMisc.cpp +++ b/DirectXTex/DirectXTexMisc.cpp @@ -517,7 +517,7 @@ HRESULT DirectX::EvaluateImage( || metadata.height > UINT32_MAX) return E_INVALIDARG; - if (metadata.IsVolumemap() && metadata.depth > UINT32_MAX) + if (metadata.IsVolumemap() && metadata.depth > UINT16_MAX) return E_INVALIDARG; ScratchImage temp; @@ -645,7 +645,7 @@ HRESULT DirectX::TransformImage( || metadata.height > UINT32_MAX) return E_INVALIDARG; - if (metadata.IsVolumemap() && metadata.depth > UINT32_MAX) + if (metadata.IsVolumemap() && metadata.depth > UINT16_MAX) return E_INVALIDARG; HRESULT hr = result.Initialize(metadata); diff --git a/WICTextureLoader/WICTextureLoader.cpp b/WICTextureLoader/WICTextureLoader.cpp index 58f7ea9..7f3b465 100644 --- a/WICTextureLoader/WICTextureLoader.cpp +++ b/WICTextureLoader/WICTextureLoader.cpp @@ -37,6 +37,7 @@ #include +#include #include #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )