diff options
Diffstat (limited to 'src/vulkan/buffer_descriptor.h')
-rw-r--r-- | src/vulkan/buffer_descriptor.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/vulkan/buffer_descriptor.h b/src/vulkan/buffer_descriptor.h index d481ae5..2c3f390 100644 --- a/src/vulkan/buffer_descriptor.h +++ b/src/vulkan/buffer_descriptor.h @@ -16,6 +16,8 @@ #define SRC_VULKAN_BUFFER_DESCRIPTOR_H_ #include <memory> +#include <unordered_map> +#include <utility> #include <vector> #include "amber/result.h" @@ -50,14 +52,30 @@ class BufferDescriptor : public BufferBackedDescriptor { return dynamic_offsets_; } void AddDynamicOffset(uint32_t offset) { dynamic_offsets_.push_back(offset); } + std::vector<uint64_t> GetDescriptorOffsets() override { + return descriptor_offsets_; + } + void AddDescriptorOffset(uint64_t descriptor_offset) { + descriptor_offsets_.push_back(descriptor_offset); + } + std::vector<uint64_t> GetDescriptorRanges() override { + return descriptor_ranges_; + } + void AddDescriptorRange(uint64_t descriptor_range) { + descriptor_ranges_.push_back(descriptor_range); + } + BufferDescriptor* AsBufferDescriptor() override { return this; } protected: - std::vector<Resource*> GetResources() override; + std::vector<std::pair<Buffer*, Resource*>> GetResources() override; private: - std::vector<std::unique_ptr<TransferBuffer>> transfer_buffers_; + std::unordered_map<Buffer*, std::unique_ptr<TransferBuffer>> + transfer_buffers_; std::vector<uint32_t> dynamic_offsets_; + std::vector<VkDeviceSize> descriptor_offsets_; + std::vector<VkDeviceSize> descriptor_ranges_; }; } // namespace vulkan |