Initialize the buffer, create GPU texture, and setup processors.
46{
47 auto self = std::dynamic_pointer_cast<NodeTextureBuffer>(shared_from_this());
48
50
56 nullptr,
57 1);
58
60 error<std::runtime_error>(
63 std::source_location::current(),
64 "Failed to create GPU texture for NodeTextureBuffer '{}'",
66 }
67
70
75
77 if (!chain) {
78 chain = std::make_shared<BufferProcessingChain>();
80 }
81 chain->set_preferred_token(token);
82
84
86 "NodeTextureBuffer '{}' ready: staging={} bytes, GPU texture={}x{}",
91}
#define MF_INFO(comp, ctx,...)
std::shared_ptr< Nodes::GpuSync::TextureNode > m_texture_node
std::shared_ptr< Core::VKImage > m_gpu_texture
std::shared_ptr< NodeTextureProcessor > m_texture_processor
void generate_fullscreen_quad()
std::string m_binding_name
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
void set_default_processor(const std::shared_ptr< BufferProcessor > &processor) override
Set the buffer's default processor.
vk::DeviceSize get_size_bytes() const
void set_processing_chain(const std::shared_ptr< BufferProcessingChain > &chain, bool force=false) override
Replace the buffer's processing chain.
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.
Tendency< A, C > chain(const Tendency< A, B > &first, const Tendency< B, C > &second)
Sequential composition: evaluate first, feed result into second.
MAYAFLUX_API TextureLoom & get_texture_manager()
Get the global texture manager instance.
@ RGBA32F
Four channel 32-bit float.