54 std::shared_ptr<Nodes::GpuSync::TextureNode> node,
55 std::string binding_name =
"texture");
87 return m_texture_node;
96 return m_texture_processor;
104 return m_binding_name;
112 return m_texture_node
113 ? std::make_pair(m_texture_node->get_width(), m_texture_node->get_height())
114 : std::make_pair(0U, 0U);
125 if (m_texture_node) {
126 m_texture_node->compute_frame();
135 return m_render_processor;
138 void generate_fullscreen_quad();
140 size_t calculate_quad_vertex_size();
155 static size_t calculate_buffer_size(
156 const std::shared_ptr<Nodes::GpuSync::TextureNode>& node);
std::shared_ptr< Nodes::GpuSync::TextureNode > m_texture_node
std::shared_ptr< Core::VKImage > get_gpu_texture() const
Get the GPU-resident texture (VKImage)
const std::string & get_binding_name() const
Get the logical binding name.
std::shared_ptr< Nodes::GpuSync::TextureNode > get_texture_node() const
Get the texture node driving this buffer.
std::shared_ptr< NodeTextureProcessor > get_texture_processor() const
Get the processor managing uploads.
std::shared_ptr< Core::VKImage > m_gpu_texture
std::pair< uint32_t, uint32_t > get_dimensions() const
Get texture dimensions from node.
std::shared_ptr< RenderProcessor > m_render_processor
void update_texture()
Trigger pixel computation on the node.
std::shared_ptr< RenderProcessor > get_render_processor() const
Get the render processor (if rendering is setup)
std::shared_ptr< NodeTextureProcessor > m_texture_processor
std::vector< uint8_t > m_vertex_bytes
std::string m_binding_name
~NodeTextureBuffer() override=default
Staging buffer for uploading TextureNode pixel data to GPU textures.
Uploads TextureNode pixel data to GPU textures via TextureLoom.
Vulkan-backed buffer wrapper used in processing chains.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
Unified rendering configuration for graphics buffers.