class VulkanFramebuffer: public NonCopyable
{
+ friend class RenderPass;
friend class VulkanCommands;
friend class VulkanPipelineState;
protected:
Device &device;
mutable VkFramebuffer handle = 0;
+ mutable std::vector<VkImageView> view_handles;
std::string debug_name;
VulkanFramebuffer(bool);
VulkanFramebuffer(VulkanFramebuffer &&);
~VulkanFramebuffer();
- bool is_format_supported(const FrameFormat &);
+ bool is_format_supported(const FrameFormat &) const;
+ void format_changed(const FrameFormat &) { }
static void require_layered() { }
- const Texture *get_attachment(unsigned) const;
+ bool is_presentable() const;
+
void update(unsigned) const;
void require_complete() const { }
+ void prepare_image_layouts(bool = false) const;
+
void set_debug_name(const std::string &);
void set_vulkan_object_name() const;
};