[WIP] Texture support

This commit is contained in:
2023-08-02 16:17:18 +02:00
parent cf91c9c67e
commit d340d91f52
8 changed files with 175 additions and 2 deletions

View File

@@ -10,6 +10,7 @@
#include "Base/ICloseable.hpp"
#include "IShaderOwner.hpp"
#include "ManagedResource.hpp"
#include "Vulkan/Image.hpp"
#include <mutex>
#include <functional>
@@ -20,11 +21,13 @@ namespace openVulkanoCpp
class Node;
class Geometry;
class Material;
class Texture;
}
namespace Vulkan
{
class VulkanGeometry;
class VulkanTexture;
class ResourceManager : virtual public ICloseable, virtual public IShaderOwner
{
@@ -68,12 +71,20 @@ namespace openVulkanoCpp
void PrepareNode(Scene::Node* node);
VulkanTexture* PrepareTexture(Scene::Texture* texture);
void RemoveShader(VulkanShader* shader) override;
void CopyDataToImage(vk::DeviceSize size, void* data, openVulkanoCpp::Vulkan::Image* image);
ManagedBuffer* CreateSharedMemoryBuffer(size_t size);
void FreeBuffer(ManagedBuffer* buffer);
[[nodiscard]] Context* GetContext() const { return context; }
[[nodiscard]] vk::Device GetDevice() const { return device; }
protected: // Allocation management
void DoFreeBuffer(ManagedBuffer* buffer);