diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..421668a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "external/SDL"] + path = external/SDL + url = https://github.com/spurious/SDL-mirror diff --git a/CMakeLists.txt b/CMakeLists.txt index 420e145..f781ee8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,4 +2,5 @@ cmake_minimum_required(VERSION 3.10) project(FourierAnalyzer) +add_subdirectory(external/SDL) add_subdirectory(src) \ No newline at end of file diff --git a/external/SDL b/external/SDL new file mode 160000 index 0000000..f606bee --- /dev/null +++ b/external/SDL @@ -0,0 +1 @@ +Subproject commit f606beea77a0ebe9b98f2aa8341b76341982c41c diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cd8130d..fe8d040 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,4 +4,16 @@ add_executable(fourier target_include_directories(fourier PRIVATE ${CMAKE_SOURCE_DIR}/include -) \ No newline at end of file + external/SDL/include +) + +target_link_libraries(fourier PRIVATE + SDL2 + SDL2main +) + +if(WIN32) + add_custom_command(TARGET fourier POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $ + ) +endif() \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 13e2518..185e8ed 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,40 @@ #include +#include int main(int argc, char** argv) { - std::cout << "Hello, World!" << std::endl; + SDL_Window* window; + SDL_Renderer* renderer; + + if (SDL_CreateWindowAndRenderer(800, 800, SDL_WINDOW_SHOWN, &window, &renderer)) + { + std::cerr << "Failed to initialize Window and Renderer" << std::endl; + return -1; + } + + SDL_Event event; + bool isOpen = true; + while (isOpen) + { + while (SDL_PollEvent(&event)) + { + if (event.type == SDL_WINDOWEVENT) + { + switch (event.window.event) + { + case SDL_WINDOWEVENT_CLOSE: isOpen = false; break; + } + } + } + + SDL_SetRenderDrawColor(renderer, 20, 40, 210, 255); + SDL_RenderClear(renderer); + + SDL_RenderPresent(renderer); + } + + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); return 0; } \ No newline at end of file