diff --git a/CMakeLists.txt b/CMakeLists.txt index 156cfd3..3844a3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) find_package(SDL2 REQUIRED) find_package(Vulkan REQUIRED) -add_executable(Graph main.cpp) +add_executable(Graph + main.cpp + renderer.cpp) target_link_libraries(Graph PUBLIC SDL2::SDL2 SDL2::SDL2main ${Vulkan_LIBRARY}) target_include_directories(Graph PUBLIC ${Vulkan_INCLUDE_DIRS}) diff --git a/main.cpp b/main.cpp index b760894..d556a9b 100644 --- a/main.cpp +++ b/main.cpp @@ -1,18 +1,13 @@ -#include #include -#include + +#include "renderer.h" int main(int, char*[]) { - SDL_Window* window = SDL_CreateWindow("Graph", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_VULKAN); + SDL_Window* window = SDL_CreateWindow("Graph", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, 0); if(!window) return -1; - VkInstanceCreateInfo info = {}; - - VkInstance instance; - vkCreateInstance(&info, nullptr, &instance); - if(!instance) - return -1; + Renderer* renderer = new Renderer(); bool running = true; while(running) { @@ -23,7 +18,7 @@ int main(int, char*[]) { } } - vkDestroyInstance(instance, nullptr); + delete renderer; SDL_DestroyWindow(window); diff --git a/renderer.cpp b/renderer.cpp new file mode 100644 index 0000000..3ce8c31 --- /dev/null +++ b/renderer.cpp @@ -0,0 +1,12 @@ +#include "renderer.h" + +Renderer::Renderer() { + VkInstanceCreateInfo instanceCreateInfo = {}; + instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; + + vkCreateInstance(&instanceCreateInfo, nullptr, &instance_); +} + +Renderer::~Renderer() { + vkDestroyInstance(instance_, nullptr); +} diff --git a/renderer.h b/renderer.h new file mode 100644 index 0000000..a5296bb --- /dev/null +++ b/renderer.h @@ -0,0 +1,12 @@ +#pragma once + +#include + +class Renderer { +public: + Renderer(); + ~Renderer(); + +private: + VkInstance instance_ = nullptr; +};