MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ TextureBuffer()

MayaFlux::Buffers::TextureBuffer::TextureBuffer ( uint32_t  width,
uint32_t  height,
Portal::Graphics::ImageFormat  format,
const void *  initial_pixel_data = nullptr 
)

Create texture buffer with dimensions.

Parameters
widthTexture width in pixels
heightTexture height in pixels
formatPixel format
initial_pixel_dataOptional initial pixel data (nullptr = uninitialized)

The VKBuffer itself contains fullscreen quad vertices. The texture pixels are stored separately and uploaded to VKImage.

Definition at line 18 of file TextureBuffer.cpp.

23 : VKBuffer(
27 , m_width(width)
28 , m_height(height)
29 , m_format(format)
30{
31 if (initial_pixel_data) {
32 size_t pixel_bytes = static_cast<size_t>(width) * height * Portal::Graphics::TextureLoom::get_bytes_per_pixel(format);
33 m_pixel_data.resize(pixel_bytes);
34 std::memcpy(m_pixel_data.data(), initial_pixel_data, pixel_bytes);
35 }
36
38
40 "Created TextureBuffer: {}x{} ({} pixel bytes, {} vertex bytes)",
42}
#define MF_INFO(comp, ctx,...)
std::vector< uint8_t > m_pixel_data
Portal::Graphics::ImageFormat m_format
std::vector< uint8_t > m_vertex_bytes
static size_t get_bytes_per_pixel(ImageFormat format)
Get bytes per pixel for a format.
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.

References MayaFlux::Journal::Buffers, generate_default_quad(), MayaFlux::Portal::Graphics::TextureLoom::get_bytes_per_pixel(), MayaFlux::Journal::Init, m_height, m_pixel_data, m_vertex_bytes, m_width, MF_INFO, and MayaFlux::Buffers::VKBuffer::resize().

+ Here is the call graph for this function: