Refactor top-level function to generate vulkan.hpp
This commit is contained in:
37
snippets/ObjectFree.hpp
Normal file
37
snippets/ObjectFree.hpp
Normal file
@@ -0,0 +1,37 @@
|
||||
template <typename OwnerType, typename Dispatch>
|
||||
class ObjectFree
|
||||
{
|
||||
public:
|
||||
ObjectFree() = default;
|
||||
|
||||
ObjectFree( OwnerType owner,
|
||||
Optional<const AllocationCallbacks> allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
|
||||
Dispatch const & dispatch VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT
|
||||
: m_owner( owner )
|
||||
, m_allocationCallbacks( allocationCallbacks )
|
||||
, m_dispatch( &dispatch )
|
||||
{}
|
||||
|
||||
OwnerType getOwner() const VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return m_owner;
|
||||
}
|
||||
|
||||
Optional<const AllocationCallbacks> getAllocator() const VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return m_allocationCallbacks;
|
||||
}
|
||||
|
||||
protected:
|
||||
template <typename T>
|
||||
void destroy( T t ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
VULKAN_HPP_ASSERT( m_owner && m_dispatch );
|
||||
( m_owner.free )( t, m_allocationCallbacks, *m_dispatch );
|
||||
}
|
||||
|
||||
private:
|
||||
OwnerType m_owner = {};
|
||||
Optional<const AllocationCallbacks> m_allocationCallbacks = nullptr;
|
||||
Dispatch const * m_dispatch = nullptr;
|
||||
};
|
||||
Reference in New Issue
Block a user