]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/texture_backend.h
Convert RGB pixel data to RGBA when staging
[libs/gl.git] / source / backends / vulkan / texture_backend.h
index 1744cdd8c93a60ea589390fd98e0bacd2e38f323..dad8834b2940487d1c2b0bbc3676b5e633b26b5a 100644 (file)
@@ -18,6 +18,7 @@ protected:
        Device &device;
        VkImage handle = 0;
        VkImageView view_handle = 0;
+       unsigned memory_id = 0;
        unsigned view_type;
        std::string debug_name;
 
@@ -26,9 +27,16 @@ protected:
        ~VulkanTexture();
 
        void allocate();
+       virtual void fill_image_info(void *) const = 0;
        void require_swizzle() { }
 
-       void generate_mipmap();
+       void stage_pixels(void *, const void *, size_t);
+
+       virtual void generate_mipmap() = 0;
+       void generate_mipmap_levels(unsigned);
+       virtual void fill_mipmap_blit(unsigned, void *) = 0;
+
+       void change_layout(unsigned, int, unsigned, bool) const;
 
        void set_debug_name(const std::string &);
        void set_vulkan_object_names() const;