diff --git a/include/vkcv/DescriptorConfig.hpp b/include/vkcv/DescriptorConfig.hpp index 12d57ea3e871b6ccdda0db6e436d3d7b61dd6d96..905ff6791e2cef5fdb972e900c16b7bf7999ed37 100644 --- a/include/vkcv/DescriptorConfig.hpp +++ b/include/vkcv/DescriptorConfig.hpp @@ -58,14 +58,6 @@ namespace vkcv */ struct DescriptorBinding { - DescriptorBinding( - uint32_t bindingID, - DescriptorType descriptorType, - uint32_t descriptorCount, - ShaderStage shaderStages, - bool variableCount = false - ) noexcept; - uint32_t bindingID; DescriptorType descriptorType; uint32_t descriptorCount; diff --git a/projects/bindless_textures/src/main.cpp b/projects/bindless_textures/src/main.cpp index b340cba82a1a53c9973cfc8c96d01189f4ffe819..789557bf8cac450d0f000ad9a1ce4ef941e02ab1 100644 --- a/projects/bindless_textures/src/main.cpp +++ b/projects/bindless_textures/src/main.cpp @@ -154,8 +154,12 @@ int main(int argc, const char** argv) { const vkcv::VertexLayout firstMeshLayout (bindings); - std::unordered_map<uint32_t, vkcv::DescriptorBinding> descriptorBindings = firstMeshProgram.getReflectedDescriptors().at(0); - vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(descriptorBindings); + const std::unordered_map<uint32_t, vkcv::DescriptorBinding> &descriptorBindings = firstMeshProgram.getReflectedDescriptors().at(0); + + std::unordered_map<uint32_t, vkcv::DescriptorBinding> adjustedBindings = descriptorBindings; + adjustedBindings[1].descriptorCount = 5; + + vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(adjustedBindings); vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorSetLayout); const vkcv::PipelineConfig firstMeshPipelineConfig { diff --git a/src/vkcv/DescriptorConfig.cpp b/src/vkcv/DescriptorConfig.cpp index 78a08ed1f6b5ca04c6c9b4896a359f98264cc9cf..15bb05fd9cb3e5430b2a9909a682c468dfcde342 100644 --- a/src/vkcv/DescriptorConfig.cpp +++ b/src/vkcv/DescriptorConfig.cpp @@ -2,18 +2,6 @@ namespace vkcv { - DescriptorBinding::DescriptorBinding( - uint32_t bindingID, - DescriptorType descriptorType, - uint32_t descriptorCount, - ShaderStage shaderStages, - bool variableCount) noexcept: - bindingID(bindingID), - descriptorType(descriptorType), - descriptorCount(descriptorCount), - shaderStages(shaderStages), - variableCount(variableCount){} - bool DescriptorBinding::operator==(const DescriptorBinding &other) const { return (this->bindingID == other.bindingID) && diff --git a/src/vkcv/ShaderProgram.cpp b/src/vkcv/ShaderProgram.cpp index 3c019a2b0381f679adf25b73959a2347f3d7a6d3..f99bd3c609005957469c1f2856b489f7f3e2fd47 100644 --- a/src/vkcv/ShaderProgram.cpp +++ b/src/vkcv/ShaderProgram.cpp @@ -161,12 +161,11 @@ namespace vkcv { variableCount = true; } - auto binding = DescriptorBinding( - bindingID, - DescriptorType::UNIFORM_BUFFER, - descriptorCount, - shaderStage, - variableCount); + DescriptorBinding binding{bindingID, + DescriptorType::UNIFORM_BUFFER, + descriptorCount, + shaderStage, + variableCount}; auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); if(!insertionResult.second) @@ -197,12 +196,12 @@ namespace vkcv { variableCount = true; } - auto binding = DescriptorBinding( - bindingID, - DescriptorType::STORAGE_BUFFER, - descriptorCount, - shaderStage, - variableCount); + DescriptorBinding binding{bindingID, + DescriptorType::STORAGE_BUFFER, + descriptorCount, + shaderStage, + variableCount}; + auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); if(!insertionResult.second) @@ -232,12 +231,11 @@ namespace vkcv { variableCount = true; } - auto binding = DescriptorBinding( - bindingID, - DescriptorType::SAMPLER, - descriptorCount, - shaderStage, - variableCount); + DescriptorBinding binding {bindingID, + DescriptorType::SAMPLER, + descriptorCount, + shaderStage, + variableCount}; auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); if(!insertionResult.second) @@ -267,12 +265,11 @@ namespace vkcv { variableCount = true; } - auto binding = DescriptorBinding( - bindingID, - DescriptorType::IMAGE_SAMPLED, - descriptorCount, - shaderStage, - variableCount); + DescriptorBinding binding {bindingID, + DescriptorType::IMAGE_SAMPLED, + descriptorCount, + shaderStage, + variableCount}; auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); if(!insertionResult.second) @@ -302,12 +299,11 @@ namespace vkcv { variableCount = true; } - auto binding = DescriptorBinding( - bindingID, - DescriptorType::IMAGE_STORAGE, - descriptorCount, - shaderStage, - variableCount); + DescriptorBinding binding {bindingID, + DescriptorType::IMAGE_STORAGE, + descriptorCount, + shaderStage, + variableCount}; auto insertionResult = m_DescriptorSets[setID].insert(std::make_pair(bindingID, binding)); if(!insertionResult.second)