49 std::string vertex_shader =
"texture.vert.spv";
50 std::string fragment_shader =
"texture.frag.spv";
51 std::string default_texture_binding =
"texSampler";
66 std::shared_ptr<Nodes::GpuSync::TextureNode> node,
67 std::string binding_name =
"texture");
99 return m_texture_node;
108 return m_texture_processor;
116 return m_binding_name;
124 return m_texture_node
125 ? std::make_pair(m_texture_node->get_width(), m_texture_node->get_height())
126 : std::make_pair(0U, 0U);
137 if (m_texture_node) {
138 m_texture_node->compute_frame();
147 return m_render_processor;
150 void generate_fullscreen_quad();
152 size_t calculate_quad_vertex_size();
167 static size_t calculate_buffer_size(
168 const std::shared_ptr<Nodes::GpuSync::TextureNode>& node);
static MayaFlux::Nodes::ProcessingToken token
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.
PrimitiveTopology
Vertex assembly primitive topology.
std::shared_ptr< Core::Window > target_window
std::vector< std::pair< std::string, std::shared_ptr< Core::VKImage > > > additional_textures