1 #ifndef MSP_GRAPHICS_VULKANCONTEXT_H_
2 #define MSP_GRAPHICS_VULKANCONTEXT_H_
6 #include "mspgui_api.h"
14 class MSPGUI_API vulkan_error: public std::runtime_error
17 vulkan_error(unsigned, const char *);
20 static std::string get_error_message(unsigned);
25 bool enable_validation = false;
26 bool enable_debug_report = false;
27 bool enable_geometry_shader = false;
28 bool enable_tessellation_shader = false;
31 class MSPGUI_API VulkanContext
38 Private *priv = nullptr;
41 VulkanContext(Window &, const VulkanOptions & = VulkanOptions());
43 void platform_init(const VulkanOptions &);
48 T get_function(const std::string &name) const
49 { return reinterpret_cast<T>(_get_function(name)); }
52 void (*_get_function(const std::string &) const)();
55 const Private &get_private() const { return *priv; }
58 } // namespace Graphics