|
MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
|
| void MayaFlux::Kakshya::TextureContainer::from_image | ( | const std::shared_ptr< Core::VKImage > & | image, |
| const std::shared_ptr< Buffers::VKBuffer > & | staging, | ||
| uint32_t | layer = 0 |
||
| ) |
Download pixel data from a VKImage, reusing a caller-supplied persistent staging buffer.
Identical to from_image() but passes staging through to TextureLoom::download_data, eliminating the per-call Vulkan object allocation. Use Buffers::create_image_staging_buffer(byte_size()) to allocate the staging buffer once before the render loop.
| image | Source GPU texture. Must be initialised and match dimensions. |
| staging | Host-visible staging VKBuffer sized to at least byte_size(). |
| layer | Array layer index (default 0). |
Definition at line 241 of file TextureContainer.cpp.
References byte_size(), MayaFlux::Journal::ContainerProcessing, MayaFlux::Portal::Graphics::TextureLoom::download_data(), image, MayaFlux::Portal::Graphics::TextureLoom::instance(), MayaFlux::Journal::Kakshya, m_channels, m_cpu_stale, m_data, m_format, m_height, m_normalised_dirty, m_slot_locks, m_width, MayaFlux::Kakshya::make_empty_storage(), MF_ERROR, ptr, MayaFlux::Kakshya::READY, update_processing_state(), and MayaFlux::Kakshya::variant_bytes_mutable().
Here is the call graph for this function: