#include #include #include int main (int argc, char** argv) { SDL_Init (SDL_INIT_VIDEO); SDL_Window* win = SDL_CreateWindow ("vulkan triangle", 1280, 720, SDL_WINDOW_VULKAN); Uint32 extCount; const char* const* extNames = SDL_Vulkan_GetInstanceExtensions (&extCount); Uint32 apiVersion; vkEnumerateInstanceVersion (&apiVersion); VkApplicationInfo appInfo = { .sType = VK_STRUCTURE_TYPE_APPLICATION_INFO, .pApplicationName = "HelloTriangle", .applicationVersion = VK_MAKE_VERSION(1, 0, 0), .pEngineName = "NoEngine", .engineVersion = VK_MAKE_VERSION(1, 0, 0), .apiVersion = apiVersion }; VkInstanceCreateInfo createInfo = { .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, .pApplicationInfo = &appInfo, .enabledExtensionCount = extCount, .ppEnabledExtensionNames = extNames }; VkInstance inst; vkCreateInstance (&createInfo, NULL, &inst); VkSurfaceKHR sur; SDL_Vulkan_CreateSurface (win, inst, NULL, &sur); VkPhysicalDevice* dev; vkEnumeratePhysicalDevices (inst, &extCount, dev); vkGetPhysicalDeviceQueueProperties ( int run = 1; SDL_Event e; while (run) { while (SDL_PollEvent (&e)) { if (e.type == SDL_EVENT_KEY_DOWN) { if (e.key.key == SDLK_Q) { run = 0; } } SDL_Delay (16); } } vkDestroySurfaceKHR (inst, sur, NULL); vkDestroyInstance (inst, NULL); SDL_DestroyWindow (win); SDL_Quit (); return 0; }