171 {
172 if (!has_target(render)) {
173 return nullptr;
174 }
175
176 auto grid = std::make_shared<Buffers::RelaxationGridBuffer>(config);
177
178 if (!seed.empty()) {
179 if (seed_stride != grid->get_cell_stride_bytes()) {
181 "evolve: seed cell is {} bytes but the grid's cell format is {} bytes",
182 seed_stride, grid->get_cell_stride_bytes());
183 return nullptr;
184 }
185 grid->seed_state(seed.data(), seed.size());
186 }
187
189 grid->setup_rendering(render);
190 return grid;
191 }
#define MF_ERROR(comp, ctx,...)
@ Init
Engine/subsystem initialization.
@ API
MayaFlux/API Wrapper and convenience functions.
void register_graphics_buffer(const std::shared_ptr< Buffers::VKBuffer > &buffer, Buffers::ProcessingToken token)
Registers a VKBuffer with the default engine's buffer manager.