2022-07-28 15:09:08 +00:00
|
|
|
template <typename OwnerType, typename Dispatch>
|
|
|
|
class ObjectRelease
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ObjectRelease() = default;
|
|
|
|
|
|
|
|
ObjectRelease( OwnerType owner,
|
|
|
|
Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
|
|
|
|
: m_owner( owner )
|
|
|
|
, m_dispatch( &dispatch )
|
|
|
|
{}
|
|
|
|
|
|
|
|
OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
|
|
|
|
{
|
|
|
|
return m_owner;
|
|
|
|
}
|
|
|
|
|
2023-05-03 10:03:28 +00:00
|
|
|
Dispatch const & getDispatch() const VULKAN_HPP_NOEXCEPT
|
|
|
|
{
|
|
|
|
return *m_dispatch;
|
|
|
|
}
|
|
|
|
|
2022-07-28 15:09:08 +00:00
|
|
|
protected:
|
|
|
|
template <typename T>
|
|
|
|
void destroy( T t ) VULKAN_HPP_NOEXCEPT
|
|
|
|
{
|
|
|
|
VULKAN_HPP_ASSERT( m_owner && m_dispatch );
|
|
|
|
m_owner.release( t, *m_dispatch );
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
OwnerType m_owner = {};
|
|
|
|
Dispatch const * m_dispatch = nullptr;
|
|
|
|
};
|