From 7a69135ba15f1e8c643d676e75ab48ea8a37fc50 Mon Sep 17 00:00:00 2001 From: Robin Date: Wed, 2 Jan 2019 15:31:43 +0100 Subject: [PATCH] [d3d10] Check if d3d11 pointers are null --- src/d3d10/d3d10_device.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/d3d10/d3d10_device.cpp b/src/d3d10/d3d10_device.cpp index 9cf338c8..25e7375c 100644 --- a/src/d3d10/d3d10_device.cpp +++ b/src/d3d10/d3d10_device.cpp @@ -751,9 +751,9 @@ namespace dxvk { m_context->GetPredication( ppPredicate ? &d3d11Predicate : nullptr, pPredicateValue); - + if (ppPredicate != nullptr) - *ppPredicate = static_cast(d3d11Predicate)->GetD3D10Iface(); + *ppPredicate = d3d11Predicate ? static_cast(d3d11Predicate)->GetD3D10Iface() : nullptr; } @@ -945,8 +945,8 @@ namespace dxvk { ID3D11InputLayout* d3d11InputLayout = nullptr; m_context->IAGetInputLayout(&d3d11InputLayout); - *ppInputLayout = static_cast( - d3d11InputLayout)->GetD3D10Iface(); + *ppInputLayout = d3d11InputLayout ? static_cast( + d3d11InputLayout)->GetD3D10Iface() : nullptr; } @@ -995,7 +995,7 @@ namespace dxvk { Format, Offset); if (pIndexBuffer != nullptr) - *pIndexBuffer = static_cast(d3d11Buffer)->GetD3D10Iface(); + *pIndexBuffer = d3d11Buffer ? static_cast(d3d11Buffer)->GetD3D10Iface() : nullptr; } @@ -1070,7 +1070,7 @@ namespace dxvk { ID3D11VertexShader* d3d11Shader = nullptr; m_context->VSGetShader(&d3d11Shader, nullptr, nullptr); - *ppVertexShader = static_cast(d3d11Shader)->GetD3D10Iface(); + *ppVertexShader = d3d11Shader ? static_cast(d3d11Shader)->GetD3D10Iface() : nullptr; } @@ -1190,7 +1190,7 @@ namespace dxvk { ID3D11GeometryShader* d3d11Shader = nullptr; m_context->GSGetShader(&d3d11Shader, nullptr, nullptr); - *ppGeometryShader = static_cast(d3d11Shader)->GetD3D10Iface(); + *ppGeometryShader = d3d11Shader ? static_cast(d3d11Shader)->GetD3D10Iface() : nullptr; } @@ -1310,7 +1310,7 @@ namespace dxvk { ID3D11PixelShader* d3d11Shader = nullptr; m_context->PSGetShader(&d3d11Shader, nullptr, nullptr); - *ppPixelShader = static_cast(d3d11Shader)->GetD3D10Iface(); + *ppPixelShader = d3d11Shader ? static_cast(d3d11Shader)->GetD3D10Iface() : nullptr; } @@ -1422,7 +1422,7 @@ namespace dxvk { } if (ppDepthStencilView) - *ppDepthStencilView = static_cast(d3d11Dsv)->GetD3D10Iface(); + *ppDepthStencilView = d3d11Dsv ? static_cast(d3d11Dsv)->GetD3D10Iface() : nullptr; } @@ -1437,7 +1437,7 @@ namespace dxvk { BlendFactor, pSampleMask); if (ppBlendState != nullptr) - *ppBlendState = static_cast(d3d11BlendState)->GetD3D10Iface(); + *ppBlendState = d3d11BlendState ? static_cast(d3d11BlendState)->GetD3D10Iface() : nullptr; } @@ -1451,7 +1451,7 @@ namespace dxvk { pStencilRef); if (ppDepthStencilState != nullptr) - *ppDepthStencilState = static_cast(d3d11DepthStencilState)->GetD3D10Iface(); + *ppDepthStencilState = d3d11DepthStencilState ? static_cast(d3d11DepthStencilState)->GetD3D10Iface() : nullptr; } @@ -1497,7 +1497,7 @@ namespace dxvk { ID3D11RasterizerState* d3d11RasterizerState = nullptr; m_context->RSGetState(&d3d11RasterizerState); - *ppRasterizerState = static_cast(d3d11RasterizerState)->GetD3D10Iface(); + *ppRasterizerState = d3d11RasterizerState ? static_cast(d3d11RasterizerState)->GetD3D10Iface() : nullptr; }