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

◆ create_volume_grid_buffer()

std::shared_ptr< Buffers::VolumeGridBuffer > MayaFlux::IO::Detail::create_volume_grid_buffer ( const std::shared_ptr< Buffers::BufferManager > &  buffer_manager,
const Kakshya::VolumeData &  volume_data 
)

Definition at line 131 of file IOTransitions.cpp.

134{
135 std::vector<Buffers::VolumeGridBuffer::FieldDecl> decls;
136 decls.reserve(volume_data.fields.size());
137 for (const auto& field : volume_data.fields) {
138 decls.push_back({
139 .name = field.name,
140 .stride_bytes = field.is_vector() ? sizeof(glm::vec4) : sizeof(float),
141 .double_buffered = true,
142 .semantics = field.semantics,
143 });
144 }
145
146 auto buffer = buffer_manager->create_graphics_buffer<Buffers::VolumeGridBuffer>(
147 Buffers::ProcessingToken::GRAPHICS_BACKEND,
148 volume_data.lattice, decls);
149
150 if (!buffer)
151 return nullptr;
152
153 if (!IO::upload_volume(volume_data, buffer))
154 return nullptr;
155
156 return buffer;
157}
std::shared_ptr< NetworkGeometryBuffer > buffer
GPU-resident state for multi-field simulations evaluated over a fixed 3D topology: incompressible flu...
std::vector< VolumeField > fields

References buffer, MayaFlux::Kakshya::VolumeData::fields, MayaFlux::Buffers::GRAPHICS_BACKEND, MayaFlux::Kakshya::VolumeData::lattice, and MayaFlux::IO::upload_volume().

Referenced by MayaFlux::IO::IOManager::load_volume().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: