Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
graph/src/main.cpp

62 lines
1.6 KiB
C++
Raw Normal View History

2018-09-26 17:51:22 -04:00
#include <SDL.h>
2018-09-29 21:03:06 -04:00
#include <SDL_vulkan.h>
2018-10-01 21:02:27 -04:00
#include <iostream>
#include "renderer.h"
2018-09-29 21:03:06 -04:00
#include "platform.h"
SDL_Window* window = nullptr;
std::vector<const char*> platform::getRequiredExtensions() {
uint32_t count = 0;
SDL_Vulkan_GetInstanceExtensions(window, &count, nullptr);
std::vector<const char*> names(count);
SDL_Vulkan_GetInstanceExtensions(window, &count, names.data());
return names;
}
2018-09-26 17:51:22 -04:00
uint32_t platform::getTime() {
return SDL_GetTicks();
}
int main(int, char*[]) {
2018-10-01 21:02:27 -04:00
window = SDL_CreateWindow("Graph", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE);
if(!window)
return -1;
2018-09-26 17:51:22 -04:00
Renderer* renderer = new Renderer();
2018-09-27 00:22:33 -04:00
2018-09-29 21:03:06 -04:00
VkSurfaceKHR surface = nullptr;
SDL_Vulkan_CreateSurface(window, renderer->getInstance(), &surface);
RenderTarget* target = renderer->createSurfaceRenderTarget(surface);
2018-09-26 17:51:22 -04:00
bool running = true;
while(running) {
SDL_Event event = {};
while(SDL_PollEvent(&event)) {
if(event.type == SDL_QUIT)
running = false;
2018-10-01 21:02:27 -04:00
if(event.type == SDL_WINDOWEVENT) {
if(event.window.event == SDL_WINDOWEVENT_RESIZED)
target = renderer->createSurfaceRenderTarget(surface, target);
}
2018-09-26 17:51:22 -04:00
}
2018-10-01 19:14:44 -04:00
renderer->render(target);
2018-09-26 17:51:22 -04:00
}
2018-09-29 21:03:06 -04:00
renderer->destroyRenderTarget(target);
2018-10-01 21:02:27 -04:00
vkDestroySurfaceKHR(renderer->getInstance(), surface, nullptr);
delete renderer;
SDL_DestroyWindow(window);
2018-09-26 17:51:22 -04:00
return 0;
}