55
66#include " Render/Export.h"
77
8- namespace sh ::render
8+ namespace sh ::render::vk
99{
10- namespace impl
10+ class VulkanBuffer : public IBuffer
1111 {
12- class VulkanBuffer : public IBuffer
13- {
14- private:
15- VkDevice device;
16- VkPhysicalDevice gpu;
17- VmaAllocator allocator;
18-
19- VkBuffer buffer;
20- VmaAllocation bufferMem;
21- VkBufferCreateInfo bufferInfo;
22- VkMemoryPropertyFlags memProperty;
23-
24- size_t size;
25-
26- void * data;
27- bool persistentMapping; // 즉시 맵핑
28- private:
29- auto FindMemoryType (uint32_t typeFilter, VkMemoryPropertyFlags properties) -> uint32_t;
30- public:
31- SH_RENDER_API VulkanBuffer (VkDevice device, VkPhysicalDevice gpu, VmaAllocator allocator);
32- SH_RENDER_API VulkanBuffer (const VulkanBuffer& other);
33- SH_RENDER_API VulkanBuffer (VulkanBuffer&& other) noexcept ;
34- SH_RENDER_API ~VulkanBuffer ();
35-
36- SH_RENDER_API auto operator =(const VulkanBuffer& other) -> VulkanBuffer&;
37- SH_RENDER_API auto operator =(VulkanBuffer&& other) noexcept -> VulkanBuffer&;
38-
39- SH_RENDER_API auto Create (size_t size, VkBufferUsageFlags usageBits, VkSharingMode sharing, VkMemoryPropertyFlags memPropFlagBits, bool persistentMapping = false ) -> VkResult;
40- SH_RENDER_API void Clean ();
41- SH_RENDER_API void SetData (const void * data);
42- SH_RENDER_API auto GetData () const -> void* override ;
43- SH_RENDER_API auto GetBuffer () const -> VkBuffer;
44- SH_RENDER_API auto GetBufferInfo () const -> const VkBufferCreateInfo&;
45- SH_RENDER_API auto GetBufferMemory () const -> VmaAllocation;
46- SH_RENDER_API auto GetSize () const -> size_t;
47- };
48- }
12+ private:
13+ VkDevice device;
14+ VkPhysicalDevice gpu;
15+ VmaAllocator allocator;
16+
17+ VkBuffer buffer;
18+ VmaAllocation bufferMem;
19+ VkBufferCreateInfo bufferInfo;
20+ VkMemoryPropertyFlags memProperty;
21+
22+ size_t size;
23+
24+ void * data;
25+ bool persistentMapping; // 즉시 맵핑
26+ private:
27+ auto FindMemoryType (uint32_t typeFilter, VkMemoryPropertyFlags properties) -> uint32_t;
28+ public:
29+ SH_RENDER_API VulkanBuffer (VkDevice device, VkPhysicalDevice gpu, VmaAllocator allocator);
30+ SH_RENDER_API VulkanBuffer (const VulkanBuffer& other);
31+ SH_RENDER_API VulkanBuffer (VulkanBuffer&& other) noexcept ;
32+ SH_RENDER_API ~VulkanBuffer ();
33+
34+ SH_RENDER_API auto operator =(const VulkanBuffer& other)->VulkanBuffer&;
35+ SH_RENDER_API auto operator =(VulkanBuffer&& other) noexcept -> VulkanBuffer&;
36+
37+ SH_RENDER_API auto Create (size_t size, VkBufferUsageFlags usageBits, VkSharingMode sharing, VkMemoryPropertyFlags memPropFlagBits, bool persistentMapping = false ) -> VkResult;
38+ SH_RENDER_API void Clean ();
39+ SH_RENDER_API void SetData (const void * data);
40+ SH_RENDER_API auto GetData () const -> void* override ;
41+ SH_RENDER_API auto GetBuffer () const ->VkBuffer;
42+ SH_RENDER_API auto GetBufferInfo () const -> const VkBufferCreateInfo&;
43+ SH_RENDER_API auto GetBufferMemory () const ->VmaAllocation;
44+ SH_RENDER_API auto GetSize () const ->size_t;
45+ };
4946}
0 commit comments