diff --git a/.gitignore b/.gitignore index dbce93e9..96a7979b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ *build*/ .idea/ roms/ -*.bin \ No newline at end of file +*.bin +*.sh +.cache/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e90dcc6..96e88f16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,8 @@ cmake_minimum_required(VERSION 3.20) project(natsukashii CXX) -set(CMAKE_CXX_VERSION 17) -set(CMAKE_CXX_VERSION_REQUIRED TRUE) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED TRUE) add_subdirectory(src) add_executable(natsukashii src/main.cpp) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index abbbb56a..f438893b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.20) add_subdirectory(core) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) set(FRONTEND "qt" CACHE INTERNAL "") if(${FRONTEND} MATCHES "qt") diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 6fe1d864..50808a1b 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1,5 +1,9 @@ cmake_minimum_required(VERSION 3.20) project(cores CXX) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + add_subdirectory(gb) add_library(cores BaseCore.cpp BaseCore.hpp common.hpp) target_include_directories(cores PUBLIC .) diff --git a/src/core/gb/CMakeLists.txt b/src/core/gb/CMakeLists.txt index 30acfc36..96915d6d 100644 --- a/src/core/gb/CMakeLists.txt +++ b/src/core/gb/CMakeLists.txt @@ -1,2 +1,4 @@ cmake_minimum_required(VERSION 3.20) project(gb CXX) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/src/frontend/qt/CMakeLists.txt b/src/frontend/qt/CMakeLists.txt index ffde786f..49624d70 100644 --- a/src/frontend/qt/CMakeLists.txt +++ b/src/frontend/qt/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.20) project(frontend) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) diff --git a/src/frontend/sdl/CMakeLists.txt b/src/frontend/sdl/CMakeLists.txt index e9240521..3d0dc11a 100644 --- a/src/frontend/sdl/CMakeLists.txt +++ b/src/frontend/sdl/CMakeLists.txt @@ -1,8 +1,10 @@ cmake_minimum_required(VERSION 3.20) project(frontend) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) 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 +target_link_libraries(frontend PUBLIC SDL2) diff --git a/src/frontend/sdl/Frontend.cpp b/src/frontend/sdl/Frontend.cpp index 500fc610..ce612989 100644 --- a/src/frontend/sdl/Frontend.cpp +++ b/src/frontend/sdl/Frontend.cpp @@ -1,4 +1,6 @@ #include +#include +#include namespace natsukashii::frontend { App::~App() { @@ -11,5 +13,14 @@ 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); + id = SDL_GetWindowID(window); +} + +void App::Run() { + while(!quit) { + SDL_Event e; + SDL_PollEvent(&e); + quit = e.type == SDL_WINDOWEVENT && e.window.event == SDL_WINDOWEVENT_CLOSE && e.window.windowID == id; + } +} } -} \ No newline at end of file diff --git a/src/frontend/sdl/Frontend.hpp b/src/frontend/sdl/Frontend.hpp index 0d41deb1..76cfff20 100644 --- a/src/frontend/sdl/Frontend.hpp +++ b/src/frontend/sdl/Frontend.hpp @@ -5,8 +5,11 @@ namespace natsukashii::frontend { struct App { ~App(); App(); + void Run(); private: SDL_Window *window = nullptr; SDL_Renderer *renderer = nullptr; + Uint32 id; + bool quit = false; }; -} \ No newline at end of file +} diff --git a/src/main.cpp b/src/main.cpp index b9ba07b6..d7fc0e98 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,7 @@ #include -using namespace natsukashii::frontend; - int main() { - App app; + natsukashii::frontend::App app; + app.Run(); return 0; }