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

◆ update_pixels_if_dirty()

void MayaFlux::Buffers::TextureProcessor::update_pixels_if_dirty ( )
private

Re-upload pixels to GPU if they changed.

Definition at line 178 of file TextureProcessor.cpp.

179{
180 if (!m_texture_buffer || !m_texture_buffer->m_texture_dirty) {
181 return;
182 }
183
184 if (!m_texture_buffer->has_texture()) {
185 m_texture_buffer->m_gpu_texture = create_gpu_texture();
186 }
187
188 const auto& pixel_data = m_texture_buffer->m_pixel_data;
189 if (pixel_data.empty()) {
190 return;
191 }
192
194
197 m_texture_buffer->get_texture()->get_size_bytes());
198 }
199
201 loom.upload_data(
202 m_texture_buffer->get_texture(),
203 pixel_data.data(),
204 pixel_data.size(),
206 } else {
207 loom.upload_data(
208 m_texture_buffer->get_texture(),
209 pixel_data.data(),
210 pixel_data.size());
211 }
212
213 m_texture_buffer->m_texture_dirty = false;
214
216 "TextureProcessor: pixel data updated ({} bytes)", pixel_data.size());
217}
#define MF_DEBUG(comp, ctx,...)
std::shared_ptr< Core::VKImage > create_gpu_texture()
Create VKImage for texture storage.
std::shared_ptr< TextureBuffer > m_texture_buffer
std::shared_ptr< Buffers::VKBuffer > m_stream_staging
Persistent host-visible staging buffer for streaming pixel uploads.
std::shared_ptr< VKBuffer > create_image_staging_buffer(size_t size)
Allocate a persistent host-visible staging buffer sized for repeated streaming uploads to an image of...
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
@ Buffers
Buffers, Managers, processors and processing chains.
MAYAFLUX_API TextureLoom & get_texture_manager()
Get the global texture manager instance.

References MayaFlux::Journal::BufferProcessing, MayaFlux::Journal::Buffers, create_gpu_texture(), MayaFlux::Buffers::create_image_staging_buffer(), MayaFlux::Portal::Graphics::get_texture_manager(), m_stream_staging, m_streaming_mode, m_texture_buffer, and MF_DEBUG.

Referenced by processing_function().

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