MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ execute_shader()

void MayaFlux::Buffers::DescriptorBindingsProcessor::execute_shader ( const std::shared_ptr< VKBuffer > &  buffer)
overrideprotectedvirtual

Implements MayaFlux::Buffers::ShaderProcessor.

Definition at line 191 of file DescriptorBindingsProcessor.cpp.

192{
193 auto& bindings_list = buffer->get_pipeline_context().descriptor_buffer_bindings;
194
195 for (auto& [name, binding] : m_bindings) {
197
198 bool found = false;
199 for (auto& existing_binding : bindings_list) {
200 if (existing_binding.set == binding.set_index && existing_binding.binding == binding.binding_index) {
201 existing_binding.buffer_info.buffer = binding.gpu_buffer->get_buffer();
202 existing_binding.buffer_info.offset = binding.buffer_offset;
203 existing_binding.buffer_info.range = binding.buffer_size;
204 found = true;
205 break;
206 }
207 }
208
209 if (!found) {
210 bindings_list.push_back({ .set = binding.set_index,
211 .binding = binding.binding_index,
212 .type = binding.type,
213 .buffer_info = vk::DescriptorBufferInfo {
214 binding.gpu_buffer->get_buffer(),
215 binding.buffer_offset,
216 binding.buffer_size } });
217 }
218 }
219}
void update_descriptor_from_node(DescriptorBinding &binding)
Update descriptor from node context.
std::unordered_map< std::string, DescriptorBinding > m_bindings

References m_bindings, and update_descriptor_from_node().

+ Here is the call graph for this function: