aboutsummaryrefslogtreecommitdiff
path: root/src/vulkan/buffer_descriptor.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vulkan/buffer_descriptor.h')
-rw-r--r--src/vulkan/buffer_descriptor.h22
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