1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-20 19:54:19 +01:00

[d3d10] nullptr checks for resource creation

This commit is contained in:
Joshua Ashton 2019-02-27 20:24:37 +00:00 committed by Philip Rebohle
parent 28df1e0825
commit 2454041903

View File

@ -94,6 +94,9 @@ namespace dxvk {
ID3D10Buffer** ppBuffer) {
InitReturnPtr(ppBuffer);
if (pDesc == nullptr)
return E_INVALIDARG;
D3D11_BUFFER_DESC d3d11Desc;
d3d11Desc.ByteWidth = pDesc->ByteWidth;
d3d11Desc.Usage = D3D11_USAGE(pDesc->Usage);
@ -123,6 +126,9 @@ namespace dxvk {
ID3D10Texture1D** ppTexture1D) {
InitReturnPtr(ppTexture1D);
if (pDesc == nullptr)
return E_INVALIDARG;
D3D11_TEXTURE1D_DESC d3d11Desc;
d3d11Desc.Width = pDesc->Width;
d3d11Desc.MipLevels = pDesc->MipLevels;
@ -154,6 +160,9 @@ namespace dxvk {
ID3D10Texture2D** ppTexture2D) {
InitReturnPtr(ppTexture2D);
if (pDesc == nullptr)
return E_INVALIDARG;
D3D11_TEXTURE2D_DESC d3d11Desc;
d3d11Desc.Width = pDesc->Width;
d3d11Desc.Height = pDesc->Height;
@ -187,6 +196,9 @@ namespace dxvk {
ID3D10Texture3D** ppTexture3D) {
InitReturnPtr(ppTexture3D);
if (pDesc == nullptr)
return E_INVALIDARG;
D3D11_TEXTURE3D_DESC d3d11Desc;
d3d11Desc.Width = pDesc->Width;
d3d11Desc.Height = pDesc->Height;
@ -217,6 +229,11 @@ namespace dxvk {
ID3D10Resource* pResource,
const D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc,
ID3D10ShaderResourceView** ppSRView) {
InitReturnPtr(ppSRView);
if (pResource == nullptr)
return E_INVALIDARG;
Com<ID3D11Resource> d3d11Resource;
GetD3D11Resource(pResource, &d3d11Resource);
@ -239,6 +256,11 @@ namespace dxvk {
ID3D10Resource* pResource,
const D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc,
ID3D10ShaderResourceView1** ppSRView) {
InitReturnPtr(ppSRView);
if (pResource == nullptr)
return E_INVALIDARG;
Com<ID3D11Resource> d3d11Resource;
GetD3D11Resource(pResource, &d3d11Resource);
@ -261,6 +283,11 @@ namespace dxvk {
ID3D10Resource* pResource,
const D3D10_RENDER_TARGET_VIEW_DESC* pDesc,
ID3D10RenderTargetView** ppRTView) {
InitReturnPtr(ppRTView);
if (pResource == nullptr)
return E_INVALIDARG;
Com<ID3D11Resource> d3d11Resource;
GetD3D11Resource(pResource, &d3d11Resource);
@ -283,6 +310,11 @@ namespace dxvk {
ID3D10Resource* pResource,
const D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc,
ID3D10DepthStencilView** ppDepthStencilView) {
InitReturnPtr(ppDepthStencilView);
if (pResource == nullptr)
return E_INVALIDARG;
Com<ID3D11Resource> d3d11Resource;
GetD3D11Resource(pResource, &d3d11Resource);
@ -361,13 +393,13 @@ namespace dxvk {
NumElements, pShaderBytecodeWithInputSignature, BytecodeLength,
ppInputLayout ? &d3d11InputLayout : nullptr);
if (FAILED(hr))
if (FAILED(hr) || hr == S_FALSE)
return hr;
if (ppInputLayout) {
if (ppInputLayout)
*ppInputLayout = static_cast<D3D11InputLayout*>(d3d11InputLayout)->GetD3D10Iface();
return S_OK;
} return S_FALSE;
return hr;
}
@ -576,6 +608,9 @@ namespace dxvk {
ID3D10SamplerState** ppSamplerState) {
InitReturnPtr(ppSamplerState);
if (pSamplerDesc == nullptr)
return E_INVALIDARG;
D3D11_SAMPLER_DESC d3d11Desc;
d3d11Desc.Filter = D3D11_FILTER(pSamplerDesc->Filter);
d3d11Desc.AddressU = D3D11_TEXTURE_ADDRESS_MODE(pSamplerDesc->AddressU);
@ -609,6 +644,9 @@ namespace dxvk {
ID3D10Query** ppQuery) {
InitReturnPtr(ppQuery);
if (pQueryDesc == nullptr)
return E_INVALIDARG;
D3D11_QUERY_DESC d3d11Desc;
d3d11Desc.Query = D3D11_QUERY(pQueryDesc->Query);
d3d11Desc.MiscFlags = pQueryDesc->MiscFlags;