MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Kakshya::WindowAccessProcessor Class Reference

Default DataProcessor for WindowContainer. More...

#include <WindowAccessProcessor.hpp>

+ Inheritance diagram for MayaFlux::Kakshya::WindowAccessProcessor:
+ Collaboration diagram for MayaFlux::Kakshya::WindowAccessProcessor:

Public Member Functions

 WindowAccessProcessor ()=default
 
 ~WindowAccessProcessor () override=default
 
void on_attach (const std::shared_ptr< SignalSourceContainer > &container) override
 Attach to a WindowContainer.
 
void on_detach (const std::shared_ptr< SignalSourceContainer > &container) override
 Release all cached state.
 
void process (const std::shared_ptr< SignalSourceContainer > &container) override
 Execute a full-surface pixel readback.
 
bool is_processing () const override
 Whether a process() call is currently executing.
 
size_t get_last_readback_bytes () const
 Byte size of the last successful readback.
 
Core::GraphicsSurfaceInfo::SurfaceFormat get_surface_format () const
 The surface format currently in use for readback allocation.
 
- Public Member Functions inherited from MayaFlux::Kakshya::DataProcessor
virtual ~DataProcessor ()=default
 Virtual destructor for proper cleanup.
 

Private Attributes

std::atomic< bool > m_is_processing { false }
 
uint32_t m_width { 0 }
 
uint32_t m_height { 0 }
 
size_t m_last_readback_bytes { 0 }
 
Core::GraphicsSurfaceInfo::SurfaceFormat m_surface_format
 

Detailed Description

Default DataProcessor for WindowContainer.

Reads pixel data from the last completed swapchain frame into the container's processed_data. The DataVariant type is selected at on_attach() time based on the live swapchain format reported by DisplayService::get_swapchain_format, ensuring HDR and packed formats are stored with their native precision rather than truncated to uint8.

Format → DataVariant element type: 8-bit UNORM/SRGB → std::vector<uint8_t> 16-bit SFLOAT → std::vector<uint16_t> (raw half-float bits) 10-bit packed → std::vector<uint32_t> (packed word per pixel) 32-bit SFLOAT → std::vector<float>

One readback per frame regardless of region count — region extraction is a CPU-side crop performed by WindowContainer::get_region_data().

Definition at line 29 of file WindowAccessProcessor.hpp.


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