diff --git a/CMakeLists.txt b/CMakeLists.txt index 8cc5e0cc..2e90dcc6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,9 @@ cmake_minimum_required(VERSION 3.20) project(natsukashii CXX) -set(CXX_VERSION 17) -set(CXX_VERSION_REQUIRED TRUE) -set(FRONTEND "qt" CACHE INTERNAL "") + +set(CMAKE_CXX_VERSION 17) +set(CMAKE_CXX_VERSION_REQUIRED TRUE) + add_subdirectory(src) add_executable(natsukashii src/main.cpp) target_link_libraries(natsukashii cores frontend) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c8e6aa14..abbbb56a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.20) add_subdirectory(core) +set(FRONTEND "qt" CACHE INTERNAL "") + if(${FRONTEND} MATCHES "qt") add_subdirectory(frontend/qt) elseif(${FRONTEND} MATCHES "sdl") diff --git a/src/frontend/sdl/CMakeLists.txt b/src/frontend/sdl/CMakeLists.txt index 75f48cac..e9240521 100644 --- a/src/frontend/sdl/CMakeLists.txt +++ b/src/frontend/sdl/CMakeLists.txt @@ -1,2 +1,8 @@ cmake_minimum_required(VERSION 3.20) project(frontend) + +find_package(SDL2 REQUIRED) + +add_library(frontend Frontend.cpp Frontend.hpp) +target_include_directories(frontend PUBLIC .) +target_link_libraries(frontend PUBLIC SDL2) \ No newline at end of file diff --git a/src/frontend/sdl/Frontend.cpp b/src/frontend/sdl/Frontend.cpp new file mode 100644 index 00000000..500fc610 --- /dev/null +++ b/src/frontend/sdl/Frontend.cpp @@ -0,0 +1,15 @@ +#include + +namespace natsukashii::frontend { +App::~App() { + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); +} + +App::App() { + SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); + window = SDL_CreateWindow("natukashii", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN); + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); +} +} \ No newline at end of file diff --git a/src/frontend/sdl/Frontend.hpp b/src/frontend/sdl/Frontend.hpp new file mode 100644 index 00000000..0d41deb1 --- /dev/null +++ b/src/frontend/sdl/Frontend.hpp @@ -0,0 +1,12 @@ +#pragma once +#include + +namespace natsukashii::frontend { +struct App { + ~App(); + App(); +private: + SDL_Window *window = nullptr; + SDL_Renderer *renderer = nullptr; +}; +} \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index aa43497f..b9ba07b6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,3 +1,8 @@ -#include +#include -int main() {} +using namespace natsukashii::frontend; + +int main() { + App app; + return 0; +}