summaryrefslogtreecommitdiff
path: root/tools/gfx/vulkan/vk-module.h
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2019-09-13 15:59:15 -0400
committerGitHub <noreply@github.com>2019-09-13 15:59:15 -0400
commitc2e5d2468ad6a38cdb8a067da0678302f6cc6066 (patch)
tree97c448d28e54068d84c422e9f172996b7a95f1ed /tools/gfx/vulkan/vk-module.h
parent0b6321b3f08c48e37e6b8256d420f05d9727fb5a (diff)
Refactor render-test to make cross platform (#1053)
* First pass of render-test refactor. * Make window construction a function that can choose an implementation. * Remove OpenGL as currently has windows dependency. * Disable Vulkan as Renderer impl has dependency on windows. * Pass Window in as parameter of 'update'. * Add win-window.cpp as was missing. * Fix warning on windows about signs during comparison.
Diffstat (limited to 'tools/gfx/vulkan/vk-module.h')
-rw-r--r--tools/gfx/vulkan/vk-module.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/tools/gfx/vulkan/vk-module.h b/tools/gfx/vulkan/vk-module.h
new file mode 100644
index 000000000..4d18823ca
--- /dev/null
+++ b/tools/gfx/vulkan/vk-module.h
@@ -0,0 +1,40 @@
+// vk-module.h
+#pragma once
+
+#include "../../slang.h"
+
+#include "../../slang-com-helper.h"
+
+#if SLANG_WINDOWS_FAMILY
+# define VK_USE_PLATFORM_WIN32_KHR 1
+#else
+# define VK_USE_PLATFORM_XLIB_KHR 1
+#endif
+
+#define VK_NO_PROTOTYPES
+
+#include <vulkan/include/vulkan/vulkan.h>
+
+namespace gfx {
+
+struct VulkanModule
+{
+ /// true if has been initialized
+ SLANG_FORCE_INLINE bool isInitialized() const { return m_module != nullptr; }
+
+ /// Get a function by name
+ PFN_vkVoidFunction getFunction(const char* name) const;
+
+ /// Initialize
+ Slang::Result init();
+ /// Destroy
+ void destroy();
+
+ /// Dtor
+ ~VulkanModule() { destroy(); }
+
+ protected:
+ void* m_module = nullptr;
+};
+
+} // renderer_test