1 #ifndef MSP_GL_TEXTURE_BACKEND_H_
2 #define MSP_GL_TEXTURE_BACKEND_H_
4 #include <msp/core/noncopyable.h>
12 class VulkanTexture: public NonCopyable
14 friend class VulkanFramebuffer;
15 friend class VulkanPipelineState;
20 VkImageView view_handle = 0;
21 unsigned memory_id = 0;
23 std::string debug_name;
25 VulkanTexture(unsigned);
26 VulkanTexture(VulkanTexture &&);
30 virtual void fill_image_info(void *) const = 0;
31 void require_swizzle() { }
33 void generate_mipmap();
35 void change_layout(unsigned, int, unsigned, bool) const;
37 void set_debug_name(const std::string &);
38 void set_vulkan_object_names() const;
41 using TextureBackend = VulkanTexture;