17 VkCommandPool commandPool, VkQueue graphicsQueue);
21 bool LoadCubemap(
const std::array<std::string, 6>& facePaths);
33 void Bind(uint32_t slot = 0)
const override;
34 void Unbind()
const override;
39 uint32_t
GetWidth()
const override {
return m_width; }
40 uint32_t
GetHeight()
const override {
return m_height; }
50 uint32_t FindMemoryType(uint32_t typeFilter,
51 VkMemoryPropertyFlags properties);
53 void TransitionImageLayout(VkImage image, VkImageLayout oldLayout,
54 VkImageLayout newLayout,
57 VkDevice m_device = VK_NULL_HANDLE;
58 VkPhysicalDevice m_physicalDevice = VK_NULL_HANDLE;
59 VkCommandPool m_commandPool = VK_NULL_HANDLE;
60 VkQueue m_graphicsQueue = VK_NULL_HANDLE;
62 VkImage m_image = VK_NULL_HANDLE;
63 VkDeviceMemory m_imageMemory = VK_NULL_HANDLE;
64 VkImageView m_imageView = VK_NULL_HANDLE;
65 VkSampler m_sampler = VK_NULL_HANDLE;
68 uint32_t m_height = 0;
bool LoadCubemap(const std::array< std::string, 6 > &facePaths)
Loads and uploads 6 face images: +X, -X, +Y, -Y, +Z, -Z.
bool LoadFromMemory(const void *data, uint32_t width, uint32_t height, TextureFormat format) override
Unused for cubemaps; load via LoadCubemap/LoadEquirectangular instead.
void SetFilter(TextureFilter filter) override
uint32_t GetWidth() const override
VulkanCubemapTexture(VkDevice device, VkPhysicalDevice physicalDevice, VkCommandPool commandPool, VkQueue graphicsQueue)
void Unbind() const override
VkImageView GetImageView() const
bool LoadEquirectangular(const std::string &path, uint32_t faceSize=512)
Load from a single equirectangular panorama and convert to cubemap.
TextureFormat GetFormat() const override
VkSampler GetSampler() const
uint32_t GetHeight() const override
void SetWrapMode(TextureWrapMode wrapMode) override
bool LoadFromFile(const std::string &filePath) override
Unused for cubemaps; load via LoadCubemap/LoadEquirectangular instead.
void Bind(uint32_t slot=0) const override
TextureType GetType() const override