From 62b66395da15266c6ec41d7384f237d0e16fbc90 Mon Sep 17 00:00:00 2001 From: Hunter Kvalevog Date: Thu, 12 Mar 2026 00:35:48 -0400 Subject: --- vk-asylum/CMakeLists.txt | 9 +++++++++ vk-asylum/main.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 vk-asylum/CMakeLists.txt create mode 100644 vk-asylum/main.c (limited to 'vk-asylum') diff --git a/vk-asylum/CMakeLists.txt b/vk-asylum/CMakeLists.txt new file mode 100644 index 0000000..9983a04 --- /dev/null +++ b/vk-asylum/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.15 FATAL_ERROR) +project(vk-asylum C) + +set(DEMO_NEEDS_SDL3 TRUE) +set(DEMO_NEEDS_VULKAN TRUE) +include("${CMAKE_CURRENT_LIST_DIR}/../common/c_cpp/CMakeLists.txt") + +add_executable(vk-asylum main.c) +target_link_libraries(vk-asylum PRIVATE common) diff --git a/vk-asylum/main.c b/vk-asylum/main.c new file mode 100644 index 0000000..2e0e0b2 --- /dev/null +++ b/vk-asylum/main.c @@ -0,0 +1,42 @@ +// Vulkan demo +// +// SPDX-License-Identifier: 0BSD +// + +#include +#include +#include +#include + +#define COUNTOF(_Arr) (sizeof(_Arr) / sizeof((_Arr)[0])) +#define DIE(...) do { printf(__VA_ARGS__); printf("\n"); exit(1); } while (0); +#define ASSERT(_Expr) do { if (!(_Expr)) { DIE("%s:%d: " #_Expr, __FILE__, __LINE__); } } while (0); + +int main(int argc, char* argv[]) +{ + (void)argc; (void)argv; + SDL_Init(SDL_INIT_VIDEO); + + SDL_Window* wnd = SDL_CreateWindow("vk-asylum", 1024, 768, SDL_WINDOW_VULKAN); + ASSERT(wnd); + + VkApplicationInfo vkai = (VkApplicationInfo){ + .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, + .apiVersion = VK_API_VERSION_1_4, + }; + VkInstanceCreateInfo vkici = (VkInstanceCreateInfo){ + .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, + .pApplicationInfo = &vkai, + }; + + vkici.ppEnabledExtensionNames = SDL_Vulkan_GetInstanceExtensions(&vkici.enabledExtensionCount); + printf("Instance extensions requested by SDL:\n"); + for (uint32_t i = 0; i < vkici.enabledExtensionCount; ++i) { + printf(" %s\n", vkici.ppEnabledExtensionNames[i]); + } + +#ifdef __APPLE__ + // Required for instance extension VK_KHR_portability_enumeration (MoltenVK) + vkici.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; +#endif +} -- cgit v1.2.3