#include #include #include #include "renderer.h" #include "platform.h" SDL_Window* window = nullptr; std::vector platform::getRequiredExtensions() { uint32_t count = 0; SDL_Vulkan_GetInstanceExtensions(window, &count, nullptr); std::vector names(count); SDL_Vulkan_GetInstanceExtensions(window, &count, names.data()); return names; } uint32_t platform::getTime() { return SDL_GetTicks(); } int main(int, char*[]) { window = SDL_CreateWindow("Graph", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE); if(!window) return -1; Renderer* renderer = new Renderer(); VkSurfaceKHR surface = nullptr; SDL_Vulkan_CreateSurface(window, renderer->getInstance(), &surface); RenderTarget* target = renderer->createSurfaceRenderTarget(surface); bool running = true; while(running) { SDL_Event event = {}; while(SDL_PollEvent(&event)) { if(event.type == SDL_QUIT) running = false; if(event.type == SDL_WINDOWEVENT) { if(event.window.event == SDL_WINDOWEVENT_RESIZED) target = renderer->createSurfaceRenderTarget(surface, target); } } renderer->render(target); } renderer->destroyRenderTarget(target); vkDestroySurfaceKHR(renderer->getInstance(), surface, nullptr); delete renderer; SDL_DestroyWindow(window); return 0; }