MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Buffers Namespace Reference

Classes

class  AggregateBindingsProcessor
 BufferProcessor that aggregates multiple node outputs into GPU buffers. More...
 
class  AudioBuffer
 Concrete audio implementation of the Buffer interface for double-precision audio data. More...
 
class  Buffer
 Backend-agnostic interface for sequential data storage and transformation. More...
 
class  BufferAccessControl
 Token-aware buffer and unit access patterns. More...
 
class  BufferDownloadProcessor
 Transfers data from GPU VKBuffer to CPU target buffer. More...
 
class  BufferInputControl
 Audio input buffer management and listener coordination. More...
 
class  BufferManager
 Token-based multimodal buffer management system for unified data stream processing. More...
 
class  BufferProcessingChain
 Advanced pipeline manager for multi-stage buffer transformations with backend optimization. More...
 
class  BufferProcessingControl
 Processor attachment, removal, and processing chain management. More...
 
class  BufferProcessor
 Central computational transformation interface for continuous buffer processing. More...
 
class  BufferSupplyMixing
 External buffer supply, mixing, and interleaved data I/O. More...
 
class  BufferTokenDistributor
 Determines routing for buffers based on type + token combination. More...
 
class  BufferUploadProcessor
 Transfers data from CPU source buffer to GPU VKBuffer. More...
 
class  ChannelProcessor
 Processor that implements hierarchical data aggregation for root buffers. More...
 
class  ContainerBuffer
 AudioBuffer implementation backed by a StreamContainer. More...
 
class  ContainerToBufferAdapter
 Adapter for bridging N-dimensional containers and AudioBuffer interface. More...
 
class  DescriptorBindingsProcessor
 ShaderProcessor that uploads node outputs to descriptor sets. More...
 
class  DescriptorBuffer
 Specialized buffer for shader parameter bindings from nodes. More...
 
struct  DistributionDecision
 Routing decision for a buffer with a given token. More...
 
class  FeedbackBuffer
 Specialized buffer implementing computational feedback systems. More...
 
class  FeedbackProcessor
 Processor that implements recursive computational algorithms. More...
 
class  FileBridgeBuffer
 An audio buffer that bridges a sound file container to a dynamic sound stream. More...
 
class  FileBridgeProcessor
 A buffer processor that uses a FileToStreamChain to process audio data. More...
 
class  FileToStreamChain
 A processing chain that reads audio data from a sound file container and writes it to a dynamic sound stream. More...
 
class  FilterProcessor
 Buffer processor that applies filter nodes to audio data. More...
 
class  FinalLimiterProcessor
 Processor that enforces boundary conditions on output data. More...
 
class  GeometryBindingsProcessor
 BufferProcessor that uploads geometry node data to GPU vertex buffers. More...
 
class  GeometryBuffer
 Specialized buffer for generative geometry from GeometryWriterNode. More...
 
class  GraphicsBatchProcessor
 Default processor for coordinating batch GPU buffer processing. More...
 
class  InputAccessProcessor
 Simple processor for dispatching input data to listeners. More...
 
class  InputAudioBuffer
 Specialized buffer for audio input with listener dispatch. More...
 
class  LogicProcessor
 Digital signal processor that applies boolean logic operations to data streams. More...
 
class  MixProcessor
 Processes multiple audio buffers and mixes their data into a single output buffer. More...
 
struct  MixSource
 Represents a source audio buffer with its data and mixing properties. More...
 
class  NetworkGeometryBuffer
 Specialized buffer for geometry from NodeNetwork instances. More...
 
class  NetworkGeometryProcessor
 BufferProcessor that aggregates geometry from NodeNetwork nodes. More...
 
class  NodeBindingsProcessor
 ShaderProcessor with automatic node-to-push-constant binding. More...
 
class  NodeBuffer
 Specialized buffer that automatically captures output from computational nodes. More...
 
class  NodeSourceProcessor
 Processor that bridges computational nodes and data buffers. More...
 
class  PolynomialProcessor
 Buffer processor that applies polynomial transformations to audio data. More...
 
class  PresentProcessor
 Final processor that executes render operations after all buffer processing. More...
 
struct  ProcessorTokenInfo
 Holds information about a processor's compatibility with a buffer's processing token. More...
 
class  QuickProcess
 
class  RenderProcessor
 
class  RootAudioBuffer
 Top-level aggregation buffer for computational data streams. More...
 
struct  RootAudioUnit
 Represents a root audio unit containing buffers and processing chains for multiple channels. More...
 
class  RootBuffer
 
class  RootGraphicsBuffer
 Root container for GPU buffer lifecycle management and batch processing. More...
 
struct  RootGraphicsUnit
 Represents a root graphics unit containing a buffer and processing chain. More...
 
struct  ShaderBinding
 Describes how a VKBuffer binds to a shader descriptor. More...
 
struct  ShaderDispatchConfig
 Configuration for compute shader dispatch. More...
 
class  ShaderProcessor
 Generic compute shader processor for VKBuffers. More...
 
struct  ShaderProcessorConfig
 Complete configuration for shader processor. More...
 
class  StreamWriteProcessor
 Channel-aware processor that writes AudioBuffer data to DynamicSoundStream containers. More...
 
class  TextureBindBuffer
 Specialized buffer for generative texture/pixel data from TextureNode. More...
 
class  TextureBindingsProcessor
 BufferProcessor that uploads multiple texture nodes to GPU. More...
 
class  TextureBuffer
 A hybrid buffer managing both a textured quad geometry and its pixel data. More...
 
class  TextureProcessor
 Internal processor: handles CPU→GPU transfers for TextureBuffer. More...
 
struct  TokenCompatibilityReport
 Holds the results of token compatibility analysis for a buffer processing chain. More...
 
class  TokenUnitManager
 Token-scoped unit storage and lifecycle management. More...
 
class  TransferProcessor
 
class  VKBuffer
 Vulkan-backed buffer wrapper used in processing chains. More...
 
class  VKBufferProcessor
 
struct  VKBufferResources
 

Typedefs

using AudioProcessingFunction = std::function< void(const std::shared_ptr< AudioBuffer > &)>
 Audio processing function - receives correctly-typed AudioBuffer.
 
using GraphicsProcessingFunction = std::function< void(const std::shared_ptr< VKBuffer > &)>
 Graphics processing function - receives correctly-typed VKBuffer.
 
using BufferProcessingFunction = std::variant< AudioProcessingFunction, GraphicsProcessingFunction >
 
using RootAudioProcessingFunction = std::function< void(std::vector< std::shared_ptr< RootAudioBuffer > > &, uint32_t)>
 
using RootGraphicsProcessingFunction = std::function< void(std::shared_ptr< RootGraphicsBuffer > &, uint32_t)>
 
using RenderPipelineID = uint64_t
 
using CommandBufferID = uint64_t
 

Enumerations

enum class  TokenEnforcementStrategy {
  STRICT , FILTERED , OVERRIDE_SKIP , OVERRIDE_REJECT ,
  IGNORE
}
 Defines how strictly processing token requirements are enforced in buffer processing chains. More...
 
enum class  DistributionResult : uint8_t {
  DIRECT_ROOT , TRANSFER_TO_ROOT , TRANSFER_ONLY , INTERNAL_ONLY ,
  REJECTED
}
 Outcome of token distribution decision. More...
 
enum class  TransferDirection : uint8_t { AUDIO_TO_GPU = 0 , GPU_TO_AUDIO = 1 , BIDIRECTIONAL = 2 }
 Specifies the direction of data transfer. More...
 
enum  ProcessingToken : uint32_t {
  SAMPLE_RATE = 0x0 , FRAME_RATE = 0x2 , CPU_PROCESS = 0x4 , GPU_PPOCESS = 0x8 ,
  SEQUENTIAL = 0x10 , PARALLEL = 0x20 , AUDIO_BACKEND = SAMPLE_RATE | CPU_PROCESS | SEQUENTIAL , GRAPHICS_BACKEND = FRAME_RATE | GPU_PPOCESS | PARALLEL ,
  AUDIO_PARALLEL = SAMPLE_RATE | GPU_PPOCESS | PARALLEL , WINDOW_EVENTS = FRAME_RATE | CPU_PROCESS | SEQUENTIAL
}
 Bitfield enum defining processing characteristics and backend requirements for buffer operations. More...
 

Functions

void validate_token (ProcessingToken token)
 Validates that a processing token has a valid, non-conflicting configuration.
 
bool are_tokens_compatible (ProcessingToken preferred, ProcessingToken current)
 Determines if two processing tokens are compatible for joint execution.
 
ProcessingToken get_optimal_token (const std::string &buffer_type, uint32_t system_capabilities)
 Gets the optimal processing token for a given buffer type and system configuration.
 
void upload_host_visible (const std::shared_ptr< VKBuffer > &target, const Kakshya::DataVariant &data)
 Upload data to a host-visible buffer.
 
void upload_device_local (const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging_buffer, const Kakshya::DataVariant &data)
 Upload data to a device-local buffer using a staging buffer.
 
void download_host_visible (const std::shared_ptr< VKBuffer > &source, const std::shared_ptr< VKBuffer > &target)
 Download data from a host-visible buffer.
 
void download_device_local (const std::shared_ptr< VKBuffer > &source, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging_buffer)
 Download data from a device-local buffer using a staging buffer.
 
bool is_device_local (const std::shared_ptr< VKBuffer > &buffer)
 Check if buffer is device-local (staging needed)
 
std::shared_ptr< VKBuffercreate_staging_buffer (size_t size)
 Create staging buffer for transfers.
 
void upload_to_gpu (const void *data, size_t size, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload raw data to GPU buffer (auto-detects host-visible vs device-local)
 
void download_from_gpu (const std::shared_ptr< VKBuffer > &source, void *data, size_t size, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download from GPU buffer to raw data (auto-detects host-visible vs device-local)
 
void upload_audio_to_gpu (const std::shared_ptr< AudioBuffer > &audio_buffer, const std::shared_ptr< VKBuffer > &gpu_buffer, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload AudioBuffer to GPU (always double precision)
 
void download_audio_from_gpu (const std::shared_ptr< VKBuffer > &gpu_buffer, const std::shared_ptr< AudioBuffer > &audio_buffer, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download GPU buffer to AudioBuffer (expects double precision)
 
template<typename T >
void upload_to_gpu (std::span< const T > data, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload typed data to GPU buffer.
 
template<typename T >
void upload_to_gpu (const std::vector< T > &data, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload vector to GPU buffer.
 
template<typename T >
void download_from_gpu (const std::shared_ptr< VKBuffer > &source, std::span< T > data, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download from GPU buffer to typed span.
 
template<typename T >
void download_from_gpu (const std::shared_ptr< VKBuffer > &source, std::vector< T > &data, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download from GPU buffer to vector.
 
template<typename T >
void upload_from_view (const Kakshya::DataAccess &accessor, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload data from DataAccess view to GPU buffer (precision-preserving)
 
template<typename T >
requires GlmType<T>
void upload_structured_view (const Kakshya::DataAccess &accessor, const std::shared_ptr< VKBuffer > &target, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Upload structured data with GLM double-precision types.
 
template<typename T >
Kakshya::DataAccess download_to_view (const std::shared_ptr< VKBuffer > &source, Kakshya::DataVariant &target_variant, const std::vector< Kakshya::DataDimension > &dimensions, Kakshya::DataModality modality, const std::shared_ptr< VKBuffer > &staging=nullptr)
 Download GPU buffer to DataAccess-compatible format (precision-preserving)
 

Variables

const std::vector< TextureBuffer::QuadVertexbase_quad