54 std::shared_ptr<Nodes::GpuSync::TextureNode>
node;
69 void bind_texture_node(
70 const std::string& name,
71 const std::shared_ptr<Nodes::GpuSync::TextureNode>& node,
72 const std::shared_ptr<Core::VKImage>& texture);
78 void unbind_texture_node(
const std::string& name);
85 return m_bindings.contains(name);
91 [[nodiscard]] std::vector<std::string> get_binding_names()
const;
98 return m_bindings.size();
106 [[nodiscard]] std::optional<TextureBinding> get_binding(
const std::string& name)
const;
115 void processing_function(
const std::shared_ptr<Buffer>& buffer)
override;
117 void on_attach(
const std::shared_ptr<Buffer>& buffer)
override;
118 void on_detach(
const std::shared_ptr<Buffer>& buffer)
override;
125 void initialize_gpu_resources();
size_t get_binding_count() const
Get number of active bindings.
std::shared_ptr< NodeTextureBuffer > m_attached_buffer
std::unordered_map< std::string, TextureBinding > m_bindings
bool has_binding(const std::string &name) const
Check if a binding exists.
~NodeTextureProcessor() override=default
Uploads TextureNode pixel data to GPU textures via TextureLoom.
std::shared_ptr< Nodes::GpuSync::TextureNode > node
std::shared_ptr< Core::VKImage > gpu_texture
Represents a TextureNode → GPU texture binding.