.. _program_listing_file_Src_GraphicsEngineVulkan_vulkan_base_VulkanImage.hpp: Program Listing for File VulkanImage.hpp ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``Src/GraphicsEngineVulkan/vulkan_base/VulkanImage.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include "renderer/CommandBufferManager.hpp" #include "vulkan_base/VulkanDevice.hpp" namespace Kataglyphis { class VulkanImage { public: VulkanImage(); void create(VulkanDevice *device, uint32_t width, uint32_t height, uint32_t mip_levels, VkFormat format, VkImageTiling tiling, VkImageUsageFlags use_flags, VkMemoryPropertyFlags prop_flags); void transitionImageLayout(VkDevice device, VkQueue queue, VkCommandPool command_pool, VkImageLayout old_layout, VkImageLayout new_layout, VkImageAspectFlags aspectMask, uint32_t mip_levels); void transitionImageLayout(VkCommandBuffer command_buffer, VkImageLayout old_layout, VkImageLayout new_layout, uint32_t mip_levels, VkImageAspectFlags aspectMask); void setImage(VkImage image); VkImage &getImage() { return image; }; void cleanUp(); ~VulkanImage(); private: VulkanDevice *device{ VK_NULL_HANDLE }; Kataglyphis::VulkanRendererInternals::CommandBufferManager commandBufferManager; VkImage image; VkDeviceMemory imageMemory; VkAccessFlags accessFlagsForImageLayout(VkImageLayout layout); VkPipelineStageFlags pipelineStageForLayout(VkImageLayout oldImageLayout); }; }// namespace Kataglyphis