Code review feedback for standalone texture loaders

This commit is contained in:
Chuck Walbourn 2020-03-10 01:05:10 -07:00
parent 7cd2abf078
commit dbaaffbefb
12 changed files with 145 additions and 141 deletions

View File

@ -119,7 +119,7 @@ namespace
{ {
struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } }; struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } };
typedef std::unique_ptr<void, handle_closer> ScopedHandle; using ScopedHandle = std::unique_ptr<void, handle_closer>;
inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; } inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; }
@ -140,7 +140,7 @@ namespace
size_t ddsDataSize, size_t ddsDataSize,
const DDS_HEADER** header, const DDS_HEADER** header,
const uint8_t** bitData, const uint8_t** bitData,
size_t* bitSize) size_t* bitSize) noexcept
{ {
if (!header || !bitData || !bitSize) if (!header || !bitData || !bitSize)
{ {
@ -205,7 +205,7 @@ namespace
std::unique_ptr<uint8_t[]>& ddsData, std::unique_ptr<uint8_t[]>& ddsData,
const DDS_HEADER** header, const DDS_HEADER** header,
const uint8_t** bitData, const uint8_t** bitData,
size_t* bitSize) size_t* bitSize) noexcept
{ {
if (!header || !bitData || !bitSize) if (!header || !bitData || !bitSize)
{ {
@ -321,7 +321,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Return the BPP for a particular format // Return the BPP for a particular format
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
size_t BitsPerPixel(_In_ DXGI_FORMAT fmt) size_t BitsPerPixel(_In_ DXGI_FORMAT fmt) noexcept
{ {
switch (fmt) switch (fmt)
{ {
@ -477,7 +477,7 @@ namespace
_In_ DXGI_FORMAT fmt, _In_ DXGI_FORMAT fmt,
size_t* outNumBytes, size_t* outNumBytes,
_Out_opt_ size_t* outRowBytes, _Out_opt_ size_t* outRowBytes,
_Out_opt_ size_t* outNumRows) _Out_opt_ size_t* outNumRows) noexcept
{ {
uint64_t numBytes = 0; uint64_t numBytes = 0;
uint64_t rowBytes = 0; uint64_t rowBytes = 0;
@ -620,7 +620,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
#define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a ) #define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a )
DXGI_FORMAT GetDXGIFormat(const DDS_PIXELFORMAT& ddpf) DXGI_FORMAT GetDXGIFormat(const DDS_PIXELFORMAT& ddpf) noexcept
{ {
if (ddpf.flags & DDS_RGB) if (ddpf.flags & DDS_RGB)
{ {
@ -861,7 +861,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) noexcept
{ {
switch (format) switch (format)
{ {
@ -907,7 +907,7 @@ namespace
_Out_ size_t& theight, _Out_ size_t& theight,
_Out_ size_t& tdepth, _Out_ size_t& tdepth,
_Out_ size_t& skipMip, _Out_ size_t& skipMip,
_Out_writes_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData) _Out_writes_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData) noexcept
{ {
if (!bitData || !initData) if (!bitData || !initData)
{ {
@ -1008,7 +1008,7 @@ namespace
_In_ bool isCubeMap, _In_ bool isCubeMap,
_In_reads_opt_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData, _In_reads_opt_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView) _Outptr_opt_ ID3D11ShaderResourceView** textureView) noexcept
{ {
if (!d3dDevice) if (!d3dDevice)
return E_POINTER; return E_POINTER;
@ -1238,7 +1238,7 @@ namespace
_In_ unsigned int miscFlags, _In_ unsigned int miscFlags,
_In_ bool forceSRGB, _In_ bool forceSRGB,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView) _Outptr_opt_ ID3D11ShaderResourceView** textureView) noexcept
{ {
HRESULT hr = S_OK; HRESULT hr = S_OK;
@ -1553,26 +1553,26 @@ namespace
case D3D_FEATURE_LEVEL_9_2: case D3D_FEATURE_LEVEL_9_2:
if (isCubeMap) if (isCubeMap)
{ {
maxsize = 512 /*D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION*/; maxsize = 512u /*D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION*/;
} }
else else
{ {
maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D)
? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ ? 256u /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/
: 2048 /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; : 2048u /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
} }
break; break;
case D3D_FEATURE_LEVEL_9_3: case D3D_FEATURE_LEVEL_9_3:
maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D)
? 256 /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ ? 256u /*D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/
: 4096 /*D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; : 4096u /*D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
break; break;
default: // D3D_FEATURE_LEVEL_10_0 & D3D_FEATURE_LEVEL_10_1 default: // D3D_FEATURE_LEVEL_10_0 & D3D_FEATURE_LEVEL_10_1
maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D) maxsize = (resDim == D3D11_RESOURCE_DIMENSION_TEXTURE3D)
? 2048 /*D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/ ? 2048u /*D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION*/
: 8192 /*D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; : 8192u /*D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
break; break;
} }
@ -1598,7 +1598,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DDS_ALPHA_MODE GetAlphaMode(_In_ const DDS_HEADER* header) DDS_ALPHA_MODE GetAlphaMode(_In_ const DDS_HEADER* header) noexcept
{ {
if (header->ddspf.flags & DDS_FOURCC) if (header->ddspf.flags & DDS_FOURCC)
{ {
@ -1633,7 +1633,7 @@ namespace
void SetDebugTextureInfo( void SetDebugTextureInfo(
_In_z_ const wchar_t* fileName, _In_z_ const wchar_t* fileName,
_In_opt_ ID3D11Resource** texture, _In_opt_ ID3D11Resource** texture,
_In_opt_ ID3D11ShaderResourceView** textureView) _In_opt_ ID3D11ShaderResourceView** textureView) noexcept
{ {
#if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
if (texture || textureView) if (texture || textureView)
@ -1694,7 +1694,7 @@ HRESULT DirectX::CreateDDSTextureFromMemory(
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize, size_t maxsize,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
return CreateDDSTextureFromMemoryEx(d3dDevice, nullptr, return CreateDDSTextureFromMemoryEx(d3dDevice, nullptr,
ddsData, ddsDataSize, ddsData, ddsDataSize,
@ -1713,7 +1713,7 @@ HRESULT DirectX::CreateDDSTextureFromMemory(
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize, size_t maxsize,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
return CreateDDSTextureFromMemoryEx(d3dDevice, d3dContext, return CreateDDSTextureFromMemoryEx(d3dDevice, d3dContext,
ddsData, ddsDataSize, ddsData, ddsDataSize,
@ -1736,7 +1736,7 @@ HRESULT DirectX::CreateDDSTextureFromMemoryEx(
bool forceSRGB, bool forceSRGB,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
return CreateDDSTextureFromMemoryEx(d3dDevice, nullptr, return CreateDDSTextureFromMemoryEx(d3dDevice, nullptr,
ddsData, ddsDataSize, ddsData, ddsDataSize,
@ -1760,7 +1760,7 @@ HRESULT DirectX::CreateDDSTextureFromMemoryEx(
bool forceSRGB, bool forceSRGB,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
if (texture) if (texture)
{ {
@ -1833,7 +1833,7 @@ HRESULT DirectX::CreateDDSTextureFromFile(
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize, size_t maxsize,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
return CreateDDSTextureFromFileEx(d3dDevice, nullptr, return CreateDDSTextureFromFileEx(d3dDevice, nullptr,
fileName, maxsize, fileName, maxsize,
@ -1850,7 +1850,7 @@ HRESULT DirectX::CreateDDSTextureFromFile(
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize, size_t maxsize,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
return CreateDDSTextureFromFileEx(d3dDevice, d3dContext, return CreateDDSTextureFromFileEx(d3dDevice, d3dContext,
fileName, fileName,
@ -1872,7 +1872,7 @@ HRESULT DirectX::CreateDDSTextureFromFileEx(
bool forceSRGB, bool forceSRGB,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
return CreateDDSTextureFromFileEx(d3dDevice, nullptr, return CreateDDSTextureFromFileEx(d3dDevice, nullptr,
fileName, fileName,
@ -1895,7 +1895,7 @@ HRESULT DirectX::CreateDDSTextureFromFileEx(
bool forceSRGB, bool forceSRGB,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
DDS_ALPHA_MODE* alphaMode) DDS_ALPHA_MODE* alphaMode) noexcept
{ {
if (texture) if (texture)
{ {

View File

@ -17,7 +17,8 @@
#pragma once #pragma once
#include <d3d11_1.h> #include <d3d11_1.h>
#include <stdint.h>
#include <cstdint>
namespace DirectX namespace DirectX
@ -42,7 +43,7 @@ namespace DirectX
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0, _In_ size_t maxsize = 0,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
HRESULT CreateDDSTextureFromFile( HRESULT CreateDDSTextureFromFile(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
@ -50,7 +51,7 @@ namespace DirectX
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0, _In_ size_t maxsize = 0,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
// Standard version with optional auto-gen mipmap support // Standard version with optional auto-gen mipmap support
HRESULT CreateDDSTextureFromMemory( HRESULT CreateDDSTextureFromMemory(
@ -61,7 +62,7 @@ namespace DirectX
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0, _In_ size_t maxsize = 0,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
HRESULT CreateDDSTextureFromFile( HRESULT CreateDDSTextureFromFile(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
@ -70,7 +71,7 @@ namespace DirectX
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0, _In_ size_t maxsize = 0,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
// Extended version // Extended version
HRESULT CreateDDSTextureFromMemoryEx( HRESULT CreateDDSTextureFromMemoryEx(
@ -85,7 +86,7 @@ namespace DirectX
_In_ bool forceSRGB, _In_ bool forceSRGB,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
HRESULT CreateDDSTextureFromFileEx( HRESULT CreateDDSTextureFromFileEx(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
@ -98,7 +99,7 @@ namespace DirectX
_In_ bool forceSRGB, _In_ bool forceSRGB,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
// Extended version with optional auto-gen mipmap support // Extended version with optional auto-gen mipmap support
HRESULT CreateDDSTextureFromMemoryEx( HRESULT CreateDDSTextureFromMemoryEx(
@ -114,7 +115,7 @@ namespace DirectX
_In_ bool forceSRGB, _In_ bool forceSRGB,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
HRESULT CreateDDSTextureFromFileEx( HRESULT CreateDDSTextureFromFileEx(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
@ -128,5 +129,5 @@ namespace DirectX
_In_ bool forceSRGB, _In_ bool forceSRGB,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr); _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr) noexcept;
} }

View File

@ -124,7 +124,7 @@ namespace
{ {
struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } }; struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } };
typedef std::unique_ptr<void, handle_closer> ScopedHandle; using ScopedHandle = std::unique_ptr<void, handle_closer>;
inline HANDLE safe_handle(HANDLE h) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; } inline HANDLE safe_handle(HANDLE h) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; }
@ -139,7 +139,7 @@ namespace
#endif #endif
} }
inline uint32_t CountMips(uint32_t width, uint32_t height) inline uint32_t CountMips(uint32_t width, uint32_t height) noexcept
{ {
if (width == 0 || height == 0) if (width == 0 || height == 0)
return 0; return 0;
@ -161,7 +161,7 @@ namespace
size_t ddsDataSize, size_t ddsDataSize,
const DDS_HEADER** header, const DDS_HEADER** header,
const uint8_t** bitData, const uint8_t** bitData,
size_t* bitSize) size_t* bitSize) noexcept
{ {
if (!header || !bitData || !bitSize) if (!header || !bitData || !bitSize)
{ {
@ -226,7 +226,7 @@ namespace
std::unique_ptr<uint8_t[]>& ddsData, std::unique_ptr<uint8_t[]>& ddsData,
const DDS_HEADER** header, const DDS_HEADER** header,
const uint8_t** bitData, const uint8_t** bitData,
size_t* bitSize) size_t* bitSize) noexcept
{ {
if (!header || !bitData || !bitSize) if (!header || !bitData || !bitSize)
{ {
@ -332,7 +332,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Return the BPP for a particular format // Return the BPP for a particular format
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) noexcept
{ {
switch( fmt ) switch( fmt )
{ {
@ -491,7 +491,7 @@ namespace
_In_ DXGI_FORMAT fmt, _In_ DXGI_FORMAT fmt,
size_t* outNumBytes, size_t* outNumBytes,
_Out_opt_ size_t* outRowBytes, _Out_opt_ size_t* outRowBytes,
_Out_opt_ size_t* outNumRows) _Out_opt_ size_t* outNumRows) noexcept
{ {
uint64_t numBytes = 0; uint64_t numBytes = 0;
uint64_t rowBytes = 0; uint64_t rowBytes = 0;
@ -635,7 +635,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
#define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a ) #define ISBITMASK( r,g,b,a ) ( ddpf.RBitMask == r && ddpf.GBitMask == g && ddpf.BBitMask == b && ddpf.ABitMask == a )
DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf ) DXGI_FORMAT GetDXGIFormat( const DDS_PIXELFORMAT& ddpf ) noexcept
{ {
if (ddpf.flags & DDS_RGB) if (ddpf.flags & DDS_RGB)
{ {
@ -876,7 +876,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format ) DXGI_FORMAT MakeSRGB( _In_ DXGI_FORMAT format ) noexcept
{ {
switch( format ) switch( format )
{ {
@ -908,7 +908,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
inline bool IsDepthStencil(DXGI_FORMAT fmt) inline bool IsDepthStencil(DXGI_FORMAT fmt) noexcept
{ {
switch (fmt) switch (fmt)
{ {
@ -935,7 +935,7 @@ namespace
_In_ DXGI_FORMAT fmt, _In_ DXGI_FORMAT fmt,
_In_ size_t height, _In_ size_t height,
_In_ size_t slicePlane, _In_ size_t slicePlane,
_Inout_ D3D12_SUBRESOURCE_DATA& res) _Inout_ D3D12_SUBRESOURCE_DATA& res) noexcept
{ {
switch (fmt) switch (fmt)
{ {
@ -1092,7 +1092,7 @@ namespace
DXGI_FORMAT format, DXGI_FORMAT format,
D3D12_RESOURCE_FLAGS resFlags, D3D12_RESOURCE_FLAGS resFlags,
unsigned int loadFlags, unsigned int loadFlags,
_Outptr_ ID3D12Resource** texture) _Outptr_ ID3D12Resource** texture) noexcept
{ {
if (!d3dDevice) if (!d3dDevice)
return E_POINTER; return E_POINTER;
@ -1144,7 +1144,7 @@ namespace
unsigned int loadFlags, unsigned int loadFlags,
_Outptr_ ID3D12Resource** texture, _Outptr_ ID3D12Resource** texture,
std::vector<D3D12_SUBRESOURCE_DATA>& subresources, std::vector<D3D12_SUBRESOURCE_DATA>& subresources,
_Out_opt_ bool* outIsCubeMap) _Out_opt_ bool* outIsCubeMap) noexcept(false)
{ {
HRESULT hr = S_OK; HRESULT hr = S_OK;
@ -1364,9 +1364,10 @@ namespace
{ {
subresources.clear(); subresources.clear();
maxsize = (resDim == D3D12_RESOURCE_DIMENSION_TEXTURE3D) maxsize = static_cast<size_t>(
(resDim == D3D12_RESOURCE_DIMENSION_TEXTURE3D)
? D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ? D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION
: D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION; : D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION);
hr = FillInitData(width, height, depth, mipCount, arraySize, hr = FillInitData(width, height, depth, mipCount, arraySize,
numberOfPlanes, format, numberOfPlanes, format,
@ -1389,7 +1390,7 @@ namespace
} }
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header ) DDS_ALPHA_MODE GetAlphaMode( _In_ const DDS_HEADER* header ) noexcept
{ {
if ( header->ddspf.flags & DDS_FOURCC ) if ( header->ddspf.flags & DDS_FOURCC )
{ {
@ -1423,7 +1424,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
void SetDebugTextureInfo( void SetDebugTextureInfo(
_In_z_ const wchar_t* fileName, _In_z_ const wchar_t* fileName,
_In_ ID3D12Resource** texture) _In_ ID3D12Resource** texture) noexcept
{ {
#if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) #if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
if (texture) if (texture)
@ -1513,7 +1514,8 @@ HRESULT DirectX::LoadDDSTextureFromMemoryEx(
const uint8_t* bitData = nullptr; const uint8_t* bitData = nullptr;
size_t bitSize = 0; size_t bitSize = 0;
HRESULT hr = LoadTextureDataFromMemory(ddsData, ddsDataSize, HRESULT hr = LoadTextureDataFromMemory(ddsData,
ddsDataSize,
&header, &header,
&bitData, &bitData,
&bitSize &bitSize

View File

@ -18,9 +18,9 @@
#include <d3d12.h> #include <d3d12.h>
#include <cstdint>
#include <memory> #include <memory>
#include <vector> #include <vector>
#include <stdint.h>
namespace DirectX namespace DirectX

View File

@ -82,7 +82,7 @@ namespace
#define DDS_SURFACE_FLAGS_TEXTURE 0x00001000 // DDSCAPS_TEXTURE #define DDS_SURFACE_FLAGS_TEXTURE 0x00001000 // DDSCAPS_TEXTURE
typedef struct struct DDS_HEADER
{ {
uint32_t size; uint32_t size;
uint32_t flags; uint32_t flags;
@ -98,16 +98,16 @@ namespace
uint32_t caps3; uint32_t caps3;
uint32_t caps4; uint32_t caps4;
uint32_t reserved2; uint32_t reserved2;
} DDS_HEADER; };
typedef struct struct DDS_HEADER_DXT10
{ {
DXGI_FORMAT dxgiFormat; DXGI_FORMAT dxgiFormat;
uint32_t resourceDimension; uint32_t resourceDimension;
uint32_t miscFlag; // see D3D11_RESOURCE_MISC_FLAG uint32_t miscFlag; // see D3D11_RESOURCE_MISC_FLAG
uint32_t arraySize; uint32_t arraySize;
uint32_t reserved; uint32_t reserved;
} DDS_HEADER_DXT10; };
#pragma pack(pop) #pragma pack(pop)
@ -192,7 +192,7 @@ namespace
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } }; struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } };
typedef std::unique_ptr<void, handle_closer> ScopedHandle; using ScopedHandle = std::unique_ptr<void, handle_closer>;
inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; } inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; }
@ -245,7 +245,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Return the BPP for a particular format // Return the BPP for a particular format
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) noexcept
{ {
switch( fmt ) switch( fmt )
{ {
@ -395,7 +395,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Determines if the format is block compressed // Determines if the format is block compressed
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
bool IsCompressed( _In_ DXGI_FORMAT fmt ) bool IsCompressed( _In_ DXGI_FORMAT fmt ) noexcept
{ {
switch ( fmt ) switch ( fmt )
{ {
@ -437,7 +437,7 @@ namespace
_In_ DXGI_FORMAT fmt, _In_ DXGI_FORMAT fmt,
_Out_opt_ size_t* outNumBytes, _Out_opt_ size_t* outNumBytes,
_Out_opt_ size_t* outRowBytes, _Out_opt_ size_t* outRowBytes,
_Out_opt_ size_t* outNumRows) _Out_opt_ size_t* outNumRows) noexcept
{ {
uint64_t numBytes = 0; uint64_t numBytes = 0;
uint64_t rowBytes = 0; uint64_t rowBytes = 0;
@ -578,7 +578,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt ) DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt ) noexcept
{ {
// Assumes UNORM or FLOAT; doesn't use UINT or SINT // Assumes UNORM or FLOAT; doesn't use UINT or SINT
switch( fmt ) switch( fmt )
@ -612,7 +612,7 @@ namespace
_In_ ID3D11DeviceContext* pContext, _In_ ID3D11DeviceContext* pContext,
_In_ ID3D11Resource* pSource, _In_ ID3D11Resource* pSource,
D3D11_TEXTURE2D_DESC& desc, D3D11_TEXTURE2D_DESC& desc,
ComPtr<ID3D11Texture2D>& pStaging ) ComPtr<ID3D11Texture2D>& pStaging ) noexcept
{ {
if ( !pContext || !pSource ) if ( !pContext || !pSource )
return E_INVALIDARG; return E_INVALIDARG;
@ -769,7 +769,7 @@ _Use_decl_annotations_
HRESULT DirectX::SaveDDSTextureToFile( HRESULT DirectX::SaveDDSTextureToFile(
ID3D11DeviceContext* pContext, ID3D11DeviceContext* pContext,
ID3D11Resource* pSource, ID3D11Resource* pSource,
const wchar_t* fileName ) const wchar_t* fileName ) noexcept
{ {
if ( !fileName ) if ( !fileName )
return E_INVALIDARG; return E_INVALIDARG;
@ -940,7 +940,7 @@ HRESULT DirectX::SaveWICTextureToFile(
const wchar_t* fileName, const wchar_t* fileName,
const GUID* targetFormat, const GUID* targetFormat,
std::function<void(IPropertyBag2*)> setCustomProps, std::function<void(IPropertyBag2*)> setCustomProps,
bool forceSRGB) bool forceSRGB) noexcept
{ {
if ( !fileName ) if ( !fileName )
return E_INVALIDARG; return E_INVALIDARG;

View File

@ -28,7 +28,7 @@ namespace DirectX
HRESULT __cdecl SaveDDSTextureToFile( HRESULT __cdecl SaveDDSTextureToFile(
_In_ ID3D11DeviceContext* pContext, _In_ ID3D11DeviceContext* pContext,
_In_ ID3D11Resource* pSource, _In_ ID3D11Resource* pSource,
_In_z_ const wchar_t* fileName); _In_z_ const wchar_t* fileName) noexcept;
HRESULT __cdecl SaveWICTextureToFile( HRESULT __cdecl SaveWICTextureToFile(
_In_ ID3D11DeviceContext* pContext, _In_ ID3D11DeviceContext* pContext,
@ -37,5 +37,5 @@ namespace DirectX
_In_z_ const wchar_t* fileName, _In_z_ const wchar_t* fileName,
_In_opt_ const GUID* targetFormat = nullptr, _In_opt_ const GUID* targetFormat = nullptr,
_In_opt_ std::function<void __cdecl(IPropertyBag2*)> setCustomProps = nullptr, _In_opt_ std::function<void __cdecl(IPropertyBag2*)> setCustomProps = nullptr,
_In_ bool forceSRGB = false); _In_ bool forceSRGB = false) noexcept;
} }

View File

@ -90,7 +90,7 @@ namespace
#define DDS_SURFACE_FLAGS_TEXTURE 0x00001000 // DDSCAPS_TEXTURE #define DDS_SURFACE_FLAGS_TEXTURE 0x00001000 // DDSCAPS_TEXTURE
typedef struct struct DDS_HEADER
{ {
uint32_t size; uint32_t size;
uint32_t flags; uint32_t flags;
@ -106,16 +106,16 @@ namespace
uint32_t caps3; uint32_t caps3;
uint32_t caps4; uint32_t caps4;
uint32_t reserved2; uint32_t reserved2;
} DDS_HEADER; };
typedef struct struct DDS_HEADER_DXT10
{ {
DXGI_FORMAT dxgiFormat; DXGI_FORMAT dxgiFormat;
uint32_t resourceDimension; uint32_t resourceDimension;
uint32_t miscFlag; // see D3D11_RESOURCE_MISC_FLAG uint32_t miscFlag; // see D3D11_RESOURCE_MISC_FLAG
uint32_t arraySize; uint32_t arraySize;
uint32_t reserved; uint32_t reserved;
} DDS_HEADER_DXT10; };
#pragma pack(pop) #pragma pack(pop)
@ -200,7 +200,7 @@ namespace
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } }; struct handle_closer { void operator()(HANDLE h) { if (h) CloseHandle(h); } };
typedef std::unique_ptr<void, handle_closer> ScopedHandle; using ScopedHandle = std::unique_ptr<void, handle_closer>;
inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; } inline HANDLE safe_handle( HANDLE h ) { return (h == INVALID_HANDLE_VALUE) ? nullptr : h; }
@ -253,7 +253,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Return the BPP for a particular format // Return the BPP for a particular format
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) size_t BitsPerPixel( _In_ DXGI_FORMAT fmt ) noexcept
{ {
switch( fmt ) switch( fmt )
{ {
@ -406,7 +406,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
// Determines if the format is block compressed // Determines if the format is block compressed
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
bool IsCompressed( _In_ DXGI_FORMAT fmt ) bool IsCompressed( _In_ DXGI_FORMAT fmt ) noexcept
{ {
switch ( fmt ) switch ( fmt )
{ {
@ -448,7 +448,7 @@ namespace
_In_ DXGI_FORMAT fmt, _In_ DXGI_FORMAT fmt,
_Out_opt_ size_t* outNumBytes, _Out_opt_ size_t* outNumBytes,
_Out_opt_ size_t* outRowBytes, _Out_opt_ size_t* outRowBytes,
_Out_opt_ size_t* outNumRows) _Out_opt_ size_t* outNumRows) noexcept
{ {
uint64_t numBytes = 0; uint64_t numBytes = 0;
uint64_t rowBytes = 0; uint64_t rowBytes = 0;
@ -590,7 +590,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt ) DXGI_FORMAT EnsureNotTypeless( DXGI_FORMAT fmt ) noexcept
{ {
// Assumes UNORM or FLOAT; doesn't use UINT or SINT // Assumes UNORM or FLOAT; doesn't use UINT or SINT
switch( fmt ) switch( fmt )
@ -624,7 +624,7 @@ namespace
_In_ ID3D12GraphicsCommandList* commandList, _In_ ID3D12GraphicsCommandList* commandList,
_In_ ID3D12Resource* resource, _In_ ID3D12Resource* resource,
_In_ D3D12_RESOURCE_STATES stateBefore, _In_ D3D12_RESOURCE_STATES stateBefore,
_In_ D3D12_RESOURCE_STATES stateAfter) _In_ D3D12_RESOURCE_STATES stateAfter) noexcept
{ {
assert(commandList != nullptr); assert(commandList != nullptr);
assert(resource != nullptr); assert(resource != nullptr);
@ -651,7 +651,7 @@ namespace
const D3D12_RESOURCE_DESC& desc, const D3D12_RESOURCE_DESC& desc,
ComPtr<ID3D12Resource>& pStaging, ComPtr<ID3D12Resource>& pStaging,
D3D12_RESOURCE_STATES beforeState, D3D12_RESOURCE_STATES beforeState,
D3D12_RESOURCE_STATES afterState) D3D12_RESOURCE_STATES afterState) noexcept
{ {
if (!pCommandQ || !pSource) if (!pCommandQ || !pSource)
return E_INVALIDARG; return E_INVALIDARG;
@ -823,7 +823,7 @@ namespace
ifactory)) ? TRUE : FALSE; ifactory)) ? TRUE : FALSE;
} }
IWICImagingFactory2* _GetWIC() IWICImagingFactory2* _GetWIC() noexcept
{ {
static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT;
@ -848,7 +848,7 @@ HRESULT DirectX::SaveDDSTextureToFile(
ID3D12Resource* pSource, ID3D12Resource* pSource,
const wchar_t* fileName, const wchar_t* fileName,
D3D12_RESOURCE_STATES beforeState, D3D12_RESOURCE_STATES beforeState,
D3D12_RESOURCE_STATES afterState) D3D12_RESOURCE_STATES afterState) noexcept
{ {
if ( !fileName ) if ( !fileName )
return E_INVALIDARG; return E_INVALIDARG;
@ -1054,7 +1054,7 @@ HRESULT DirectX::SaveWICTextureToFile(
D3D12_RESOURCE_STATES afterState, D3D12_RESOURCE_STATES afterState,
const GUID* targetFormat, const GUID* targetFormat,
std::function<void(IPropertyBag2*)> setCustomProps, std::function<void(IPropertyBag2*)> setCustomProps,
bool forceSRGB) bool forceSRGB) noexcept
{ {
if ( !fileName ) if ( !fileName )
return E_INVALIDARG; return E_INVALIDARG;

View File

@ -30,7 +30,7 @@ namespace DirectX
_In_ ID3D12Resource* pSource, _In_ ID3D12Resource* pSource,
_In_z_ const wchar_t* fileName, _In_z_ const wchar_t* fileName,
D3D12_RESOURCE_STATES beforeState = D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATES beforeState = D3D12_RESOURCE_STATE_RENDER_TARGET,
D3D12_RESOURCE_STATES afterState = D3D12_RESOURCE_STATE_RENDER_TARGET); D3D12_RESOURCE_STATES afterState = D3D12_RESOURCE_STATE_RENDER_TARGET) noexcept;
HRESULT __cdecl SaveWICTextureToFile( HRESULT __cdecl SaveWICTextureToFile(
_In_ ID3D12CommandQueue* pCommandQ, _In_ ID3D12CommandQueue* pCommandQ,
@ -41,5 +41,5 @@ namespace DirectX
D3D12_RESOURCE_STATES afterState = D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATES afterState = D3D12_RESOURCE_STATE_RENDER_TARGET,
_In_opt_ const GUID* targetFormat = nullptr, _In_opt_ const GUID* targetFormat = nullptr,
_In_opt_ std::function<void __cdecl(IPropertyBag2*)> setCustomProps = nullptr, _In_opt_ std::function<void __cdecl(IPropertyBag2*)> setCustomProps = nullptr,
bool forceSRGB = false); bool forceSRGB = false) noexcept;
} }

View File

@ -48,7 +48,7 @@ namespace
{ {
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
template<UINT TNameLength> template<UINT TNameLength>
inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ const char(&name)[TNameLength]) inline void SetDebugObjectName(_In_ ID3D11DeviceChild* resource, _In_ const char(&name)[TNameLength]) noexcept
{ {
#if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
resource->SetPrivateData(WKPDID_D3DDebugObjectName, TNameLength - 1, name); resource->SetPrivateData(WKPDID_D3DDebugObjectName, TNameLength - 1, name);
@ -203,12 +203,13 @@ namespace
#endif #endif
} }
IWICImagingFactory* _GetWIC() IWICImagingFactory* _GetWIC() noexcept
{ {
static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT;
IWICImagingFactory* factory = nullptr; IWICImagingFactory* factory = nullptr;
if (!InitOnceExecuteOnce(&s_initOnce, if (!InitOnceExecuteOnce(
&s_initOnce,
InitializeWICFactory, InitializeWICFactory,
nullptr, nullptr,
reinterpret_cast<LPVOID*>(&factory))) reinterpret_cast<LPVOID*>(&factory)))
@ -220,7 +221,7 @@ namespace
} }
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
DXGI_FORMAT _WICToDXGI(const GUID& guid) DXGI_FORMAT _WICToDXGI(const GUID& guid) noexcept
{ {
for (size_t i = 0; i < _countof(g_WICFormats); ++i) for (size_t i = 0; i < _countof(g_WICFormats); ++i)
{ {
@ -240,7 +241,7 @@ namespace
} }
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
size_t _WICBitsPerPixel(REFGUID targetGuid) size_t _WICBitsPerPixel(REFGUID targetGuid) noexcept
{ {
auto pWIC = _GetWIC(); auto pWIC = _GetWIC();
if (!pWIC) if (!pWIC)
@ -270,7 +271,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) noexcept
{ {
switch (format) switch (format)
{ {
@ -312,7 +313,7 @@ namespace
_In_ unsigned int miscFlags, _In_ unsigned int miscFlags,
_In_ unsigned int loadFlags, _In_ unsigned int loadFlags,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView) _Outptr_opt_ ID3D11ShaderResourceView** textureView) noexcept
{ {
UINT width, height; UINT width, height;
HRESULT hr = frame->GetSize(&width, &height); HRESULT hr = frame->GetSize(&width, &height);
@ -334,20 +335,20 @@ namespace
{ {
case D3D_FEATURE_LEVEL_9_1: case D3D_FEATURE_LEVEL_9_1:
case D3D_FEATURE_LEVEL_9_2: case D3D_FEATURE_LEVEL_9_2:
maxsize = 2048 /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; maxsize = 2048u /*D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
break; break;
case D3D_FEATURE_LEVEL_9_3: case D3D_FEATURE_LEVEL_9_3:
maxsize = 4096 /*D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; maxsize = 4096u /*D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
break; break;
case D3D_FEATURE_LEVEL_10_0: case D3D_FEATURE_LEVEL_10_0:
case D3D_FEATURE_LEVEL_10_1: case D3D_FEATURE_LEVEL_10_1:
maxsize = 8192 /*D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION*/; maxsize = 8192u /*D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION*/;
break; break;
default: default:
maxsize = D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; maxsize = size_t(D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION);
break; break;
} }
} }
@ -618,10 +619,10 @@ namespace
} }
// Create texture // Create texture
D3D11_TEXTURE2D_DESC desc; D3D11_TEXTURE2D_DESC desc = {};
desc.Width = twidth; desc.Width = twidth;
desc.Height = theight; desc.Height = theight;
desc.MipLevels = (autogen) ? 0 : 1; desc.MipLevels = (autogen) ? 0u : 1u;
desc.ArraySize = 1; desc.ArraySize = 1;
desc.Format = format; desc.Format = format;
desc.SampleDesc.Count = 1; desc.SampleDesc.Count = 1;
@ -655,7 +656,7 @@ namespace
SRVDesc.Format = desc.Format; SRVDesc.Format = desc.Format;
SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
SRVDesc.Texture2D.MipLevels = (autogen) ? UINT(-1) : 1; SRVDesc.Texture2D.MipLevels = (autogen) ? unsigned(-1) : 1u;
hr = d3dDevice->CreateShaderResourceView(tex, &SRVDesc, textureView); hr = d3dDevice->CreateShaderResourceView(tex, &SRVDesc, textureView);
if (FAILED(hr)) if (FAILED(hr))
@ -691,7 +692,7 @@ namespace
void SetDebugTextureInfo( void SetDebugTextureInfo(
_In_z_ const wchar_t* fileName, _In_z_ const wchar_t* fileName,
_In_opt_ ID3D11Resource** texture, _In_opt_ ID3D11Resource** texture,
_In_opt_ ID3D11ShaderResourceView** textureView) _In_opt_ ID3D11ShaderResourceView** textureView) noexcept
{ {
#if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) #if !defined(NO_D3D11_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
if (texture || textureView) if (texture || textureView)
@ -751,7 +752,7 @@ HRESULT DirectX::CreateWICTextureFromMemory(
size_t wicDataSize, size_t wicDataSize,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize) size_t maxsize) noexcept
{ {
return CreateWICTextureFromMemoryEx(d3dDevice, nullptr, return CreateWICTextureFromMemoryEx(d3dDevice, nullptr,
wicData, wicDataSize, wicData, wicDataSize,
@ -769,7 +770,7 @@ HRESULT DirectX::CreateWICTextureFromMemory(
size_t wicDataSize, size_t wicDataSize,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize) size_t maxsize) noexcept
{ {
return CreateWICTextureFromMemoryEx(d3dDevice, d3dContext, return CreateWICTextureFromMemoryEx(d3dDevice, d3dContext,
wicData, wicDataSize, wicData, wicDataSize,
@ -791,7 +792,7 @@ HRESULT DirectX::CreateWICTextureFromMemoryEx(
unsigned int miscFlags, unsigned int miscFlags,
unsigned int loadFlags, unsigned int loadFlags,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView) ID3D11ShaderResourceView** textureView) noexcept
{ {
return CreateWICTextureFromMemoryEx(d3dDevice, nullptr, return CreateWICTextureFromMemoryEx(d3dDevice, nullptr,
wicData, wicDataSize, wicData, wicDataSize,
@ -814,7 +815,7 @@ HRESULT DirectX::CreateWICTextureFromMemoryEx(
unsigned int miscFlags, unsigned int miscFlags,
unsigned int loadFlags, unsigned int loadFlags,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView) ID3D11ShaderResourceView** textureView) noexcept
{ {
if (texture) if (texture)
{ {
@ -895,7 +896,7 @@ HRESULT DirectX::CreateWICTextureFromFile(
const wchar_t* fileName, const wchar_t* fileName,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize) size_t maxsize) noexcept
{ {
return CreateWICTextureFromFileEx(d3dDevice, nullptr, return CreateWICTextureFromFileEx(d3dDevice, nullptr,
fileName, maxsize, fileName, maxsize,
@ -911,7 +912,7 @@ HRESULT DirectX::CreateWICTextureFromFile(
const wchar_t* fileName, const wchar_t* fileName,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView, ID3D11ShaderResourceView** textureView,
size_t maxsize) size_t maxsize) noexcept
{ {
return CreateWICTextureFromFileEx(d3dDevice, d3dContext, return CreateWICTextureFromFileEx(d3dDevice, d3dContext,
fileName, fileName,
@ -932,7 +933,7 @@ HRESULT DirectX::CreateWICTextureFromFileEx(
unsigned int miscFlags, unsigned int miscFlags,
unsigned int loadFlags, unsigned int loadFlags,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView) ID3D11ShaderResourceView** textureView) noexcept
{ {
return CreateWICTextureFromFileEx(d3dDevice, nullptr, return CreateWICTextureFromFileEx(d3dDevice, nullptr,
fileName, fileName,
@ -954,7 +955,7 @@ HRESULT DirectX::CreateWICTextureFromFileEx(
unsigned int miscFlags, unsigned int miscFlags,
unsigned int loadFlags, unsigned int loadFlags,
ID3D11Resource** texture, ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView) ID3D11ShaderResourceView** textureView) noexcept
{ {
if (texture) if (texture)
{ {

View File

@ -24,14 +24,14 @@
#pragma once #pragma once
#include <d3d11_1.h> #include <d3d11_1.h>
#include <stdint.h>
#include <cstdint>
namespace DirectX namespace DirectX
{ {
#ifndef WIC_LOADER_FLAGS_DEFINED #ifndef WIC_LOADER_FLAGS_DEFINED
#define WIC_LOADER_FLAGS_DEFINED #define WIC_LOADER_FLAGS_DEFINED
enum WIC_LOADER_FLAGS enum WIC_LOADER_FLAGS : uint32_t
{ {
WIC_LOADER_DEFAULT = 0, WIC_LOADER_DEFAULT = 0,
WIC_LOADER_FORCE_SRGB = 0x1, WIC_LOADER_FORCE_SRGB = 0x1,
@ -46,14 +46,14 @@ namespace DirectX
_In_ size_t wicDataSize, _In_ size_t wicDataSize,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0); _In_ size_t maxsize = 0) noexcept;
HRESULT CreateWICTextureFromFile( HRESULT CreateWICTextureFromFile(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
_In_z_ const wchar_t* szFileName, _In_z_ const wchar_t* szFileName,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0); _In_ size_t maxsize = 0) noexcept;
// Standard version with optional auto-gen mipmap support // Standard version with optional auto-gen mipmap support
HRESULT CreateWICTextureFromMemory( HRESULT CreateWICTextureFromMemory(
@ -63,7 +63,7 @@ namespace DirectX
_In_ size_t wicDataSize, _In_ size_t wicDataSize,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0); _In_ size_t maxsize = 0) noexcept;
HRESULT CreateWICTextureFromFile( HRESULT CreateWICTextureFromFile(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
@ -71,7 +71,7 @@ namespace DirectX
_In_z_ const wchar_t* szFileName, _In_z_ const wchar_t* szFileName,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView, _Outptr_opt_ ID3D11ShaderResourceView** textureView,
_In_ size_t maxsize = 0); _In_ size_t maxsize = 0) noexcept;
// Extended version // Extended version
HRESULT CreateWICTextureFromMemoryEx( HRESULT CreateWICTextureFromMemoryEx(
@ -85,7 +85,7 @@ namespace DirectX
_In_ unsigned int miscFlags, _In_ unsigned int miscFlags,
_In_ unsigned int loadFlags, _In_ unsigned int loadFlags,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView); _Outptr_opt_ ID3D11ShaderResourceView** textureView) noexcept;
HRESULT CreateWICTextureFromFileEx( HRESULT CreateWICTextureFromFileEx(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
@ -97,7 +97,7 @@ namespace DirectX
_In_ unsigned int miscFlags, _In_ unsigned int miscFlags,
_In_ unsigned int loadFlags, _In_ unsigned int loadFlags,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView); _Outptr_opt_ ID3D11ShaderResourceView** textureView) noexcept;
// Extended version with optional auto-gen mipmap support // Extended version with optional auto-gen mipmap support
HRESULT CreateWICTextureFromMemoryEx( HRESULT CreateWICTextureFromMemoryEx(
@ -112,7 +112,7 @@ namespace DirectX
_In_ unsigned int miscFlags, _In_ unsigned int miscFlags,
_In_ unsigned int loadFlags, _In_ unsigned int loadFlags,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView); _Outptr_opt_ ID3D11ShaderResourceView** textureView) noexcept;
HRESULT CreateWICTextureFromFileEx( HRESULT CreateWICTextureFromFileEx(
_In_ ID3D11Device* d3dDevice, _In_ ID3D11Device* d3dDevice,
@ -125,6 +125,5 @@ namespace DirectX
_In_ unsigned int miscFlags, _In_ unsigned int miscFlags,
_In_ unsigned int loadFlags, _In_ unsigned int loadFlags,
_Outptr_opt_ ID3D11Resource** texture, _Outptr_opt_ ID3D11Resource** texture,
_Outptr_opt_ ID3D11ShaderResourceView** textureView); _Outptr_opt_ ID3D11ShaderResourceView** textureView) noexcept;
} }

View File

@ -161,7 +161,7 @@ namespace
ifactory)) ? TRUE : FALSE; ifactory)) ? TRUE : FALSE;
} }
IWICImagingFactory2* _GetWIC() IWICImagingFactory2* _GetWIC() noexcept
{ {
static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT;
@ -179,7 +179,7 @@ namespace
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
template<UINT TNameLength> template<UINT TNameLength>
inline void SetDebugObjectName(_In_ ID3D12DeviceChild* resource, _In_z_ const wchar_t(&name)[TNameLength]) inline void SetDebugObjectName(_In_ ID3D12DeviceChild* resource, _In_z_ const wchar_t(&name)[TNameLength]) noexcept
{ {
#if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) #if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
resource->SetName(name); resource->SetName(name);
@ -189,7 +189,7 @@ namespace
#endif #endif
} }
inline uint32_t CountMips(uint32_t width, uint32_t height) inline uint32_t CountMips(uint32_t width, uint32_t height) noexcept
{ {
if (width == 0 || height == 0) if (width == 0 || height == 0)
return 0; return 0;
@ -205,7 +205,7 @@ namespace
} }
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) DXGI_FORMAT MakeSRGB(_In_ DXGI_FORMAT format) noexcept
{ {
switch (format) switch (format)
{ {
@ -236,7 +236,7 @@ namespace
} }
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
DXGI_FORMAT _WICToDXGI(const GUID& guid) DXGI_FORMAT _WICToDXGI(const GUID& guid) noexcept
{ {
for (size_t i = 0; i < _countof(g_WICFormats); ++i) for (size_t i = 0; i < _countof(g_WICFormats); ++i)
{ {
@ -248,7 +248,7 @@ namespace
} }
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
size_t _WICBitsPerPixel(REFGUID targetGuid) size_t _WICBitsPerPixel(REFGUID targetGuid) noexcept
{ {
auto pWIC = _GetWIC(); auto pWIC = _GetWIC();
if (!pWIC) if (!pWIC)
@ -284,7 +284,7 @@ namespace
unsigned int loadFlags, unsigned int loadFlags,
_Outptr_ ID3D12Resource** texture, _Outptr_ ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource) D3D12_SUBRESOURCE_DATA& subresource) noexcept
{ {
UINT width, height; UINT width, height;
HRESULT hr = frame->GetSize(&width, &height); HRESULT hr = frame->GetSize(&width, &height);
@ -549,7 +549,7 @@ namespace
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
void SetDebugTextureInfo( void SetDebugTextureInfo(
_In_z_ const wchar_t* fileName, _In_z_ const wchar_t* fileName,
_In_ ID3D12Resource** texture) _In_ ID3D12Resource** texture) noexcept
{ {
#if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) ) #if !defined(NO_D3D12_DEBUG_NAME) && ( defined(_DEBUG) || defined(PROFILE) )
if (texture) if (texture)
@ -586,7 +586,7 @@ HRESULT DirectX::LoadWICTextureFromMemory(
ID3D12Resource** texture, ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource, D3D12_SUBRESOURCE_DATA& subresource,
size_t maxsize) size_t maxsize) noexcept
{ {
return LoadWICTextureFromMemoryEx( return LoadWICTextureFromMemoryEx(
d3dDevice, d3dDevice,
@ -612,7 +612,7 @@ HRESULT DirectX::LoadWICTextureFromMemoryEx(
unsigned int loadFlags, unsigned int loadFlags,
ID3D12Resource** texture, ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource) D3D12_SUBRESOURCE_DATA& subresource) noexcept
{ {
if (texture) if (texture)
{ {
@ -675,7 +675,7 @@ HRESULT DirectX::LoadWICTextureFromFile(
ID3D12Resource** texture, ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& wicData, std::unique_ptr<uint8_t[]>& wicData,
D3D12_SUBRESOURCE_DATA& subresource, D3D12_SUBRESOURCE_DATA& subresource,
size_t maxsize) size_t maxsize) noexcept
{ {
return LoadWICTextureFromFileEx( return LoadWICTextureFromFileEx(
d3dDevice, d3dDevice,
@ -699,7 +699,7 @@ HRESULT DirectX::LoadWICTextureFromFileEx(
unsigned int loadFlags, unsigned int loadFlags,
ID3D12Resource** texture, ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource) D3D12_SUBRESOURCE_DATA& subresource) noexcept
{ {
if (texture) if (texture)
{ {

View File

@ -21,7 +21,8 @@
#pragma once #pragma once
#include <d3d12.h> #include <d3d12.h>
#include <stdint.h>
#include <cstdint>
#include <memory> #include <memory>
@ -29,7 +30,7 @@ namespace DirectX
{ {
#ifndef WIC_LOADER_FLAGS_DEFINED #ifndef WIC_LOADER_FLAGS_DEFINED
#define WIC_LOADER_FLAGS_DEFINED #define WIC_LOADER_FLAGS_DEFINED
enum WIC_LOADER_FLAGS enum WIC_LOADER_FLAGS : uint32_t
{ {
WIC_LOADER_DEFAULT = 0, WIC_LOADER_DEFAULT = 0,
WIC_LOADER_FORCE_SRGB = 0x1, WIC_LOADER_FORCE_SRGB = 0x1,
@ -47,7 +48,7 @@ namespace DirectX
_Outptr_ ID3D12Resource** texture, _Outptr_ ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource, D3D12_SUBRESOURCE_DATA& subresource,
size_t maxsize = 0); size_t maxsize = 0) noexcept;
HRESULT __cdecl LoadWICTextureFromFile( HRESULT __cdecl LoadWICTextureFromFile(
_In_ ID3D12Device* d3dDevice, _In_ ID3D12Device* d3dDevice,
@ -55,7 +56,7 @@ namespace DirectX
_Outptr_ ID3D12Resource** texture, _Outptr_ ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource, D3D12_SUBRESOURCE_DATA& subresource,
size_t maxsize = 0); size_t maxsize = 0) noexcept;
// Extended version // Extended version
HRESULT __cdecl LoadWICTextureFromMemoryEx( HRESULT __cdecl LoadWICTextureFromMemoryEx(
@ -67,7 +68,7 @@ namespace DirectX
unsigned int loadFlags, unsigned int loadFlags,
_Outptr_ ID3D12Resource** texture, _Outptr_ ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource); D3D12_SUBRESOURCE_DATA& subresource) noexcept;
HRESULT __cdecl LoadWICTextureFromFileEx( HRESULT __cdecl LoadWICTextureFromFileEx(
_In_ ID3D12Device* d3dDevice, _In_ ID3D12Device* d3dDevice,
@ -77,5 +78,5 @@ namespace DirectX
unsigned int loadFlags, unsigned int loadFlags,
_Outptr_ ID3D12Resource** texture, _Outptr_ ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData, std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource); D3D12_SUBRESOURCE_DATA& subresource) noexcept;
} }