From de2944ba73141f1ebdef0c7e6f83c2c40b85f547 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Tue, 22 Oct 2019 20:05:14 -0700 Subject: Added validation and correction of IShaderVariable::SetArray arguments --- Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Graphics/GraphicsEngineD3D11') diff --git a/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h b/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h index 5934e4c3..84caeaa8 100644 --- a/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h +++ b/Graphics/GraphicsEngineD3D11/include/ShaderResourceLayoutD3D11.h @@ -83,6 +83,7 @@ public: virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final { + VerifyAndCorrectSetArrayArguments(m_Attribs.Name, m_Attribs.BindCount, FirstElement, NumElements); for(Uint32 elem=0; elem < NumElements; ++elem) BindResource(ppObjects[elem], FirstElement+elem); } @@ -110,6 +111,7 @@ public: virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final { + VerifyAndCorrectSetArrayArguments(m_Attribs.Name, m_Attribs.BindCount, FirstElement, NumElements); for(Uint32 elem=0; elem < NumElements; ++elem) BindResource(ppObjects[elem], FirstElement+elem); } @@ -141,6 +143,7 @@ public: virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final { + VerifyAndCorrectSetArrayArguments(m_Attribs.Name, m_Attribs.BindCount, FirstElement, NumElements); for(Uint32 elem=0; elem < NumElements; ++elem) BindResource(ppObjects[elem], FirstElement+elem); } @@ -166,6 +169,7 @@ public: virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final { + VerifyAndCorrectSetArrayArguments(m_Attribs.Name, m_Attribs.BindCount, FirstElement, NumElements); for(Uint32 elem=0; elem < NumElements; ++elem) BindResource(ppObjects[elem], FirstElement+elem); } @@ -192,6 +196,7 @@ public: virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final { + VerifyAndCorrectSetArrayArguments(m_Attribs.Name, m_Attribs.BindCount, FirstElement, NumElements); for(Uint32 elem=0; elem < NumElements; ++elem) BindResource(ppObjects[elem], FirstElement+elem); } @@ -217,6 +222,7 @@ public: virtual void SetArray(IDeviceObject* const* ppObjects, Uint32 FirstElement, Uint32 NumElements)override final { + VerifyAndCorrectSetArrayArguments(m_Attribs.Name, m_Attribs.BindCount, FirstElement, NumElements); for(Uint32 elem=0; elem < NumElements; ++elem) BindResource(ppObjects[elem], FirstElement+elem); } -- cgit v1.2.3