Program Listing for File VkScopedBuffer.h¶
↰ Return to documentation for file (Source\Azura\RenderSystem\Inc\Vulkan\VkScopedBuffer.h
)
#pragma once
#include <vulkan/vulkan_core.h>
#include "Types.h"
#include "Log/Log.h"
namespace Azura {
namespace Vulkan {
class VkScopedBuffer {
public:
VkScopedBuffer(VkDevice device,
VkBufferUsageFlags usage,
U32 bufferSize,
VkMemoryPropertyFlags memoryProperties,
const VkPhysicalDeviceMemoryProperties& phyDeviceMemoryProperties, const Log& logger);
VkScopedBuffer(const Log& logger);
void Create(VkDevice device,
VkBufferUsageFlags usage,
U32 bufferSize,
VkMemoryPropertyFlags memoryProperties,
const VkPhysicalDeviceMemoryProperties& phyDeviceMemoryProperties);
void* MapMemory(VkDeviceSize size, VkDeviceSize offset) const;
void UnMapMemory() const;
VkBuffer Real() const;
VkDeviceMemory Memory() const;
VkDescriptorBufferInfo GetDescriptorInfo(U32 offset, U32 range) const;
void CleanUp() const;
private:
VkDevice m_device;
VkBuffer m_buffer{};
VkDeviceMemory m_memory{};
const Log log_VulkanRenderSystem;
};
} // namespace Vulkan
} // namespace Azura