8class DataReadProcessor;
62 const std::shared_ptr<Buffers::VKBuffer>& target,
74 const std::shared_ptr<Buffers::VKBuffer>& target,
76 const std::shared_ptr<Core::VKImage>&
image);
81std::shared_ptr<Core::VKImage>
source_image(
const std::shared_ptr<Buffers::VKBuffer>&
buffer);
94bool ensure_rendering(
const std::shared_ptr<Buffers::VKBuffer>&
buffer,
const Portal::Graphics::RenderConfig& config);
std::shared_ptr< NetworkGeometryBuffer > buffer
std::variant< std::vector< double >, std::vector< float >, std::vector< uint8_t >, std::vector< uint16_t >, std::vector< uint32_t >, std::vector< std::complex< float > >, std::vector< std::complex< double > >, std::vector< glm::vec2 >, std::vector< glm::vec3 >, std::vector< glm::vec4 >, std::vector< glm::mat4 > > DataVariant
Multi-type data storage for different precision needs.
void write_layer(const std::shared_ptr< Buffers::VKBuffer > &target, uint32_t layer, const Kakshya::DataVariant &data)
Write a DataVariant into one layer of a layered buffer.
bool accepts_layer_write(const std::shared_ptr< Buffers::VKBuffer > &buffer)
Whether the buffer holds its frames as layers that can be written one at a time.
void arm_graphics_read(Buffers::DataReadProcessor &reader, const std::shared_ptr< Buffers::VKBuffer > &buffer)
Arm the read that suits what the buffer is.
std::shared_ptr< Core::VKImage > source_image(const std::shared_ptr< Buffers::VKBuffer > &buffer)
The GPU image a buffer displays, or null when it has none to copy from.
bool ensure_rendering(const std::shared_ptr< Buffers::VKBuffer > &buffer, const Portal::Graphics::RenderConfig &config)
Make a buffer draw to the window in a render config, unless it already does.
std::optional< Kakshya::DataVariant > resolve_graphics_read(Buffers::DataReadProcessor &reader)
Finish the pending read as one DataVariant.
bool accepts_raw_write(const std::shared_ptr< Buffers::VKBuffer > &buffer)
Whether a DataVariant can be written to the buffer's primary storage.