46{
47 m_chain = std::make_shared<DataProcessingChain>();
49
50 for (uint32_t i = 0; i < layers.value; ++i) {
52 }
53
55
57
60 flag.
store(true,
std::memory_order_relaxed);
61
64 flag.
store(false,
std::memory_order_relaxed);
65
68
70
72 "TextureContainer created: {}x{} layers={} fmt={} bpp={}",
74}
#define MF_INFO(comp, ctx,...)
std::vector< std::atomic< bool > > m_normalised_dirty
Memory::SeqlockArray m_slot_locks
std::vector< std::atomic< bool > > m_cpu_stale
Per layer: the GPU image in m_layer_image_cache holds the content, m_data does not.
std::atomic< bool > m_ready_for_processing
std::shared_ptr< DataProcessingChain > m_chain
std::vector< Portal::Graphics::ImageCacheEntry > m_layer_image_cache
std::vector< DataVariant > m_data
std::vector< std::vector< float > > m_normalised_cache
void resize(size_t n)
Replace the slot array with n default-constructed Seqlock instances.
static size_t get_bytes_per_pixel(ImageFormat format)
Get bytes per pixel for a format.
static uint32_t get_channel_count(ImageFormat format)
Get the number of color channels for a given format.
@ ContainerProcessing
Container operations (Kakshya - file/stream/region processing)
@ Kakshya
Containers[Signalsource, Stream, File], Regions, DataProcessors.
DataVariant make_empty_storage(ImageFormat format, size_t element_count)
Allocate a zeroed DataVariant of the alternative backing a format.
std::shared_ptr< T > store(std::shared_ptr< T > obj)
Transfer ownership of an existing object to the persistent store for process lifetime.