Program Listing for File VulkanBuffer.hpp

Return to documentation for file (Src/GraphicsEngineVulkan/vulkan_base/VulkanBuffer.hpp)

#pragma once
#include <vulkan/vulkan.h>

#include "vulkan_base/VulkanDevice.hpp"
namespace Kataglyphis {
class VulkanBuffer
{
  public:
    VulkanBuffer();

    void create(VulkanDevice *vulkanDevice,
      VkDeviceSize buffer_size,
      VkBufferUsageFlags buffer_usage_flags,
      VkMemoryPropertyFlags buffer_propertiy_flags);

    void cleanUp();

    VkBuffer &getBuffer() { return buffer; };
    VkDeviceMemory &getBufferMemory() { return bufferMemory; };

    ~VulkanBuffer();

  private:
    VulkanDevice *device{ VK_NULL_HANDLE };

    VkBuffer buffer{ VK_NULL_HANDLE };
    VkDeviceMemory bufferMemory{ VK_NULL_HANDLE };

    bool created{ false };
};
}// namespace Kataglyphis