3 #include "ObjectHandle.hpp"
14 struct DescriptorLayoutBuilder;
37 template<Binding::Type T>
40 bool hasVariableBinding()
const {
return variable_binding.has_value(); }
41 const auto& getVariableBinding()
const {
return *variable_binding; }
43 const auto& getBindings()
const {
return bindings; }
50 std::optional<Binding> variable_binding;
51 std::vector<Binding> bindings;
61 std::shared_ptr<Descriptor>
62 allocateDescriptor(std::shared_ptr<Layout> layout);
64 static std::shared_ptr<Pool> make()
66 return std::shared_ptr<Pool>(
new Pool());
79 template<Layout::Binding::Type T>
82 auto getLayoutHandle()
const {
return layout; }
93 std::shared_ptr<Layout> layout;
94 std::shared_ptr<Pool> pool;
100 using Type = std::vector<std::shared_ptr<Image>>;
106 using Type = std::vector<std::shared_ptr<Backend::Sampler>>;
112 MN_SYMBOL
DescriptorLayoutBuilder& addVariableBinding(Descriptor::Layout::Binding::Type binding, uint32_t max_size);
117 std::optional<Descriptor::Layout::Binding> variable_binding;
118 std::vector<Descriptor::Layout::Binding> bindings;
Definition: Descriptor.hpp:110
Definition: Descriptor.hpp:38
Definition: Descriptor.hpp:24
Definition: Descriptor.hpp:22
Definition: Descriptor.hpp:55
Definition: Descriptor.hpp:20
Definition: ObjectHandle.hpp:9