]> git.tdb.fi Git - libs/gl.git/blob - source/backends/vulkan/framebuffer_backend.h
Initial implementation of Vulkan backend
[libs/gl.git] / source / backends / vulkan / framebuffer_backend.h
1 #ifndef MSP_GL_FRAMEBUFFER_BACKEND_H_
2 #define MSP_GL_FRAMEBUFFER_BACKEND_H_
3
4 #include <string>
5 #include "frameformat.h"
6 #include "handles.h"
7
8 namespace Msp {
9 namespace GL {
10
11 class Device;
12
13 class VulkanFramebuffer: public NonCopyable
14 {
15         friend class VulkanCommands;
16         friend class VulkanPipelineState;
17
18 protected:
19         Device &device;
20         mutable VkFramebuffer handle = 0;
21         std::string debug_name;
22
23         VulkanFramebuffer(bool);
24         VulkanFramebuffer(VulkanFramebuffer &&);
25         ~VulkanFramebuffer();
26
27         bool is_format_supported(const FrameFormat &);
28         static void require_layered() { }
29
30         void update(unsigned) const;
31         void require_complete() const { }
32
33         void set_debug_name(const std::string &);
34         void set_vulkan_object_name() const;
35 };
36
37 using FramebufferBackend = VulkanFramebuffer;
38
39 } // namespace GL
40 } // namespace Msp
41
42 #endif