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

◆ flush_push_constant()

void MayaFlux::Buffers::FormaBindingsProcessor::flush_push_constant ( float  value,
const PushConstantTarget pc,
const std::shared_ptr< VKBuffer > &  buffer 
)
private

Definition at line 127 of file FormaBindingsProcessor.cpp.

131{
132 auto& entries = buffer->get_pipeline_context().push_constant_bindings;
133
134 auto it = std::ranges::find_if(entries, [&](const auto& e) {
135 return e.offset == pc.offset;
136 });
137
138 if (it == entries.end()) {
139 entries.push_back(Portal::Graphics::PushConstantBindingInfo {
140 .offset = pc.offset,
141 .data = std::vector<uint8_t>(pc.size) });
142 it = std::prev(entries.end());
143 }
144
145 if (pc.size == sizeof(float)) {
146 std::memcpy(it->data.data(), &value, sizeof(float));
147 } else if (pc.size == sizeof(double)) {
148 auto promoted = static_cast<double>(value);
149 std::memcpy(it->data.data(), &promoted, sizeof(double));
150 }
151
153 "FormaBindingsProcessor: PC write offset={} value={}", pc.offset, value);
154}
#define MF_RT_DEBUG(comp, ctx,...)
float value
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MF_RT_DEBUG, MayaFlux::Buffers::FormaBindingsProcessor::PushConstantTarget::offset, MayaFlux::Portal::Graphics::PushConstantBindingInfo::offset, MayaFlux::Buffers::FormaBindingsProcessor::PushConstantTarget::size, and value.

Referenced by execute_shader().

+ Here is the caller graph for this function: