17 size_t layout_count) {
18 inputs_.reserve(inputs_.size() +
count);
19 layouts_.reserve(layouts_.size() + layout_count);
21 inputs_.emplace_back(*stage_inputs[
i]);
23 for (
size_t i = 0;
i < layout_count;
i++) {
24 layouts_.emplace_back(*stage_layout[
i]);
29 const std::vector<ShaderStageIOSlot>&
inputs,
30 const std::vector<ShaderStageBufferLayout>& layout) {
31 inputs_.insert(inputs_.end(),
inputs.begin(),
inputs.end());
32 layouts_.insert(layouts_.end(), layout.begin(), layout.end());
38 desc_set_layouts_.reserve(desc_set_layouts_.size() +
count);
40 uses_input_attachments_ |=
42 desc_set_layouts_.emplace_back(desc_set_layout[
i]);
49 for (
const auto& input : inputs_) {
52 for (
const auto& layout : layouts_) {
60 return inputs_ == other.inputs_ && layouts_ == other.layouts_;
72const std::vector<DescriptorSetLayout>&
74 return desc_set_layouts_;
78 return uses_input_attachments_;
Describes the format and layout of vertices expected by the pipeline. While it is possible to constru...
const std::vector< ShaderStageIOSlot > & GetStageInputs() const
void RegisterDescriptorSetLayouts(const std::array< DescriptorSetLayout, Size > &inputs)
bool IsEqual(const VertexDescriptor &other) const override
virtual ~VertexDescriptor()
const std::vector< DescriptorSetLayout > & GetDescriptorSetLayouts() const
const std::vector< ShaderStageBufferLayout > & GetStageLayouts() const
std::size_t GetHash() const override
void SetStageInputs(const std::array< const ShaderStageIOSlot *, Size > &inputs, const std::array< const ShaderStageBufferLayout *, LayoutSize > &layout)
bool UsesInputAttacments() const
constexpr std::size_t HashCombine()
constexpr void HashCombineSeed(std::size_t &seed, Type arg)
DescriptorType descriptor_type