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

◆ save_volume() [2/2]

MAYAFLUX_API bool MayaFlux::save_volume ( const std::shared_ptr< Buffers::VolumeGridBuffer > &  volume,
const std::string &  suggested_name = "output.vdb" 
)

Present a native save-file dialog filtered to volume formats and save volume to the chosen path via IOManager::save_volume().

Blocks until the user confirms or cancels. The download and encode task are queued asynchronously; this function returns once the path is chosen and the task is enqueued. Returns false on cancellation, backend error, or if Portal::System is not initialized.

Parameters
volumeSource VolumeGridBuffer to download and encode.
suggested_nameFilename pre-filled in the dialog name field.

Definition at line 346 of file Depot.cpp.

349{
350 if (!require_portal("save_volume"))
351 return false;
352
353 auto iom = get_io_manager();
354 if (!iom) {
355 MF_ERROR(Journal::Component::API, Journal::Context::Runtime,
356 "save_volume: IOManager unavailable");
357 return false;
358 }
359
360 return Portal::System::Dialog::save_file<bool>(
361 [&iom, &volume](const fs::path& p) {
362 return iom->save_volume(volume, p.string(), IO::VolumeWriteOptions {});
363 },
364 [](Core::SystemDialogError) { },
365 suggested_name,
366 k_volume_filters);
367}
#define MF_ERROR(comp, ctx,...)
std::shared_ptr< IO::IOManager > get_io_manager()
Retrieves the global IOManager instance for file loading and buffer management.
Definition Depot.cpp:418

References MayaFlux::Journal::API, get_io_manager(), MF_ERROR, and MayaFlux::Journal::Runtime.

+ Here is the call graph for this function: