...
This commit is contained in:
36
include/opengl/resource_management/resource_handle.hpp
Normal file
36
include/opengl/resource_management/resource_handle.hpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
|
||||
#include "resource_manager.hpp"
|
||||
|
||||
namespace zgl
|
||||
{
|
||||
|
||||
class resource_handle
|
||||
{
|
||||
public:
|
||||
using id_type = reference_counter::gl_id_type;
|
||||
|
||||
resource_handle() = default;
|
||||
|
||||
inline resource_handle(id_type id, reference_counter* manager);
|
||||
|
||||
resource_handle(const resource_handle& other) = delete;
|
||||
resource_handle& operator=(const resource_handle& other) = delete;
|
||||
|
||||
inline resource_handle(resource_handle&& other) noexcept;
|
||||
inline resource_handle& operator=(resource_handle&& other) noexcept;
|
||||
|
||||
inline ~resource_handle();
|
||||
|
||||
protected:
|
||||
id_type m_id{ 0 };
|
||||
|
||||
private:
|
||||
reference_counter* m_counter{ nullptr };
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#define INCLUDE_RESOURCE_HANDLE_IMPLEMENTATION
|
||||
#include "opengl/resource_management/resource_handle.ipp"
|
||||
#undef INCLUDE_RESOURCE_HANDLE_IMPLEMENTATION
|
||||
Reference in New Issue
Block a user