]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/framebuffer_backend.h
Initial implementation of Vulkan backend
[libs/gl.git] / source / backends / vulkan / framebuffer_backend.h
diff --git a/source/backends/vulkan/framebuffer_backend.h b/source/backends/vulkan/framebuffer_backend.h
new file mode 100644 (file)
index 0000000..ff15c0d
--- /dev/null
@@ -0,0 +1,42 @@
+#ifndef MSP_GL_FRAMEBUFFER_BACKEND_H_
+#define MSP_GL_FRAMEBUFFER_BACKEND_H_
+
+#include <string>
+#include "frameformat.h"
+#include "handles.h"
+
+namespace Msp {
+namespace GL {
+
+class Device;
+
+class VulkanFramebuffer: public NonCopyable
+{
+       friend class VulkanCommands;
+       friend class VulkanPipelineState;
+
+protected:
+       Device &device;
+       mutable VkFramebuffer handle = 0;
+       std::string debug_name;
+
+       VulkanFramebuffer(bool);
+       VulkanFramebuffer(VulkanFramebuffer &&);
+       ~VulkanFramebuffer();
+
+       bool is_format_supported(const FrameFormat &);
+       static void require_layered() { }
+
+       void update(unsigned) const;
+       void require_complete() const { }
+
+       void set_debug_name(const std::string &);
+       void set_vulkan_object_name() const;
+};
+
+using FramebufferBackend = VulkanFramebuffer;
+
+} // namespace GL
+} // namespace Msp
+
+#endif