MayaFlux 0.4.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 228 of file StagingUtils.cpp.

229{
230 auto buf = std::make_shared<VKBuffer>(
231 size,
232 VKBuffer::Usage::STAGING,
233 Kakshya::DataModality::IMAGE_COLOR);
234
235 auto buffer_service = Registry::BackendRegistry::instance()
236 .get_service<Registry::Service::BufferService>();
237
238 if (!buffer_service) {
239 error<std::runtime_error>(
240 Journal::Component::Buffers,
241 Journal::Context::BufferProcessing,
242 std::source_location::current(),
243 "create_image_staging_buffer requires a valid buffer service");
244 }
245
246 buffer_service->initialize_buffer(buf);
247
248 MF_DEBUG(Journal::Component::Buffers, Journal::Context::BufferProcessing,
249 "create_image_staging_buffer: allocated {} bytes", size);
250
251 return buf;
252}
#define MF_DEBUG(comp, ctx,...)
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 MayaFlux::Buffers::VKBuffer::STAGING.

Referenced by MayaFlux::Portal::Forma::make_value_row(), MayaFlux::Buffers::TextureProcessor::update_pixels_if_dirty(), and MayaFlux::Buffers::DataWriteProcessor::upload_texture().

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