diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2020-08-01 02:47:37 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2020-08-02 19:21:40 +0000 |
| commit | c778652b7fd834aeee7ca046d1a8d1e1d0a9f5e4 (patch) | |
| tree | 8e9816af59dad2077e5214b44994b5cf34d3bd49 /Common/interface | |
| parent | Added BeginRenderPass, NextSubpass, and EndRenderPass device context methods (diff) | |
| download | DiligentCore-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.hpp | 9 |
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> |
