MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Buffers::SDFPrepProcessor Class Reference

Default processor for the GPU-field marching-cubes chain. More...

#include <SDFPrepProcessor.hpp>

+ Inheritance diagram for MayaFlux::Buffers::SDFPrepProcessor:
+ Collaboration diagram for MayaFlux::Buffers::SDFPrepProcessor:

Public Member Functions

std::shared_ptr< VKBuffercounter_buf () const
 Counter buffer zeroed here, written by mc_emit, read back by SDFMeshProcessor.
 
std::shared_ptr< VKBuffergrid_buf () const
 Grid buffer written by SDFFieldProcessor, read by SDFMeshProcessor.
 
void on_attach (const std::shared_ptr< Buffer > &buffer) override
 Called when this processor is attached to a buffer.
 
void processing_function (const std::shared_ptr< Buffer > &buffer) override
 The core processing function that must be implemented by derived classes.
 
 SDFPrepProcessor (uint32_t res_x, uint32_t res_y, uint32_t res_z)
 
void set_resolution (uint32_t res_x, uint32_t res_y, uint32_t res_z)
 Rebuild owned buffers to match a new resolution.
 
 ~SDFPrepProcessor () override=default
 
- Public Member Functions inherited from MayaFlux::Buffers::BufferProcessor
virtual ProcessingToken get_processing_token () const
 Gets the current processing token for this buffer.
 
virtual bool is_compatible_with (const std::shared_ptr< Buffer > &) const
 Checks if this processor can handle the specified buffer type.
 
virtual void on_detach (const std::shared_ptr< Buffer > &)
 Called when this processor is detached from a buffer.
 
void process (const std::shared_ptr< Buffer > &buffer)
 Applies a computational transformation to the data in the provided buffer.
 
virtual void set_processing_token (ProcessingToken token)
 Gets the preferred processing backend for this processor.
 
virtual ~BufferProcessor ()=default
 Virtual destructor for proper cleanup of derived classes.
 

Private Member Functions

uint32_t corner_count () const noexcept
 
void rebuild_buffers ()
 

Private Attributes

std::shared_ptr< VKBufferm_counter_buf
 
std::shared_ptr< VKBufferm_grid_buf
 
uint32_t m_res_x
 
uint32_t m_res_y
 
uint32_t m_res_z
 

Additional Inherited Members

- Protected Member Functions inherited from MayaFlux::Buffers::VKBufferProcessor
void ensure_initialized (const std::shared_ptr< VKBuffer > &buffer)
 
void initialize_buffer_service ()
 
void initialize_compute_service ()
 
- Protected Attributes inherited from MayaFlux::Buffers::VKBufferProcessor
Registry::Service::BufferServicem_buffer_service = nullptr
 
Registry::Service::ComputeServicem_compute_service = nullptr
 
- Protected Attributes inherited from MayaFlux::Buffers::BufferProcessor
ProcessingToken m_processing_token { ProcessingToken::AUDIO_BACKEND }
 

Detailed Description

Default processor for the GPU-field marching-cubes chain.

Owns the SDF corner grid buffer and the atomic vertex counter buffer. Zeros both on each frame so downstream processors start from a clean state. Performs no shader dispatch of its own.

Active chain order: default — SDFPrepProcessor (this, owns + zeros grid/counter) pre — SDFFieldProcessor (writes grid via sdf_field.comp) flat[0] — SDFMeshProcessor (mc_emit, reads grid, emits verts) final — RenderProcessor

See also
SDFFieldProcessor
SDFMeshProcessor

Definition at line 24 of file SDFPrepProcessor.hpp.


The documentation for this class was generated from the following files: