DirectXTex: converted DDSTextureLoader & WICTextureLoader to SAL2

This commit is contained in:
walbourn_cp 2012-12-11 13:26:14 -08:00
parent 571f5315b0
commit c8bb338548
4 changed files with 104 additions and 76 deletions

View File

@ -755,12 +755,12 @@ static HRESULT FillInitData( _In_ size_t width,
_In_ DXGI_FORMAT format, _In_ DXGI_FORMAT format,
_In_ size_t maxsize, _In_ size_t maxsize,
_In_ size_t bitSize, _In_ size_t bitSize,
_In_bytecount_(bitSize) const uint8_t* bitData, _In_reads_bytes_(bitSize) const uint8_t* bitData,
_Out_ size_t& twidth, _Out_ size_t& twidth,
_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_cap_x_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData ) _Out_writes_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData )
{ {
if ( !bitData || !initData ) if ( !bitData || !initData )
return E_POINTER; return E_POINTER;
@ -853,7 +853,7 @@ static HRESULT CreateD3DResources( _In_ ID3D11Device* d3dDevice,
_In_ unsigned int miscFlags, _In_ unsigned int miscFlags,
_In_ bool forceSRGB, _In_ bool forceSRGB,
_In_ bool isCubeMap, _In_ bool isCubeMap,
_In_count_x_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData, _In_reads_(mipCount*arraySize) D3D11_SUBRESOURCE_DATA* initData,
_Out_opt_ ID3D11Resource** texture, _Out_opt_ ID3D11Resource** texture,
_Out_opt_ ID3D11ShaderResourceView** textureView ) _Out_opt_ ID3D11ShaderResourceView** textureView )
{ {
@ -1084,7 +1084,7 @@ static HRESULT CreateD3DResources( _In_ ID3D11Device* d3dDevice,
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice, static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice,
_In_ const DDS_HEADER* header, _In_ const DDS_HEADER* header,
_In_bytecount_(bitSize) const uint8_t* bitData, _In_reads_bytes_(bitSize) const uint8_t* bitData,
_In_ size_t bitSize, _In_ size_t bitSize,
_In_ size_t maxsize, _In_ size_t maxsize,
_In_ D3D11_USAGE usage, _In_ D3D11_USAGE usage,
@ -1317,29 +1317,31 @@ static HRESULT CreateTextureFromDDS( _In_ ID3D11Device* d3dDevice,
} }
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
HRESULT DirectX::CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_bytecount_(ddsDataSize) const uint8_t* ddsData, HRESULT DirectX::CreateDDSTextureFromMemory( ID3D11Device* d3dDevice,
_In_ size_t ddsDataSize, const uint8_t* ddsData,
_Out_opt_ ID3D11Resource** texture, size_t ddsDataSize,
_Out_opt_ ID3D11ShaderResourceView** textureView, ID3D11Resource** texture,
_In_ size_t maxsize ) ID3D11ShaderResourceView** textureView,
size_t maxsize )
{ {
return CreateDDSTextureFromMemoryEx( d3dDevice, ddsData, ddsDataSize, maxsize, return CreateDDSTextureFromMemoryEx( d3dDevice, ddsData, ddsDataSize, maxsize,
D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
texture, textureView ); texture, textureView );
} }
HRESULT DirectX::CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_bytecount_(ddsDataSize) const uint8_t* ddsData, HRESULT DirectX::CreateDDSTextureFromMemoryEx( ID3D11Device* d3dDevice,
_In_ size_t ddsDataSize, const uint8_t* ddsData,
_In_ size_t maxsize, size_t ddsDataSize,
_In_ D3D11_USAGE usage, size_t maxsize,
_In_ unsigned int bindFlags, D3D11_USAGE usage,
_In_ unsigned int cpuAccessFlags, unsigned int bindFlags,
_In_ unsigned int miscFlags, unsigned int cpuAccessFlags,
_In_ bool forceSRGB, unsigned int miscFlags,
_Out_opt_ ID3D11Resource** texture, bool forceSRGB,
_Out_opt_ ID3D11ShaderResourceView** textureView ) ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView )
{ {
if (!d3dDevice || !ddsData || (!texture && !textureView)) if (!d3dDevice || !ddsData || (!texture && !textureView))
{ {
@ -1404,27 +1406,29 @@ HRESULT DirectX::CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice,
} }
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
HRESULT DirectX::CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_z_ const wchar_t* fileName, HRESULT DirectX::CreateDDSTextureFromFile( ID3D11Device* d3dDevice,
_Out_opt_ ID3D11Resource** texture, const wchar_t* fileName,
_Out_opt_ ID3D11ShaderResourceView** textureView, ID3D11Resource** texture,
_In_ size_t maxsize ) ID3D11ShaderResourceView** textureView,
size_t maxsize )
{ {
return CreateDDSTextureFromFileEx( d3dDevice, fileName, maxsize, return CreateDDSTextureFromFileEx( d3dDevice, fileName, maxsize,
D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
texture, textureView ); texture, textureView );
} }
HRESULT DirectX::CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_z_ const wchar_t* fileName, HRESULT DirectX::CreateDDSTextureFromFileEx( ID3D11Device* d3dDevice,
_In_ size_t maxsize, const wchar_t* fileName,
_In_ D3D11_USAGE usage, size_t maxsize,
_In_ unsigned int bindFlags, D3D11_USAGE usage,
_In_ unsigned int cpuAccessFlags, unsigned int bindFlags,
_In_ unsigned int miscFlags, unsigned int cpuAccessFlags,
_In_ bool forceSRGB, unsigned int miscFlags,
_Out_opt_ ID3D11Resource** texture, bool forceSRGB,
_Out_opt_ ID3D11ShaderResourceView** textureView ) ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView )
{ {
if (!d3dDevice || !fileName || (!texture && !textureView)) if (!d3dDevice || !fileName || (!texture && !textureView))
{ {

View File

@ -29,10 +29,20 @@
#include <stdint.h> #include <stdint.h>
#pragma warning(pop) #pragma warning(pop)
#if defined(_MSC_VER) && (_MSC_VER<1610) && !defined(_In_reads_)
#define _In_reads_(exp)
#define _Out_writes_(exp)
#define _In_reads_bytes_(exp)
#endif
#ifndef _Use_decl_annotations_
#define _Use_decl_annotations_
#endif
namespace DirectX namespace DirectX
{ {
HRESULT CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, HRESULT CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice,
_In_bytecount_(ddsDataSize) const uint8_t* ddsData, _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData,
_In_ size_t ddsDataSize, _In_ size_t ddsDataSize,
_Out_opt_ ID3D11Resource** texture, _Out_opt_ ID3D11Resource** texture,
_Out_opt_ ID3D11ShaderResourceView** textureView, _Out_opt_ ID3D11ShaderResourceView** textureView,
@ -47,7 +57,7 @@ namespace DirectX
); );
HRESULT CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, HRESULT CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice,
_In_bytecount_(ddsDataSize) const uint8_t* ddsData, _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData,
_In_ size_t ddsDataSize, _In_ size_t ddsDataSize,
_In_ size_t maxsize, _In_ size_t maxsize,
_In_ D3D11_USAGE usage, _In_ D3D11_USAGE usage,

View File

@ -673,31 +673,33 @@ static HRESULT CreateTextureFromWIC( _In_ ID3D11Device* d3dDevice,
} }
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
HRESULT DirectX::CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_opt_ ID3D11DeviceContext* d3dContext, HRESULT DirectX::CreateWICTextureFromMemory( ID3D11Device* d3dDevice,
_In_bytecount_(wicDataSize) const uint8_t* wicData, ID3D11DeviceContext* d3dContext,
_In_ size_t wicDataSize, const uint8_t* wicData,
_Out_opt_ ID3D11Resource** texture, size_t wicDataSize,
_Out_opt_ ID3D11ShaderResourceView** textureView, ID3D11Resource** texture,
_In_ size_t maxsize ) ID3D11ShaderResourceView** textureView,
size_t maxsize )
{ {
return CreateWICTextureFromMemoryEx( d3dDevice, d3dContext, wicData, wicDataSize, maxsize, return CreateWICTextureFromMemoryEx( d3dDevice, d3dContext, wicData, wicDataSize, maxsize,
D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
texture, textureView ); texture, textureView );
} }
HRESULT DirectX::CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_opt_ ID3D11DeviceContext* d3dContext, HRESULT DirectX::CreateWICTextureFromMemoryEx( ID3D11Device* d3dDevice,
_In_bytecount_(wicDataSize) const uint8_t* wicData, ID3D11DeviceContext* d3dContext,
_In_ size_t wicDataSize, const uint8_t* wicData,
_In_ size_t maxsize, size_t wicDataSize,
_In_ D3D11_USAGE usage, size_t maxsize,
_In_ unsigned int bindFlags, D3D11_USAGE usage,
_In_ unsigned int cpuAccessFlags, unsigned int bindFlags,
_In_ unsigned int miscFlags, unsigned int cpuAccessFlags,
_In_ bool forceSRGB, unsigned int miscFlags,
_Out_opt_ ID3D11Resource** texture, bool forceSRGB,
_Out_opt_ ID3D11ShaderResourceView** textureView ) ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView )
{ {
if (!d3dDevice || !wicData || (!texture && !textureView)) if (!d3dDevice || !wicData || (!texture && !textureView))
{ {
@ -759,29 +761,31 @@ HRESULT DirectX::CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice,
} }
//-------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------
HRESULT DirectX::CreateWICTextureFromFile( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_opt_ ID3D11DeviceContext* d3dContext, HRESULT DirectX::CreateWICTextureFromFile( ID3D11Device* d3dDevice,
_In_z_ const wchar_t* fileName, ID3D11DeviceContext* d3dContext,
_Out_opt_ ID3D11Resource** texture, const wchar_t* fileName,
_Out_opt_ ID3D11ShaderResourceView** textureView, ID3D11Resource** texture,
_In_ size_t maxsize ) ID3D11ShaderResourceView** textureView,
size_t maxsize )
{ {
return CreateWICTextureFromFileEx( d3dDevice, d3dContext, fileName, maxsize, return CreateWICTextureFromFileEx( d3dDevice, d3dContext, fileName, maxsize,
D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false, D3D11_USAGE_DEFAULT, D3D11_BIND_SHADER_RESOURCE, 0, 0, false,
texture, textureView ); texture, textureView );
} }
HRESULT DirectX::CreateWICTextureFromFileEx( _In_ ID3D11Device* d3dDevice, _Use_decl_annotations_
_In_opt_ ID3D11DeviceContext* d3dContext, HRESULT DirectX::CreateWICTextureFromFileEx( ID3D11Device* d3dDevice,
_In_z_ const wchar_t* fileName, ID3D11DeviceContext* d3dContext,
_In_ size_t maxsize, const wchar_t* fileName,
_In_ D3D11_USAGE usage, size_t maxsize,
_In_ unsigned int bindFlags, D3D11_USAGE usage,
_In_ unsigned int cpuAccessFlags, unsigned int bindFlags,
_In_ unsigned int miscFlags, unsigned int cpuAccessFlags,
_In_ bool forceSRGB, unsigned int miscFlags,
_Out_opt_ ID3D11Resource** texture, bool forceSRGB,
_Out_opt_ ID3D11ShaderResourceView** textureView ) ID3D11Resource** texture,
ID3D11ShaderResourceView** textureView )
{ {
if (!d3dDevice || !fileName || (!texture && !textureView)) if (!d3dDevice || !fileName || (!texture && !textureView))
{ {

View File

@ -40,11 +40,21 @@
#include <stdint.h> #include <stdint.h>
#pragma warning(pop) #pragma warning(pop)
#if defined(_MSC_VER) && (_MSC_VER<1610) && !defined(_In_reads_)
#define _In_reads_(exp)
#define _Out_writes_(exp)
#define _In_reads_bytes_(exp)
#endif
#ifndef _Use_decl_annotations_
#define _Use_decl_annotations_
#endif
namespace DirectX namespace DirectX
{ {
HRESULT CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, HRESULT CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice,
_In_opt_ ID3D11DeviceContext* d3dContext, _In_opt_ ID3D11DeviceContext* d3dContext,
_In_bytecount_(wicDataSize) const uint8_t* wicData, _In_reads_bytes_(wicDataSize) const uint8_t* wicData,
_In_ size_t wicDataSize, _In_ size_t wicDataSize,
_Out_opt_ ID3D11Resource** texture, _Out_opt_ ID3D11Resource** texture,
_Out_opt_ ID3D11ShaderResourceView** textureView, _Out_opt_ ID3D11ShaderResourceView** textureView,
@ -61,7 +71,7 @@ namespace DirectX
HRESULT CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, HRESULT CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice,
_In_opt_ ID3D11DeviceContext* d3dContext, _In_opt_ ID3D11DeviceContext* d3dContext,
_In_bytecount_(wicDataSize) const uint8_t* wicData, _In_reads_bytes_(wicDataSize) const uint8_t* wicData,
_In_ size_t wicDataSize, _In_ size_t wicDataSize,
_In_ size_t maxsize, _In_ size_t maxsize,
_In_ D3D11_USAGE usage, _In_ D3D11_USAGE usage,