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

◆ create_storage_image()

std::shared_ptr< Core::VKImage > MayaFlux::Portal::Graphics::TextureLoom::create_storage_image ( uint32_t  width,
uint32_t  height,
ImageFormat  format = ImageFormat::RGBA8 
)

Create a storage image (compute shader read/write)

Parameters
widthWidth in pixels
heightHeight in pixels
formatImage format
Returns
Initialized VKImage configured for compute storage

Definition at line 289 of file TextureLoom.cpp.

291{
292 if (!is_initialized()) {
294 "TextureLoom not initialized");
295 return nullptr;
296 }
297
298 auto vk_format = to_vulkan_format(format);
299 auto image = std::make_shared<Core::VKImage>(
300 width, height, 1, vk_format,
304
306
307 if (!image->is_initialized()) {
309 "Failed to initialize storage image VKImage");
310 return nullptr;
311 }
312
314 image->get_image(),
315 vk::ImageLayout::eUndefined,
316 vk::ImageLayout::eGeneral,
317 1, 1, vk::ImageAspectFlagBits::eColor);
318 image->set_current_layout(vk::ImageLayout::eGeneral);
319
320 m_textures.push_back(image);
322 "Created storage image: {}x{}, format: {}",
323 width, height, vk::to_string(vk_format));
324 return image;
325}
#define MF_INFO(comp, ctx,...)
#define MF_ERROR(comp, ctx,...)
void initialize_image(const std::shared_ptr< VKImage > &image)
Initialize a VKImage (allocate VkImage, memory, and create image view)
void transition_image_layout(vk::Image image, vk::ImageLayout old_layout, vk::ImageLayout new_layout, uint32_t mip_levels=1, uint32_t array_layers=1, vk::ImageAspectFlags aspect_flags=vk::ImageAspectFlagBits::eColor)
Transition image layout using a pipeline barrier.
@ STORAGE
Storage image (compute shader read/write)
static vk::Format to_vulkan_format(ImageFormat format)
Convert Portal ImageFormat to Vulkan format.
Core::BackendResourceManager * m_resource_manager
std::vector< std::shared_ptr< Core::VKImage > > m_textures
bool is_initialized() const
Check if manager is initialized.
@ ImageProcessing
Image processing tasks (filters, transformations)
@ Portal
High-level user-facing API layer.
@ IMAGE_COLOR
2D RGB/RGBA image

References MayaFlux::Kakshya::IMAGE_COLOR, MayaFlux::Journal::ImageProcessing, MayaFlux::Core::BackendResourceManager::initialize_image(), is_initialized(), m_resource_manager, m_textures, MF_ERROR, MF_INFO, MayaFlux::Journal::Portal, MayaFlux::Core::VKImage::STORAGE, to_vulkan_format(), MayaFlux::Core::BackendResourceManager::transition_image_layout(), and MayaFlux::Core::VKImage::TYPE_2D.

+ Here is the call graph for this function: