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

◆ create_image_staging_buffer()

MAYAFLUX_API std::shared_ptr< VKBuffer > MayaFlux::Buffers::create_image_staging_buffer ( size_t  size)

Allocate a persistent host-visible staging buffer sized for repeated streaming uploads to an image of size bytes.

Call once; pass the result to upload_image_streaming() every frame.

Parameters
sizeByte footprint of the target image (use VKImage::get_size_bytes()).
Returns
Initialised host-visible VKBuffer, or nullptr on failure.

Definition at line 511 of file StagingUtils.cpp.

512{
513 auto buf = std::make_shared<VKBuffer>(
514 size,
515 VKBuffer::Usage::STAGING,
516 Kakshya::DataModality::IMAGE_COLOR);
517
518 auto buffer_service = Registry::BackendRegistry::instance()
519 .get_service<Registry::Service::BufferService>();
520
521 if (!buffer_service) {
522 error<std::runtime_error>(
523 Journal::Component::Buffers,
524 Journal::Context::BufferProcessing,
525 std::source_location::current(),
526 "create_image_staging_buffer requires a valid buffer service");
527 }
528
529 buffer_service->initialize_buffer(buf);
530
531 MF_DEBUG(Journal::Component::Buffers, Journal::Context::BufferProcessing,
532 "create_image_staging_buffer: allocated {} bytes", size);
533
534 return buf;
535}
#define MF_DEBUG(comp, ctx,...)
bool size
Backend buffer management service interface.

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, MayaFlux::Registry::BackendRegistry::get_service(), MayaFlux::Kakshya::IMAGE_COLOR, MayaFlux::Registry::BackendRegistry::instance(), MF_DEBUG, and size.

Referenced by MayaFlux::Buffers::TextureArrayBuffer::clear_layer(), MayaFlux::Buffers::TextureArrayBuffer::enter_layer_mode(), MayaFlux::Buffers::ImageCVProcessor< T >::on_attach(), MayaFlux::Kakshya::VisionProcessor::on_attach(), MayaFlux::Buffers::DataReadProcessor::read_texture_pixels(), MayaFlux::Kakshya::VisionProcessor::set_sequence(), MayaFlux::Buffers::TextureArrayBuffer::submit_layer(), MayaFlux::Buffers::TextureArrayBuffer::submit_layer(), MayaFlux::Buffers::TextureProcessor::update_pixels_if_dirty(), MayaFlux::Buffers::DataWriteProcessor::upload_texture(), MayaFlux::IO::VideoFileWriter::worker_loop(), and MayaFlux::Buffers::DataWriteProcessor::write_texture_pixels().

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