From 66e178756ee1057198cb8103eed72e93d8832fb0 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sun, 5 Aug 2018 18:29:29 +0200 Subject: [PATCH] [d3d11] Introduce GetCommonBuffer helper Also update GetCommonTexture documentation. --- src/d3d11/d3d11_buffer.cpp | 10 ++++++++++ src/d3d11/d3d11_buffer.h | 10 ++++++++++ src/d3d11/d3d11_texture.h | 7 +++---- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/d3d11/d3d11_buffer.cpp b/src/d3d11/d3d11_buffer.cpp index f9eb1e264..07c0d1d7e 100644 --- a/src/d3d11/d3d11_buffer.cpp +++ b/src/d3d11/d3d11_buffer.cpp @@ -150,4 +150,14 @@ namespace dxvk { return m_device->GetDXVKDevice()->createBuffer(info, memoryFlags); } + + D3D11Buffer* GetCommonBuffer(ID3D11Resource* pResource) { + D3D11_RESOURCE_DIMENSION dimension = D3D11_RESOURCE_DIMENSION_UNKNOWN; + pResource->GetType(&dimension); + + return dimension == D3D11_RESOURCE_DIMENSION_BUFFER + ? static_cast(pResource) + : nullptr; + } + } diff --git a/src/d3d11/d3d11_buffer.h b/src/d3d11/d3d11_buffer.h index b39d21589..db4cdd0f1 100644 --- a/src/d3d11/d3d11_buffer.h +++ b/src/d3d11/d3d11_buffer.h @@ -77,5 +77,15 @@ namespace dxvk { const D3D11_BUFFER_DESC* pDesc) const; }; + + + /** + * \brief Retrieves buffer from resource pointer + * + * \param [in] pResource The resource to query + * \returns Pointer to buffer, or \c nullptr + */ + D3D11Buffer* GetCommonBuffer( + ID3D11Resource* pResource); } diff --git a/src/d3d11/d3d11_texture.h b/src/d3d11/d3d11_texture.h index 9f6f8d256..58fa56110 100644 --- a/src/d3d11/d3d11_texture.h +++ b/src/d3d11/d3d11_texture.h @@ -365,11 +365,10 @@ namespace dxvk { /** - * \brief Retrieves common info about a texture + * \brief Retrieves texture from resource pointer * - * \param [in] pResource The resource. Must be a texture. - * \param [out] pTextureInfo Pointer to the texture info struct. - * \returns E_INVALIDARG if the resource is not a texture + * \param [in] pResource The resource to query + * \returns Pointer to texture info, or \c nullptr */ D3D11CommonTexture* GetCommonTexture( ID3D11Resource* pResource);