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

◆ seed_state()

void MayaFlux::Buffers::RelaxationGridBuffer::seed_state ( const void *  data,
size_t  size 
)

Write initial state directly into the current front generation.

Parameters
dataPointer to cell_count * cell_stride_bytes of state data.
sizeByte count; must equal get_state_bytes().

Direct host-visible memcpy into back_buffers[front_index()], mirroring VKBuffer::set_data's own host-visible write path. Valid only before the buffer's processing chain has run at least once, or between generations where overwriting the current front state is intended (e.g. a runtime reset). Does not touch the back generation or trigger a swap.

Definition at line 121 of file RelaxationGridBuffer.cpp.

122{
123 if (size != get_state_bytes()) {
125 "seed_state size {} does not match expected {}", size, get_state_bytes());
126 return;
127 }
128
129 auto& resources = get_buffer_resources();
130 auto& front = resources.back_buffers[front_index()];
131
132 if (!front.mapped_ptr) {
134 "seed_state: front generation buffer has no mapped pointer");
135 return;
136 }
137
138 std::memcpy(front.mapped_ptr, data, size);
139}
#define MF_ERROR(comp, ctx,...)
size_t get_state_bytes() const
Total byte size of one generation's state buffer.
uint32_t front_index() const
Index into m_resources.back_buffers currently holding the most recently completed generation's state.
const VKBufferResources & get_buffer_resources() const
Get all buffer resources at once (read-only)
Definition VKBuffer.hpp:341
@ BufferManagement
Buffer Management (Buffers::BufferManager, creating buffers)
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::BufferManagement, MayaFlux::Journal::Buffers, front_index(), MayaFlux::Buffers::VKBuffer::get_buffer_resources(), get_state_bytes(), and MF_ERROR.

+ Here is the call graph for this function: