summaryrefslogtreecommitdiff
path: root/game
diff options
context:
space:
mode:
Diffstat (limited to 'game')
-rw-r--r--game/BUILD.bazel1
-rw-r--r--game/main.cpp27
2 files changed, 28 insertions, 0 deletions
diff --git a/game/BUILD.bazel b/game/BUILD.bazel
index 753a77a..1f59b90 100644
--- a/game/BUILD.bazel
+++ b/game/BUILD.bazel
@@ -6,5 +6,6 @@ cc_binary(
deps = [
"@asl//asl",
"@sdl3_windows//:sdl3",
+ "//vendor/vulkan",
],
)
diff --git a/game/main.cpp b/game/main.cpp
index 46f08f0..c78c41e 100644
--- a/game/main.cpp
+++ b/game/main.cpp
@@ -1,7 +1,14 @@
#include <asl/print.hpp>
+#include <asl/buffer.hpp>
#include <SDL3/SDL.h>
#include <SDL3/SDL_main.h>
+#include <SDL3/SDL_vulkan.h>
+
+#define VK_NO_STDDEF_H
+#define VK_NO_STDINT_H
+#define VK_NO_PROTOTYPES
+#include <vulkan.h>
int SDL_main(int /* argc */, char* /* argv */[])
{
@@ -10,6 +17,26 @@ int SDL_main(int /* argc */, char* /* argv */[])
SDL_ShowWindow(window);
+ asl::buffer<const char*> instance_extensions;
+ asl::buffer<const char*> device_extensions;
+ asl::buffer<const char*> layers;
+
+ {
+ uint32_t count = 0;
+ const char* const* extensions = SDL_Vulkan_GetInstanceExtensions(&count);
+ for (uint32_t i = 0; i < count; ++i)
+ {
+ instance_extensions.push(extensions[i]); // NOLINT(*-pointer-arithmetic)
+ }
+ }
+
+ layers.push("VK_LAYER_KHRONOS_validation");
+ layers.push("VK_LAYER_LUNARG_monitor");
+
+ instance_extensions.push(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
+
+ device_extensions.push(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
+
bool running = true;
while (running)
{