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

◆ create_render_target()

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

Create a render target (color attachment)

Parameters
widthWidth in pixels
heightHeight in pixels
formatImage format (default RGBA8)
Returns
Initialized VKImage configured for rendering

Creates image suitable for use as framebuffer color attachment. Can also be sampled in shaders after rendering.

Definition at line 265 of file TextureLoom.cpp.

267{
268 if (!is_initialized()) {
270 "TextureLoom not initialized");
271 return nullptr;
272 }
273
274 auto vk_format = to_vulkan_format(format);
275 auto image = std::make_shared<Core::VKImage>(
276 width, height, 1, vk_format,
280
282
283 if (!image->is_initialized()) {
285 "Failed to initialize render target VKImage");
286 return nullptr;
287 }
288
290 image->get_image(),
291 vk::ImageLayout::eUndefined,
292 vk::ImageLayout::eColorAttachmentOptimal,
293 1, 1, vk::ImageAspectFlagBits::eColor);
294 image->set_current_layout(vk::ImageLayout::eColorAttachmentOptimal);
295
296 m_textures.push_back(image);
298 "Created render target: {}x{}, format: {}",
299 width, height, vk::to_string(vk_format));
300 return image;
301}
#define MF_INFO(comp, ctx,...)
#define MF_ERROR(comp, ctx,...)
IO::ImageData image
Definition Decoder.cpp:64
uint32_t width
Definition Decoder.cpp:66
uint32_t height
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.
@ RENDER_TARGET
Color attachment for rendering.
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 height, image, 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::RENDER_TARGET, to_vulkan_format(), MayaFlux::Core::BackendResourceManager::transition_image_layout(), MayaFlux::Core::VKImage::TYPE_2D, and width.

+ Here is the call graph for this function: