MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ NodeTextureBuffer()

MayaFlux::Buffers::NodeTextureBuffer::NodeTextureBuffer ( std::shared_ptr< Nodes::GpuSync::TextureNode node,
std::string  binding_name = "texture" 
)
explicit

Create texture staging buffer from generative node.

Parameters
nodeTextureNode that generates pixels each frame
binding_nameLogical name for this texture binding (default: "texture")

Buffer size is automatically calculated from texture dimensions: width * height * 4 channels * sizeof(float) = RGBA32F format

Definition at line 12 of file NodeTextureBuffer.cpp.

15 : VKBuffer(
19 , m_texture_node(std::move(node))
20 , m_binding_name(std::move(binding_name))
21{
22 RenderConfig default_config;
23 default_config.vertex_shader = "texture.vert.spv";
24 default_config.fragment_shader = "texture.frag.spv";
25 default_config.default_texture_binding = "texSampler";
27 set_default_render_config(default_config);
28
29 if (!m_texture_node) {
30 error<std::invalid_argument>(
33 std::source_location::current(),
34 "Cannot create NodeTextureBuffer with null TextureNode");
35 }
36
38 "Created NodeTextureBuffer '{}' for {}x{} texture ({} bytes)",
40 m_texture_node->get_width(),
41 m_texture_node->get_height(),
43}
#define MF_INFO(comp, ctx,...)
std::shared_ptr< Nodes::GpuSync::TextureNode > m_texture_node
Portal::Graphics::RenderConfig RenderConfig
Definition VKBuffer.hpp:54
vk::DeviceSize get_size_bytes() const
Definition VKBuffer.hpp:237
void set_default_render_config(const RenderConfig &config)
Called by derived classes to set their context-specific defaults.
Definition VKBuffer.hpp:502
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::Buffers, MayaFlux::Portal::Graphics::RenderConfig::default_texture_binding, MayaFlux::Portal::Graphics::RenderConfig::fragment_shader, MayaFlux::Buffers::VKBuffer::get_size_bytes(), MayaFlux::Journal::Init, m_binding_name, m_texture_node, MF_INFO, MayaFlux::Buffers::VKBuffer::set_default_render_config(), MayaFlux::Portal::Graphics::RenderConfig::topology, MayaFlux::Portal::Graphics::TRIANGLE_STRIP, and MayaFlux::Portal::Graphics::RenderConfig::vertex_shader.

+ Here is the call graph for this function: