|
MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
|
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 |
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.