Simple SDL game loop

This commit is contained in:
2025-05-24 13:37:23 +02:00
parent 03f1a80834
commit 3b8a0024f1
11 changed files with 116 additions and 16 deletions

View File

@@ -5,9 +5,10 @@ project(HansTheGatherer)
# Option to switch real platform vs. SDL implementation...
find_package(SDL3 REQUIRED)
find_package(spdlog REQUIRED)
add_executable(HansTheGatherer main.cpp)
target_link_libraries(HansTheGatherer SDL3::SDL3)
target_link_libraries(HansTheGatherer SDL3::SDL3 spdlog::spdlog)
set_property(TARGET HansTheGatherer PROPERTY CXX_STANDARD 23)
set_property(TARGET HansTheGatherer PROPERTY CXX_STANDARD 20)

Binary file not shown.

View File

@@ -1,7 +1,17 @@
# ninja log v6
646 681 1748084217539431713 HansTheGatherer 56fe39e94f05f046
0 646 1748084216892589223 CMakeFiles/HansTheGatherer.dir/main.cpp.o f05113a49bef90a
1 31 1748084271977788386 build.ninja 8e402d244b09da2
1 40 1748084271980526268 HansTheGatherer 46a21811be68aff1
0 636 1748084284144344059 CMakeFiles/HansTheGatherer.dir/main.cpp.o f05113a49bef90a
636 673 1748084284780341193 HansTheGatherer 46a21811be68aff1
0 24 1748085895988350615 build.ninja 8e402d244b09da2
1 735 1748085886398945346 CMakeFiles/HansTheGatherer.dir/main.cpp.o fd03b4ecddc186cb
735 769 1748085887132948329 HansTheGatherer ed94f679f8ca40ee
1 25 1748085895988350615 build.ninja 8e402d244b09da2
1 697 1748085895991984332 CMakeFiles/HansTheGatherer.dir/main.cpp.o b4cb899b0b4e24eb
697 732 1748085896687987161 HansTheGatherer ed94f679f8ca40ee
1 693 1748085993855391696 CMakeFiles/HansTheGatherer.dir/main.cpp.o b4cb899b0b4e24eb
693 727 1748085994547394578 HansTheGatherer ed94f679f8ca40ee
1 696 1748086162957103608 CMakeFiles/HansTheGatherer.dir/main.cpp.o b4cb899b0b4e24eb
696 729 1748086163652106596 HansTheGatherer ed94f679f8ca40ee
1 704 1748086300260693724 CMakeFiles/HansTheGatherer.dir/main.cpp.o b4cb899b0b4e24eb
704 738 1748086300963696745 HansTheGatherer ed94f679f8ca40ee
1 679 1748086359530948456 CMakeFiles/HansTheGatherer.dir/main.cpp.o b4cb899b0b4e24eb
679 710 1748086360208951371 HansTheGatherer ed94f679f8ca40ee
1 657 1748086490791509825 CMakeFiles/HansTheGatherer.dir/main.cpp.o b4cb899b0b4e24eb
657 688 1748086491447512619 HansTheGatherer ed94f679f8ca40ee

View File

@@ -227,6 +227,12 @@ HansTheGatherer_SOURCE_DIR:STATIC=/home/derek/Git/HansTheGatherer
//The directory containing a CMake configuration file for SDL3.
SDL3_DIR:PATH=/usr/lib64/cmake/SDL3
//The directory containing a CMake configuration file for fmt.
fmt_DIR:PATH=/usr/lib64/cmake/fmt
//The directory containing a CMake configuration file for spdlog.
spdlog_DIR:PATH=/usr/lib64/cmake/spdlog
########################
# INTERNAL cache entries
@@ -310,6 +316,8 @@ CMAKE_GENERATOR_INSTANCE:INTERNAL=
CMAKE_GENERATOR_PLATFORM:INTERNAL=
//Name of generator toolset.
CMAKE_GENERATOR_TOOLSET:INTERNAL=
//Test CMAKE_HAVE_LIBC_PTHREAD
CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1
//Source directory with the top level CMakeLists.txt file for this
// project
CMAKE_HOME_DIRECTORY:INTERNAL=/home/derek/Git/HansTheGatherer
@@ -377,6 +385,8 @@ CMAKE_TAPI-ADVANCED:INTERNAL=1
CMAKE_UNAME:INTERNAL=/usr/bin/uname
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
//Details about finding Threads
FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
//linker supports push/pop state
_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
//linker supports push/pop state

View File

@@ -516,3 +516,36 @@ events:
Running the CXX compiler's linker: "/usr/bin/ld" "-v"
GNU ld version 2.44-3.fc42
...
---
events:
-
kind: "try_compile-v1"
backtrace:
- "/usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake:108 (try_compile)"
- "/usr/share/cmake/Modules/CheckCSourceCompiles.cmake:58 (cmake_check_source_compiles)"
- "/usr/share/cmake/Modules/FindThreads.cmake:97 (CHECK_C_SOURCE_COMPILES)"
- "/usr/share/cmake/Modules/FindThreads.cmake:163 (_threads_check_libc)"
- "/usr/lib64/cmake/spdlog/spdlogConfig.cmake:40 (find_package)"
- "CMakeLists.txt:8 (find_package)"
checks:
- "Performing Test CMAKE_HAVE_LIBC_PTHREAD"
directories:
source: "/home/derek/Git/HansTheGatherer/build/CMakeFiles/CMakeScratch/TryCompile-DM2u3W"
binary: "/home/derek/Git/HansTheGatherer/build/CMakeFiles/CMakeScratch/TryCompile-DM2u3W"
cmakeVariables:
CMAKE_C_FLAGS: ""
CMAKE_C_FLAGS_DEBUG: "-g"
CMAKE_EXE_LINKER_FLAGS: ""
buildResult:
variable: "CMAKE_HAVE_LIBC_PTHREAD"
cached: true
stdout: |
Change Dir: '/home/derek/Git/HansTheGatherer/build/CMakeFiles/CMakeScratch/TryCompile-DM2u3W'
Run Build Command(s): /usr/bin/ninja-build -v cmTC_f87ad
[1/2] /usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_f87ad.dir/src.c.o -c /home/derek/Git/HansTheGatherer/build/CMakeFiles/CMakeScratch/TryCompile-DM2u3W/src.c
[2/2] : && /usr/bin/cc CMakeFiles/cmTC_f87ad.dir/src.c.o -o cmTC_f87ad && :
exitCode: 0
...

Binary file not shown.

View File

@@ -45,8 +45,9 @@ cmake_ninja_workdir = /home/derek/Git/HansTheGatherer/build/
build cmake_object_order_depends_target_HansTheGatherer: phony || .
build CMakeFiles/HansTheGatherer.dir/main.cpp.o: CXX_COMPILER__HansTheGatherer_unscanned_ /home/derek/Git/HansTheGatherer/main.cpp || cmake_object_order_depends_target_HansTheGatherer
DEFINES = -DFMT_SHARED -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB
DEP_FILE = CMakeFiles/HansTheGatherer.dir/main.cpp.o.d
FLAGS = -std=gnu++23
FLAGS = -std=gnu++20
OBJECT_DIR = CMakeFiles/HansTheGatherer.dir
OBJECT_FILE_DIR = CMakeFiles/HansTheGatherer.dir
@@ -58,10 +59,10 @@ build CMakeFiles/HansTheGatherer.dir/main.cpp.o: CXX_COMPILER__HansTheGatherer_u
#############################################
# Link the executable HansTheGatherer
build HansTheGatherer: CXX_EXECUTABLE_LINKER__HansTheGatherer_ CMakeFiles/HansTheGatherer.dir/main.cpp.o | /usr/lib64/libSDL3.so.0.2.12
build HansTheGatherer: CXX_EXECUTABLE_LINKER__HansTheGatherer_ CMakeFiles/HansTheGatherer.dir/main.cpp.o | /usr/lib64/libSDL3.so.0.2.12 /usr/lib64/libspdlog.so.1.15.3 /usr/lib64/libfmt.so.11.1.4
DEP_FILE = CMakeFiles/HansTheGatherer.dir/link.d
LINK_FLAGS = -Wl,--dependency-file=CMakeFiles/HansTheGatherer.dir/link.d
LINK_LIBRARIES = /usr/lib64/libSDL3.so.0.2.12
LINK_LIBRARIES = /usr/lib64/libSDL3.so.0.2.12 /usr/lib64/libspdlog.so.1.15.3 /usr/lib64/libfmt.so.11.1.4
OBJECT_DIR = CMakeFiles/HansTheGatherer.dir
POST_BUILD = :
PRE_LINK = :
@@ -112,14 +113,14 @@ build all: phony HansTheGatherer
#############################################
# Re-run CMake if any of its inputs changed.
build build.ninja: RERUN_CMAKE | /home/derek/Git/HansTheGatherer/CMakeLists.txt /usr/lib64/cmake/SDL3/SDL3Config.cmake /usr/lib64/cmake/SDL3/SDL3ConfigVersion.cmake /usr/lib64/cmake/SDL3/SDL3headersTargets.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets-relwithdebinfo.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets.cmake /usr/share/cmake/Modules/CMakeCInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/GNU-C.cmake /usr/share/cmake/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/FeatureSummary.cmake /usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Linker/GNU-C.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.31.6/CMakeCCompiler.cmake CMakeFiles/3.31.6/CMakeCXXCompiler.cmake CMakeFiles/3.31.6/CMakeSystem.cmake
build build.ninja: RERUN_CMAKE | /home/derek/Git/HansTheGatherer/CMakeLists.txt /usr/lib64/cmake/SDL3/SDL3Config.cmake /usr/lib64/cmake/SDL3/SDL3ConfigVersion.cmake /usr/lib64/cmake/SDL3/SDL3headersTargets.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets-relwithdebinfo.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets.cmake /usr/lib64/cmake/fmt/fmt-config-version.cmake /usr/lib64/cmake/fmt/fmt-config.cmake /usr/lib64/cmake/fmt/fmt-targets-relwithdebinfo.cmake /usr/lib64/cmake/fmt/fmt-targets.cmake /usr/lib64/cmake/spdlog/spdlogConfig.cmake /usr/lib64/cmake/spdlog/spdlogConfigTargets-release.cmake /usr/lib64/cmake/spdlog/spdlogConfigTargets.cmake /usr/lib64/cmake/spdlog/spdlogConfigVersion.cmake /usr/share/cmake/Modules/CMakeCInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/CheckCSourceCompiles.cmake /usr/share/cmake/Modules/CheckIncludeFile.cmake /usr/share/cmake/Modules/CheckLibraryExists.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/GNU-C.cmake /usr/share/cmake/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/FeatureSummary.cmake /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake /usr/share/cmake/Modules/FindPackageMessage.cmake /usr/share/cmake/Modules/FindThreads.cmake /usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake /usr/share/cmake/Modules/Linker/GNU-C.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.31.6/CMakeCCompiler.cmake CMakeFiles/3.31.6/CMakeCXXCompiler.cmake CMakeFiles/3.31.6/CMakeSystem.cmake
pool = console
#############################################
# A missing CMake input file is not an error.
build /home/derek/Git/HansTheGatherer/CMakeLists.txt /usr/lib64/cmake/SDL3/SDL3Config.cmake /usr/lib64/cmake/SDL3/SDL3ConfigVersion.cmake /usr/lib64/cmake/SDL3/SDL3headersTargets.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets-relwithdebinfo.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets.cmake /usr/share/cmake/Modules/CMakeCInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/GNU-C.cmake /usr/share/cmake/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/FeatureSummary.cmake /usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Linker/GNU-C.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.31.6/CMakeCCompiler.cmake CMakeFiles/3.31.6/CMakeCXXCompiler.cmake CMakeFiles/3.31.6/CMakeSystem.cmake: phony
build /home/derek/Git/HansTheGatherer/CMakeLists.txt /usr/lib64/cmake/SDL3/SDL3Config.cmake /usr/lib64/cmake/SDL3/SDL3ConfigVersion.cmake /usr/lib64/cmake/SDL3/SDL3headersTargets.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets-relwithdebinfo.cmake /usr/lib64/cmake/SDL3/SDL3sharedTargets.cmake /usr/lib64/cmake/fmt/fmt-config-version.cmake /usr/lib64/cmake/fmt/fmt-config.cmake /usr/lib64/cmake/fmt/fmt-targets-relwithdebinfo.cmake /usr/lib64/cmake/fmt/fmt-targets.cmake /usr/lib64/cmake/spdlog/spdlogConfig.cmake /usr/lib64/cmake/spdlog/spdlogConfigTargets-release.cmake /usr/lib64/cmake/spdlog/spdlogConfigTargets.cmake /usr/lib64/cmake/spdlog/spdlogConfigVersion.cmake /usr/share/cmake/Modules/CMakeCInformation.cmake /usr/share/cmake/Modules/CMakeCXXInformation.cmake /usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake /usr/share/cmake/Modules/CMakeGenericSystem.cmake /usr/share/cmake/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake/Modules/CMakeLanguageInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake/Modules/CheckCSourceCompiles.cmake /usr/share/cmake/Modules/CheckIncludeFile.cmake /usr/share/cmake/Modules/CheckLibraryExists.cmake /usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake/Modules/Compiler/GNU-C.cmake /usr/share/cmake/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake/Modules/Compiler/GNU.cmake /usr/share/cmake/Modules/FeatureSummary.cmake /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake /usr/share/cmake/Modules/FindPackageMessage.cmake /usr/share/cmake/Modules/FindThreads.cmake /usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake /usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake /usr/share/cmake/Modules/Linker/GNU-C.cmake /usr/share/cmake/Modules/Linker/GNU-CXX.cmake /usr/share/cmake/Modules/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/GNU.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake/Modules/Platform/Linux-GNU.cmake /usr/share/cmake/Modules/Platform/Linux-Initialize.cmake /usr/share/cmake/Modules/Platform/Linux.cmake /usr/share/cmake/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.31.6/CMakeCCompiler.cmake CMakeFiles/3.31.6/CMakeCXXCompiler.cmake CMakeFiles/3.31.6/CMakeSystem.cmake: phony
#############################################

View File

@@ -1,7 +1,7 @@
[
{
"directory": "/home/derek/Git/HansTheGatherer/build",
"command": "/usr/bin/c++ -std=gnu++23 -o CMakeFiles/HansTheGatherer.dir/main.cpp.o -c /home/derek/Git/HansTheGatherer/main.cpp",
"command": "/usr/bin/c++ -DFMT_SHARED -DSPDLOG_COMPILED_LIB -DSPDLOG_FMT_EXTERNAL -DSPDLOG_SHARED_LIB -std=gnu++20 -o CMakeFiles/HansTheGatherer.dir/main.cpp.o -c /home/derek/Git/HansTheGatherer/main.cpp",
"file": "/home/derek/Git/HansTheGatherer/main.cpp",
"output": "CMakeFiles/HansTheGatherer.dir/main.cpp.o"
}

View File

@@ -1,7 +1,52 @@
#include <print>
#include <SDL3/SDL.h>
#include <SDL3/SDL_error.h>
#include <SDL3/SDL_render.h>
#include <spdlog/spdlog.h>
const uint8_t image_data[] =
{
#embed "main.cpp"
};
auto main() -> int {
std::println("Hello World!");
spdlog::info("Initialize SDL...");
bool sdl_success = SDL_Init(SDL_INIT_VIDEO);
if (!sdl_success) {
spdlog::critical("Failed to initialize SDL!\nCause: {}", SDL_GetError());
std::terminate();
}
auto *sdl_window = SDL_CreateWindow("HansTheGatherer", 400, 280, 0);
if (sdl_window == nullptr) {
spdlog::critical("Failed to create SDL window!\nCause: {}", SDL_GetError());
}
auto *sdl_renderer = SDL_CreateRenderer(sdl_window, nullptr);
if (sdl_renderer == nullptr) {
spdlog::critical("Failed to create SDL renderer!\nCause: {}",
SDL_GetError());
}
bool exit_gameloop = false;
while (!exit_gameloop) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_EVENT_QUIT:
exit_gameloop = true;
break;
case SDL_EVENT_KEY_DOWN:
if (event.key.key == SDLK_ESCAPE) {
exit_gameloop = true;
}
break;
}
}
}
SDL_DestroyRenderer(sdl_renderer);
SDL_DestroyWindow(sdl_window);
SDL_Quit();
return 0;
}