MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
NetworkTextureBuffer.cpp
Go to the documentation of this file.
2
5
6namespace MayaFlux::Buffers {
7
9 std::shared_ptr<Nodes::Network::NodeNetwork> network,
10 std::shared_ptr<Core::VKImage> texture,
11 const std::string& binding_name,
12 float over_allocate_factor)
13 : NetworkGeometryBuffer(std::move(network), binding_name, over_allocate_factor)
14{
15 m_uv_processor = std::make_shared<UVFieldProcessor>();
16
17 if (texture)
18 m_uv_processor->set_texture(std::move(texture));
19}
20
22{
24
25 auto self = std::dynamic_pointer_cast<NetworkTextureBuffer>(shared_from_this());
26 get_processing_chain()->add_postprocessor(m_uv_processor, self);
27
29 "NetworkTextureBuffer: UV field postprocessor added");
30}
31
33 std::shared_ptr<Core::VKImage> image,
35{
36 m_uv_processor->set_texture(std::move(image), config);
37}
38
39} // namespace MayaFlux::Buffers
#define MF_DEBUG(comp, ctx,...)
IO::ImageData image
void setup_processors(ProcessingToken token) override
Initialize the buffer and its processors.
Specialized buffer for geometry from NodeNetwork instances.
std::shared_ptr< UVFieldProcessor > m_uv_processor
NetworkTextureBuffer(std::shared_ptr< Nodes::Network::NodeNetwork > network, std::shared_ptr< Core::VKImage > texture=nullptr, const std::string &binding_name="network_texture_geometry", float over_allocate_factor=2.0F)
Create buffer from network with optional texture source.
void setup_processors(ProcessingToken token) override
Wire processors into the chain.
void set_texture(std::shared_ptr< Core::VKImage > image, const Portal::Graphics::SamplerConfig &config={})
Replace the texture source at runtime.
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
Definition VKBuffer.cpp:314
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.