Improve resource handling
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user