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

◆ compute_frame()

void MayaFlux::Nodes::GpuSync::ProceduralTextureNode::compute_frame ( )
overridevirtual

Compute frame - generate all pixels via generator function.

Implements MayaFlux::Nodes::GpuSync::GpuSync.

Definition at line 48 of file ProceduralTextureNode.cpp.

49{
50 if (!m_generator) {
52 "ProceduralTextureNode: no generator function set");
53 return;
54 }
55
56 auto buffer = get_pixel_buffer_mutable();
57
58 for (uint32_t y = 0; y < m_height; ++y) {
59 for (uint32_t x = 0; x < m_width; ++x) {
60 size_t idx = (static_cast<size_t>(y * m_width + x)) * 4;
61
62 glm::vec4 color = m_generator(x, y, m_width, m_height);
63
64 buffer[idx + 0] = color.r;
65 buffer[idx + 1] = color.g;
66 buffer[idx + 2] = color.b;
67 buffer[idx + 3] = color.a;
68 }
69 }
70
71 m_pixel_data_dirty = true;
72
74 "ProceduralTextureNode: generated {}x{} pixels",
76}
#define MF_RT_ERROR(comp, ctx,...)
#define MF_TRACE(comp, ctx,...)
bool m_pixel_data_dirty
Flag: pixel data changed since last GPU upload.
std::span< float > get_pixel_buffer_mutable()
Get mutable pixel buffer for direct write access.
@ NodeProcessing
Node graph processing (Nodes::NodeGraphManager)
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.

References MayaFlux::Nodes::GpuSync::TextureNode::get_pixel_buffer_mutable(), m_generator, MayaFlux::Nodes::GpuSync::TextureNode::m_height, MayaFlux::Nodes::GpuSync::TextureNode::m_pixel_data_dirty, MayaFlux::Nodes::GpuSync::TextureNode::m_width, MF_RT_ERROR, MF_TRACE, MayaFlux::Journal::NodeProcessing, and MayaFlux::Journal::Nodes.

+ Here is the call graph for this function: