2#include "../core/foray_commandbuffer.hpp"
3#include "../core/foray_managedimage.hpp"
4#include "../foray_basics.hpp"
5#include "../foray_vulkan.hpp"
6#include "../osi/foray_env.hpp"
27 template <VkFormat FORMAT>
67 VkImageLayout afterwrite = VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)
const;
72 VkImageLayout afterwrite = VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)
const;
Simple types for supressing automatic definition of duplicating move constructors & operator.
Definition foray_basics.hpp:19
Extension of the commandbuffer wrapper for temporary host synchronized command buffer execution.
Definition foray_commandbuffer.hpp:41
Wraps allocation and lifetime functionality of VkImage.
Definition foray_managedimage.hpp:13
Utf8 encoded path wrapper.
Definition foray_env.hpp:28
Definition foray_imageloader.hpp:34
std::vector< EImageChannel > Channels
Definition foray_imageloader.hpp:40
std::string Extension
Definition foray_imageloader.hpp:38
std::string Name
Definition foray_imageloader.hpp:39
VkExtent2D Extent
Definition foray_imageloader.hpp:41
osi::Utf8Path Utf8Path
Definition foray_imageloader.hpp:37
bool Valid
Definition foray_imageloader.hpp:36
General purpose image loader.
Definition foray_imageloader.hpp:29
bool PopulateImageInfo_Stb()
Definition foray_imageloader_stb.inl:19
void WriteManagedImageData(core::ManagedImage *image, VkImageLayout afterwrite) const
Definition foray_imageloader.inl:131
bool Load_Stb()
Definition foray_imageloader_stb.inl:98
ImageLoader()
Definition foray_imageloader.hpp:44
bool PopulateImageInfo_TinyExr()
Definition foray_imageloader_exr.inl:138
std::vector< uint8_t > mRawData
Definition foray_imageloader.hpp:79
std::function< void(void *)> mCustomLoaderInfoDeleter
Definition foray_imageloader.hpp:81
virtual ~ImageLoader()
Definition foray_imageloader.hpp:59
void UpdateManagedImageCI(core::ManagedImage::CreateInfo &ci) const
Definition foray_imageloader.inl:121
void Destroy()
Cleans up the loader.
Definition foray_imageloader.inl:77
bool Load()
Loads the file into CPU memory (Init first!)
Definition foray_imageloader.inl:58
ImageInfo mInfo
Definition foray_imageloader.hpp:78
static bool sFormatSupported(core::Context *context)
Checks if format the loader was initialized in supports linear tiling transfer and shader read.
Definition foray_imageloader.inl:13
bool Init(const osi::Utf8Path &utf8path)
Inits the image loader.
Definition foray_imageloader.inl:25
void InitManagedImage(core::Context *context, core::ManagedImage *image, core::ManagedImage::CreateInfo &ci, VkImageLayout afterwrite=VkImageLayout::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) const
Definition foray_imageloader.inl:93
bool Load_TinyExr()
Definition foray_imageloader_exr.inl:221
void * mCustomLoaderInfo
Definition foray_imageloader.hpp:80
#define FORAY_GETTER_CR(member)
Return constant reference.
Definition foray_basics.hpp:60
Definition foray_dualbuffer.hpp:5
EImageChannel
Definition foray_imageloader.hpp:13
Non owning context object.
Definition foray_context.hpp:16
Combines all structs used for initialization.
Definition foray_managedimage.hpp:20