]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/vulkancontext.cpp
Add a class for creating Vulkan graphics contexts
[libs/gui.git] / source / graphics / vulkancontext.cpp
diff --git a/source/graphics/vulkancontext.cpp b/source/graphics/vulkancontext.cpp
new file mode 100644 (file)
index 0000000..bbf03e3
--- /dev/null
@@ -0,0 +1,36 @@
+#include <msp/strings/format.h>
+#include "vulkancontext.h"
+#include "window.h"
+
+namespace Msp {
+namespace Graphics {
+
+vulkan_error::vulkan_error(unsigned code, const char *function):
+       runtime_error(format("%s failed: %s", function, get_error_message(code)))
+{ }
+
+
+VulkanContext::VulkanContext(Window &w, const VulkanOptions &opts):
+       display(w.get_display()),
+       window(w)
+{
+       platform_init(opts);
+}
+
+#ifndef WITH_VULKAN
+void VulkanContext::platform_init(const VulkanOptions &)
+{
+       throw runtime_error("no Vulkan support");
+}
+
+VulkanContext::~VulkanContext()
+{ }
+
+void (*VulkanContext::_get_function(const std::string &) const)()
+{
+       return 0;
+}
+#endif
+
+} // namespace Graphics
+} // namespace Msp