|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
Base class for texture-generating nodes. More...
#include <TextureNode.hpp>
Inheritance diagram for MayaFlux::Nodes::GpuSync::TextureNode:
Collaboration diagram for MayaFlux::Nodes::GpuSync::TextureNode:Public Member Functions | |
| TextureNode (uint32_t width, uint32_t height) | |
| std::span< const float > | get_pixel_buffer () const |
| Get pixel buffer. | |
| uint32_t | get_width () const |
| uint32_t | get_height () const |
| size_t | get_pixel_count () const |
| Get total number of pixels. | |
| size_t | get_buffer_size () const |
| Get buffer size in bytes. | |
| bool | needs_gpu_update () const override |
| Check if pixel data changed since last GPU sync. | |
| void | clear_gpu_update_flag () override |
| Clear the dirty flag after GPU upload completes. | |
Public Member Functions inherited from MayaFlux::Nodes::GpuSync::GpuSync | |
| ~GpuSync () override=default | |
| virtual void | compute_frame ()=0 |
| Compute GPU data for this frame. | |
| double | process_sample (double) override |
| Single sample processing hook. | |
| std::vector< double > | process_batch (unsigned int num_samples) override |
| Batch processing for GPU nodes. | |
Public Member Functions inherited from MayaFlux::Nodes::Node | |
| virtual | ~Node ()=default |
| Virtual destructor for proper cleanup of derived classes. | |
| virtual void | on_tick (const NodeHook &callback) |
| Registers a callback to be called on each tick. | |
| virtual void | on_tick_if (const NodeHook &callback, const NodeCondition &condition) |
| Registers a conditional callback. | |
| virtual bool | remove_hook (const NodeHook &callback) |
| Removes a previously registered callback. | |
| virtual bool | remove_conditional_hook (const NodeCondition &callback) |
| Removes a previously registered conditional callback. | |
| virtual void | remove_all_hooks () |
| Removes all registered callbacks. | |
| virtual void | reset_processed_state () |
| Resets the processed state of the node and any attached input nodes. | |
| virtual double | get_last_output () |
| Retrieves the most recent output value produced by the node. | |
| void | register_channel_usage (uint32_t channel_id) |
| Mark the specificed channel as a processor/user. | |
| void | unregister_channel_usage (uint32_t channel_id) |
| Removes the specified channel from the usage tracking. | |
| bool | is_used_by_channel (uint32_t channel_id) const |
| Checks if the node is currently used by a specific channel. | |
| void | request_reset_from_channel (uint32_t channel_id) |
| Requests a reset of the processed state from a specific channel. | |
| const std::atomic< uint32_t > & | get_channel_mask () const |
| Retrieves the current bitmask of active channels using this node. | |
| NodeContext & | get_last_context () |
| Retrieves the last created context object. | |
| void | set_gpu_compatible (bool compatible) |
| Sets whether the node is compatible with GPU processing. | |
| bool | is_gpu_compatible () const |
| Checks if the node supports GPU processing. | |
| std::span< const float > | get_gpu_data_buffer () const |
| Provides access to the GPU data buffer. | |
| virtual void | save_state ()=0 |
| Saves the node's current state for later restoration Recursively cascades through all connected modulator nodes Protected - only NodeSourceProcessor and NodeBuffer can call. | |
| virtual void | restore_state ()=0 |
| Restores the node's state from the last save Recursively cascades through all connected modulator nodes Protected - only NodeSourceProcessor and NodeBuffer can call. | |
Protected Member Functions | |
| void | set_pixel (uint32_t x, uint32_t y, float r, float g, float b, float a=1.0F) |
| Set pixel color at (x, y) | |
| std::array< float, 4 > | get_pixel (uint32_t x, uint32_t y) const |
| Get pixel color at (x, y) | |
| void | fill (float r, float g, float b, float a=1.0F) |
| Fill entire texture with solid color. | |
| void | clear () |
| Clear texture to black. | |
Protected Member Functions inherited from MayaFlux::Nodes::GpuSync::GpuSync | |
| std::unique_ptr< NodeContext > | create_context (double) override |
| GPU sync nodes don't produce scalar contexts. | |
| void | notify_tick (double) override |
| GPU sync nodes don't emit tick callbacks. | |
Protected Member Functions inherited from MayaFlux::Nodes::Node | |
| virtual void | reset_processed_state_internal () |
| Resets the processed state of the node directly. | |
Protected Attributes | |
| uint32_t | m_width |
| uint32_t | m_height |
| std::vector< float > | m_pixel_buffer |
| bool | m_pixel_data_dirty { true } |
| Flag: pixel data changed since last GPU upload. | |
Protected Attributes inherited from MayaFlux::Nodes::Node | |
| double | m_last_output { 0 } |
| The most recent sample value generated by this oscillator. | |
| bool | m_gpu_compatible {} |
| Flag indicating if the node supports GPU processing This flag is set by derived classes to indicate whether the node can be processed on the GPU. | |
| std::unique_ptr< NodeContext > | m_last_context |
| The last context object created for callbacks. | |
| std::vector< float > | m_gpu_data_buffer |
| GPU data buffer for context objects. | |
| std::vector< NodeHook > | m_callbacks |
| Collection of standard callback functions. | |
| std::vector< std::pair< NodeHook, NodeCondition > > | m_conditional_callbacks |
| Collection of conditional callback functions with their predicates. | |
Additional Inherited Members | |
Public Attributes inherited from MayaFlux::Nodes::Node | |
| bool | m_fire_events_during_snapshot = false |
| Internal flag controlling whether notify_tick fires during state snapshots Default: false (events don't fire during isolated buffer processing) Can be exposed in future if needed via concrete implementation in parent. | |
| std::atomic< Utils::NodeState > | m_state { Utils::NodeState::INACTIVE } |
| Atomic state flag tracking the node's processing status. | |
| std::atomic< uint32_t > | m_modulator_count { 0 } |
| Counter tracking how many other nodes are using this node as a modulator. | |
Base class for texture-generating nodes.
Provides common functionality for managing texture dimensions and pixel data in RGBA float format. Derived classes implement compute_frame() to define specific texture generation or processing algorithms.
Texture data is stored as a flat array in row-major order: [R0,G0,B0,A0, R1,G1,B1,A1, ..., Rn,Gn,Bn,An]
Definition at line 18 of file TextureNode.hpp.