Vulkan: Replace ShaderBinding& by ShaderBindingPtr

This commit is contained in:
Lynix
2020-04-06 21:13:59 +02:00
parent f443bec6bc
commit ac8b908079
10 changed files with 171 additions and 41 deletions

View File

@@ -9,16 +9,23 @@
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Renderer/Config.hpp>
#include <memory>
#include <variant>
namespace Nz
{
class AbstractBuffer;
class ShaderBinding;
class ShaderBindingDeleter;
class Texture;
class TextureSampler;
using ShaderBindingPtr = std::unique_ptr<ShaderBinding, ShaderBindingDeleter>;
class NAZARA_RENDERER_API ShaderBinding
{
friend ShaderBindingDeleter;
public:
struct Binding;
@@ -47,9 +54,17 @@ namespace Nz
};
protected:
virtual void Release() = 0;
ShaderBinding(const ShaderBinding&) = delete;
ShaderBinding(ShaderBinding&&) = default;
};
class ShaderBindingDeleter
{
public:
inline void operator()(ShaderBinding* binding);
};
}
#include <Nazara/Renderer/ShaderBinding.inl>