Ex texture loaders updated with additional parameter validation (#142)

This commit is contained in:
Chuck Walbourn 2019-06-18 16:56:52 -07:00 committed by GitHub
parent a161b96dec
commit f55158d557
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 0 deletions

View File

@ -1776,6 +1776,11 @@ HRESULT DirectX::CreateDDSTextureFromMemoryEx(
return E_INVALIDARG; return E_INVALIDARG;
} }
if (textureView && !(bindFlags & D3D11_BIND_SHADER_RESOURCE))
{
return E_INVALIDARG;
}
// Validate DDS file in memory // Validate DDS file in memory
const DDS_HEADER* header = nullptr; const DDS_HEADER* header = nullptr;
const uint8_t* bitData = nullptr; const uint8_t* bitData = nullptr;
@ -1906,6 +1911,11 @@ HRESULT DirectX::CreateDDSTextureFromFileEx(
return E_INVALIDARG; return E_INVALIDARG;
} }
if (textureView && !(bindFlags & D3D11_BIND_SHADER_RESOURCE))
{
return E_INVALIDARG;
}
const DDS_HEADER* header = nullptr; const DDS_HEADER* header = nullptr;
const uint8_t* bitData = nullptr; const uint8_t* bitData = nullptr;
size_t bitSize = 0; size_t bitSize = 0;

View File

@ -638,6 +638,9 @@ HRESULT DirectX::CreateShaderResourceViewEx(
*ppSRV = nullptr; *ppSRV = nullptr;
if (!(bindFlags & D3D11_BIND_SHADER_RESOURCE))
return E_INVALIDARG;
ComPtr<ID3D11Resource> resource; ComPtr<ID3D11Resource> resource;
HRESULT hr = CreateTextureEx(pDevice, srcImages, nimages, metadata, HRESULT hr = CreateTextureEx(pDevice, srcImages, nimages, metadata,
usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB, usage, bindFlags, cpuAccessFlags, miscFlags, forceSRGB,

View File

@ -818,7 +818,14 @@ HRESULT DirectX::CreateWICTextureFromMemoryEx(
} }
if (!d3dDevice || !wicData || (!texture && !textureView)) if (!d3dDevice || !wicData || (!texture && !textureView))
{
return E_INVALIDARG; return E_INVALIDARG;
}
if (textureView && !(bindFlags & D3D11_BIND_SHADER_RESOURCE))
{
return E_INVALIDARG;
}
if (!wicDataSize) if (!wicDataSize)
return E_FAIL; return E_FAIL;
@ -951,7 +958,14 @@ HRESULT DirectX::CreateWICTextureFromFileEx(
} }
if (!d3dDevice || !fileName || (!texture && !textureView)) if (!d3dDevice || !fileName || (!texture && !textureView))
{
return E_INVALIDARG; return E_INVALIDARG;
}
if (textureView && !(bindFlags & D3D11_BIND_SHADER_RESOURCE))
{
return E_INVALIDARG;
}
auto pWIC = _GetWIC(); auto pWIC = _GetWIC();
if (!pWIC) if (!pWIC)