118 {
119 if (!has_target(config.render)) {
120 return nullptr;
121 }
122
123 const unsigned int source_count = static_cast<unsigned int>(config.mesh.has_value())
124 + static_cast<unsigned int>(static_cast<bool>(config.expression))
125 + static_cast<unsigned int>(config.writer != nullptr);
126 if (source_count != 1) {
128 "mint: Object requires exactly one mesh, expression or writer source");
129 return nullptr;
130 }
131
132 auto writer = resolve_writer(
133 config.mesh, config.expression, config.writer, "Object");
134 if (!writer) {
135 return nullptr;
136 }
137
138 auto buffer = std::make_shared<Buffers::MeshBuffer>(writer);
139
141 bind_mesh_textures(
buffer, render, config.textures);
143 buffer->setup_rendering(render);
145 }
#define MF_ERROR(comp, ctx,...)
std::shared_ptr< NetworkGeometryBuffer > buffer
@ 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.
Buffers::VKBuffer::RenderConfig RenderConfig
Render target and pipeline overrides.