Improve resource handling

This commit is contained in:
2021-01-08 22:11:00 +01:00
parent dea40fea84
commit 412613c757
6 changed files with 202 additions and 171 deletions

View File

@@ -23,6 +23,8 @@ namespace openVulkanoCpp
namespace Vulkan
{
class VulkanGeometry;
class ResourceManager : virtual public ICloseable, virtual public IShaderOwner
{
Context* context;
@@ -42,7 +44,10 @@ namespace openVulkanoCpp
int buffers = -1, currentBuffer = -1;
public:
static ResourceManager* INSTANCE;
ResourceManager();
virtual ~ResourceManager() noexcept;
void Init(Context* context, int buffers = 2);
@@ -55,7 +60,7 @@ namespace openVulkanoCpp
void Resize();
void PrepareGeometry(Scene::Geometry* geometry);
VulkanGeometry* PrepareGeometry(Scene::Geometry* geometry);
void PrepareMaterial(Scene::Material* material);
@@ -63,6 +68,8 @@ namespace openVulkanoCpp
void RemoveShader(VulkanShader* shader) override;
ManagedBuffer* CreateSharedMemoryBuffer(size_t size);
protected: // Allocation management
void FreeBuffer(ManagedBuffer* buffer);