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

◆ build() [2/5]

std::shared_ptr< Buffers::InstanceNetworkBuffer > MayaFlux::Mint::Impl::build ( const StructureConfig::Instances &  config) const
inline

Definition at line 214 of file Mint.cpp.

216 {
217 if (!has_target(config.render)) {
218 return nullptr;
219 }
220
221 auto network = config.network
222 ? config.network
223 : std::make_shared<Nodes::Network::InstanceNetwork>();
224
225 if (!config.transforms.empty()) {
226 auto writer = resolve_writer(
227 config.prototype_mesh,
228 config.prototype_expression,
229 config.prototype_writer,
230 "Instances prototype");
231 if (!writer) {
232 return nullptr;
233 }
234
235 for (size_t index = 0; index < config.transforms.size(); ++index) {
236 const uint32_t slot_index = network->add_slot(
237 "instance_" + std::to_string(index), writer);
238 network->get_slot(slot_index).transform = config.transforms[index];
239 }
240 }
241
242 if (network->slot_count() == 0) {
244 "mint: Instances requires an existing populated network or transforms");
245 return nullptr;
246 }
247
248 register_network_if_needed(network);
249 auto buffer = std::make_shared<Buffers::InstanceNetworkBuffer>(
250 network, config.over_allocate_factor);
251 StructureConfig::RenderConfig render = config.render;
252 add_all_textures(render, config.textures);
254 buffer->setup_rendering(render);
255 return buffer;
256 }
#define MF_ERROR(comp, ctx,...)
Core::GlobalNetworkConfig network
Definition Config.cpp:43
std::shared_ptr< NetworkGeometryBuffer > buffer
uint32_t index
Definition VKDevice.cpp:122
@ 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.
Definition Graph.cpp:250
Buffers::VKBuffer::RenderConfig RenderConfig
Render target and pipeline overrides.

References MayaFlux::Journal::API, buffer, index, MayaFlux::Journal::Init, MF_ERROR, network, MayaFlux::StructureConfig::Instances::network, MayaFlux::StructureConfig::Instances::over_allocate_factor, MayaFlux::StructureConfig::Instances::prototype_expression, MayaFlux::StructureConfig::Instances::prototype_mesh, MayaFlux::StructureConfig::Instances::prototype_writer, MayaFlux::register_graphics_buffer(), MayaFlux::StructureConfig::Instances::render, MayaFlux::StructureConfig::Instances::textures, and MayaFlux::StructureConfig::Instances::transforms.

+ Here is the call graph for this function: