summaryrefslogtreecommitdiffstats
path: root/Common/interface
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-08-01 02:47:37 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-08-02 19:21:40 +0000
commitc778652b7fd834aeee7ca046d1a8d1e1d0a9f5e4 (patch)
tree8e9816af59dad2077e5214b44994b5cf34d3bd49 /Common/interface
parentAdded BeginRenderPass, NextSubpass, and EndRenderPass device context methods (diff)
downloadDiligentCore-c778652b7fd834aeee7ca046d1a8d1e1d0a9f5e4.tar.gz
DiligentCore-c778652b7fd834aeee7ca046d1a8d1e1d0a9f5e4.zip
PipelineStateVkImpl: creating implicit IRenderPass object instead of Vulkan render pass
Diffstat (limited to 'Common/interface')
-rw-r--r--Common/interface/RefCntAutoPtr.hpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/Common/interface/RefCntAutoPtr.hpp b/Common/interface/RefCntAutoPtr.hpp
index 64ebe93a..7cf13e15 100644
--- a/Common/interface/RefCntAutoPtr.hpp
+++ b/Common/interface/RefCntAutoPtr.hpp
@@ -284,8 +284,13 @@ public:
return DoublePtrHelper(*this);
}
- T** GetRawDblPtr() { return &m_pObject; }
- const T** GetRawDblPtr() const { return &m_pObject; }
+ T** GetRawDblPtr() noexcept { return &m_pObject; }
+ const T** GetRawDblPtr() const noexcept { return &m_pObject; }
+
+ template <typename DstType, typename = typename std::enable_if<std::is_convertible<T*, DstType*>::value>::type>
+ DstType** GetRawDblPtr() noexcept { return reinterpret_cast<DstType**>(&m_pObject); }
+ template <typename DstType, typename = typename std::enable_if<std::is_convertible<T*, DstType*>::value>::type>
+ DstType** GetRawDblPtr() const noexcept { return reinterpret_cast<DstType**>(&m_pObject); }
private:
template <typename OtherType>