diff --git a/.cmake/api/v1/query/cache-v2 b/.cmake/api/v1/query/cache-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/.cmake/api/v1/query/cmakeFiles-v1 b/.cmake/api/v1/query/cmakeFiles-v1 deleted file mode 100644 index e69de29..0000000 diff --git a/.cmake/api/v1/query/codemodel-v2 b/.cmake/api/v1/query/codemodel-v2 deleted file mode 100644 index e69de29..0000000 diff --git a/.cmake/api/v1/query/toolchains-v1 b/.cmake/api/v1/query/toolchains-v1 deleted file mode 100644 index e69de29..0000000 diff --git a/.cmake/api/v1/reply/cache-v2-f48b714d1e4412ccc47b.json b/.cmake/api/v1/reply/cache-v2-f48b714d1e4412ccc47b.json deleted file mode 100644 index fe5103e..0000000 --- a/.cmake/api/v1/reply/cache-v2-f48b714d1e4412ccc47b.json +++ /dev/null @@ -1,1263 +0,0 @@ -{ - "entries" : - [ - { - "name" : "CMAKE_ADDR2LINE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/addr2line" - }, - { - "name" : "CMAKE_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/ar" - }, - { - "name" : "CMAKE_BUILD_TYPE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CACHEFILE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "This is the directory where this CMakeCache.txt was created" - } - ], - "type" : "INTERNAL", - "value" : "/media/garrett/Storage/Projects/Hydrangea" - }, - { - "name" : "CMAKE_CACHE_MAJOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Major version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "3" - }, - { - "name" : "CMAKE_CACHE_MINOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Minor version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "26" - }, - { - "name" : "CMAKE_CACHE_PATCH_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Patch version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "4" - }, - { - "name" : "CMAKE_COLOR_DIAGNOSTICS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Enable colored diagnostics throughout." - } - ], - "type" : "BOOL", - "value" : "ON" - }, - { - "name" : "CMAKE_COLOR_MAKEFILE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Enable/Disable color output during build." - } - ], - "type" : "BOOL", - "value" : "ON" - }, - { - "name" : "CMAKE_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake executable." - } - ], - "type" : "INTERNAL", - "value" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/cmake" - }, - { - "name" : "CMAKE_CPACK_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cpack program executable." - } - ], - "type" : "INTERNAL", - "value" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/cpack" - }, - { - "name" : "CMAKE_CTEST_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to ctest program executable." - } - ], - "type" : "INTERNAL", - "value" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/ctest" - }, - { - "name" : "CMAKE_CXX_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "CXX compiler" - } - ], - "type" : "STRING", - "value" : "/usr/bin/c++" - }, - { - "name" : "CMAKE_CXX_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/gcc-ar-11" - }, - { - "name" : "CMAKE_CXX_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/gcc-ranlib-11" - }, - { - "name" : "CMAKE_CXX_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "-g" - }, - { - "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "-O3 -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_C_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "C compiler" - } - ], - "type" : "STRING", - "value" : "/usr/bin/cc" - }, - { - "name" : "CMAKE_C_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/gcc-ar-11" - }, - { - "name" : "CMAKE_C_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/gcc-ranlib-11" - }, - { - "name" : "CMAKE_C_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "-g" - }, - { - "name" : "CMAKE_C_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "-O3 -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_DLLTOOL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "CMAKE_DLLTOOL-NOTFOUND" - }, - { - "name" : "CMAKE_EXECUTABLE_FORMAT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Executable file format" - } - ], - "type" : "INTERNAL", - "value" : "ELF" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Enable/Disable output of compile commands during generation." - } - ], - "type" : "BOOL", - "value" : "" - }, - { - "name" : "CMAKE_EXTRA_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of external makefile project generator." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_FIND_PACKAGE_REDIRECTS_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake." - } - ], - "type" : "STATIC", - "value" : "/media/garrett/Storage/Projects/Hydrangea/CMakeFiles/pkgRedirects" - }, - { - "name" : "CMAKE_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator." - } - ], - "type" : "INTERNAL", - "value" : "Unix Makefiles" - }, - { - "name" : "CMAKE_GENERATOR_INSTANCE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Generator instance identifier." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator platform." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_TOOLSET", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator toolset." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_HOME_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Source directory with the top level CMakeLists.txt file for this project" - } - ], - "type" : "INTERNAL", - "value" : "/media/garrett/Storage/Projects/Hydrangea" - }, - { - "name" : "CMAKE_INSTALL_PREFIX", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install path prefix, prepended onto install directories." - } - ], - "type" : "PATH", - "value" : "/usr/local" - }, - { - "name" : "CMAKE_INSTALL_SO_NO_EXE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install .so files without execute permission." - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_LINKER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/ld" - }, - { - "name" : "CMAKE_MAKE_PROGRAM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/gmake" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_NM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/nm" - }, - { - "name" : "CMAKE_NUMBER_OF_MAKEFILES", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "number of local generators" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_OBJCOPY", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/objcopy" - }, - { - "name" : "CMAKE_OBJDUMP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/objdump" - }, - { - "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Platform information initialized" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_PROJECT_DESCRIPTION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_HOMEPAGE_URL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "Hydrangea" - }, - { - "name" : "CMAKE_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/ranlib" - }, - { - "name" : "CMAKE_READELF", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/readelf" - }, - { - "name" : "CMAKE_ROOT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake installation." - } - ], - "type" : "INTERNAL", - "value" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SKIP_INSTALL_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_SKIP_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when using shared libraries." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STRIP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/strip" - }, - { - "name" : "CMAKE_UNAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "uname command" - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/uname" - }, - { - "name" : "CMAKE_VERBOSE_MAKEFILE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." - } - ], - "type" : "BOOL", - "value" : "FALSE" - }, - { - "name" : "Hydrangea_BINARY_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/media/garrett/Storage/Projects/Hydrangea" - }, - { - "name" : "Hydrangea_IS_TOP_LEVEL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "ON" - }, - { - "name" : "Hydrangea_SOURCE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/media/garrett/Storage/Projects/Hydrangea" - }, - { - "name" : "SDL2_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The directory containing a CMake configuration file for SDL2." - } - ], - "type" : "PATH", - "value" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2" - }, - { - "name" : "SDL2_GPU_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The directory containing a CMake configuration file for SDL2_GPU." - } - ], - "type" : "PATH", - "value" : "SDL2_GPU_DIR-NOTFOUND" - }, - { - "name" : "SDL2_LIBRARY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to a library." - } - ], - "type" : "FILEPATH", - "value" : "SDL2_LIBRARY-NOTFOUND" - }, - { - "name" : "SDL2_gpu_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The directory containing a CMake configuration file for SDL2_gpu." - } - ], - "type" : "PATH", - "value" : "SDL2_gpu_DIR-NOTFOUND" - }, - { - "name" : "SDL_GPU_LIBRARY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to a library." - } - ], - "type" : "FILEPATH", - "value" : "/usr/local/lib/libSDL2_gpu.so" - }, - { - "name" : "_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "linker supports push/pop state" - } - ], - "type" : "INTERNAL", - "value" : "TRUE" - } - ], - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } -} diff --git a/.cmake/api/v1/reply/cmakeFiles-v1-13576cbc081bae598543.json b/.cmake/api/v1/reply/cmakeFiles-v1-13576cbc081bae598543.json deleted file mode 100644 index 1ebb327..0000000 --- a/.cmake/api/v1/reply/cmakeFiles-v1-13576cbc081bae598543.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "inputs" : - [ - { - "path" : "CMakeLists.txt" - }, - { - "path" : "CMakeFiles/3.26.4/CMakeSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeSystemSpecificInitialize.cmake" - }, - { - "path" : "CMakeFiles/3.26.4/CMakeCCompiler.cmake" - }, - { - "path" : "CMakeFiles/3.26.4/CMakeCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeSystemSpecificInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeGenericSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeInitializeConfigs.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/UnixPaths.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCXXInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/Platform/Linux-GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isExternal" : true, - "path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake" - }, - { - "isExternal" : true, - "path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake" - } - ], - "kind" : "cmakeFiles", - "paths" : - { - "build" : "/media/garrett/Storage/Projects/Hydrangea", - "source" : "/media/garrett/Storage/Projects/Hydrangea" - }, - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/.cmake/api/v1/reply/codemodel-v2-330b5f213693ec063c5e.json b/.cmake/api/v1/reply/codemodel-v2-330b5f213693ec063c5e.json deleted file mode 100644 index 23a41ae..0000000 --- a/.cmake/api/v1/reply/codemodel-v2-330b5f213693ec063c5e.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "configurations" : - [ - { - "directories" : - [ - { - "build" : ".", - "jsonFile" : "directory-.-f5ebdc15457944623624.json", - "minimumCMakeVersion" : - { - "string" : "3.22.1" - }, - "projectIndex" : 0, - "source" : ".", - "targetIndexes" : - [ - 0 - ] - } - ], - "name" : "", - "projects" : - [ - { - "directoryIndexes" : - [ - 0 - ], - "name" : "Hydrangea", - "targetIndexes" : - [ - 0 - ] - } - ], - "targets" : - [ - { - "directoryIndex" : 0, - "id" : "game::@6890427a1f51a3e7e1df", - "jsonFile" : "target-game-c928b7f21fd872f316af.json", - "name" : "game", - "projectIndex" : 0 - } - ] - } - ], - "kind" : "codemodel", - "paths" : - { - "build" : "/media/garrett/Storage/Projects/Hydrangea", - "source" : "/media/garrett/Storage/Projects/Hydrangea" - }, - "version" : - { - "major" : 2, - "minor" : 5 - } -} diff --git a/.cmake/api/v1/reply/directory-.-f5ebdc15457944623624.json b/.cmake/api/v1/reply/directory-.-f5ebdc15457944623624.json deleted file mode 100644 index 3a67af9..0000000 --- a/.cmake/api/v1/reply/directory-.-f5ebdc15457944623624.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "backtraceGraph" : - { - "commands" : [], - "files" : [], - "nodes" : [] - }, - "installers" : [], - "paths" : - { - "build" : ".", - "source" : "." - } -} diff --git a/.cmake/api/v1/reply/index-2023-10-03T05-15-15-0196.json b/.cmake/api/v1/reply/index-2023-10-03T05-15-15-0196.json deleted file mode 100644 index 46d2421..0000000 --- a/.cmake/api/v1/reply/index-2023-10-03T05-15-15-0196.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "cmake" : - { - "generator" : - { - "multiConfig" : false, - "name" : "Unix Makefiles" - }, - "paths" : - { - "cmake" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/cmake", - "cpack" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/cpack", - "ctest" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/bin/ctest", - "root" : "/home/garrett/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/232.9921.42/bin/cmake/linux/x64/share/cmake-3.26" - }, - "version" : - { - "isDirty" : false, - "major" : 3, - "minor" : 26, - "patch" : 4, - "string" : "3.26.4", - "suffix" : "" - } - }, - "objects" : - [ - { - "jsonFile" : "codemodel-v2-330b5f213693ec063c5e.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 5 - } - }, - { - "jsonFile" : "cache-v2-f48b714d1e4412ccc47b.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-13576cbc081bae598543.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - { - "jsonFile" : "toolchains-v1-99265b04de7ada3aac9e.json", - "kind" : "toolchains", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ], - "reply" : - { - "cache-v2" : - { - "jsonFile" : "cache-v2-f48b714d1e4412ccc47b.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - "cmakeFiles-v1" : - { - "jsonFile" : "cmakeFiles-v1-13576cbc081bae598543.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - "codemodel-v2" : - { - "jsonFile" : "codemodel-v2-330b5f213693ec063c5e.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 5 - } - }, - "toolchains-v1" : - { - "jsonFile" : "toolchains-v1-99265b04de7ada3aac9e.json", - "kind" : "toolchains", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - } -} diff --git a/.cmake/api/v1/reply/target-game-c928b7f21fd872f316af.json b/.cmake/api/v1/reply/target-game-c928b7f21fd872f316af.json deleted file mode 100644 index 790a3aa..0000000 --- a/.cmake/api/v1/reply/target-game-c928b7f21fd872f316af.json +++ /dev/null @@ -1,598 +0,0 @@ -{ - "artifacts" : - [ - { - "path" : "game" - } - ], - "backtrace" : 1, - "backtraceGraph" : - { - "commands" : - [ - "add_executable", - "link_directories", - "target_link_libraries", - "include_directories" - ], - "files" : - [ - "CMakeLists.txt" - ], - "nodes" : - [ - { - "file" : 0 - }, - { - "command" : 0, - "file" : 0, - "line" : 24, - "parent" : 0 - }, - { - "command" : 1, - "file" : 0, - "line" : 14, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 30, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 31, - "parent" : 0 - }, - { - "command" : 3, - "file" : 0, - "line" : 10, - "parent" : 0 - }, - { - "command" : 3, - "file" : 0, - "line" : 18, - "parent" : 0 - } - ] - }, - "compileGroups" : - [ - { - "compileCommandFragments" : - [ - { - "fragment" : "-std=gnu++14 -fdiagnostics-color=always" - } - ], - "includes" : - [ - { - "backtrace" : 5, - "path" : "/usr/include/SDL2" - }, - { - "backtrace" : 6, - "path" : "/media/garrett/Storage/Projects/Hydrangea/include" - } - ], - "language" : "CXX", - "languageStandard" : - { - "backtraces" : - [ - 1 - ], - "standard" : "14" - }, - "sourceIndexes" : - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55 - ] - } - ], - "id" : "game::@6890427a1f51a3e7e1df", - "link" : - { - "commandFragments" : - [ - { - "fragment" : "", - "role" : "flags" - }, - { - "backtrace" : 2, - "fragment" : "-L/src", - "role" : "libraryPath" - }, - { - "fragment" : "-Wl,-rpath,/src", - "role" : "libraries" - }, - { - "backtrace" : 3, - "fragment" : "-L/usr/lib/x86_64-linux-gnu -lSDL2", - "role" : "libraries" - }, - { - "backtrace" : 4, - "fragment" : "-lSDL2_gpu", - "role" : "libraries" - } - ], - "language" : "CXX" - }, - "name" : "game", - "nameOnDisk" : "game", - "paths" : - { - "build" : ".", - "source" : "." - }, - "sourceGroups" : - [ - { - "name" : "Source Files", - "sourceIndexes" : - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55 - ] - } - ], - "sources" : - [ - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/game.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/input_manager.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/main.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/node.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/player.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/scene.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/sprite.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/static_body.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/util.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/window.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_broad_phase.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_chain_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_circle_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collide_circle.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collide_edge.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collide_polygon.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collision.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_distance.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_dynamic_tree.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_edge_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_polygon_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_time_of_impact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_block_allocator.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_draw.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_math.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_settings.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_stack_allocator.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_timer.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_body.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_chain_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_chain_polygon_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_contact_manager.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_contact_solver.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_distance_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_edge_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_edge_polygon_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_fixture.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_friction_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_gear_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_island.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_motor_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_mouse_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_polygon_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_polygon_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_prismatic_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_pulley_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_revolute_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_weld_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_wheel_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_world.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_world_callbacks.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/rope/b2_rope.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/fmt/format.cc", - "sourceGroupIndex" : 0 - } - ], - "type" : "EXECUTABLE" -} diff --git a/.cmake/api/v1/reply/toolchains-v1-99265b04de7ada3aac9e.json b/.cmake/api/v1/reply/toolchains-v1-99265b04de7ada3aac9e.json deleted file mode 100644 index ae326b1..0000000 --- a/.cmake/api/v1/reply/toolchains-v1-99265b04de7ada3aac9e.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "kind" : "toolchains", - "toolchains" : - [ - { - "compiler" : - { - "id" : "GNU", - "implicit" : - { - "includeDirectories" : - [ - "/usr/lib/gcc/x86_64-linux-gnu/11/include", - "/usr/local/include", - "/usr/include/x86_64-linux-gnu", - "/usr/include" - ], - "linkDirectories" : - [ - "/usr/lib/gcc/x86_64-linux-gnu/11", - "/usr/lib/x86_64-linux-gnu", - "/usr/lib", - "/lib/x86_64-linux-gnu", - "/lib" - ], - "linkFrameworkDirectories" : [], - "linkLibraries" : - [ - "gcc", - "gcc_s", - "c", - "gcc", - "gcc_s" - ] - }, - "path" : "/usr/bin/cc", - "version" : "11.4.0" - }, - "language" : "C", - "sourceFileExtensions" : - [ - "c", - "m" - ] - }, - { - "compiler" : - { - "id" : "GNU", - "implicit" : - { - "includeDirectories" : - [ - "/usr/include/c++/11", - "/usr/include/x86_64-linux-gnu/c++/11", - "/usr/include/c++/11/backward", - "/usr/lib/gcc/x86_64-linux-gnu/11/include", - "/usr/local/include", - "/usr/include/x86_64-linux-gnu", - "/usr/include" - ], - "linkDirectories" : - [ - "/usr/lib/gcc/x86_64-linux-gnu/11", - "/usr/lib/x86_64-linux-gnu", - "/usr/lib", - "/lib/x86_64-linux-gnu", - "/lib" - ], - "linkFrameworkDirectories" : [], - "linkLibraries" : - [ - "stdc++", - "m", - "gcc_s", - "gcc", - "c", - "gcc_s", - "gcc" - ] - }, - "path" : "/usr/bin/c++", - "version" : "11.4.0" - }, - "language" : "CXX", - "sourceFileExtensions" : - [ - "C", - "M", - "c++", - "cc", - "cpp", - "cxx", - "mm", - "mpp", - "CPP", - "ixx", - "cppm" - ] - } - ], - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/.gitignore b/.gitignore index 23b589a..b434c2a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,20 @@ +# CMake and make files cmake_install.cmake CMakeCache.txt CMakeFiles/ CMakeTmp/ Makefile +build/ + +# .folders .vscode/ -compile.sh +.cmake/ +.idea/ + +# scripts, execs, etc +build.sh +test.cpp game notes/ -Testing/ \ No newline at end of file +Testing/ +testing/ \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 13566b8..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/Hydrangea.iml b/.idea/Hydrangea.iml deleted file mode 100644 index f08604b..0000000 --- a/.idea/Hydrangea.iml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index efbbd35..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 8651fbb..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 54206b4..5a543a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,19 +17,18 @@ set(SDL_GPU_LIBS SDL2_gpu ${GL_LIBRARIES}) # Then bring in the local source files and headers into the project include_directories(include) -file(GLOB SOURCES "src/*.cpp") # Base engine source files -file(GLOB BOX2D_SOURCES "src/box2d/*/*.cpp") # box2d Physics engine -file(GLOB FMT_SOURCES "src/fmt/*.cc") # fmt String formatter lib +file(GLOB_RECURSE SOURCES "src/*.cpp") # Base engine source files +file(GLOB_RECURSE BOX2D_SOURCES "src/box2d/*.cpp") # box2d Physics engine +file(GLOB_RECURSE FMT_SOURCES "src/fmt/*.cc") # fmt String formatter lib add_executable( ${OUT_NAME} ${SOURCES} ${BOX2D_SOURCES} ${FMT_SOURCES} - ) +) target_link_libraries(${OUT_NAME} ${SDL2_LIBRARIES}) target_link_libraries(${OUT_NAME} ${SDL_GPU_LIBS}) -#target_link_libraries(${OUT_NAME} box2d) get_target_property(OUT ${OUT_NAME} LINK_LIBRARIES) message(STATUS ${OUT}) diff --git a/build.sh b/build.sh deleted file mode 100755 index dc8d919..0000000 --- a/build.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -export LD_LIBRARY_PATH="/usr/local/lib" -cmake CMakeLists.txt -make -j 5 - -if [ "$1" == "play" ]; then - ./game -fi \ No newline at end of file diff --git a/build/.cmake/api/v1/query/client-vscode/query.json b/build/.cmake/api/v1/query/client-vscode/query.json deleted file mode 100644 index 82bb964..0000000 --- a/build/.cmake/api/v1/query/client-vscode/query.json +++ /dev/null @@ -1 +0,0 @@ -{"requests":[{"kind":"cache","version":2},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1},{"kind":"cmakeFiles","version":1}]} \ No newline at end of file diff --git a/build/.cmake/api/v1/reply/cache-v2-5b5f3a9c60370adcf8ab.json b/build/.cmake/api/v1/reply/cache-v2-5b5f3a9c60370adcf8ab.json deleted file mode 100644 index eb903e9..0000000 --- a/build/.cmake/api/v1/reply/cache-v2-5b5f3a9c60370adcf8ab.json +++ /dev/null @@ -1,1159 +0,0 @@ -{ - "entries" : - [ - { - "name" : "CMAKE_ADDR2LINE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-addr2line" - }, - { - "name" : "CMAKE_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-ar" - }, - { - "name" : "CMAKE_BUILD_TYPE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "STRING", - "value" : "Debug" - }, - { - "name" : "CMAKE_CACHEFILE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "This is the directory where this CMakeCache.txt was created" - } - ], - "type" : "INTERNAL", - "value" : "/media/garrett/Storage/Projects/Hydrangea/build" - }, - { - "name" : "CMAKE_CACHE_MAJOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Major version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "3" - }, - { - "name" : "CMAKE_CACHE_MINOR_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Minor version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "22" - }, - { - "name" : "CMAKE_CACHE_PATCH_VERSION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Patch version of cmake used to create the current loaded cache" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake executable." - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/cmake" - }, - { - "name" : "CMAKE_CPACK_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to cpack program executable." - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/cpack" - }, - { - "name" : "CMAKE_CTEST_COMMAND", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to ctest program executable." - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/ctest" - }, - { - "name" : "CMAKE_CXX_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-g++-11" - }, - { - "name" : "CMAKE_CXX_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-gcc-ar-11" - }, - { - "name" : "CMAKE_CXX_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-gcc-ranlib-11" - }, - { - "name" : "CMAKE_CXX_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_CXX_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "-g" - }, - { - "name" : "CMAKE_CXX_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "-O3 -DNDEBUG" - }, - { - "name" : "CMAKE_CXX_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the CXX compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_C_COMPILER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-gcc-11" - }, - { - "name" : "CMAKE_C_COMPILER_AR", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-gcc-ar-11" - }, - { - "name" : "CMAKE_C_COMPILER_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-gcc-ranlib-11" - }, - { - "name" : "CMAKE_C_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_C_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "-g" - }, - { - "name" : "CMAKE_C_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "-Os -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "-O3 -DNDEBUG" - }, - { - "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "-O2 -g -DNDEBUG" - }, - { - "name" : "CMAKE_DLLTOOL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "CMAKE_DLLTOOL-NOTFOUND" - }, - { - "name" : "CMAKE_EXECUTABLE_FORMAT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Executable file format" - } - ], - "type" : "INTERNAL", - "value" : "ELF" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "No help, variable specified on the command line." - } - ], - "type" : "BOOL", - "value" : "TRUE" - }, - { - "name" : "CMAKE_EXTRA_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of external makefile project generator." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator." - } - ], - "type" : "INTERNAL", - "value" : "Ninja" - }, - { - "name" : "CMAKE_GENERATOR_INSTANCE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Generator instance identifier." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_PLATFORM", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator platform." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_GENERATOR_TOOLSET", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Name of generator toolset." - } - ], - "type" : "INTERNAL", - "value" : "" - }, - { - "name" : "CMAKE_HOME_DIRECTORY", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Source directory with the top level CMakeLists.txt file for this project" - } - ], - "type" : "INTERNAL", - "value" : "/media/garrett/Storage/Projects/Hydrangea" - }, - { - "name" : "CMAKE_INSTALL_PREFIX", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install path prefix, prepended onto install directories." - } - ], - "type" : "PATH", - "value" : "/usr/local" - }, - { - "name" : "CMAKE_INSTALL_SO_NO_EXE", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Install .so files without execute permission." - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_LINKER", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-ld" - }, - { - "name" : "CMAKE_MAKE_PROGRAM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Program used to build from build.ninja files." - } - ], - "type" : "FILEPATH", - "value" : "/usr/bin/ninja" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_NM", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-nm" - }, - { - "name" : "CMAKE_NUMBER_OF_MAKEFILES", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "number of local generators" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_OBJCOPY", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-objcopy" - }, - { - "name" : "CMAKE_OBJDUMP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-objdump" - }, - { - "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Platform information initialized" - } - ], - "type" : "INTERNAL", - "value" : "1" - }, - { - "name" : "CMAKE_PROJECT_DESCRIPTION", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_HOMEPAGE_URL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "" - }, - { - "name" : "CMAKE_PROJECT_NAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "Hydrangea" - }, - { - "name" : "CMAKE_RANLIB", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-ranlib" - }, - { - "name" : "CMAKE_READELF", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-readelf" - }, - { - "name" : "CMAKE_ROOT", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Path to CMake installation." - } - ], - "type" : "INTERNAL", - "value" : "/usr/share/cmake-3.22" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_SKIP_INSTALL_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_SKIP_RPATH", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If set, runtime paths are not added when using shared libraries." - } - ], - "type" : "BOOL", - "value" : "NO" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during all build types." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." - } - ], - "type" : "STRING", - "value" : "" - }, - { - "name" : "CMAKE_STRIP", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "Path to a program." - } - ], - "type" : "FILEPATH", - "value" : "/bin/x86_64-linux-gnu-strip" - }, - { - "name" : "CMAKE_UNAME", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "uname command" - } - ], - "type" : "INTERNAL", - "value" : "/usr/bin/uname" - }, - { - "name" : "CMAKE_VERBOSE_MAKEFILE", - "properties" : - [ - { - "name" : "ADVANCED", - "value" : "1" - }, - { - "name" : "HELPSTRING", - "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." - } - ], - "type" : "BOOL", - "value" : "FALSE" - }, - { - "name" : "Hydrangea_BINARY_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/media/garrett/Storage/Projects/Hydrangea/build" - }, - { - "name" : "Hydrangea_IS_TOP_LEVEL", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "ON" - }, - { - "name" : "Hydrangea_SOURCE_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "Value Computed by CMake" - } - ], - "type" : "STATIC", - "value" : "/media/garrett/Storage/Projects/Hydrangea" - }, - { - "name" : "SDL2_DIR", - "properties" : - [ - { - "name" : "HELPSTRING", - "value" : "The directory containing a CMake configuration file for SDL2." - } - ], - "type" : "PATH", - "value" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2" - } - ], - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } -} diff --git a/build/.cmake/api/v1/reply/cmakeFiles-v1-cef2c3de0490094bf669.json b/build/.cmake/api/v1/reply/cmakeFiles-v1-cef2c3de0490094bf669.json deleted file mode 100644 index f5b4330..0000000 --- a/build/.cmake/api/v1/reply/cmakeFiles-v1-cef2c3de0490094bf669.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "inputs" : - [ - { - "path" : "CMakeLists.txt" - }, - { - "isGenerated" : true, - "path" : "build/CMakeFiles/3.22.1/CMakeSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" - }, - { - "isGenerated" : true, - "path" : "build/CMakeFiles/3.22.1/CMakeCCompiler.cmake" - }, - { - "isGenerated" : true, - "path" : "build/CMakeFiles/3.22.1/CMakeCXXCompiler.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Platform/Linux.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeCInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Compiler/GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake" - }, - { - "isCMake" : true, - "isExternal" : true, - "path" : "/usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" - }, - { - "isExternal" : true, - "path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake" - }, - { - "isExternal" : true, - "path" : "/usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake" - } - ], - "kind" : "cmakeFiles", - "paths" : - { - "build" : "/media/garrett/Storage/Projects/Hydrangea/build", - "source" : "/media/garrett/Storage/Projects/Hydrangea" - }, - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/build/.cmake/api/v1/reply/codemodel-v2-3dd0101c350a8d407562.json b/build/.cmake/api/v1/reply/codemodel-v2-3dd0101c350a8d407562.json deleted file mode 100644 index c6ede3f..0000000 --- a/build/.cmake/api/v1/reply/codemodel-v2-3dd0101c350a8d407562.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "configurations" : - [ - { - "directories" : - [ - { - "build" : ".", - "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", - "minimumCMakeVersion" : - { - "string" : "3.22.1" - }, - "projectIndex" : 0, - "source" : ".", - "targetIndexes" : - [ - 0 - ] - } - ], - "name" : "Debug", - "projects" : - [ - { - "directoryIndexes" : - [ - 0 - ], - "name" : "Hydrangea", - "targetIndexes" : - [ - 0 - ] - } - ], - "targets" : - [ - { - "directoryIndex" : 0, - "id" : "game::@6890427a1f51a3e7e1df", - "jsonFile" : "target-game-Debug-9df99ffdcc4bbe325dba.json", - "name" : "game", - "projectIndex" : 0 - } - ] - } - ], - "kind" : "codemodel", - "paths" : - { - "build" : "/media/garrett/Storage/Projects/Hydrangea/build", - "source" : "/media/garrett/Storage/Projects/Hydrangea" - }, - "version" : - { - "major" : 2, - "minor" : 3 - } -} diff --git a/build/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/build/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json deleted file mode 100644 index 3a67af9..0000000 --- a/build/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "backtraceGraph" : - { - "commands" : [], - "files" : [], - "nodes" : [] - }, - "installers" : [], - "paths" : - { - "build" : ".", - "source" : "." - } -} diff --git a/build/.cmake/api/v1/reply/index-2023-12-09T22-09-46-0659.json b/build/.cmake/api/v1/reply/index-2023-12-09T22-09-46-0659.json deleted file mode 100644 index 308dc39..0000000 --- a/build/.cmake/api/v1/reply/index-2023-12-09T22-09-46-0659.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "cmake" : - { - "generator" : - { - "multiConfig" : false, - "name" : "Ninja" - }, - "paths" : - { - "cmake" : "/usr/bin/cmake", - "cpack" : "/usr/bin/cpack", - "ctest" : "/usr/bin/ctest", - "root" : "/usr/share/cmake-3.22" - }, - "version" : - { - "isDirty" : false, - "major" : 3, - "minor" : 22, - "patch" : 1, - "string" : "3.22.1", - "suffix" : "" - } - }, - "objects" : - [ - { - "jsonFile" : "codemodel-v2-3dd0101c350a8d407562.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - { - "jsonFile" : "cache-v2-5b5f3a9c60370adcf8ab.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-cef2c3de0490094bf669.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - { - "jsonFile" : "toolchains-v1-50db6e0713f69d932e1c.json", - "kind" : "toolchains", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ], - "reply" : - { - "client-vscode" : - { - "query.json" : - { - "requests" : - [ - { - "kind" : "cache", - "version" : 2 - }, - { - "kind" : "codemodel", - "version" : 2 - }, - { - "kind" : "toolchains", - "version" : 1 - }, - { - "kind" : "cmakeFiles", - "version" : 1 - } - ], - "responses" : - [ - { - "jsonFile" : "cache-v2-5b5f3a9c60370adcf8ab.json", - "kind" : "cache", - "version" : - { - "major" : 2, - "minor" : 0 - } - }, - { - "jsonFile" : "codemodel-v2-3dd0101c350a8d407562.json", - "kind" : "codemodel", - "version" : - { - "major" : 2, - "minor" : 3 - } - }, - { - "jsonFile" : "toolchains-v1-50db6e0713f69d932e1c.json", - "kind" : "toolchains", - "version" : - { - "major" : 1, - "minor" : 0 - } - }, - { - "jsonFile" : "cmakeFiles-v1-cef2c3de0490094bf669.json", - "kind" : "cmakeFiles", - "version" : - { - "major" : 1, - "minor" : 0 - } - } - ] - } - } - } -} diff --git a/build/.cmake/api/v1/reply/target-game-Debug-9df99ffdcc4bbe325dba.json b/build/.cmake/api/v1/reply/target-game-Debug-9df99ffdcc4bbe325dba.json deleted file mode 100644 index 4c0a179..0000000 --- a/build/.cmake/api/v1/reply/target-game-Debug-9df99ffdcc4bbe325dba.json +++ /dev/null @@ -1,613 +0,0 @@ -{ - "artifacts" : - [ - { - "path" : "game" - } - ], - "backtrace" : 1, - "backtraceGraph" : - { - "commands" : - [ - "add_executable", - "link_directories", - "target_link_libraries", - "include_directories" - ], - "files" : - [ - "CMakeLists.txt" - ], - "nodes" : - [ - { - "file" : 0 - }, - { - "command" : 0, - "file" : 0, - "line" : 24, - "parent" : 0 - }, - { - "command" : 1, - "file" : 0, - "line" : 14, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 30, - "parent" : 0 - }, - { - "command" : 2, - "file" : 0, - "line" : 31, - "parent" : 0 - }, - { - "command" : 3, - "file" : 0, - "line" : 10, - "parent" : 0 - }, - { - "command" : 3, - "file" : 0, - "line" : 18, - "parent" : 0 - } - ] - }, - "compileGroups" : - [ - { - "compileCommandFragments" : - [ - { - "fragment" : "-g" - }, - { - "fragment" : "-std=gnu++14" - } - ], - "includes" : - [ - { - "backtrace" : 5, - "path" : "/usr/include/SDL2" - }, - { - "backtrace" : 6, - "path" : "/media/garrett/Storage/Projects/Hydrangea/include" - } - ], - "language" : "CXX", - "languageStandard" : - { - "backtraces" : - [ - 1 - ], - "standard" : "14" - }, - "sourceIndexes" : - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ] - } - ], - "id" : "game::@6890427a1f51a3e7e1df", - "link" : - { - "commandFragments" : - [ - { - "fragment" : "-g", - "role" : "flags" - }, - { - "fragment" : "", - "role" : "flags" - }, - { - "backtrace" : 2, - "fragment" : "-L/src", - "role" : "libraryPath" - }, - { - "fragment" : "-Wl,-rpath,/src", - "role" : "libraries" - }, - { - "backtrace" : 3, - "fragment" : "-L/usr/lib/x86_64-linux-gnu -lSDL2", - "role" : "libraries" - }, - { - "backtrace" : 4, - "fragment" : "-lSDL2_gpu", - "role" : "libraries" - } - ], - "language" : "CXX" - }, - "name" : "game", - "nameOnDisk" : "game", - "paths" : - { - "build" : ".", - "source" : "." - }, - "sourceGroups" : - [ - { - "name" : "Source Files", - "sourceIndexes" : - [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56 - ] - } - ], - "sources" : - [ - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/dynamic_body.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/game.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/input_manager.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/main.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/node.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/player.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/scene.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/sprite.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/static_body.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/util.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/window.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_broad_phase.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_chain_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_circle_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collide_circle.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collide_edge.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collide_polygon.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_collision.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_distance.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_dynamic_tree.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_edge_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_polygon_shape.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/collision/b2_time_of_impact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_block_allocator.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_draw.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_math.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_settings.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_stack_allocator.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/common/b2_timer.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_body.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_chain_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_chain_polygon_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_contact_manager.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_contact_solver.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_distance_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_edge_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_edge_polygon_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_fixture.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_friction_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_gear_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_island.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_motor_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_mouse_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_polygon_circle_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_polygon_contact.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_prismatic_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_pulley_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_revolute_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_weld_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_wheel_joint.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_world.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/dynamics/b2_world_callbacks.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/box2d/rope/b2_rope.cpp", - "sourceGroupIndex" : 0 - }, - { - "backtrace" : 1, - "compileGroupIndex" : 0, - "path" : "src/fmt/format.cc", - "sourceGroupIndex" : 0 - } - ], - "type" : "EXECUTABLE" -} diff --git a/build/.cmake/api/v1/reply/toolchains-v1-50db6e0713f69d932e1c.json b/build/.cmake/api/v1/reply/toolchains-v1-50db6e0713f69d932e1c.json deleted file mode 100644 index 40e951d..0000000 --- a/build/.cmake/api/v1/reply/toolchains-v1-50db6e0713f69d932e1c.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "kind" : "toolchains", - "toolchains" : - [ - { - "compiler" : - { - "id" : "GNU", - "implicit" : - { - "includeDirectories" : - [ - "/usr/lib/gcc/x86_64-linux-gnu/11/include", - "/usr/local/include", - "/usr/include/x86_64-linux-gnu", - "/usr/include" - ], - "linkDirectories" : - [ - "/usr/lib/gcc/x86_64-linux-gnu/11", - "/usr/lib/x86_64-linux-gnu", - "/usr/lib", - "/lib/x86_64-linux-gnu", - "/lib" - ], - "linkFrameworkDirectories" : [], - "linkLibraries" : - [ - "gcc", - "gcc_s", - "c", - "gcc", - "gcc_s" - ] - }, - "path" : "/bin/x86_64-linux-gnu-gcc-11", - "version" : "11.4.0" - }, - "language" : "C", - "sourceFileExtensions" : - [ - "c", - "m" - ] - }, - { - "compiler" : - { - "id" : "GNU", - "implicit" : - { - "includeDirectories" : - [ - "/usr/include/c++/11", - "/usr/include/x86_64-linux-gnu/c++/11", - "/usr/include/c++/11/backward", - "/usr/lib/gcc/x86_64-linux-gnu/11/include", - "/usr/local/include", - "/usr/include/x86_64-linux-gnu", - "/usr/include" - ], - "linkDirectories" : - [ - "/usr/lib/gcc/x86_64-linux-gnu/11", - "/usr/lib/x86_64-linux-gnu", - "/usr/lib", - "/lib/x86_64-linux-gnu", - "/lib" - ], - "linkFrameworkDirectories" : [], - "linkLibraries" : - [ - "stdc++", - "m", - "gcc_s", - "gcc", - "c", - "gcc_s", - "gcc" - ] - }, - "path" : "/bin/x86_64-linux-gnu-g++-11", - "version" : "11.4.0" - }, - "language" : "CXX", - "sourceFileExtensions" : - [ - "C", - "M", - "c++", - "cc", - "cpp", - "cxx", - "mm", - "mpp", - "CPP", - "ixx", - "cppm" - ] - } - ], - "version" : - { - "major" : 1, - "minor" : 0 - } -} diff --git a/build/.ninja_deps b/build/.ninja_deps deleted file mode 100644 index 2841b41..0000000 Binary files a/build/.ninja_deps and /dev/null differ diff --git a/build/.ninja_log b/build/.ninja_log deleted file mode 100644 index 9f43853..0000000 --- a/build/.ninja_log +++ /dev/null @@ -1,58 +0,0 @@ -# ninja log v5 -4 247 1702159838973791840 CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o 2584c67db79bc7f6 -7 253 1702159838981791836 CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o f0cd7e99d5f1b2f6 -6 303 1702159839029791810 CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o f16c4b982bdb0256 -248 550 1702159839277791678 CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o 5018c314eb6f805c -3 571 1702159839289791672 CMakeFiles/game.dir/src/util.cpp.o c1bdceb11ac46020 -303 607 1702159839333791648 CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o ee45cc40c07de0d1 -253 614 1702159839337791647 CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o e62a6fcf34355c52 -0 708 1702159839433791596 CMakeFiles/game.dir/src/dynamic_body.cpp.o 190c439dcd7ca4c8 -550 867 1702159839593791509 CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o 11276083ca1c7f45 -572 877 1702159839601791506 CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o 64b29720677838bf -614 965 1702159839693791457 CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o f55ea97c9fc7b9c -708 1027 1702159839753791424 CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o 864d525ee344138f -877 1037 1702159839765791419 CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o aa2fe16437d0eab1 -608 1050 1702159839777791412 CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o 3190c0909911317a -966 1137 1702159839865791364 CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o 460ab1093b305604 -1037 1211 1702159839933791329 CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o 35f60214dc2f6162 -1027 1216 1702159839941791325 CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o 59e10962e30bc3b -1137 1237 1702159839953791318 CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o e624a175973223a8 -867 1276 1702159840001791292 CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o fb4c74b917d01306 -2 1312 1702159840037791273 CMakeFiles/game.dir/src/player.cpp.o f70983e79251fd0c -1050 1349 1702159840077791251 CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o 48c6e36f3e22d80 -1 1391 1702159840117791231 CMakeFiles/game.dir/src/node.cpp.o 2d6c346af5ab59d3 -1 1449 1702159840177791198 CMakeFiles/game.dir/src/input_manager.cpp.o 9679f5afa764ce3c -0 1455 1702159840173791201 CMakeFiles/game.dir/src/game.cpp.o afcd93a026538e93 -1216 1492 1702159840221791175 CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o deee820bad566c5 -2 1506 1702159840233791168 CMakeFiles/game.dir/src/scene.cpp.o 498f0987c94048bf -1237 1523 1702159840249791160 CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o 4c1ba6cb10da1c61 -1 1525 1702159840253791157 CMakeFiles/game.dir/src/main.cpp.o 8fb557ab0446f19b -1211 1541 1702159840269791149 CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o f169fb3d58f132d0 -2 1549 1702159840269791149 CMakeFiles/game.dir/src/static_body.cpp.o 5165020241c22f35 -1276 1555 1702159840269791149 CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o 99e893b9aa634d3 -1313 1629 1702159840357791101 CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o 6c051ad305d37510 -1349 1631 1702159840357791101 CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o c5694e44f070976a -1493 1673 1702159840401791078 CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o 16d0b786bd2dc1d9 -4 1690 1702159840417791070 CMakeFiles/game.dir/src/window.cpp.o e4a06dd3638cc981 -1391 1729 1702159840457791048 CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o e0b634d3fd058f04 -1455 1743 1702159840461791047 CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o f41b104f0d0c983 -1449 1757 1702159840485791033 CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o dd432ab62a7d1f2b -1507 1788 1702159840513791018 CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o adfb8903d9117b02 -1523 1809 1702159840533791007 CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o c1b927d3db50eebb -1555 1828 1702159840553790998 CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o 3c6d8922105990a4 -1631 1850 1702159840573790987 CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o d6e6909dd17c6116 -2 1869 1702159840597790973 CMakeFiles/game.dir/src/sprite.cpp.o 22e50b55e4ffbce5 -1526 1881 1702159840609790968 CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o 8bb6a6dbe697ca52 -1549 1884 1702159840613790965 CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o 13c5d3d8f7aa6391 -1541 1888 1702159840617790964 CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o bdc166afff2a791 -1673 1918 1702159840645790949 CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o 58c5e8e6356c2b80 -1629 1928 1702159840653790943 CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o f93c6bed3a465154 -1690 1959 1702159840685790927 CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o 42c5027973f19a4c -1743 1982 1702159840709790913 CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o df2e4d5aadff477d -1828 1996 1702159840725790905 CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o 35a49da1a277caec -1729 2015 1702159840741790897 CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o 2cf2b9e124e22cef -1757 2036 1702159840765790883 CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o e8740d4966159ce4 -1788 2050 1702159840777790878 CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o 377e9725ac313a2 -1850 2094 1702159840821790855 CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o 2e9bc545012f9006 -1809 2141 1702159840869790829 CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o e01b3ad075abccc5 -1869 3636 1702159842361790032 CMakeFiles/game.dir/src/fmt/format.cc.o eb44cdfe74bad47a diff --git a/build/build.ninja b/build/build.ninja deleted file mode 100644 index 7dad06c..0000000 --- a/build/build.ninja +++ /dev/null @@ -1,537 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.22 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Hydrangea -# Configurations: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - - -############################################# -# Set configuration variable for custom commands. - -CONFIGURATION = Debug -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include CMakeFiles/rules.ninja - -# ============================================================================= - -############################################# -# Logical path to working directory; prefix for absolute paths. - -cmake_ninja_workdir = /media/garrett/Storage/Projects/Hydrangea/build/ -# ============================================================================= -# Object build statements for EXECUTABLE target game - - -############################################# -# Order-only phony target for game - -build cmake_object_order_depends_target_game: phony || CMakeFiles/game.dir - -build CMakeFiles/game.dir/src/dynamic_body.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/dynamic_body.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/dynamic_body.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/game.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/game.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/game.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/input_manager.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/input_manager.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/input_manager.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/main.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/main.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/main.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/node.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/node.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/node.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/player.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/player.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/player.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/scene.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/scene.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/scene.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/sprite.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/sprite.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/sprite.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/static_body.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/static_body.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/static_body.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/util.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/util.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/util.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/window.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/window.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/window.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src - -build CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_broad_phase.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_chain_shape.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_circle_shape.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_circle.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_edge.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_polygon.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collision.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_distance.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_dynamic_tree.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_edge_shape.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_polygon_shape.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_time_of_impact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/collision - -build CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_block_allocator.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common - -build CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_draw.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common - -build CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_math.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common - -build CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_settings.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common - -build CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_stack_allocator.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common - -build CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_timer.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/common - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_body.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_circle_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_polygon_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_circle_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_manager.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_solver.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_distance_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_circle_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_polygon_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_fixture.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_friction_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_gear_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_island.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_motor_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_mouse_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_circle_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_contact.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_prismatic_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_pulley_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_revolute_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_weld_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_wheel_joint.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world_callbacks.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/dynamics - -build CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/box2d/rope/b2_rope.cpp || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/box2d/rope - -build CMakeFiles/game.dir/src/fmt/format.cc.o: CXX_COMPILER__game_Debug /media/garrett/Storage/Projects/Hydrangea/src/fmt/format.cc || cmake_object_order_depends_target_game - DEP_FILE = CMakeFiles/game.dir/src/fmt/format.cc.o.d - FLAGS = -g -std=gnu++14 - INCLUDES = -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include - OBJECT_DIR = CMakeFiles/game.dir - OBJECT_FILE_DIR = CMakeFiles/game.dir/src/fmt - - -# ============================================================================= -# Link build statements for EXECUTABLE target game - - -############################################# -# Link the executable game - -build game: CXX_EXECUTABLE_LINKER__game_Debug CMakeFiles/game.dir/src/dynamic_body.cpp.o CMakeFiles/game.dir/src/game.cpp.o CMakeFiles/game.dir/src/input_manager.cpp.o CMakeFiles/game.dir/src/main.cpp.o CMakeFiles/game.dir/src/node.cpp.o CMakeFiles/game.dir/src/player.cpp.o CMakeFiles/game.dir/src/scene.cpp.o CMakeFiles/game.dir/src/sprite.cpp.o CMakeFiles/game.dir/src/static_body.cpp.o CMakeFiles/game.dir/src/util.cpp.o CMakeFiles/game.dir/src/window.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o CMakeFiles/game.dir/src/fmt/format.cc.o - FLAGS = -g - LINK_LIBRARIES = -Wl,-rpath,/src -L/usr/lib/x86_64-linux-gnu -lSDL2 -lSDL2_gpu - LINK_PATH = -L/src - OBJECT_DIR = CMakeFiles/game.dir - POST_BUILD = : - PRE_LINK = : - TARGET_FILE = game - TARGET_PDB = game.dbg - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /media/garrett/Storage/Projects/Hydrangea/build && /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 - -build edit_cache: phony CMakeFiles/edit_cache.util - - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /media/garrett/Storage/Projects/Hydrangea/build && /usr/bin/cmake --regenerate-during-build -S/media/garrett/Storage/Projects/Hydrangea -B/media/garrett/Storage/Projects/Hydrangea/build - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 - -build rebuild_cache: phony CMakeFiles/rebuild_cache.util - -# ============================================================================= -# Target aliases. - -# ============================================================================= -# Folder targets. - -# ============================================================================= - -############################################# -# Folder: /media/garrett/Storage/Projects/Hydrangea/build - -build all: phony game - -# ============================================================================= -# Built-in targets - - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../CMakeLists.txt /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake /usr/share/cmake-3.22/Modules/CMakeCInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux.cmake /usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.22.1/CMakeCCompiler.cmake CMakeFiles/3.22.1/CMakeCXXCompiler.cmake CMakeFiles/3.22.1/CMakeSystem.cmake - pool = console - - -############################################# -# A missing CMake input file is not an error. - -build ../CMakeLists.txt /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config-version.cmake /usr/lib/x86_64-linux-gnu/cmake/SDL2/sdl2-config.cmake /usr/share/cmake-3.22/Modules/CMakeCInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCXXInformation.cmake /usr/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /usr/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /usr/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /usr/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /usr/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /usr/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-C.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Compiler/GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-C.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU-CXX.cmake /usr/share/cmake-3.22/Modules/Platform/Linux-GNU.cmake /usr/share/cmake-3.22/Modules/Platform/Linux.cmake /usr/share/cmake-3.22/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.22.1/CMakeCCompiler.cmake CMakeFiles/3.22.1/CMakeCXXCompiler.cmake CMakeFiles/3.22.1/CMakeSystem.cmake: phony - - -############################################# -# Clean all the built files. - -build clean: CLEAN - - -############################################# -# Print all primary targets available. - -build help: HELP - - -############################################# -# Make the all target the default. - -default all diff --git a/build/compile_commands.json b/build/compile_commands.json deleted file mode 100644 index 559f6e0..0000000 --- a/build/compile_commands.json +++ /dev/null @@ -1,287 +0,0 @@ -[ -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/dynamic_body.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/dynamic_body.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/dynamic_body.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/game.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/game.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/game.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/input_manager.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/input_manager.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/input_manager.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/main.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/main.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/main.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/node.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/node.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/node.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/player.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/player.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/player.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/scene.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/scene.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/scene.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/sprite.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/sprite.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/sprite.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/static_body.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/static_body.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/static_body.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/util.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/util.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/util.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/window.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/window.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/window.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_broad_phase.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_broad_phase.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_broad_phase.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_chain_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_chain_shape.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_chain_shape.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_circle_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_circle_shape.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_circle_shape.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collide_circle.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_circle.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_circle.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collide_edge.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_edge.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_edge.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collide_polygon.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_polygon.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collide_polygon.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_collision.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collision.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_collision.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_distance.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_distance.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_distance.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_dynamic_tree.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_dynamic_tree.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_dynamic_tree.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_edge_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_edge_shape.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_edge_shape.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_polygon_shape.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_polygon_shape.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_polygon_shape.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/collision/b2_time_of_impact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_time_of_impact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/collision/b2_time_of_impact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_block_allocator.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_block_allocator.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_block_allocator.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_draw.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_draw.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_draw.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_math.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_math.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_math.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_settings.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_settings.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_settings.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_stack_allocator.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_stack_allocator.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_stack_allocator.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/common/b2_timer.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_timer.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/common/b2_timer.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_body.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_body.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_body.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_circle_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_circle_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_chain_polygon_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_polygon_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_chain_polygon_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_circle_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_circle_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_manager.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_manager.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_manager.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_contact_solver.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_solver.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_contact_solver.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_distance_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_distance_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_distance_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_circle_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_circle_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_edge_polygon_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_polygon_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_edge_polygon_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_fixture.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_fixture.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_fixture.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_friction_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_friction_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_friction_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_gear_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_gear_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_gear_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_island.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_island.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_island.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_motor_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_motor_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_motor_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_mouse_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_mouse_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_mouse_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_circle_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_circle_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_circle_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_polygon_contact.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_contact.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_polygon_contact.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_prismatic_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_prismatic_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_prismatic_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_pulley_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_pulley_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_pulley_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_revolute_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_revolute_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_revolute_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_weld_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_weld_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_weld_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_wheel_joint.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_wheel_joint.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_wheel_joint.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_world.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/dynamics/b2_world_callbacks.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world_callbacks.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/dynamics/b2_world_callbacks.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/box2d/rope/b2_rope.cpp.o -c /media/garrett/Storage/Projects/Hydrangea/src/box2d/rope/b2_rope.cpp", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/box2d/rope/b2_rope.cpp" -}, -{ - "directory": "/media/garrett/Storage/Projects/Hydrangea/build", - "command": "/bin/x86_64-linux-gnu-g++-11 -I/usr/include/SDL2 -I/media/garrett/Storage/Projects/Hydrangea/include -g -std=gnu++14 -o CMakeFiles/game.dir/src/fmt/format.cc.o -c /media/garrett/Storage/Projects/Hydrangea/src/fmt/format.cc", - "file": "/media/garrett/Storage/Projects/Hydrangea/src/fmt/format.cc" -} -] \ No newline at end of file diff --git a/include/box2d/b2_broad_phase.h b/include/box2d/b2_broad_phase.h index cc882ab..396f526 100644 --- a/include/box2d/b2_broad_phase.h +++ b/include/box2d/b2_broad_phase.h @@ -75,7 +75,7 @@ public: /// Get the number of proxies. int32 GetProxyCount() const; - /// Update the pairs. This results in pair callbacks. This can only add pairs. + /// update the pairs. This results in pair callbacks. This can only add pairs. template void UpdatePairs(T* callback); diff --git a/include/box2d/b2_dynamic_tree.h b/include/box2d/b2_dynamic_tree.h index b854919..3df69ab 100644 --- a/include/box2d/b2_dynamic_tree.h +++ b/include/box2d/b2_dynamic_tree.h @@ -80,7 +80,7 @@ public: /// Destroy a proxy. This asserts if the id is invalid. void DestroyProxy(int32 proxyId); - /// Move a proxy with a swepted AABB. If the proxy has moved outside of its fattened AABB, + /// move a proxy with a swepted AABB. If the proxy has moved outside of its fattened AABB, /// then the proxy is removed from the tree and re-inserted. Otherwise /// the function returns immediately. /// @return true if the proxy was re-inserted. @@ -290,7 +290,7 @@ inline void b2DynamicTree::RayCast(T* callback, const b2RayCastInput& input) con if (value > 0.0f) { - // Update segment bounding box. + // update segment bounding box. maxFraction = value; b2Vec2 t = p1 + maxFraction * (p2 - p1); segmentAABB.lowerBound = b2Min(p1, t); diff --git a/include/box2d/b2_world.h b/include/box2d/b2_world.h index afd73bd..57d3709 100644 --- a/include/box2d/b2_world.h +++ b/include/box2d/b2_world.h @@ -221,9 +221,6 @@ private: friend class b2ContactManager; friend class b2Controller; - b2World(const b2World&) = delete; - void operator=(const b2World&) = delete; - void Solve(const b2TimeStep& step); void SolveTOI(const b2TimeStep& step); diff --git a/include/input_manager.h b/include/engine/input_manager.h similarity index 51% rename from include/input_manager.h rename to include/engine/input_manager.h index 4552b88..f7928ea 100644 --- a/include/input_manager.h +++ b/include/engine/input_manager.h @@ -9,10 +9,9 @@ class InputManager private: public: - static std::vector& GetFrameEvents(); - static void WindowEscape(); - - static bool key_down; + static std::vector& getFrameEvents(); + static void windowEscape(); + static bool keyDown; }; #endif \ No newline at end of file diff --git a/include/util.h b/include/engine/util.h similarity index 58% rename from include/util.h rename to include/engine/util.h index 9d6f860..73b4a14 100644 --- a/include/util.h +++ b/include/engine/util.h @@ -18,9 +18,9 @@ class Util private: public: - static void Log(LogType type, std::string msg, std::string file, int line); - static std::string GenerateUUID(); - static std::string LogTypeToStr(LogType type); + static void log(LogType type, std::string msg, std::string file, int line); + static std::string generateUuid(); + static std::string logTypeToStr(LogType type); }; #endif \ No newline at end of file diff --git a/include/window.h b/include/engine/window.h similarity index 58% rename from include/window.h rename to include/engine/window.h index 9492f99..38531aa 100644 --- a/include/window.h +++ b/include/engine/window.h @@ -20,13 +20,14 @@ public: void Close(); static SDL_Window *window; - static GPU_Target *window_target; - static int window_id; - static bool is_running; + static GPU_Target *windowTarget; + static int windowId; + static bool isRunning; - int window_height = 480; - int window_width = 640; - std::string window_title = "Window"; + int windowHeight = 480; + int windowWidth = 640; + std::string windowTitle = "Window"; + int windowTargetFramerate = 60; }; #endif \ No newline at end of file diff --git a/include/fmt/format.h b/include/fmt/format.h index e5bd8b1..450686a 100644 --- a/include/fmt/format.h +++ b/include/fmt/format.h @@ -966,7 +966,7 @@ class basic_memory_buffer final : public detail::buffer { FMT_CONSTEXPR20 ~basic_memory_buffer() { deallocate(); } private: - // Move data from other to this buffer. + // move data from other to this buffer. FMT_CONSTEXPR20 void move(basic_memory_buffer& other) { alloc_ = std::move(other.alloc_); T* data = other.data(); diff --git a/include/game.h b/include/game.h deleted file mode 100644 index f452e7e..0000000 --- a/include/game.h +++ /dev/null @@ -1,24 +0,0 @@ -#include "scene.h" -#include "window.h" - -#ifndef GAME_H -#define GAME_H - -class Game -{ -private: - -public: - // Constructor and Destructor - Game(); - ~Game(); - - // Methods - int Init(); - - // Members - static Scene *scene; - Window *window = NULL; -}; - -#endif \ No newline at end of file diff --git a/include/node.h b/include/node.h deleted file mode 100644 index abca718..0000000 --- a/include/node.h +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include - -#include "math/vec2.h" -#include "scene.h" -#include "util.h" - -#ifndef NODE_H -#define NODE_H - -class Node -{ -private: - // Methods - void UpdateChildren(); - -public: - // Constructor and Destructor - Node(); - ~Node(); - - // Methods - virtual void Update(); - void AddChild(Node* child); - - // Member Variables - std::string name; - Vec2 world_position = Vec2(0, 0); - Vec2 local_position = Vec2(0, 0); - Scene* scene = NULL; - Node* parent = NULL; - std::vector children; -}; - -#endif \ No newline at end of file diff --git a/include/nodes/card.h b/include/nodes/card.h new file mode 100644 index 0000000..8cd7ea2 --- /dev/null +++ b/include/nodes/card.h @@ -0,0 +1,42 @@ +#ifndef HYDRANGEA_CARD_H +#define HYDRANGEA_CARD_H + +#include "node.h" +#include "sprite.h" + +typedef enum CardSuite { + HEART = 0, + CLUB, + SPADE, + DIAMOND, +} CARD_SUITE_t; + +enum CardSpecialValue { + ACE = 1, + JACK = 11, + QUEEN = 12, + KING = 13, +}; + +class Card : public Node { +public: + Card(); + + ~Card(); + + void flip(); + + void update() override; + + void pollInputs() override; + + void free() override; + +private: + CARD_SUITE_t suite; + int value; + Sprite *face = new Sprite("./resources/img/cards/c11.png"); + Sprite *back = new Sprite("./resources/img/cards/cardback.png"); +}; + +#endif //HYDRANGEA_CARD_H diff --git a/include/nodes/hand.h b/include/nodes/hand.h new file mode 100644 index 0000000..b0e8c71 --- /dev/null +++ b/include/nodes/hand.h @@ -0,0 +1,29 @@ +#ifndef HYDRANGEA_HAND_H +#define HYDRANGEA_HAND_H + +#include "engine/input_manager.h" +#include "node.h" +#include "card.h" + +class Hand : public Node { +public: + Hand(); + + ~Hand(); + + void free() override; + + void update() override; + + void pollInputs() override; + + void drawCard(); + + void removeCard(); + +private: + + void organizeDeck(); +}; + +#endif //HYDRANGEA_HAND_H diff --git a/include/nodes/node.h b/include/nodes/node.h new file mode 100644 index 0000000..76987d2 --- /dev/null +++ b/include/nodes/node.h @@ -0,0 +1,44 @@ +#include +#include +#include +#include + +#include "math/vec2.h" +#include "scene.h" +#include "engine/util.h" + +#ifndef NODE_H +#define NODE_H + +class Node { +private: + // Methods + void updateChildren(); + + void pollChildInputs(); + +public: + // Constructor and Destructor + Node(); + + ~Node(); + + // Methods + virtual void update(); + + virtual void pollInputs(); + + virtual void free(); + + void addChild(Node *child); + + // Member Variables + std::string name; + Vec2 worldPosition = Vec2(0, 0); + Vec2 localPosition = Vec2(0, 0); + Scene *scene = nullptr; + Node *parent = nullptr; + std::vector children; +}; + +#endif \ No newline at end of file diff --git a/include/player.h b/include/nodes/player.h similarity index 65% rename from include/player.h rename to include/nodes/player.h index 7513622..cbbec8c 100644 --- a/include/player.h +++ b/include/nodes/player.h @@ -5,16 +5,21 @@ #define PLAYER_H class Player : public Node { -private: - void Update() override; - void Move(); - public: Player(); + ~Player(); + void update() override; + + void pollInputs() override; + + void free() override; + Sprite *sprite; Sprite *hammer; +private: + void move(); }; #endif diff --git a/include/scene.h b/include/nodes/scene.h similarity index 51% rename from include/scene.h rename to include/nodes/scene.h index c8bf527..731167c 100644 --- a/include/scene.h +++ b/include/nodes/scene.h @@ -1,4 +1,5 @@ #include +#include "engine/window.h" #include "box2d/b2_math.h" #include "box2d/b2_world.h" @@ -7,26 +8,33 @@ #define HYDRANGEA_SCENE_H class Node; -class Scene -{ + +class Scene { private: // Members - std::vector node_tree; + std::vector nodeTree; public: // Constructor and Destructor Scene(); + ~Scene(); // Methods - void Update(); - void AppendNode(Node* node); + void update(); + + void pollInputs(); + + void freeSceneData(); + + void appendNode(Node *node); // Members b2Vec2 b_gravity = b2Vec2(0, -10); - b2World *b_world; - int velocity_iterations = 6; - int position_iterations = 2; + b2World b_world = b2World(b_gravity); + float timeStep = 1.0f / 60.0f; + int velocityIterations = 6; + int positionIterations = 2; }; #endif //HYDRANGEA_SCENE_H diff --git a/include/nodes/sprite.h b/include/nodes/sprite.h new file mode 100644 index 0000000..b9d45c6 --- /dev/null +++ b/include/nodes/sprite.h @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include + +#include "math/vec2.h" +#include "node.h" + +#ifndef SPRITE_H +#define SPRITE_H + +class Sprite : public Node { +public: + // Constructor and Destructor + explicit Sprite(const std::string &resource_path); + + ~Sprite(); + + // Methods + void update() override; + + void pollInputs() override; + + void free() override; + + void setImage(GPU_Image *img); + + void setImage(char *img_path); + + void getImage(GPU_Image *image); + + // Member Variables + double angle = 0; + Vec2 scale = Vec2(1, 1); + bool visible = true; +private: + GPU_Image *gpuImage; + GPU_Target *target_; + + void render(); +}; + +#endif \ No newline at end of file diff --git a/include/dynamic_body.h b/include/physics/dynamic_body.h similarity index 58% rename from include/dynamic_body.h rename to include/physics/dynamic_body.h index 5026a00..4d43e96 100644 --- a/include/dynamic_body.h +++ b/include/physics/dynamic_body.h @@ -1,4 +1,4 @@ -#include "node.h" +#include "nodes/node.h" #include "box2d/b2_body.h" #include "box2d/b2_polygon_shape.h" #include "box2d/b2_fixture.h" @@ -6,24 +6,27 @@ #ifndef HYDRANGEA_DYNAMIC_BODY_H #define HYDRANGEA_DYNAMIC_BODY_H -class DynamicBody : public Node -{ +class DynamicBody : public Node { public: explicit DynamicBody(float size_x = 10.0f, float size_y = 10.0f); + ~DynamicBody(); - void Update() override; + void update() override; + + void render(); + + void SetWorldPosition(float pos_x, float pos_y); Vec2 size; float friction; float density; private: - b2BodyDef b_body_def; - b2Body *b_body; - b2PolygonShape b_shape; - b2FixtureDef b_fixture_def; - + b2BodyDef bBodyDef; + b2Body *bBody; + b2PolygonShape bShape; + b2FixtureDef bFixtureDef; }; #endif //HYDRANGEA_DYNAMIC_BODY_H diff --git a/include/static_body.h b/include/physics/static_body.h similarity index 62% rename from include/static_body.h rename to include/physics/static_body.h index 29f8268..a6f1990 100644 --- a/include/static_body.h +++ b/include/physics/static_body.h @@ -1,23 +1,24 @@ -#include "node.h" +#include "nodes/node.h" #include "box2d/b2_body.h" #include "box2d/b2_polygon_shape.h" #ifndef HYDRANGEA_STATIC_BODY_H #define HYDRANGEA_STATIC_BODY_H -class StaticBody : public Node -{ +class StaticBody : public Node { public: explicit StaticBody(float size_x = 10.0f, float size_y = 10.0f); + ~StaticBody(); - void Update() override; - void Render(); + void update() override; + + void render(); private: - b2BodyDef b_body_def; - b2Body *b_body; - b2PolygonShape b_shape; + b2BodyDef bBodyDef; + b2Body *bBody; + b2PolygonShape bShape; Vec2 size; }; diff --git a/include/sprite.h b/include/sprite.h deleted file mode 100644 index 0579094..0000000 --- a/include/sprite.h +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include -#include -#include - -#include "math/vec2.h" -#include "node.h" - -#ifndef SPRITE_H -#define SPRITE_H - -class Sprite : public Node -{ -private: - GPU_Image* image; - GPU_Target* target; - - void Render(); - -public: - // Constructor and Deconstructor - explicit Sprite(std::string resource_path); - ~Sprite(); - - // Methods - void Update() override; - - void SetImage( GPU_Image img ); - void SetImage( char* img_path ); - GPU_Image GetImage(); - - // Member Variables - float angle = 0; - Vec2 scale = Vec2(1, 1); -}; - -#endif \ No newline at end of file diff --git a/include/tweeny/dispatcher.h b/include/tweeny/dispatcher.h new file mode 100644 index 0000000..17f9a75 --- /dev/null +++ b/include/tweeny/dispatcher.h @@ -0,0 +1,53 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* This file contains code to help call a function applying a tuple as its arguments. + * This code is private and not documented. */ + +#ifndef TWEENY_DISPATCHER_H +#define TWEENY_DISPATCHER_H + +#include + +namespace tweeny { + namespace detail { + template struct seq { }; + template struct gens : gens { }; + template struct gens<0, S...> { + typedef seq type; + }; + + template + R dispatch(Func && f, TupleType && args, seq) { + return f(std::get(args) ...); + } + + template + R call(Func && f, const std::tuple & args) { + return dispatch(f, args, typename gens::type()); + } + } +} + +#endif //TWEENY_DISPATCHER_H diff --git a/include/tweeny/easing.h b/include/tweeny/easing.h new file mode 100644 index 0000000..81ea227 --- /dev/null +++ b/include/tweeny/easing.h @@ -0,0 +1,662 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/** + * @file easing.h + * The purpose of this file is to list all bundled easings. All easings are based on Robert Penner's easing + * functions: http://robertpenner.com/easing/ + */ + +#ifndef TWEENY_EASING_H +#define TWEENY_EASING_H + +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/** + * @defgroup easings Easings + * @brief Bundled easing functions based on + * Robert Penner's Easing Functions + * @details You should plug these functions into @ref tweeny::tween::via function to specify the easing used in a tween. + * @sa tweeny::easing + * @{ + *//** + * @defgroup stepped Stepped + * @{ + * @brief The value does not change. No interpolation is used. + * @} + *//** + * @defgroup default Default + * @{ + * @brief A default mode for arithmetic values it will change in constant speed, for non-arithmetic value will be constant. + * @} + *//** + * @defgroup linear Linear + * @{ + * @brief The most boring ever easing function. It has no acceleration and change values in constant speed. + * @} + *//** + * @defgroup quadratic Quadratic + * @{ + * @brief The most commonly used easing functions. + * @} + *//** + * @defgroup cubic Cubic + * @{ + * @brief A bit curvier than the quadratic easing. + * @} + *//** + * @defgroup quartic Quartic + * @{ + * @brief A steeper curve. Acceleration changes faster than Cubic. + * @} + *//** + * @defgroup quintic Quintic + * @{ + * @brief An even steeper curve. Acceleration changes really fast. + * @} + *//** + * @defgroup sinuisodal Sinuisodal + * @{ + * @brief A very gentle curve, gentlier than quadratic. + * @} + *//** + * @defgroup exponential Exponential + * @{ + * @brief A very steep curve, based on the `p(t) = 2^(10*(t-1))` equation. + * @} + *//** + * @defgroup circular Circular + * @{ + * @brief A smooth, circular slope that resembles the arc of an circle. + * @} + *//** + * @defgroup back Back + * @{ + * @brief An easing function that has a "cute" natural coming back effect. + * @} + *//** + * @defgroup elastic Elastic + * @{ + * @brief An elastic easing function. Values go a little past the maximum/minimum in an elastic effect. + * @} + *//** + * @defgroup bounce Bounce + * @{ + * @brief A bouncing easing function. Values "bounce" around the maximum/minumum. + * @} + *//** + * @} + */ + +namespace tweeny { + /** + * @brief The easing class holds all the bundled easings. + * + * You should pass the easing function to the @p tweeny::tween::via method, to set the easing function that will + * be used to interpolate values in a tween point. + * + * **Example**: + * + * @code + * auto tween = tweeny::from(0).to(100).via(tweeny::easing::linear); + * @endcode + */ + class easing { + public: + /** + * @brief Enumerates all easings to aid in runtime when adding easins to a tween using tween::via + * + * The aim of this enum is to help in situations where the easing doesn't come straight from the C++ + * code but rather from a configuration file or some sort of external paramenter. + */ + enum class enumerated { + def, + linear, + stepped, + quadraticIn, + quadraticOut, + quadraticInOut, + cubicIn, + cubicOut, + cubicInOut, + quarticIn, + quarticOut, + quarticInOut, + quinticIn, + quinticOut, + quinticInOut, + sinusoidalIn, + sinusoidalOut, + sinusoidalInOut, + exponentialIn, + exponentialOut, + exponentialInOut, + circularIn, + circularOut, + circularInOut, + bounceIn, + bounceOut, + bounceInOut, + elasticIn, + elasticOut, + elasticInOut, + backIn, + backOut, + backInOut + }; + + /** + * @ingroup stepped + * @brief Value is constant. + */ + static constexpr struct steppedEasing { + template + static T run(float position, T start, T end) { + return start; + } + } stepped = steppedEasing{}; + + /** + * @ingroup default + * @brief Values change with constant speed for arithmetic type only. The non-arithmetic it will be constant. + */ + static constexpr struct defaultEasing { + template struct voidify { using type = void; }; + template using void_t = typename voidify::type; + + template + struct supports_arithmetic_operations : std::false_type {}; + + template + struct supports_arithmetic_operations() + std::declval()), + decltype(std::declval() - std::declval()), + decltype(std::declval() * std::declval()), + decltype(std::declval() * std::declval()), + decltype(std::declval() * std::declval()) + >> : std::true_type{}; + + + template + static typename std::enable_if::value, T>::type run(float position, T start, T end) { + return static_cast(roundf((end - start) * position + start)); + } + + template + static typename std::enable_if::value && !std::is_integral::value, T>::type run(float position, T start, T end) { + return static_cast((end - start) * position + start); + } + + template + static typename std::enable_if::value, T>::type run(float position, T start, T end) { + return start; + } + } def = defaultEasing{}; + + /** + * @ingroup linear + * @brief Values change with constant speed. + */ + static constexpr struct linearEasing { + template + static typename std::enable_if::value, T>::type run(float position, T start, T end) { + return static_cast(roundf((end - start) * position + start)); + } + + template + static typename std::enable_if::value, T>::type run(float position, T start, T end) { + return static_cast((end - start) * position + start); + } + } linear = linearEasing{}; + + /** + * @ingroup quadratic + * @brief Accelerate initial values with a quadratic equation. + */ + static constexpr struct quadraticInEasing { + template + static T run(float position, T start, T end) { + return static_cast((end - start) * position * position + start); + } + } quadraticIn = quadraticInEasing{}; + + /** + * @ingroup quadratic + * @brief Deaccelerate ending values with a quadratic equation. + */ + static constexpr struct quadraticOutEasing { + template + static T run(float position, T start, T end) { + return static_cast((-(end - start)) * position * (position - 2) + start); + } + } quadraticOut = quadraticOutEasing{}; + + /** + * @ingroup quadratic + * @brief Acceelerate initial and deaccelerate ending values with a quadratic equation. + */ + static constexpr struct quadraticInOutEasing { + template + static T run(float position, T start, T end) { + position *= 2; + if (position < 1) { + return static_cast(((end - start) / 2) * position * position + start); + } + + --position; + return static_cast((-(end - start) / 2) * (position * (position - 2) - 1) + start); + } + } quadraticInOut = quadraticInOutEasing{}; + + /** + * @ingroup cubic + * @brief Aaccelerate initial values with a cubic equation. + */ + static constexpr struct cubicInEasing { + template + static T run(float position, T start, T end) { + return static_cast((end - start) * position * position * position + start); + } + } cubicIn = cubicInEasing{}; + + /** + * @ingroup cubic + * @brief Deaccelerate ending values with a cubic equation. + */ + static constexpr struct cubicOutEasing { + template + static T run(float position, T start, T end) { + --position; + return static_cast((end - start) * (position * position * position + 1) + start); + } + } cubicOut = cubicOutEasing{}; + + /** + * @ingroup cubic + * @brief Acceelerate initial and deaccelerate ending values with a cubic equation. + */ + static constexpr struct cubicInOutEasing { + template + static T run(float position, T start, T end) { + position *= 2; + if (position < 1) { + return static_cast(((end - start) / 2) * position * position * position + start); + } + position -= 2; + return static_cast(((end - start) / 2) * (position * position * position + 2) + start); + } + } cubicInOut = cubicInOutEasing{}; + + /** + * @ingroup quartic + * @brief Acceelerate initial values with a quartic equation. + */ + static constexpr struct quarticInEasing { + template + static T run(float position, T start, T end) { + return static_cast((end - start) * position * position * position * position + start); + } + } quarticIn = quarticInEasing{}; + + /** + * @ingroup quartic + * @brief Deaccelerate ending values with a quartic equation. + */ + static constexpr struct quarticOutEasing { + template + static T run(float position, T start, T end) { + --position; + return static_cast( -(end - start) * (position * position * position * position - 1) + start); + } + } quarticOut = quarticOutEasing{}; + + /** + * @ingroup quartic + * @brief Acceelerate initial and deaccelerate ending values with a quartic equation. + */ + static constexpr struct quarticInOutEasing { + template + static T run(float position, T start, T end) { + position *= 2; + if (position < 1) { + return static_cast(((end - start) / 2) * (position * position * position * position) + + start); + } + position -= 2; + return static_cast((-(end - start) / 2) * (position * position * position * position - 2) + + start); + } + } quarticInOut = quarticInOutEasing{}; + + /** + * @ingroup quintic + * @brief Acceelerate initial values with a quintic equation. + */ + static constexpr struct quinticInEasing { + template + static T run(float position, T start, T end) { + return static_cast((end - start) * position * position * position * position * position + start); + } + } quinticIn = quinticInEasing{}; + + /** + * @ingroup quintic + * @brief Deaccelerate ending values with a quintic equation. + */ + static constexpr struct quinticOutEasing { + template + static T run(float position, T start, T end) { + position--; + return static_cast((end - start) * (position * position * position * position * position + 1) + + start); + } + } quinticOut = quinticOutEasing{}; + + /** + * @ingroup quintic + * @brief Acceelerate initial and deaccelerate ending values with a quintic equation. + */ + static constexpr struct quinticInOutEasing { + template + static T run(float position, T start, T end) { + position *= 2; + if (position < 1) { + return static_cast( + ((end - start) / 2) * (position * position * position * position * position) + + start); + } + position -= 2; + return static_cast( + ((end - start) / 2) * (position * position * position * position * position + 2) + + start); + } + } quinticInOut = quinticInOutEasing{}; + + /** + * @ingroup sinusoidal + * @brief Acceelerate initial values with a sinusoidal equation. + */ + static constexpr struct sinusoidalInEasing { + template + static T run(float position, T start, T end) { + return static_cast(-(end - start) * cosf(position * static_cast(M_PI) / 2) + (end - start) + start); + } + } sinusoidalIn = sinusoidalInEasing{}; + + /** + * @ingroup sinusoidal + * @brief Deaccelerate ending values with a sinusoidal equation. + */ + static constexpr struct sinusoidalOutEasing { + template + static T run(float position, T start, T end) { + return static_cast((end - start) * sinf(position * static_cast(M_PI) / 2) + start); + } + } sinusoidalOut = sinusoidalOutEasing{}; + + /** + * @ingroup sinusoidal + * @brief Acceelerate initial and deaccelerate ending values with a sinusoidal equation. + */ + static constexpr struct sinusoidalInOutEasing { + template + static T run(float position, T start, T end) { + return static_cast((-(end - start) / 2) * (cosf(position * static_cast(M_PI)) - 1) + start); + } + } sinusoidalInOut = sinusoidalInOutEasing{}; + + /** + * @ingroup exponential + * @brief Acceelerate initial values with an exponential equation. + */ + static constexpr struct exponentialInEasing { + template + static T run(float position, T start, T end) { + return static_cast((end - start) * powf(2, 10 * (position - 1)) + start); + } + } exponentialIn = exponentialInEasing{}; + + /** + * @ingroup exponential + * @brief Deaccelerate ending values with an exponential equation. + */ + static constexpr struct exponentialOutEasing { + template + static T run(float position, T start, T end) { + return static_cast((end - start) * (-powf(2, -10 * position) + 1) + start); + } + } exponentialOut = exponentialOutEasing{}; + + /** + * @ingroup exponential + * @brief Acceelerate initial and deaccelerate ending values with an exponential equation. + */ + static constexpr struct exponentialInOutEasing { + template + static T run(float position, T start, T end) { + position *= 2; + if (position < 1) { + return static_cast(((end - start) / 2) * powf(2, 10 * (position - 1)) + start); + } + --position; + return static_cast(((end - start) / 2) * (-powf(2, -10 * position) + 2) + start); + } + } exponentialInOut = exponentialInOutEasing{}; + + /** + * @ingroup circular + * @brief Acceelerate initial values with a circular equation. + */ + static constexpr struct circularInEasing { + template + static T run(float position, T start, T end) { + return static_cast( -(end - start) * (sqrtf(1 - position * position) - 1) + start ); + } + } circularIn = circularInEasing{}; + + /** + * @ingroup circular + * @brief Deaccelerate ending values with a circular equation. + */ + static constexpr struct circularOutEasing { + template + static T run(float position, T start, T end) { + --position; + return static_cast((end - start) * (sqrtf(1 - position * position)) + start); + } + } circularOut = circularOutEasing{}; + + /** + * @ingroup circular + * @brief Acceelerate initial and deaccelerate ending values with a circular equation. + */ + static constexpr struct circularInOutEasing { + template + static T run(float position, T start, T end) { + position *= 2; + if (position < 1) { + return static_cast((-(end - start) / 2) * (sqrtf(1 - position * position) - 1) + start); + } + + position -= 2; + return static_cast(((end - start) / 2) * (sqrtf(1 - position * position) + 1) + start); + } + } circularInOut = circularInOutEasing{}; + + /** + * @ingroup bounce + * @brief Acceelerate initial values with a "bounce" equation. + */ + static constexpr struct bounceInEasing { + template + static T run(float position, T start, T end) { + return (end - start) - bounceOut.run((1 - position), T(), end) + start; + } + } bounceIn = bounceInEasing{}; + + /** + * @ingroup bounce + * @brief Deaccelerate ending values with a "bounce" equation. + */ + static constexpr struct bounceOutEasing { + template + static T run(float position, T start, T end) { + T c = end - start; + if (position < (1 / 2.75f)) { + return static_cast(c * (7.5625f * position * position) + start); + } else if (position < (2.0f / 2.75f)) { + float postFix = position -= (1.5f / 2.75f); + return static_cast(c * (7.5625f * (postFix) * position + .75f) + start); + } else if (position < (2.5f / 2.75f)) { + float postFix = position -= (2.25f / 2.75f); + return static_cast(c * (7.5625f * (postFix) * position + .9375f) + start); + } else { + float postFix = position -= (2.625f / 2.75f); + return static_cast(c * (7.5625f * (postFix) * position + .984375f) + start); + } + } + } bounceOut = bounceOutEasing{}; + + /** + * @ingroup bounce + * @brief Acceelerate initial and deaccelerate ending values with a "bounce" equation. + */ + static constexpr struct bounceInOutEasing { + template + static T run(float position, T start, T end) { + if (position < 0.5f) return static_cast(bounceIn.run(position * 2, T(), end) * .5f + start); + else return static_cast(bounceOut.run((position * 2 - 1), T(), end) * .5f + (end - start) * .5f + start); + } + } bounceInOut = bounceInOutEasing{}; + + /** + * @ingroup elastic + * @brief Acceelerate initial values with an "elastic" equation. + */ + static constexpr struct elasticInEasing { + template + static T run(float position, T start, T end) { + if (position <= 0.00001f) return start; + if (position >= 0.999f) return end; + float p = .3f; + auto a = end - start; + float s = p / 4; + float postFix = + a * powf(2, 10 * (position -= 1)); // this is a fix, again, with post-increment operators + return static_cast(-(postFix * sinf((position - s) * (2 * static_cast(M_PI)) / p)) + start); + } + } elasticIn = elasticInEasing{}; + + /** + * @ingroup elastic + * @brief Deaccelerate ending values with an "elastic" equation. + */ + static constexpr struct elasticOutEasing { + template + static T run(float position, T start, T end) { + if (position <= 0.00001f) return start; + if (position >= 0.999f) return end; + float p = .3f; + auto a = end - start; + float s = p / 4; + return static_cast(a * powf(2, -10 * position) * sinf((position - s) * (2 * static_cast(M_PI)) / p) + end); + } + } elasticOut = elasticOutEasing{}; + + /** + * @ingroup elastic + * @brief Acceelerate initial and deaccelerate ending values with an "elastic" equation. + */ + static constexpr struct elasticInOutEasing { + template + static T run(float position, T start, T end) { + if (position <= 0.00001f) return start; + if (position >= 0.999f) return end; + position *= 2; + float p = (.3f * 1.5f); + auto a = end - start; + float s = p / 4; + float postFix; + + if (position < 1) { + postFix = a * powf(2, 10 * (position -= 1)); // postIncrement is evil + return static_cast(-0.5f * (postFix * sinf((position - s) * (2 * static_cast(M_PI)) / p)) + start); + } + postFix = a * powf(2, -10 * (position -= 1)); // postIncrement is evil + return static_cast(postFix * sinf((position - s) * (2 * static_cast(M_PI)) / p) * .5f + end); + } + } elasticInOut = elasticInOutEasing{}; + + /** + * @ingroup back + * @brief Acceelerate initial values with a "back" equation. + */ + static constexpr struct backInEasing { + template + static T run(float position, T start, T end) { + float s = 1.70158f; + float postFix = position; + return static_cast((end - start) * (postFix) * position * ((s + 1) * position - s) + start); + } + } backIn = backInEasing{}; + + /** + * @ingroup back + * @brief Deaccelerate ending values with a "back" equation. + */ + static constexpr struct backOutEasing { + template + static T run(float position, T start, T end) { + float s = 1.70158f; + position -= 1; + return static_cast((end - start) * ((position) * position * ((s + 1) * position + s) + 1) + start); + } + } backOut = backOutEasing{}; + + /** + * @ingroup back + * @brief Acceelerate initial and deaccelerate ending values with a "back" equation. + */ + static constexpr struct backInOutEasing { + template + static T run(float position, T start, T end) { + float s = 1.70158f; + float t = position; + auto b = start; + auto c = end - start; + float d = 1; + s *= (1.525f); + if ((t /= d / 2) < 1) return static_cast(c / 2 * (t * t * (((s) + 1) * t - s)) + b); + float postFix = t -= 2; + return static_cast(c / 2 * ((postFix) * t * (((s) + 1) * t + s) + 2) + b); + } + } backInOut = backInOutEasing{}; + }; +} +#endif //TWEENY_EASING_H diff --git a/include/tweeny/easingresolve.h b/include/tweeny/easingresolve.h new file mode 100644 index 0000000..f7d266e --- /dev/null +++ b/include/tweeny/easingresolve.h @@ -0,0 +1,127 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * This file provides the easing resolution mechanism so that the library user can mix lambdas and the bundled + * pre-defined easing functions. It shall not be used directly. + * This file is private. + */ + +#ifndef TWEENY_EASINGRESOLVE_H +#define TWEENY_EASINGRESOLVE_H + +#include +#include "easing.h" + +namespace tweeny { + namespace detail { + using std::get; + + template + struct easingresolve { + static void impl(FunctionTuple &b, Fs... fs) { + if (sizeof...(Fs) == 0) return; + easingresolve::impl(b, fs...); + } + }; + + template + struct easingresolve { + static void impl(FunctionTuple &b, F1 f1, Fs... fs) { + get(b) = f1; + easingresolve::impl(b, fs...); + } + }; + + template + struct easingresolve { + typedef typename std::tuple_element::type ArgType; + + static void impl(FunctionTuple &b, easing::steppedEasing, Fs... fs) { + get(b) = easing::stepped.run; + easingresolve::impl(b, fs...); + } + }; + + template + struct easingresolve { + typedef typename std::tuple_element::type ArgType; + + static void impl(FunctionTuple &b, easing::linearEasing, Fs... fs) { + get(b) = easing::linear.run; + easingresolve::impl(b, fs...); + } + }; + template + struct easingresolve { + typedef typename std::tuple_element::type ArgType; + + static void impl(FunctionTuple &b, easing::defaultEasing, Fs... fs) { + get(b) = easing::def.run; + easingresolve::impl(b, fs...); + } + }; + + #define DECLARE_EASING_RESOLVE(__EASING_TYPE__) \ + template \ + struct easingresolve { \ + typedef typename std::tuple_element::type ArgType; \ + static void impl(FunctionTuple & b, decltype(easing::__EASING_TYPE__ ## In), Fs... fs) { \ + get(b) = easing::__EASING_TYPE__ ## In.run; \ + easingresolve::impl(b, fs...); \ + } \ + }; \ + \ + template \ + struct easingresolve { \ + typedef typename std::tuple_element::type ArgType; \ + static void impl(FunctionTuple & b, decltype(easing::__EASING_TYPE__ ## Out), Fs... fs) { \ + get(b) = easing::__EASING_TYPE__ ## Out.run; \ + easingresolve::impl(b, fs...); \ + } \ + }; \ + \ + template \ + struct easingresolve { \ + typedef typename std::tuple_element::type ArgType; \ + static void impl(FunctionTuple & b, decltype(easing::__EASING_TYPE__ ## InOut), Fs... fs) { \ + get(b) = easing::__EASING_TYPE__ ## InOut.run; \ + easingresolve::impl(b, fs...); \ + } \ + } + + DECLARE_EASING_RESOLVE(quadratic); + DECLARE_EASING_RESOLVE(cubic); + DECLARE_EASING_RESOLVE(quartic); + DECLARE_EASING_RESOLVE(quintic); + DECLARE_EASING_RESOLVE(sinusoidal); + DECLARE_EASING_RESOLVE(exponential); + DECLARE_EASING_RESOLVE(circular); + DECLARE_EASING_RESOLVE(bounce); + DECLARE_EASING_RESOLVE(elastic); + DECLARE_EASING_RESOLVE(back); + } +} + +#endif //TWEENY_EASINGRESOLVE_H diff --git a/include/tweeny/int2type.h b/include/tweeny/int2type.h new file mode 100644 index 0000000..a0d8f17 --- /dev/null +++ b/include/tweeny/int2type.h @@ -0,0 +1,37 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * This file declares a helper struct to create a type from a integer value, to aid in template tricks. + * This file is private. + */ +#ifndef TWEENY_INT2TYPE_H +#define TWEENY_INT2TYPE_H + +namespace tweeny { + namespace detail { + template struct int2type { }; + } +} +#endif //TWEENY_INT2TYPE_H diff --git a/include/tweeny/tween.h b/include/tweeny/tween.h new file mode 100644 index 0000000..3872496 --- /dev/null +++ b/include/tweeny/tween.h @@ -0,0 +1,656 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/** + * @file tween.h + * This file contains the core of tweeny: the main tween class. + */ + +#ifndef TWEENY_TWEEN_H +#define TWEENY_TWEEN_H + +#include +#include +#include + +#include "tweentraits.h" +#include "tweenpoint.h" + +namespace tweeny { + /** + * @brief The tween class is the core class of tweeny. It controls the interpolation steps, easings and durations. + * + * It should not be constructed manually but rather from @p tweeny::from, to facilitate template argument + * deduction (and also to keep your code clean). + */ + template + class tween { + public: + /** + * @brief Instantiates a tween from a starting point. + * + * This is a static factory helper function to be used by @p tweeny::from. You should not use this directly. + * @p t The first value in the point + * @p vs The remaining values + */ + static tween from(T t, Ts... vs); + + public: + /** + * @brief Default constructor for a tween + * + * This constructor is provided to facilitate the usage of containers of tweens (e.g, std::vector). It + * should not be used manually as the tweening created by it is invalid. + */ + tween(); + + /** + * @brief Adds a new point in this tweening. + * + * This will add a new tweening point with the specified values. Next calls to @p via and @p during + * will refer to this point. + * + * **Example** + * + * @code + * auto t = tweeny::from(0).to(100).to(200); + * @endcode + * + * @param t, vs Point values + * @returns *this + */ + tween & to(T t, Ts... vs); + + /** + * @brief Specifies the easing function for the last added point. + * + * This will specify the easing between the last tween point added by @p to and its previous step. You can + * use any callable object. Additionally, you can use the easing objects specified in the class @p easing. + * + * If it is a multi-value point, you can either specify a single easing function that will be used for + * every value or you can specify an easing function for each value. You can mix and match callable objects, + * lambdas and bundled easing objects. + * + * **Example**: + * + * @code + * // use bundled linear easing + * auto tween1 = tweeny::from(0).to(100).via(tweeny::easing::linear); + * + * // use custom lambda easing + * auto tween2 = tweeny::from(0).to(100).via([](float p, int a, int b) { return (b-a) * p + a; }); + * @endcode + * + * @param fs The functions + * @returns *this + * @see tweeny::easing + */ + template tween & via(Fs... fs); + + + /** + * @brief Specifies the easing function for the last added point, accepting an enumeration. + * + * This will specify the easing between the last tween point added by @p to and its previous step. You can + * use a value from the @p tweeny::easing::enumerated enum. You can then have an enumeration of your own + * poiting to this enumerated enums, or use it directly. You can mix-and-match enumerated easings, functions + * and easing names. + * + * **Example**: + * + * @code + * auto tween1 = tweeny::from(0).to(100).via(tweeny::easing::enumerated::linear); + * auto tween2 = tweeny::from(0.0f, 100.0f).to(100.0f, 0.0f).via(tweeny::easing::linear, "backOut"); + * + * @param fs The functions + * @returns *this + * @see tweeny::easing + */ + template tween & via(easing::enumerated enumerated, Fs... fs); + + /** + * @brief Specifies the easing function for the last added point, accepting an easing name as a `std::string` value. + * + * This will specify the easing between the last tween point added by @p to and its previous step. + * You can mix-and-match enumerated easings, functions and easing names. + * + * **Example**: + * + * @code + * auto tween = tweeny::from(0.0f, 100.0f).to(100.0f, 0.0f).via(tweeny::easing::linear, "backOut"); + * + * @param fs The functions + * @returns *this + * @see tweeny::easing + */ + template tween & via(const std::string & easing, Fs... fs); + + /** + * @brief Specifies the easing function for the last added point, accepting an easing name as a `const char *` value. + * + * This will specify the easing between the last tween point added by @p to and its previous step. + * You can mix-and-match enumerated easings, functions and easing names. + * + * **Example**: + * + * @code + * auto tween = tweeny::from(0.0f, 100.0f).to(100.0f, 0.0f).via(tweeny::easing::linear, "backOut"); + * + * @param fs The functions + * @returns *this + * @see tweeny::easing + */ + template tween & via(const char * easing, Fs... fs); + + /** + * @brief Specifies the easing function for a specific point. + * + * Points starts at index 0. The index 0 refers to the first @p to call. + * Using this function without adding a point with @p to leads to undefined + * behaviour. + * + * @param index The tween point index + * @param fs The functions + * @returns *this + * @see tweeny::easing + */ + template tween & via(int index, Fs... fs); + + /** + * @brief Specifies the duration, typically in milliseconds, for the tweening of values in last point. + * + * You can either specify a single duration for all values or give every value its own duration. Value types + * must be convertible to the uint16_t type. + * + * **Example**: + * + * @code + * // Specify that the first point will be reached in 100 milliseconds and the first value in the second + * // point in 100, whereas the second value will be reached in 500. + * auto tween = tweeny::from(0, 0).to(100, 200).during(100).to(200, 300).during(100, 500); + * @endcode + * + * @param ds Duration values + * @returns *this + */ + template tween & during(Ds... ds); + + /** + * @brief Steps the animation by the designated delta amount. + * + * You should call this every frame of your application, passing in the amount of delta time that + * you want to animate. + * + * **Example**: + * + * @code + * // tween duration is 100ms + * auto tween = tweeny::from(0).to(100).during(100); + * + * // steps for 16ms + * tween.step(16); + * @endcode + * + * @param dt Delta duration + * @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onStep() + * @returns std::tuple with the current tween values. + */ + const typename detail::tweentraits::valuesType & step(int32_t dt, bool suppressCallbacks = false); + + /** + * @brief Steps the animation by the designated delta amount. + * + * You should call this every frame of your application, passing in the amount of delta time that + * you want to animate. This overload exists to match unsigned int arguments. + * + * @param dt Delta duration + * @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onStep() + * @returns std::tuple with the current tween values. + */ + const typename detail::tweentraits::valuesType & step(uint32_t dt, bool suppressCallbacks = false); + + /** + * @brief Steps the animation by the designated percentage amount. + * + * You can use this function to step the tweening by a specified percentage delta. + + * **Example**: + * + * @code + * // tween duration is 100ms + * auto tween = tweeny::from(0).to(100).during(100); + * + * // steps for 16ms + * tween.step(0.001f); + * @endcode + * + * @param dp Delta percentage, between `0.0f` and `1.0f` + * @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onStep() + * @returns std::tuple with the current tween values. + */ + const typename detail::tweentraits::valuesType & step(float dp, bool suppressCallbacks = false); + + /** + * @brief Seeks to a specified point in time based on the currentProgress. + * + * This function sets the current animation time and currentProgress. Callbacks set by @p call will be triggered. + * + * @param p The percentage to seek to, between 0.0f and 1.0f, inclusive. + * @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onSeek() + * @returns std::tuple with the current tween values. + */ + const typename detail::tweentraits::valuesType & seek(float p, bool suppressCallbacks = false); + + /** + * @brief Seeks to a specified point in time. + * + * This function sets the current animation time and currentProgress. Callbacks set by @p call will be triggered. + * + * @param d The duration to seek to, between 0 and the total duration. + * @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onSeek() + * @returns std::tuple with the current tween values. + * @see duration + */ + const typename detail::tweentraits::valuesType & seek(int32_t d, bool suppressCallbacks = false); + + /** + * @brief Seeks to a specified point in time. + * + * This function sets the current animation time and currentProgress. Callbacks set by @p call will be triggered. + * + * @param d The duration to seek to, between 0 and the total duration. + * @param suppressCallbacks (Optional) Suppress callbacks registered with tween::onSeek() + * @returns std::tuple with the current tween values. + * @see duration + */ + const typename detail::tweentraits::valuesType & seek(uint32_t d, bool suppressCallbacks = false); + + /** + * @brief Adds a callback that will be called when stepping occurs, accepting both the tween and + * its values. + * + * You can add as many callbacks as you want. Its arguments types must be equal to the argument types + * of a tween instance, preceded by a variable of the tween type. Callbacks can be of any callable type. It will only be called + * via tween::step() functions. For seek callbacks, see tween::onSeek(). + * + * Keep in mind that the function will be *copied* into an array, so any variable captured by value + * will also be copied with it. + * + * If the callback returns false, it will be called next time. If it returns true, it will be removed from + * the callback queue. + * + * **Example**: + * + * @code + * auto t = tweeny:from(0).to(100).during(100); + * + * // pass a lambda + * t.onStep([](tweeny::tween & t, int v) { printf("%d ", v); return false; }); + * + * // pass a functor instance + * struct ftor { void operator()(tweeny::tween & t, int v) { printf("%d ", v); return false; } }; + * t.onStep(ftor()); + * @endcode + * @sa step + * @sa seek + * @sa onSeek + * @param callback A callback in with the prototype `bool callback(tween & t, Ts...)` + */ + tween & onStep(typename detail::tweentraits::callbackType callback); + + /** + * @brief Adds a callback that will be called when stepping occurs, accepting only the tween. + * + * You can add as many callbacks as you want. It must receive the tween as an argument. + * Callbacks can be of any callable type. It will only be called + * via tween::step() functions. For seek callbacks, see tween::onSeek(). + * + * Keep in mind that the function will be *copied* into an array, so any variable captured by value + * will also be copied with it. + * + * If the callback returns false, it will be called next time. If it returns true, it will be removed from + * the callback queue. + * + * **Example**: + * + * @code + * auto t = tweeny:from(0).to(100).during(100); + * + * // pass a lambda + * t.onStep([](tweeny::tween & t) { printf("%d ", t.value()); return false; }); + * + * // pass a functor instance + * struct ftor { void operator()(tweeny::tween & t) { printf("%d ", t.values()); return false; } }; + * t.onStep(ftor()); + * @endcode + * @sa step + * @sa seek + * @sa onSeek + * @param callback A callback in the form `bool f(tween & t)` + */ + tween & onStep(typename detail::tweentraits::noValuesCallbackType callback); + + /** + * @brief Adds a callback that will be called when stepping occurs, accepting only the tween values. + * + * You can add as many callbacks as you want. It must receive the tween values as an argument. + * Callbacks can be of any callable type. It will only be called + * via tween::step() functions. For seek callbacks, see tween::onSeek(). + * + * Keep in mind that the function will be *copied* into an array, so any variable captured by value + * will also be copied with it. + * + * If the callback returns false, it will be called next time. If it returns true, it will be removed from + * the callback queue. + * + * **Example**: + * + * @code + * auto t = tweeny:from(0).to(100).during(100); + * + * // pass a lambda + * t.onStep([](int v) { printf("%d ", v); return false; }); + * + * // pass a functor instance + * struct ftor { void operator()(int x) { printf("%d ", x); return false; } }; + * t.onStep(ftor()); + * @endcode + * @sa step + * @sa seek + * @sa onSeek + * @param callback A callback in the form `bool f(Ts...)` + */ + tween & onStep(typename detail::tweentraits::noTweenCallbackType callback); + + /** + * @brief Adds a callback for that will be called when seeking occurs + * + * You can add as many callbacks as you want. Its arguments types must be equal to the argument types + * of a tween instance, preceded by a variable of the tween typve. Callbacks can be of any callable type. It will be called + * via tween::seek() functions. For step callbacks, see tween::onStep(). + * + * Keep in mind that the function will be *copied* into an array, so any variable captured by value + * will also be copied with it. + * + * If the callback returns false, it will be called next time. If it returns true, it will be removed from + * the callback queue. + * + * **Example**: + * + * @code + * auto t = t:from(0).to(100).during(100); + * + * // pass a lambda + * t.onSeek([](tweeny::tween & t, int v) { printf("%d ", v); }); + * + * // pass a functor instance + * struct ftor { void operator()(tweeny::tween & t, int v) { printf("%d ", v); } }; + * t.onSeek(ftor()); + * @endcode + * @param callback A callback in with the prototype `bool callback(tween & t, Ts...)` + */ + tween & onSeek(typename detail::tweentraits::callbackType callback); + + /** + * @brief Adds a callback for that will be called when seeking occurs, accepting only the tween values. + * + * You can add as many callbacks as you want. It must receive the tween as an argument. + * Callbacks can be of any callable type. It will be called + * via tween::seek() functions. For step callbacks, see tween::onStep(). + * + * Keep in mind that the function will be *copied* into an array, so any variable captured by value + * will also be copied again. + * + * If the callback returns false, it will be called next time. If it returns true, it will be removed from + * the callback queue. + * + * **Example**: + * + * @code + * auto t = t:from(0).to(100).during(100); + * + * // pass a lambda + * t.onSeek([](int v) { printf("%d ", v); }); + * + * // pass a functor instance + * struct ftor { void operator()(int v) { printf("%d ", v); return false; } }; + * t.onSeek(ftor()); + * @endcode + * @param callback A callback in the form `bool f(Ts...)` + */ + tween & onSeek(typename detail::tweentraits::noTweenCallbackType callback); + + /** + * @brief Adds a callback for that will be called when seeking occurs, accepting only the tween. + * + * You can add as many callbacks as you want. It must receive the tween as an argument. + * Callbacks can be of any callable type. It will be called + * via tween::seek() functions. For step callbacks, see tween::onStep(). + * + * Keep in mind that the function will be *copied* into an array, so any variable captured by value + * will also be copied again. + * + * If the callback returns false, it will be called next time. If it returns true, it will be removed from + * the callback queue. + * + * **Example**: + * + * @code + * auto t = t:from(0).to(100).during(100); + * + * // pass a lambda + * t.onSeek([](tweeny::tween & t) { printf("%d ", t.value()); return false; }); + * + * // pass a functor instance + * struct ftor { void operator()(tweeny::tween & t) { printf("%d ", t.value()); return false; } }; + * t.onSeek(ftor()); + * @endcode + * @param callback A callback in the form `bool f(tween & t)` + */ + tween & onSeek(typename detail::tweentraits::noValuesCallbackType callback); + + /** + * @brief Returns the total duration of this tween + * + * @returns The duration of all the tween points. + */ + uint32_t duration() const; + + /** + * @brief Returns the current tween values + * + * This returns the current tween value as returned by the + * tween::step() function, except that it does not perform a step. + * @returns std::tuple with the current tween values. + */ + const typename detail::tweentraits::valuesType & peek() const; + + /** + * @brief Calculates and returns the tween values at a given progress + * + * This returns the tween value at the requested progress, without stepping + * or seeking. + * @returns std::tuple with the current tween values. + */ + const typename detail::tweentraits::valuesType peek(float progress) const; + + + /** + * @brief Calculates and return the tween values at a given time + * + * This returns the tween values at the requested time, without stepping + * or seeking. + * @returns std::tuple with the calculated tween values. + */ + const typename detail::tweentraits::valuesType peek(uint32_t time) const; + + /** + * @brief Returns the current currentProgress of the interpolation. + * + * 0 means its at the values passed in the construction, 1 means the last step. + * @returns the current currentProgress between 0 and 1 (inclusive) + */ + float progress() const; + + /** + * @brief Sets the direction of this tween forward. + * + * Note that this only affects tween::step() function. + * @returns *this + * @sa backward + */ + tween & forward(); + + /** + * @brief Sets the direction of this tween backward. + * + * Note that this only affects tween::step() function. + * @returns *this + * @sa forward + */ + tween & backward(); + + /** + * @brief Returns the current direction of this tween + * + * @returns -1 If it is mobin backwards in time, 1 if it is moving forward in time + */ + int direction() const; + + /** + * @brief Jumps to a specific tween point + * + * This will seek the tween to a percentage matching the beginning of that step. + * + * @param point The point to seek to. 0 means the point passed in tweeny::from + * @param suppressCallbacks (optional) set to true to suppress seek() callbacks + * @returns current values + * @sa seek + */ + const typename detail::tweentraits::valuesType & jump(size_t point, bool suppressCallbacks = false); + + /** + * @brief Returns the current tween point + * + * @returns Current tween point + */ + uint16_t point() const; + + private /* member types */: + using traits = detail::tweentraits; + + private /* member variables */: + uint32_t total = 0; // total runtime + uint16_t currentPoint = 0; // current point + float currentProgress = 0; // current progress + std::vector> points; + typename traits::valuesType current; + std::vector onStepCallbacks; + std::vector onSeekCallbacks; + int8_t currentDirection = 1; + + private: + /* member functions */ + tween(T t, Ts... vs); + template void interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type) const; + void interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type<0>) const; + void render(float p); + void dispatch(std::vector & cbVector); + uint16_t pointAt(float progress) const; + }; + + /** + * @brief Class specialization when a tween has a single value + * + * This class is preferred automatically by your compiler when your tween has only one value. It exists mainly + * so that you dont need to use std::get<0> to obtain a single value when using tween::step, tween::seek or any other + * value returning function. Other than that, you should look at the + * tweeny::tween documentation. + * + * Except for this little detail, this class methods and behaviours are exactly the same. + */ + template + class tween { + public: + static tween from(T t); + + public: + tween(); ///< @sa tween::tween + tween & to(T t); ///< @sa tween::to + template tween & via(Fs... fs); ///< @sa tween::via + template tween & via(int index, Fs... fs); ///< @sa tween::via + template tween & via(tweeny::easing::enumerated enumerated, Fs... fs); ///< @sa tween::via + template tween & via(const std::string & easing, Fs... fs); ///< @sa tween::via + template tween & via(const char * easing, Fs... fs); ///< @sa tween::via + template tween & during(Ds... ds); ///< @sa tween::during + const T & step(int32_t dt, bool suppressCallbacks = false); ///< @sa tween::step(int32_t dt, bool suppressCallbacks) + const T & step(uint32_t dt, bool suppressCallbacks = false); ///< @sa tween::step(uint32_t dt, bool suppressCallbacks) + const T & step(float dp, bool suppressCallbacks = false); ///< @sa tween::step(float dp, bool suppressCallbacks) + const T & seek(float p, bool suppressCallbacks = false); ///< @sa tween::seek(float p, bool suppressCallbacks) + const T & seek(int32_t d, bool suppressCallbacks = false); ///< @sa tween::seek(int32_t d, bool suppressCallbacks) + const T & seek(uint32_t d, bool suppressCallbacks = false); ///< @sa tween::seek(uint32_t d, bool suppressCallbacks) + tween & onStep(typename detail::tweentraits::callbackType callback); ///< @sa tween::onStep + tween & onStep(typename detail::tweentraits::noValuesCallbackType callback); ///< @sa tween::onStep + tween & onStep(typename detail::tweentraits::noTweenCallbackType callback); ///< @sa tween::onStep + tween & onSeek(typename detail::tweentraits::callbackType callback); ///< @sa tween::onSeek + tween & onSeek(typename detail::tweentraits::noValuesCallbackType callback); ///< @sa tween::onSeek + tween & onSeek(typename detail::tweentraits::noTweenCallbackType callback); ///< @sa tween::onSeek + const T & peek() const; ///< @sa tween::peek + T peek(float progress) const; ///< @sa tween::peek + T peek(uint32_t time) const; ///< @sa tween::peek + uint32_t duration() const; ///< @sa tween::duration + float progress() const; ///< @sa tween::progress + tween & forward(); ///< @sa tween::forward + tween & backward(); ///< @sa tween::backward + int direction() const; ///< @sa tween::direction + const T & jump(size_t point, bool suppressCallbacks = false); ///< @sa tween::jump + uint16_t point() const; ///< @sa tween::point + + private /* member types */: + using traits = detail::tweentraits; + + private /* member variables */: + uint32_t total = 0; // total runtime + uint16_t currentPoint = 0; // current point + float currentProgress = 0; // current progress + std::vector> points; + T current; + std::vector onStepCallbacks; + std::vector onSeekCallbacks; + int8_t currentDirection = 1; + + private: + /* member functions */ + tween(T t); + void interpolate(float prog, unsigned point, T & value) const; + void render(float p); + void dispatch(std::vector & cbVector); + uint16_t pointAt(float progress) const; + }; +} + +#include "tween.tcc" +#include "tweenone.tcc" + +#endif //TWEENY_TWEEN_H diff --git a/include/tweeny/tween.tcc b/include/tweeny/tween.tcc new file mode 100644 index 0000000..4523936 --- /dev/null +++ b/include/tweeny/tween.tcc @@ -0,0 +1,346 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * The purpose of this file is to hold implementations for the tween.h file. + */ + +#ifndef TWEENY_TWEEN_TCC +#define TWEENY_TWEEN_TCC + +#include "tween.h" +#include "dispatcher.h" + +namespace tweeny { + + namespace detail { + template + T clip(const T & n, const T & lower, const T & upper) { + return std::max(lower, std::min(n, upper)); + } + } + + template inline tween tween::from(T t, Ts... vs) { return tween(t, vs...); } + template inline tween::tween() { } + template inline tween::tween(T t, Ts... vs) { + points.emplace_back(t, vs...); + } + + template inline tween & tween::to(T t, Ts... vs) { + points.emplace_back(t, vs...); + return *this; + } + + template + template + inline tween & tween::via(Fs... vs) { + points.at(points.size() - 2).via(vs...); + return *this; + } + + template + template + inline tween & tween::via(int index, Fs... vs) { + points.at(static_cast(index)).via(vs...); + return *this; + } + + template + template + tween & tween::via(easing::enumerated enumerated, Fs... vs) { + switch (enumerated) { + case easing::enumerated::def: return via(easing::def, vs...); + case easing::enumerated::linear: return via(easing::linear, vs...); + case easing::enumerated::stepped: return via(easing::stepped, vs...); + case easing::enumerated::quadraticIn: return via(easing::quadraticIn, vs...); + case easing::enumerated::quadraticOut: return via(easing::quadraticOut, vs...); + case easing::enumerated::quadraticInOut: return via(easing::quadraticInOut, vs...); + case easing::enumerated::cubicIn: return via(easing::cubicIn, vs...); + case easing::enumerated::cubicOut: return via(easing::cubicOut, vs...); + case easing::enumerated::cubicInOut: return via(easing::cubicInOut, vs...); + case easing::enumerated::quarticIn: return via(easing::quarticIn, vs...); + case easing::enumerated::quarticOut: return via(easing::quarticOut, vs...); + case easing::enumerated::quarticInOut: return via(easing::quarticInOut, vs...); + case easing::enumerated::quinticIn: return via(easing::quinticIn, vs...); + case easing::enumerated::quinticOut: return via(easing::quinticOut, vs...); + case easing::enumerated::quinticInOut: return via(easing::quinticInOut, vs...); + case easing::enumerated::sinusoidalIn: return via(easing::sinusoidalIn, vs...); + case easing::enumerated::sinusoidalOut: return via(easing::sinusoidalOut, vs...); + case easing::enumerated::sinusoidalInOut: return via(easing::sinusoidalInOut, vs...); + case easing::enumerated::exponentialIn: return via(easing::exponentialIn, vs...); + case easing::enumerated::exponentialOut: return via(easing::exponentialOut, vs...); + case easing::enumerated::exponentialInOut: return via(easing::exponentialInOut, vs...); + case easing::enumerated::circularIn: return via(easing::circularIn, vs...); + case easing::enumerated::circularOut: return via(easing::circularOut, vs...); + case easing::enumerated::circularInOut: return via(easing::circularInOut, vs...); + case easing::enumerated::bounceIn: return via(easing::bounceIn, vs...); + case easing::enumerated::bounceOut: return via(easing::bounceOut, vs...); + case easing::enumerated::bounceInOut: return via(easing::bounceInOut, vs...); + case easing::enumerated::elasticIn: return via(easing::elasticIn, vs...); + case easing::enumerated::elasticOut: return via(easing::elasticOut, vs...); + case easing::enumerated::elasticInOut: return via(easing::elasticInOut, vs...); + case easing::enumerated::backIn: return via(easing::backIn, vs...); + case easing::enumerated::backOut: return via(easing::backOut, vs...); + case easing::enumerated::backInOut: return via(easing::backInOut, vs...); + default: return via(easing::def, vs...); + } + } + + template + template + tween & tween::via(const std::string & easing, Fs... vs) { + if (easing == "stepped") return via(easing::stepped, vs...); + if (easing == "linear") return via(easing::linear, vs...); + if (easing == "quadraticIn") return via(easing::quadraticIn, vs...); + if (easing == "quadraticOut") return via(easing::quadraticOut, vs...); + if (easing == "quadraticInOut") return via(easing::quadraticInOut, vs...); + if (easing == "cubicIn") return via(easing::cubicIn, vs...); + if (easing == "cubicOut") return via(easing::cubicOut, vs...); + if (easing == "cubicInOut") return via(easing::cubicInOut, vs...); + if (easing == "quarticIn") return via(easing::quarticIn, vs...); + if (easing == "quarticOut") return via(easing::quarticOut, vs...); + if (easing == "quarticInOut") return via(easing::quarticInOut, vs...); + if (easing == "quinticIn") return via(easing::quinticIn, vs...); + if (easing == "quinticOut") return via(easing::quinticOut, vs...); + if (easing == "quinticInOut") return via(easing::quinticInOut, vs...); + if (easing == "sinusoidalIn") return via(easing::sinusoidalIn, vs...); + if (easing == "sinusoidalOut") return via(easing::sinusoidalOut, vs...); + if (easing == "sinusoidalInOut") return via(easing::sinusoidalInOut, vs...); + if (easing == "exponentialIn") return via(easing::exponentialIn, vs...); + if (easing == "exponentialOut") return via(easing::exponentialOut, vs...); + if (easing == "exponentialInOut") return via(easing::exponentialInOut, vs...); + if (easing == "circularIn") return via(easing::circularIn, vs...); + if (easing == "circularOut") return via(easing::circularOut, vs...); + if (easing == "circularInOut") return via(easing::circularInOut, vs...); + if (easing == "bounceIn") return via(easing::bounceIn, vs...); + if (easing == "bounceOut") return via(easing::bounceOut, vs...); + if (easing == "bounceInOut") return via(easing::bounceInOut, vs...); + if (easing == "elasticIn") return via(easing::elasticIn, vs...); + if (easing == "elasticOut") return via(easing::elasticOut, vs...); + if (easing == "elasticInOut") return via(easing::elasticInOut, vs...); + if (easing == "backIn") return via(easing::backIn, vs...); + if (easing == "backOut") return via(easing::backOut, vs...); + if (easing == "backInOut") return via(easing::backInOut, vs...); + return via(easing::def, vs...); + } + + template + template + tween & tween::via(const char * easing, Fs... vs) { + return via(std::string(easing)); + } + + template + template + inline tween & tween::during(Ds... ds) { + total = 0; + points.at(points.size() - 2).during(ds...); + for (detail::tweenpoint & p : points) { + total += p.duration(); + p.stacked = total; + } + return *this; + } + + template + inline const typename detail::tweentraits::valuesType & tween::step(int32_t dt, bool suppress) { + return step(static_cast(dt)/static_cast(total), suppress); + } + + template + inline const typename detail::tweentraits::valuesType & tween::step(uint32_t dt, bool suppress) { + return step(static_cast(dt), suppress); + } + + template + inline const typename detail::tweentraits::valuesType & tween::step(float dp, bool suppress) { + dp *= currentDirection; + seek(currentProgress + dp, true); + if (!suppress) dispatch(onStepCallbacks); + return current; + } + + template + inline const typename detail::tweentraits::valuesType & tween::seek(float p, bool suppress) { + p = detail::clip(p, 0.0f, 1.0f); + currentProgress = p; + render(p); + if (!suppress) dispatch(onSeekCallbacks); + return current; + } + + template + inline const typename detail::tweentraits::valuesType & tween::seek(int32_t t, bool suppress) { + return seek(static_cast(t) / static_cast(total), suppress); + } + + template + inline uint32_t tween::duration() const { + return total; + } + + template + template + inline void tween::interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type) const { + auto & p = points.at(point); + auto pointDuration = uint32_t(p.duration() - (p.stacked - (prog * static_cast(total)))); + float pointTotal = static_cast(pointDuration) / static_cast(p.duration(I)); + if (pointTotal > 1.0f) pointTotal = 1.0f; + auto easing = std::get(p.easings); + std::get(values) = easing(pointTotal, std::get(p.values), std::get(points.at(point+1).values)); + interpolate(prog, point, values, detail::int2type{ }); + } + + template + inline void tween::interpolate(float prog, unsigned point, typename traits::valuesType & values, detail::int2type<0>) const { + auto & p = points.at(point); + auto pointDuration = uint32_t(p.duration() - (p.stacked - (prog * static_cast(total)))); + float pointTotal = static_cast(pointDuration) / static_cast(p.duration(0)); + if (pointTotal > 1.0f) pointTotal = 1.0f; + auto easing = std::get<0>(p.easings); + std::get<0>(values) = easing(pointTotal, std::get<0>(p.values), std::get<0>(points.at(point+1).values)); + } + + template + inline void tween::render(float p) { + currentPoint = pointAt(p); + interpolate(p, currentPoint, current, detail::int2type{ }); + } + + template + tween & tween::onStep(typename detail::tweentraits::callbackType callback) { + onStepCallbacks.push_back(callback); + return *this; + } + + template + tween & tween::onStep(typename detail::tweentraits::noValuesCallbackType callback) { + onStepCallbacks.push_back([callback](tween & t, T, Ts...) { return callback(t); }); + return *this; + } + + template + tween & tween::onStep(typename detail::tweentraits::noTweenCallbackType callback) { + onStepCallbacks.push_back([callback](tween &, T t, Ts... vs) { return callback(t, vs...); }); + return *this; + } + + template + tween & tween::onSeek(typename detail::tweentraits::callbackType callback) { + onSeekCallbacks.push_back(callback); + return *this; + } + + template + tween & tween::onSeek(typename detail::tweentraits::noValuesCallbackType callback) { + onSeekCallbacks.push_back([callback](tween & t, T, Ts...) { return callback(t); }); + return *this; + } + + template + tween & tween::onSeek(typename detail::tweentraits::noTweenCallbackType callback) { + onSeekCallbacks.push_back([callback](tween &, T t, Ts... vs) { return callback(t, vs...); }); + return *this; + } + + template + void tween::dispatch(std::vector & cbVector) { + std::vector dismissed; + for (size_t i = 0; i < cbVector.size(); ++i) { + auto && cb = cbVector[i]; + bool dismiss = detail::call(cb, std::tuple_cat(std::make_tuple(std::ref(*this)), current)); + if (dismiss) dismissed.push_back(i); + } + + if (dismissed.size() > 0) { + for (size_t i = 0; i < dismissed.size(); ++i) { + size_t index = dismissed[i]; + cbVector[index] = cbVector.at(cbVector.size() - 1 - i); + } + cbVector.resize(cbVector.size() - dismissed.size()); + } + } + + template + const typename detail::tweentraits::valuesType & tween::peek() const { + return current; + } + + template + const typename detail::tweentraits::valuesType tween::peek(float progress) const { + typename detail::tweentraits::valuesType values; + interpolate(progress, pointAt(progress), values, detail::int2type{ }); + return values; + } + + template + const typename detail::tweentraits::valuesType tween::peek(uint32_t time) const { + typename detail::tweentraits::valuesType values; + float progress = static_cast(time) / static_cast(total); + interpolate(progress, pointAt(progress), values, detail::int2type{ }); + return values; + } + + template + float tween::progress() const { + return currentProgress; + } + + template + tween & tween::forward() { + currentDirection = 1; + return *this; + } + + template + tween & tween::backward() { + currentDirection = -1; + return *this; + } + + template + int tween::direction() const { + return currentDirection; + } + + template + inline const typename detail::tweentraits::valuesType & tween::jump(std::size_t p, bool suppress) { + p = detail::clip(p, static_cast(0), points.size() -1); + return seek(static_cast(points.at(p).stacked), suppress); + } + + template inline uint16_t tween::point() const { + return currentPoint; + } + + template inline uint16_t tween::pointAt(float progress) const { + uint32_t t = static_cast(progress * total); + uint16_t point = 0; + while (t > points.at(point).stacked) point++; + if (point > 0 && t <= points.at(point - 1u).stacked) point--; + return point; + } +} + +#endif //TWEENY_TWEEN_TCC diff --git a/include/tweeny/tweenone.tcc b/include/tweeny/tweenone.tcc new file mode 100644 index 0000000..2967518 --- /dev/null +++ b/include/tweeny/tweenone.tcc @@ -0,0 +1,334 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * The purpose of this file is to hold implementations for the tween.h file, s + * pecializing on the single value case. + */ +#ifndef TWEENY_TWEENONE_TCC +#define TWEENY_TWEENONE_TCC + +#include "tween.h" +#include "dispatcher.h" + +namespace tweeny { + template inline tween tween::from(T t) { return tween(t); } + template inline tween::tween() { } + template inline tween::tween(T t) { + points.emplace_back(t); + } + + template inline tween & tween::to(T t) { + points.emplace_back(t); + return *this; + } + + template + template + inline tween & tween::via(Fs... vs) { + points.at(points.size() - 2).via(vs...); + return *this; + } + + template + template + inline tween & tween::via(int index, Fs... vs) { + points.at(static_cast(index)).via(vs...); + return *this; + } + + template + template + tween & tween::via(easing::enumerated enumerated, Fs... vs) { + switch (enumerated) { + case easing::enumerated::def: return via(easing::def, vs...); + case easing::enumerated::linear: return via(easing::linear, vs...); + case easing::enumerated::stepped: return via(easing::stepped, vs...); + case easing::enumerated::quadraticIn: return via(easing::quadraticIn, vs...); + case easing::enumerated::quadraticOut: return via(easing::quadraticOut, vs...); + case easing::enumerated::quadraticInOut: return via(easing::quadraticInOut, vs...); + case easing::enumerated::cubicIn: return via(easing::cubicIn, vs...); + case easing::enumerated::cubicOut: return via(easing::cubicOut, vs...); + case easing::enumerated::cubicInOut: return via(easing::cubicInOut, vs...); + case easing::enumerated::quarticIn: return via(easing::quarticIn, vs...); + case easing::enumerated::quarticOut: return via(easing::quarticOut, vs...); + case easing::enumerated::quarticInOut: return via(easing::quarticInOut, vs...); + case easing::enumerated::quinticIn: return via(easing::quinticIn, vs...); + case easing::enumerated::quinticOut: return via(easing::quinticOut, vs...); + case easing::enumerated::quinticInOut: return via(easing::quinticInOut, vs...); + case easing::enumerated::sinusoidalIn: return via(easing::sinusoidalIn, vs...); + case easing::enumerated::sinusoidalOut: return via(easing::sinusoidalOut, vs...); + case easing::enumerated::sinusoidalInOut: return via(easing::sinusoidalInOut, vs...); + case easing::enumerated::exponentialIn: return via(easing::exponentialIn, vs...); + case easing::enumerated::exponentialOut: return via(easing::exponentialOut, vs...); + case easing::enumerated::exponentialInOut: return via(easing::exponentialInOut, vs...); + case easing::enumerated::circularIn: return via(easing::circularIn, vs...); + case easing::enumerated::circularOut: return via(easing::circularOut, vs...); + case easing::enumerated::circularInOut: return via(easing::circularInOut, vs...); + case easing::enumerated::bounceIn: return via(easing::bounceIn, vs...); + case easing::enumerated::bounceOut: return via(easing::bounceOut, vs...); + case easing::enumerated::bounceInOut: return via(easing::bounceInOut, vs...); + case easing::enumerated::elasticIn: return via(easing::elasticIn, vs...); + case easing::enumerated::elasticOut: return via(easing::elasticOut, vs...); + case easing::enumerated::elasticInOut: return via(easing::elasticInOut, vs...); + case easing::enumerated::backIn: return via(easing::backIn, vs...); + case easing::enumerated::backOut: return via(easing::backOut, vs...); + case easing::enumerated::backInOut: return via(easing::backInOut, vs...); + default: return via(easing::def, vs...); + } + } + + template + template + tween & tween::via(const std::string & easing, Fs... vs) { + if (easing == "stepped") return via(easing::stepped, vs...); + if (easing == "linear") return via(easing::linear, vs...); + if (easing == "quadraticIn") return via(easing::quadraticIn, vs...); + if (easing == "quadraticOut") return via(easing::quadraticOut, vs...); + if (easing == "quadraticInOut") return via(easing::quadraticInOut, vs...); + if (easing == "cubicIn") return via(easing::cubicIn, vs...); + if (easing == "cubicOut") return via(easing::cubicOut, vs...); + if (easing == "cubicInOut") return via(easing::cubicInOut, vs...); + if (easing == "quarticIn") return via(easing::quarticIn, vs...); + if (easing == "quarticOut") return via(easing::quarticOut, vs...); + if (easing == "quarticInOut") return via(easing::quarticInOut, vs...); + if (easing == "quinticIn") return via(easing::quinticIn, vs...); + if (easing == "quinticOut") return via(easing::quinticOut, vs...); + if (easing == "quinticInOut") return via(easing::quinticInOut, vs...); + if (easing == "sinusoidalIn") return via(easing::sinusoidalIn, vs...); + if (easing == "sinusoidalOut") return via(easing::sinusoidalOut, vs...); + if (easing == "sinusoidalInOut") return via(easing::sinusoidalInOut, vs...); + if (easing == "exponentialIn") return via(easing::exponentialIn, vs...); + if (easing == "exponentialOut") return via(easing::exponentialOut, vs...); + if (easing == "exponentialInOut") return via(easing::exponentialInOut, vs...); + if (easing == "circularIn") return via(easing::circularIn, vs...); + if (easing == "circularOut") return via(easing::circularOut, vs...); + if (easing == "circularInOut") return via(easing::circularInOut, vs...); + if (easing == "bounceIn") return via(easing::bounceIn, vs...); + if (easing == "bounceOut") return via(easing::bounceOut, vs...); + if (easing == "bounceInOut") return via(easing::bounceInOut, vs...); + if (easing == "elasticIn") return via(easing::elasticIn, vs...); + if (easing == "elasticOut") return via(easing::elasticOut, vs...); + if (easing == "elasticInOut") return via(easing::elasticInOut, vs...); + if (easing == "backIn") return via(easing::backIn, vs...); + if (easing == "backOut") return via(easing::backOut, vs...); + if (easing == "backInOut") return via(easing::backInOut, vs...); + return via(easing::def, vs...); + } + + template + template + tween & tween::via(const char * easing, Fs... vs) { + return via(std::string(easing)); + } + + template + template + inline tween & tween::during(Ds... ds) { + total = 0; + points.at(points.size() - 2).during(ds...); + for (detail::tweenpoint & p : points) { + total += p.duration(); + p.stacked = total; + } + return *this; + } + + template + inline const T & tween::step(int32_t dt, bool suppress) { + return step(static_cast(dt)/static_cast(total), suppress); + } + + template + inline const T & tween::step(uint32_t dt, bool suppress) { + return step(static_cast(dt), suppress); + } + + template + inline const T & tween::step(float dp, bool suppress) { + dp *= currentDirection; + seek(currentProgress + dp, true); + if (!suppress) dispatch(onStepCallbacks); + return current; + } + + template + inline const T & tween::seek(float p, bool suppress) { + p = detail::clip(p, 0.0f, 1.0f); + currentProgress = p; + render(p); + if (!suppress) dispatch(onSeekCallbacks); + return current; + } + + template + inline const T & tween::seek(int32_t t, bool suppress) { + return seek(static_cast(t) / static_cast(total), suppress); + } + + template + inline const T & tween::seek(uint32_t t, bool suppress) { + return seek(static_cast(t) / static_cast(total), suppress); + } + + template + inline uint32_t tween::duration() const { + return total; + } + + template + inline void tween::interpolate(float prog, unsigned point, T & value) const { + auto & p = points.at(point); + auto pointDuration = uint32_t(p.duration() - (p.stacked - (prog * static_cast(total)))); + float pointTotal = static_cast(pointDuration) / static_cast(p.duration()); + if (pointTotal > 1.0f) pointTotal = 1.0f; + auto easing = std::get<0>(p.easings); + value = easing(pointTotal, std::get<0>(p.values), std::get<0>(points.at(point+1).values)); + } + + template + inline void tween::render(float p) { + currentPoint = pointAt(p); + interpolate(p, currentPoint, current); + } + + template + tween & tween::onStep(typename detail::tweentraits::callbackType callback) { + onStepCallbacks.push_back(callback); + return *this; + } + + template + tween & tween::onStep(typename detail::tweentraits::noValuesCallbackType callback) { + onStepCallbacks.push_back([callback](tween & tween, T) { return callback(tween); }); + return *this; + } + + template + tween & tween::onStep(typename detail::tweentraits::noTweenCallbackType callback) { + onStepCallbacks.push_back([callback](tween &, T v) { return callback(v); }); + return *this; + } + + template + tween & tween::onSeek(typename detail::tweentraits::callbackType callback) { + onSeekCallbacks.push_back(callback); + return *this; + } + + template + tween & tween::onSeek(typename detail::tweentraits::noValuesCallbackType callback) { + onSeekCallbacks.push_back([callback](tween & t, T) { return callback(t); }); + return *this; + } + + template + tween & tween::onSeek(typename detail::tweentraits::noTweenCallbackType callback) { + onSeekCallbacks.push_back([callback](tween &, T v) { return callback(v); }); + return *this; + } + + template + void tween::dispatch(std::vector & cbVector) { + std::vector dismissed; + for (size_t i = 0; i < cbVector.size(); ++i) { + auto && cb = cbVector[i]; + bool dismiss = cb(*this, current); + if (dismiss) dismissed.push_back(i); + } + + if (dismissed.size() > 0) { + for (size_t i = 0; i < dismissed.size(); ++i) { + size_t index = dismissed[i]; + cbVector[index] = cbVector.at(cbVector.size() - 1 - i); + } + cbVector.resize(cbVector.size() - dismissed.size()); + } + } + + template + const T & tween::peek() const { + return current; + } + + + template + T tween::peek(float progress) const { + T value; + interpolate(progress, pointAt(progress), value); + return value; + } + + template + T tween::peek(uint32_t time) const { + T value; + float progress = static_cast(time) / static_cast(total); + interpolate(progress, pointAt(progress), value); + return value; + } + + + template + float tween::progress() const { + return currentProgress; + } + + template + tween & tween::forward() { + currentDirection = 1; + return *this; + } + + template + tween & tween::backward() { + currentDirection = -1; + return *this; + } + + template + int tween::direction() const { + return currentDirection; + } + + template + inline const T & tween::jump(size_t p, bool suppress) { + p = detail::clip(p, static_cast(0), points.size() -1); + return seek(points.at(p).stacked, suppress); + } + + template inline uint16_t tween::point() const { + return currentPoint; + } + + + + template inline uint16_t tween::pointAt(float progress) const { + auto t = static_cast(progress * total); + uint16_t point = 0; + while (t > points.at(point).stacked) point++; + if (point > 0 && t <= points.at(point - 1u).stacked) point--; + return point; + } +} +#endif //TWEENY_TWEENONE_TCC diff --git a/include/tweeny/tweenpoint.h b/include/tweeny/tweenpoint.h new file mode 100644 index 0000000..732446c --- /dev/null +++ b/include/tweeny/tweenpoint.h @@ -0,0 +1,82 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * This file provides the declarations for a tween point utility class. A tweenpoint holds the tween values, + * easings and durations. + */ + + +#ifndef TWEENY_TWEENPOINT_H +#define TWEENY_TWEENPOINT_H + + +#include +#include + +#include "tweentraits.h" + +namespace tweeny { + namespace detail { + /* + * The tweenpoint class aids in the management of a tweening point by the tween class. + * This class is private. + */ + template + struct tweenpoint { + typedef detail::tweentraits traits; + + typename traits::valuesType values; + typename traits::durationsArrayType durations; + typename traits::easingCollection easings; + typename traits::callbackType onEnterCallbacks; + uint32_t stacked; + + /* Constructs a tweenpoint from a set of values, filling their durations and easings */ + tweenpoint(Ts... vs); + + /* Set the duration for all the values in this point */ + template void during(D milis); + + /* Sets the duration for each value in this point */ + template void during(Ds... vs); + + /* Sets the easing functions of each value */ + template void via(Fs... fs); + + /* Sets the same easing function for all values */ + template void via(F f); + + /* Returns the highest value in duration array */ + uint16_t duration() const; + + /* Returns the value of that specific value */ + uint16_t duration(size_t i) const; + }; + } +} + +#include "tweenpoint.tcc" + +#endif //TWEENY_TWEENPOINT_H diff --git a/include/tweeny/tweenpoint.tcc b/include/tweeny/tweenpoint.tcc new file mode 100644 index 0000000..c5cda0e --- /dev/null +++ b/include/tweeny/tweenpoint.tcc @@ -0,0 +1,115 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * This file implements the tweenpoint class + */ + +#ifndef TWEENY_TWEENPOINT_TCC +#define TWEENY_TWEENPOINT_TCC + +#include +#include + +#include "tweenpoint.h" +#include "tweentraits.h" +#include "easing.h" +#include "easingresolve.h" +#include "int2type.h" + +namespace tweeny { + namespace detail { + template void easingfill(EasingCollectionT & f, EasingT easing, int2type) { + easingresolve::impl(f, easing); + easingfill(f, easing, int2type{ }); + } + + template void easingfill(EasingCollectionT & f, EasingT easing, int2type<0>) { + easingresolve<0, TypeTupleT, EasingCollectionT, EasingT>::impl(f, easing); + } + + + template + struct are_same; + + template + struct are_same + { + static const bool value = std::is_same::value && are_same::value; + }; + + template + struct are_same + { + static const bool value = true; + }; + + + template + inline tweenpoint::tweenpoint(Ts... vs) : values{vs...} { + during(static_cast(0)); + via(easing::def); + } + + template + template + inline void tweenpoint::during(D milis) { + for (uint16_t & t : durations) { t = static_cast(milis); } + } + + template + template + inline void tweenpoint::during(Ds... milis) { + static_assert(sizeof...(Ds) == sizeof...(Ts), + "Amount of durations should be equal to the amount of values in a point"); + std::array list = {{ milis... }}; + std::copy(list.begin(), list.end(), durations.begin()); + } + + template + template + inline void tweenpoint::via(Fs... fs) { + static_assert(sizeof...(Fs) == sizeof...(Ts), + "Number of functions passed to via() must be equal the number of values."); + detail::easingresolve<0, std::tuple, typename traits::easingCollection, Fs...>::impl(easings, fs...); + } + + template + template + inline void tweenpoint::via(F f) { + easingfill(easings, f, int2type{ }); + } + + template + inline uint16_t tweenpoint::duration() const { + return *std::max_element(durations.begin(), durations.end()); + } + + template + inline uint16_t tweenpoint::duration(size_t i) const { + return durations.at(i); + } + } +} +#endif //TWEENY_TWEENPOINT_TCC diff --git a/include/tweeny/tweentraits.h b/include/tweeny/tweentraits.h new file mode 100644 index 0000000..f9c7905 --- /dev/null +++ b/include/tweeny/tweentraits.h @@ -0,0 +1,75 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * This file provides useful typedefs and traits for a tween. + */ + +#ifndef TWEENY_TWEENTRAITS_H +#define TWEENY_TWEENTRAITS_H + +#include +#include +#include + +namespace tweeny { + template class tween; + + namespace detail { + + template struct equal {}; + template struct equal { enum { value = true }; }; + template struct equal { + enum { value = std::is_same::value && equal::value && equal::value }; + }; + + template struct first { typedef T type; }; + + template + struct valuetype { }; + + template + struct valuetype { + typedef std::tuple type; + }; + + template + struct valuetype { + typedef std::array::type, sizeof...(Ts)> type; + }; + + template + struct tweentraits { + typedef std::tuple...> easingCollection; + typedef std::function &, Ts...)> callbackType; + typedef std::function &)> noValuesCallbackType; + typedef std::function noTweenCallbackType; + typedef typename valuetype::value, Ts...>::type valuesType; + typedef std::array durationsArrayType; + typedef tween type; + }; + } +} + +#endif //TWEENY_TWEENTRAITS_H diff --git a/include/tweeny/tweeny.h b/include/tweeny/tweeny.h new file mode 100644 index 0000000..3c7ba44 --- /dev/null +++ b/include/tweeny/tweeny.h @@ -0,0 +1,102 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/** + * @file tweeny.h + * This file is the main header file for Tweeny. You should not need to include anything else. + */ + +/** + * @mainpage Tweeny + * + * Tweeny is an inbetweening library designed for the creation of complex animations for games and other beautiful + * interactive software. It leverages features of modern C++ to empower developers with an intuitive API for + * declaring tweenings of any type of value, as long as they support arithmetic operations. + * + * This document contains Tweeny's API reference. The most interesting parts are: + * + * * The Fine @ref manual + * * The tweeny::from global function, to start a new tween. + * * The tweeny::tween class itself, that has all the interesting methods for a tween. + * * The modules page has a list of type of easings. + * + * This is how the API looks like: + * + * @code + * + * #include "tweeny.h" + * + * using tweeny::easing; + * + * int main() { + * // steps 1% each iteration + * auto tween = tweeny::from(0).to(100).during(100).via(easing::linear); + * while (tween.progress() < 1.0f) tween.step(0.01f); + * + * // a tween with multiple values + * auto tween2 = tweeny::from(0, 1.0f).to(1200, 7.0f).during(1000).via(easing::backInOut, easing::linear); + * + * // a tween with multiple points, different easings and durations + * auto tween3 = tweeny::from(0, 0) + * .to(100, 100).during(100).via(easing::backOut, easing::backOut) + * .to(200, 200).during(500).via(easing::linear); + * return 0; + * } + * + * @endcode + * + * **Examples** + * + * * Check tweeny-demos repository to see demonstration code + * + * **Useful links and references** + * * Tim Groleau's easing function generator (requires flash) + * * Easing cheat sheet (contains graphics!) + */ + +#ifndef TWEENY_H +#define TWEENY_H + +#include "tween.h" +#include "easing.h" + +/** + * @brief The tweeny namespace contains all symbols and names for the Tweeny library. + */ +namespace tweeny { + /** + * @brief Creates a tween starting from the values defined in the arguments. + * + * Starting values can have heterogeneous types, even user-defined types, provided they implement the + * four arithmetic operators (+, -, * and /). The types used will also define the type of each next step, the type + * of the callback and the type of arguments the passed easing functions must have. + * + * @sa tweeny::tween + */ + template tween from(Ts... vs); +} + +#include "tweeny.tcc" + +#endif //TWEENY_TWEENY_H diff --git a/include/tweeny/tweeny.tcc b/include/tweeny/tweeny.tcc new file mode 100644 index 0000000..e2defac --- /dev/null +++ b/include/tweeny/tweeny.tcc @@ -0,0 +1,40 @@ +/* + This file is part of the Tweeny library. + + Copyright (c) 2016-2021 Leonardo Guilherme Lucena de Freitas + Copyright (c) 2016 Guilherme R. Costa + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +/* + * This file provides the implementation for tweeny.h + */ + +#ifndef TWEENY_TWEENY_TCC +#define TWEENY_TWEENY_TCC + +#include "tween.h" + +namespace tweeny { + template inline tween from(Ts... vs) { + return tween::from(vs...); + } +} + +#endif //TWEENY_TWEENY_TCC diff --git a/resources/img/cards/c1.png b/resources/img/cards/c1.png new file mode 100644 index 0000000..42bf5ec Binary files /dev/null and b/resources/img/cards/c1.png differ diff --git a/resources/img/cards/c10.png b/resources/img/cards/c10.png new file mode 100644 index 0000000..18af741 Binary files /dev/null and b/resources/img/cards/c10.png differ diff --git a/resources/img/cards/c11.png b/resources/img/cards/c11.png new file mode 100644 index 0000000..5e003be Binary files /dev/null and b/resources/img/cards/c11.png differ diff --git a/resources/img/cards/c12.png b/resources/img/cards/c12.png new file mode 100644 index 0000000..7be5f9a Binary files /dev/null and b/resources/img/cards/c12.png differ diff --git a/resources/img/cards/c13.png b/resources/img/cards/c13.png new file mode 100644 index 0000000..68e5774 Binary files /dev/null and b/resources/img/cards/c13.png differ diff --git a/resources/img/cards/c2.png b/resources/img/cards/c2.png new file mode 100644 index 0000000..291ed97 Binary files /dev/null and b/resources/img/cards/c2.png differ diff --git a/resources/img/cards/c3.png b/resources/img/cards/c3.png new file mode 100644 index 0000000..076ab31 Binary files /dev/null and b/resources/img/cards/c3.png differ diff --git a/resources/img/cards/c4.png b/resources/img/cards/c4.png new file mode 100644 index 0000000..8be9e08 Binary files /dev/null and b/resources/img/cards/c4.png differ diff --git a/resources/img/cards/c5.png b/resources/img/cards/c5.png new file mode 100644 index 0000000..bde9777 Binary files /dev/null and b/resources/img/cards/c5.png differ diff --git a/resources/img/cards/c6.png b/resources/img/cards/c6.png new file mode 100644 index 0000000..a9660a0 Binary files /dev/null and b/resources/img/cards/c6.png differ diff --git a/resources/img/cards/c7.png b/resources/img/cards/c7.png new file mode 100644 index 0000000..9d6b545 Binary files /dev/null and b/resources/img/cards/c7.png differ diff --git a/resources/img/cards/c8.png b/resources/img/cards/c8.png new file mode 100644 index 0000000..cec743c Binary files /dev/null and b/resources/img/cards/c8.png differ diff --git a/resources/img/cards/c9.png b/resources/img/cards/c9.png new file mode 100644 index 0000000..2174db5 Binary files /dev/null and b/resources/img/cards/c9.png differ diff --git a/resources/img/cards/cardback.png b/resources/img/cards/cardback.png new file mode 100644 index 0000000..d9df844 Binary files /dev/null and b/resources/img/cards/cardback.png differ diff --git a/resources/img/cards/d1.png b/resources/img/cards/d1.png new file mode 100644 index 0000000..79cd3b8 Binary files /dev/null and b/resources/img/cards/d1.png differ diff --git a/resources/img/cards/d10.png b/resources/img/cards/d10.png new file mode 100644 index 0000000..3bbc4e0 Binary files /dev/null and b/resources/img/cards/d10.png differ diff --git a/resources/img/cards/d11.png b/resources/img/cards/d11.png new file mode 100644 index 0000000..131a977 Binary files /dev/null and b/resources/img/cards/d11.png differ diff --git a/resources/img/cards/d12.png b/resources/img/cards/d12.png new file mode 100644 index 0000000..928f650 Binary files /dev/null and b/resources/img/cards/d12.png differ diff --git a/resources/img/cards/d13.png b/resources/img/cards/d13.png new file mode 100644 index 0000000..e21d6a0 Binary files /dev/null and b/resources/img/cards/d13.png differ diff --git a/resources/img/cards/d2.png b/resources/img/cards/d2.png new file mode 100644 index 0000000..4deee7c Binary files /dev/null and b/resources/img/cards/d2.png differ diff --git a/resources/img/cards/d3.png b/resources/img/cards/d3.png new file mode 100644 index 0000000..8ee0b4b Binary files /dev/null and b/resources/img/cards/d3.png differ diff --git a/resources/img/cards/d4.png b/resources/img/cards/d4.png new file mode 100644 index 0000000..70e82e8 Binary files /dev/null and b/resources/img/cards/d4.png differ diff --git a/resources/img/cards/d5.png b/resources/img/cards/d5.png new file mode 100644 index 0000000..bb92525 Binary files /dev/null and b/resources/img/cards/d5.png differ diff --git a/resources/img/cards/d6.png b/resources/img/cards/d6.png new file mode 100644 index 0000000..78a80ad Binary files /dev/null and b/resources/img/cards/d6.png differ diff --git a/resources/img/cards/d7.png b/resources/img/cards/d7.png new file mode 100644 index 0000000..6ad5f15 Binary files /dev/null and b/resources/img/cards/d7.png differ diff --git a/resources/img/cards/d8.png b/resources/img/cards/d8.png new file mode 100644 index 0000000..ed12951 Binary files /dev/null and b/resources/img/cards/d8.png differ diff --git a/resources/img/cards/d9.png b/resources/img/cards/d9.png new file mode 100644 index 0000000..0b933fb Binary files /dev/null and b/resources/img/cards/d9.png differ diff --git a/resources/img/cards/h1.png b/resources/img/cards/h1.png new file mode 100644 index 0000000..b422124 Binary files /dev/null and b/resources/img/cards/h1.png differ diff --git a/resources/img/cards/h10.png b/resources/img/cards/h10.png new file mode 100644 index 0000000..3eb83d7 Binary files /dev/null and b/resources/img/cards/h10.png differ diff --git a/resources/img/cards/h11.png b/resources/img/cards/h11.png new file mode 100644 index 0000000..bf342bc Binary files /dev/null and b/resources/img/cards/h11.png differ diff --git a/resources/img/cards/h12.png b/resources/img/cards/h12.png new file mode 100644 index 0000000..21839e6 Binary files /dev/null and b/resources/img/cards/h12.png differ diff --git a/resources/img/cards/h13.png b/resources/img/cards/h13.png new file mode 100644 index 0000000..1d3c468 Binary files /dev/null and b/resources/img/cards/h13.png differ diff --git a/resources/img/cards/h2.png b/resources/img/cards/h2.png new file mode 100644 index 0000000..75a014f Binary files /dev/null and b/resources/img/cards/h2.png differ diff --git a/resources/img/cards/h3.png b/resources/img/cards/h3.png new file mode 100644 index 0000000..8e74673 Binary files /dev/null and b/resources/img/cards/h3.png differ diff --git a/resources/img/cards/h4.png b/resources/img/cards/h4.png new file mode 100644 index 0000000..ceecbfe Binary files /dev/null and b/resources/img/cards/h4.png differ diff --git a/resources/img/cards/h5.png b/resources/img/cards/h5.png new file mode 100644 index 0000000..d923456 Binary files /dev/null and b/resources/img/cards/h5.png differ diff --git a/resources/img/cards/h6.png b/resources/img/cards/h6.png new file mode 100644 index 0000000..361643e Binary files /dev/null and b/resources/img/cards/h6.png differ diff --git a/resources/img/cards/h7.png b/resources/img/cards/h7.png new file mode 100644 index 0000000..19b89a2 Binary files /dev/null and b/resources/img/cards/h7.png differ diff --git a/resources/img/cards/h8.png b/resources/img/cards/h8.png new file mode 100644 index 0000000..fb39723 Binary files /dev/null and b/resources/img/cards/h8.png differ diff --git a/resources/img/cards/h9.png b/resources/img/cards/h9.png new file mode 100644 index 0000000..7b196d6 Binary files /dev/null and b/resources/img/cards/h9.png differ diff --git a/resources/img/cards/s1.png b/resources/img/cards/s1.png new file mode 100644 index 0000000..103f56d Binary files /dev/null and b/resources/img/cards/s1.png differ diff --git a/resources/img/cards/s10.png b/resources/img/cards/s10.png new file mode 100644 index 0000000..0b3d294 Binary files /dev/null and b/resources/img/cards/s10.png differ diff --git a/resources/img/cards/s11.png b/resources/img/cards/s11.png new file mode 100644 index 0000000..f539c19 Binary files /dev/null and b/resources/img/cards/s11.png differ diff --git a/resources/img/cards/s12.png b/resources/img/cards/s12.png new file mode 100644 index 0000000..7983d03 Binary files /dev/null and b/resources/img/cards/s12.png differ diff --git a/resources/img/cards/s13.png b/resources/img/cards/s13.png new file mode 100644 index 0000000..2edbbc1 Binary files /dev/null and b/resources/img/cards/s13.png differ diff --git a/resources/img/cards/s2.png b/resources/img/cards/s2.png new file mode 100644 index 0000000..1ce0ffe Binary files /dev/null and b/resources/img/cards/s2.png differ diff --git a/resources/img/cards/s3.png b/resources/img/cards/s3.png new file mode 100644 index 0000000..f9e06b4 Binary files /dev/null and b/resources/img/cards/s3.png differ diff --git a/resources/img/cards/s4.png b/resources/img/cards/s4.png new file mode 100644 index 0000000..95abe3e Binary files /dev/null and b/resources/img/cards/s4.png differ diff --git a/resources/img/cards/s5.png b/resources/img/cards/s5.png new file mode 100644 index 0000000..53a1aad Binary files /dev/null and b/resources/img/cards/s5.png differ diff --git a/resources/img/cards/s6.png b/resources/img/cards/s6.png new file mode 100644 index 0000000..40242a7 Binary files /dev/null and b/resources/img/cards/s6.png differ diff --git a/resources/img/cards/s7.png b/resources/img/cards/s7.png new file mode 100644 index 0000000..b9f1b93 Binary files /dev/null and b/resources/img/cards/s7.png differ diff --git a/resources/img/cards/s8.png b/resources/img/cards/s8.png new file mode 100644 index 0000000..b6b3b38 Binary files /dev/null and b/resources/img/cards/s8.png differ diff --git a/resources/img/cards/s9.png b/resources/img/cards/s9.png new file mode 100644 index 0000000..3c3b5ff Binary files /dev/null and b/resources/img/cards/s9.png differ diff --git a/resources/img/cards/shadow.png b/resources/img/cards/shadow.png new file mode 100644 index 0000000..0df5156 Binary files /dev/null and b/resources/img/cards/shadow.png differ diff --git a/resources/img/cards/testface.png b/resources/img/cards/testface.png new file mode 100644 index 0000000..45c4c90 Binary files /dev/null and b/resources/img/cards/testface.png differ diff --git a/src/box2d/dynamics/b2_body.cpp b/src/box2d/dynamics/b2_body.cpp index 00f3685..c2b4051 100644 --- a/src/box2d/dynamics/b2_body.cpp +++ b/src/box2d/dynamics/b2_body.cpp @@ -344,12 +344,12 @@ void b2Body::ResetMassData() m_invI = 0.0f; } - // Move center of mass. + // move center of mass. b2Vec2 oldCenter = m_sweep.c; m_sweep.localCenter = localCenter; m_sweep.c0 = m_sweep.c = b2Mul(m_xf, m_sweep.localCenter); - // Update center of mass velocity. + // update center of mass velocity. m_linearVelocity += b2Cross(m_angularVelocity, m_sweep.c - oldCenter); } @@ -385,12 +385,12 @@ void b2Body::SetMassData(const b2MassData* massData) m_invI = 1.0f / m_I; } - // Move center of mass. + // move center of mass. b2Vec2 oldCenter = m_sweep.c; m_sweep.localCenter = massData->center; m_sweep.c0 = m_sweep.c = b2Mul(m_xf, m_sweep.localCenter); - // Update center of mass velocity. + // update center of mass velocity. m_linearVelocity += b2Cross(m_angularVelocity, m_sweep.c - oldCenter); } diff --git a/src/box2d/dynamics/b2_contact.cpp b/src/box2d/dynamics/b2_contact.cpp index 1c65bc8..e178f78 100644 --- a/src/box2d/dynamics/b2_contact.cpp +++ b/src/box2d/dynamics/b2_contact.cpp @@ -161,7 +161,7 @@ b2Contact::b2Contact(b2Fixture* fA, int32 indexA, b2Fixture* fB, int32 indexB) m_tangentSpeed = 0.0f; } -// Update the contact manifold and touching status. +// update the contact manifold and touching status. // Note: do not assume the fixture AABBs are overlapping or are valid. void b2Contact::Update(b2ContactListener* listener) { diff --git a/src/box2d/dynamics/b2_contact_manager.cpp b/src/box2d/dynamics/b2_contact_manager.cpp index 5666608..521f315 100644 --- a/src/box2d/dynamics/b2_contact_manager.cpp +++ b/src/box2d/dynamics/b2_contact_manager.cpp @@ -108,7 +108,7 @@ void b2ContactManager::Destroy(b2Contact* c) // contact list. void b2ContactManager::Collide() { - // Update awake contacts. + // update awake contacts. b2Contact* c = m_contactList; while (c) { diff --git a/src/box2d/dynamics/b2_world.cpp b/src/box2d/dynamics/b2_world.cpp index 78ec084..288a826 100644 --- a/src/box2d/dynamics/b2_world.cpp +++ b/src/box2d/dynamics/b2_world.cpp @@ -571,7 +571,7 @@ void b2World::Solve(const b2TimeStep& step) continue; } - // Update fixtures (for broad-phase). + // update fixtures (for broad-phase). b->SynchronizeFixtures(); } @@ -819,7 +819,7 @@ void b2World::SolveTOI(const b2TimeStep& step) other->Advance(minAlpha); } - // Update the contact points + // update the contact points contact->Update(m_contactManager.m_contactListener); // Was the contact disabled by the user? @@ -932,7 +932,7 @@ void b2World::Step(float dt, int32 velocityIterations, int32 positionIterations) step.warmStarting = m_warmStarting; - // Update contacts. This is where some contacts are destroyed. + // update contacts. This is where some contacts are destroyed. { b2Timer timer; m_contactManager.Collide(); diff --git a/src/box2d/rope/b2_rope.cpp b/src/box2d/rope/b2_rope.cpp index 71fbe79..4239de4 100644 --- a/src/box2d/rope/b2_rope.cpp +++ b/src/box2d/rope/b2_rope.cpp @@ -281,7 +281,7 @@ void b2Rope::Step(float dt, int32 iterations, const b2Vec2& position) m_stretchConstraints[i].lambda = 0.0f; } - // Update position + // update position for (int32 i = 0; i < m_count; ++i) { m_ps[i] += dt * m_vs[i]; diff --git a/src/dynamic_body.cpp b/src/dynamic_body.cpp deleted file mode 100644 index 56212e2..0000000 --- a/src/dynamic_body.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include "dynamic_body.h" - -DynamicBody::DynamicBody(float size_x, float size_y) { - if (scene != nullptr) - { - b_body_def.type = b2_dynamicBody; - b_body_def.position.Set(world_position.x, world_position.y); - b_body = scene->b_world->CreateBody(&b_body_def); - - //Attach polygon shape - b_shape.SetAsBox(size.x, size.y); - b_fixture_def.shape = &b_shape; - b_fixture_def.density = density; - b_fixture_def.friction = friction; - - // Attach the fixture to the body - b_body->CreateFixture(&b_fixture_def); - } - else - { - - } - -} - -DynamicBody::~DynamicBody() { - -} \ No newline at end of file diff --git a/src/engine/input_manager.cpp b/src/engine/input_manager.cpp new file mode 100644 index 0000000..3a9c805 --- /dev/null +++ b/src/engine/input_manager.cpp @@ -0,0 +1,19 @@ +#include "engine/window.h" +#include "engine/input_manager.h" + +bool InputManager::keyDown = false; + +std::vector &InputManager::getFrameEvents() { + static std::vector frame_events; + return frame_events; +} + +void InputManager::windowEscape() { + for (SDL_Event e: InputManager::getFrameEvents()) { + if (e.type == SDL_KEYDOWN) { + if (e.key.keysym.sym == SDLK_ESCAPE) { + Window::isRunning = false; + } + } + } +} \ No newline at end of file diff --git a/src/util.cpp b/src/engine/util.cpp similarity index 55% rename from src/util.cpp rename to src/engine/util.cpp index 3f73149..d22c9c0 100644 --- a/src/util.cpp +++ b/src/engine/util.cpp @@ -1,14 +1,12 @@ #include -#include "util.h" +#include "engine/util.h" static int uuid_length = 6; -void Util::Log(LogType type, std::string msg, std::string file, int line) -{ +void Util::log(LogType type, std::string msg, std::string file, int line) { FILE *output_stream = stdout; - if (type == ERROR) - { + if (type == ERROR) { output_stream = stderr; } @@ -16,33 +14,31 @@ void Util::Log(LogType type, std::string msg, std::string file, int line) "%s:%d [%s] %s\n", file.c_str(), line, - LogTypeToStr(type).c_str(), + logTypeToStr(type).c_str(), msg.c_str() ); } -std::string Util::GenerateUUID() { +std::string Util::generateUuid() { static const char alphanum[] = "0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz"; - std::string tmp_s; - tmp_s.reserve(uuid_length); + std::string tmp; + tmp.reserve(uuid_length); for (int i = 0; i < uuid_length; ++i) { - tmp_s += alphanum[rand() % (sizeof(alphanum) - 1)]; + tmp += alphanum[rand() % (sizeof(alphanum) - 1)]; } - return tmp_s; + return tmp; } -std::string Util::LogTypeToStr(LogType type) -{ - switch (type) - { - case(INFO): +std::string Util::logTypeToStr(LogType type) { + switch (type) { + case (INFO): return "INFO"; - case(ERROR): + case (ERROR): return "ERROR"; default: return "NULL"; diff --git a/src/engine/window.cpp b/src/engine/window.cpp new file mode 100644 index 0000000..5faa571 --- /dev/null +++ b/src/engine/window.cpp @@ -0,0 +1,91 @@ +#include +#include +#include + +#include "fmt/format.h" + +#include "engine/window.h" +#include "engine/util.h" + +// Static member declarations +SDL_Window *Window::window = NULL; +GPU_Target *Window::windowTarget = NULL; +int Window::windowId = -1; +bool Window::isRunning = false; + + +Window::Window(int height, int width, std::string title) +{ + windowHeight = height; + windowWidth = width; + windowTitle = title; +} + +bool Window::Init() +{ + // Initialization flag + bool success = true; + + GPU_SetDebugLevel(GPU_DEBUG_LEVEL_MAX); + + // Initialize SDL + if (SDL_Init(SDL_INIT_VIDEO) < 0) + { + Util::log( + ERROR, + fmt::format("[Error] Could not initialize SDL;\n\tSDL_Error: {}\n", SDL_GetError()), + __FILE__, + __LINE__ + ); + success = false; + } + else + { + // Create window + Window::window = SDL_CreateWindow( + Window::windowTitle.c_str(), + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + windowWidth, + windowHeight, + SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL); + + if (Window::window == NULL) + { + Util::log( + ERROR, + fmt::format("Failed to create window;\n\tSDL_Error: {}\n", SDL_GetError()), + __FILE__, + __LINE__ + ); + success = false; + } + else + { + // Get window id and target window for GPU init + Window::windowId = SDL_GetWindowID(Window::window); + GPU_SetInitWindow(Window::windowId); + windowTarget = GPU_Init( + windowWidth, + windowHeight, + SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL | SDL_RENDERER_PRESENTVSYNC); + + // Set our running bool to true + Window::isRunning = true; + } + } + return success; +} + + +void Window::Close() +{ + // Deallocate any resources we have + + // Stop GPU usage and destroy window + GPU_Quit(); + SDL_DestroyWindow(Window::window); + + //Quit SDL subsystems + SDL_Quit(); +} \ No newline at end of file diff --git a/src/game.cpp b/src/game.cpp deleted file mode 100644 index ac2f351..0000000 --- a/src/game.cpp +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include - -#include "game.h" -#include "input_manager.h" -#include "static_body.h" -#include "player.h" -#include "scene.h" -#include "util.h" -#include "window.h" - -// Screen dimension constants -const int SCREEN_WIDTH = 640; -const int SCREEN_HEIGHT = 480; - -Scene *Game::scene = NULL; - -Game::Game() -{ - // Do any kind of construction things here -} - -int Game::Init() -{ - window = new Window(SCREEN_HEIGHT, SCREEN_WIDTH, "My Game"); - - // Start up SDL and create window - if (!window->Init()) - { - Util::Log(ERROR, "Failed to create window", __FILE__, __LINE__); - } - else - { - SDL_Event event; - - scene = new Scene(); - -// Player *player = new Player(); -// scene->AppendNode(player); - StaticBody *body = new StaticBody(100.0f, 100.0f); - body->world_position = Vec2(100, 100); - scene->AppendNode(body); - - while (Window::is_running) - { - // Handle events on queue - while (SDL_PollEvent(&event) != 0) - { - InputManager::GetFrameEvents().push_back(event); - - switch (event.type) - { - case SDL_QUIT: - Window::is_running = false; - break; - case SDL_KEYDOWN: - InputManager::key_down = true; - break; - case SDL_KEYUP: - InputManager::key_down = false; - break; - default: - break; - } - - InputManager::WindowEscape(); - - InputManager::GetFrameEvents().clear(); - } - - // Other update code here... - // Call other processing before Render - - // Rendering - GPU_Clear(Window::window_target); - - scene->Update(); - - GPU_Flip(Window::window_target); - } - - window->Close(); - } - - return 0; -} - -//Game::~Game() { -// -//} \ No newline at end of file diff --git a/src/input_manager.cpp b/src/input_manager.cpp deleted file mode 100644 index 21d3601..0000000 --- a/src/input_manager.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "window.h" -#include "input_manager.h" - -bool InputManager::key_down = false; - -std::vector& InputManager::GetFrameEvents() -{ - static std::vector frame_events; - return frame_events; -} - -void InputManager::WindowEscape() -{ - for (SDL_Event e : InputManager::GetFrameEvents()) - { - if (e.type == SDL_KEYDOWN) - { - if (e.key.keysym.sym == SDLK_ESCAPE) - { - Window::is_running = false; - } - } - } -} \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index c60c098..4805a4b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,12 +1,9 @@ -#include "game.h" +#include "game/game.h" -int main() -{ +int main() { Game *my_game = new Game(); my_game->Init(); return 0; -} - - +} \ No newline at end of file diff --git a/src/node.cpp b/src/node.cpp deleted file mode 100644 index ece834f..0000000 --- a/src/node.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "fmt/format.h" -#include "game.h" -#include "node.h" - -Node::Node() -{ - // Initialization things here - name = fmt::format("{}-{}", __func__, Util::GenerateUUID()); - scene = Game::scene; -} - -Node::~Node() -{ - // Destruction things here -} - -void Node::Update() -{ - // Update things here - if (parent != nullptr) - { - // If a parent exists for a Node, have its position follow its parent - world_position = parent->world_position; - } - - UpdateChildren(); -} - -void Node::UpdateChildren() -{ - for (Node* node : children) - { - node->Update(); - } -} - -void Node::AddChild(Node* child) -{ - child->parent = this; - children.push_back(child); -} \ No newline at end of file diff --git a/src/nodes/card.cpp b/src/nodes/card.cpp new file mode 100644 index 0000000..a1c974c --- /dev/null +++ b/src/nodes/card.cpp @@ -0,0 +1,39 @@ +#include "nodes/card.h" +#include "engine/input_manager.h" + +Card::Card() : Node() +{ + name = "Card"; + + face->visible = true; + back->visible = false; + + face->scale = Vec2(0.25f, 0.25f); + back->scale = Vec2(0.25f, 0.25f); + + addChild(face); + addChild(back); +} + +Card::~Card() = default; + +void Card::update() { + Node::update(); +} + +void Card::flip() +{ + face->visible = !face->visible; + back->visible = !back->visible; + return; +} + +void Card::pollInputs() { + Node::pollInputs(); +} + +void Card::free() { + face = nullptr; + back = nullptr; + Node::free(); +} \ No newline at end of file diff --git a/src/nodes/hand.cpp b/src/nodes/hand.cpp new file mode 100644 index 0000000..e0fccc1 --- /dev/null +++ b/src/nodes/hand.cpp @@ -0,0 +1,58 @@ +#include "nodes/hand.h" + +Hand::Hand() { + // Initialization things here +} + +Hand::~Hand() = default; + +void Hand::drawCard() { + Card *newCard = new Card(); + addChild(newCard); + organizeDeck(); +} + +void Hand::removeCard() { + if (children.size() > 0) { + Card *removedCard = (Card*)children.back(); + children.erase(children.end()); + std::free(removedCard); + printf("removed a card\n"); + } + organizeDeck(); +} + +void Hand::organizeDeck() { + int positionXOffset = 0; + for (Node *card : children) { + card->localPosition.x = positionXOffset; + positionXOffset += 35; + } +} + +void Hand::update() { + Node::update(); +} + +void Hand::pollInputs() { + Node::pollInputs(); + + for (SDL_Event e : InputManager::getFrameEvents()) + { + if (e.type == SDL_KEYDOWN) + { + if (e.key.keysym.sym == SDLK_SPACE) + { + drawCard(); + } + if (e.key.keysym.sym == SDLK_d) + { + removeCard(); + } + } + } +} + +void Hand::free() { + Node::free(); +} \ No newline at end of file diff --git a/src/nodes/node.cpp b/src/nodes/node.cpp new file mode 100644 index 0000000..bd894d1 --- /dev/null +++ b/src/nodes/node.cpp @@ -0,0 +1,49 @@ +#include "fmt/format.h" +#include "game/game.h" +#include "nodes/node.h" + +Node::Node() { + // Initialization things here + name = fmt::format("{}-{}", __func__, Util::generateUuid()); + scene = Game::scene; +} + +Node::~Node() = default; + +void Node::update() { + if (parent != nullptr) { + // If a parent exists for a Node, have its position follow its parent + worldPosition = parent->worldPosition + localPosition; + } + + updateChildren(); +} + +void Node::pollInputs() { + pollChildInputs(); +} + +void Node::updateChildren() { + for (Node *node: children) { + node->update(); + } +} + +void Node::pollChildInputs() { + for (Node *node: children) { + node->pollInputs(); + } +} + +void Node::addChild(Node *child) { + child->parent = this; + children.push_back(child); +} + +void Node::free() { + for (Node *child: children) { + child->free(); + } + parent = nullptr; // remove reference to parent + scene = nullptr; // remove reference to scene +} \ No newline at end of file diff --git a/src/player.cpp b/src/nodes/player.cpp similarity index 56% rename from src/player.cpp rename to src/nodes/player.cpp index eed10d7..adf4e94 100644 --- a/src/player.cpp +++ b/src/nodes/player.cpp @@ -1,46 +1,56 @@ -#include "player.h" -#include "sprite.h" +#include "nodes/player.h" -Player::Player() : Node() { +Player::Player() : Node() +{ name = "Player"; sprite = new Sprite("./resources/img/mario.png"); hammer = new Sprite("./resources/img/hammer.png"); - hammer->local_position = Vec2(-20, 0); + hammer->localPosition = Vec2(-20, 0); - AddChild(sprite); - AddChild(hammer); + addChild(sprite); + addChild(hammer); printf("%p\n", sprite->parent); printf("%p\n", hammer->parent); - world_position = Vec2(50,50); + worldPosition = Vec2(50, 50); } -void Player::Update() { - Node::Update(); - - Move(); -} - -void Player::Move() +void Player::update() { - const Uint8* key_states = SDL_GetKeyboardState(NULL); + Node::update(); + move(); +} + +void Player::pollInputs() { + Node::pollInputs(); +} + +void Player::free() { + std::free(sprite); + std::free(hammer); + Node::free(); +} + +void Player::move() +{ + const Uint8* key_states = SDL_GetKeyboardState(nullptr); if(key_states[SDL_SCANCODE_RIGHT]) { - world_position.x += 1; + worldPosition.x += 1; } if (key_states[SDL_SCANCODE_LEFT]) { - world_position.x -= 1; + worldPosition.x -= 1; } if (key_states[SDL_SCANCODE_UP]) { - world_position.y -= 1; + worldPosition.y -= 1; } if (key_states[SDL_SCANCODE_DOWN]) { - world_position.y += 1; + worldPosition.y += 1; } if (key_states[SDL_SCANCODE_Q]) diff --git a/src/nodes/scene.cpp b/src/nodes/scene.cpp new file mode 100644 index 0000000..e09d79f --- /dev/null +++ b/src/nodes/scene.cpp @@ -0,0 +1,40 @@ +#include "box2d/b2_world.h" +#include "nodes/scene.h" +#include "nodes/node.h" +#include "nodes/player.h" + +Scene::Scene() { + +} + +Scene::~Scene() { + +} + +void Scene::update() { + //b_world.Step(60.0f, velocityIterations, positionIterations); + for (Node* node : nodeTree) + { + node->update(); + } +} + +void Scene::pollInputs() { + for (Node* node : nodeTree) + { + node->pollInputs(); + } +} + +void Scene::freeSceneData() { + for (Node* node : nodeTree) + { + node->free(); + } +} + +void Scene::appendNode(Node *node) { + nodeTree.push_back(node); + node->scene = this; +} + diff --git a/src/nodes/sprite.cpp b/src/nodes/sprite.cpp new file mode 100644 index 0000000..09d365b --- /dev/null +++ b/src/nodes/sprite.cpp @@ -0,0 +1,76 @@ +#include +#include +#include + +#include "fmt/format.h" +#include "nodes/node.h" +#include "nodes/sprite.h" +#include "engine/input_manager.h" +#include "engine/util.h" +#include "engine/window.h" + +Sprite::Sprite(const std::string& resourcePath) : Node() +{ + // Constructor + //Util::log(INFO, resourcePath, __FILE__, __LINE__); + gpuImage = GPU_LoadImage(resourcePath.c_str()); + target_ = Window::windowTarget; +} + +Sprite::~Sprite() = default; + +void Sprite::update() +{ + // Call Baseclass update + Node::update(); + + // Call logic updates here + + // Call render for graphical elements + render(); +} + +void Sprite::pollInputs() +{ + Node::pollInputs(); +} + +void Sprite::free(){ + GPU_FreeImage(gpuImage); + gpuImage = nullptr; + Node::free(); +} + +void Sprite::setImage(GPU_Image *img) +{ + GPU_FreeImage(gpuImage); + gpuImage = img; +} + +void Sprite::setImage(char *img_path) +{ + GPU_FreeImage(gpuImage); + gpuImage = GPU_LoadImage(img_path); +} + +void Sprite::getImage(GPU_Image *image) +{ + image = gpuImage; +} + +void Sprite::render() +{ + if (gpuImage != nullptr) + { + if (visible) + { + Vec2 position_offset = worldPosition + localPosition; + GPU_BlitTransform(gpuImage, nullptr, target_, position_offset.x, position_offset.y, angle * 180 / M_PI, scale.x, scale.y); + } + } +// else +// { +// Util::log(ERROR, "Failed to render sprite, image resource is NULL", __FILE__, __LINE__); +// exit(-1); +// } +} \ No newline at end of file diff --git a/src/physics/dynamic_body.cpp b/src/physics/dynamic_body.cpp new file mode 100644 index 0000000..9649823 --- /dev/null +++ b/src/physics/dynamic_body.cpp @@ -0,0 +1,57 @@ +#include + +#include "physics/dynamic_body.h" +#include "nodes/node.h" +#include "engine/window.h" + +DynamicBody::DynamicBody(float size_x, float size_y) { + if (scene != nullptr) { + size = Vec2(size_x, size_y); + bBodyDef.type = b2_dynamicBody; + bBodyDef.position.Set(worldPosition.x, worldPosition.y); + bBody = scene->b_world.CreateBody(&bBodyDef); + + //Attach polygon shape + bShape.SetAsBox(size.x, size.y); + bFixtureDef.shape = &bShape; + bFixtureDef.density = density; + bFixtureDef.friction = friction; + + // Attach the fixture to the body + bBody->CreateFixture(&bFixtureDef); + } else { + Util::log(ERROR, "Failed to initialize physics, scene is nullptr", __FILE__, __LINE__); + } +} + +DynamicBody::~DynamicBody() = default; + +void DynamicBody::update() { + // Call Baseclass update + Node::update(); + + // Call logic updates here + worldPosition.x = bBody->GetPosition().x; + worldPosition.y = bBody->GetPosition().y; + printf("bBody pos: %.3f %.3f\n", worldPosition.x, worldPosition.y); + + // Call render for graphical elements + render(); +} + +void DynamicBody::SetWorldPosition(float pos_x, float pos_y) { + worldPosition.x = pos_x; + worldPosition.y = pos_y; + bBody->SetTransform(b2Vec2(worldPosition.x, worldPosition.y), bBody->GetAngle()); +} + +void DynamicBody::render() { + SDL_Color color = {255, 255, 255, 100}; + Vec2 position_offset = (worldPosition + localPosition); + GPU_Rectangle(Window::windowTarget, + position_offset.x, + position_offset.y, + position_offset.x + size.x, + position_offset.y + size.y, + color); +} \ No newline at end of file diff --git a/src/physics/static_body.cpp b/src/physics/static_body.cpp new file mode 100644 index 0000000..79f7167 --- /dev/null +++ b/src/physics/static_body.cpp @@ -0,0 +1,48 @@ +#include + +#include "physics/static_body.h" +#include "nodes/node.h" +#include "engine/window.h" + +StaticBody::StaticBody(float size_x, float size_y) : Node() +{ + if (scene != nullptr) + { + size = Vec2(size_x, size_y); + bBodyDef.position.Set(worldPosition.x, worldPosition.y); + bBody = scene->b_world.CreateBody(&bBodyDef); + bShape.SetAsBox(size.x, size.y); + bBody->CreateFixture(&bShape, 0.0f); + } + else + { + Util::log(ERROR, "Failed to initialize physics, scene is nullptr", __FILE__, __LINE__); + } +} + +StaticBody::~StaticBody() { + +} + +void StaticBody::update() +{ + // Call Baseclass update + Node::update(); + + // Call logic updates here + + // Call render for graphical elements + render(); +} + +void StaticBody::render() +{ + SDL_Color color = {50, 50, 50, 100}; + Vec2 position_offset = (worldPosition + localPosition); + GPU_Rectangle(Window::windowTarget, + position_offset.x, + position_offset.y, + position_offset.x + size.x, + position_offset.y + size.y, + color); +} \ No newline at end of file diff --git a/src/scene.cpp b/src/scene.cpp deleted file mode 100644 index 89b3335..0000000 --- a/src/scene.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include "box2d/b2_world.h" -#include "scene.h" -#include "node.h" -#include "player.h" - -Scene::Scene() { - b_world = new b2World(b_gravity); -} - -Scene::~Scene() { - -} - -void Scene::Update() { - for (Node* node : node_tree) - { - node->Update(); - } -} - -void Scene::AppendNode(Node *node) { - node_tree.push_back(node); - node->scene = this; -} - diff --git a/src/sprite.cpp b/src/sprite.cpp deleted file mode 100644 index 4f9327f..0000000 --- a/src/sprite.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include - -#include "fmt/format.h" -#include "node.h" -#include "sprite.h" -#include "input_manager.h" -#include "util.h" -#include "window.h" - -Sprite::Sprite(std::string resourcePath) : Node() -{ - // Constructor - //Util::Log(INFO, resourcePath, __FILE__, __LINE__); - image = GPU_LoadImage(resourcePath.c_str()); - target = Window::window_target; -} - -Sprite::~Sprite() -{ - // Destructor - GPU_FreeImage(image); - Node::~Node(); -} - -void Sprite::Update() -{ - // Call Baseclass update - Node::Update(); - - // Call logic updates here - - // Call Render for graphical elements - Render(); -} - -void Sprite::Render() -{ - if (image != NULL) - { - Vec2 position_offset = world_position + local_position; - printf("{%f,%f}\n", position_offset.x, position_offset.y); - GPU_BlitTransform(image, NULL, target, position_offset.x, position_offset.y, angle * 180 / M_PI, scale.x, scale.y); - } - else - { - Util::Log(ERROR, "Failed to render sprite, image resource is NULL", __FILE__, __LINE__); - exit(-1); - } -} \ No newline at end of file diff --git a/src/static_body.cpp b/src/static_body.cpp deleted file mode 100644 index b446803..0000000 --- a/src/static_body.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include - -#include "static_body.h" -#include "node.h" -#include "window.h" - -StaticBody::StaticBody(float size_x, float size_y) : Node() { - if (scene != nullptr) - { - size = Vec2(size_x, size_y); - b_body_def.position.Set(world_position.x, world_position.y); - b_body = scene->b_world->CreateBody(&b_body_def); - b_shape.SetAsBox(size.x, size.y); - b_body->CreateFixture(&b_shape, 0.0f); - } - else - { - Util::Log(ERROR, "Failed to initialize physics, scene is nullptr", __FILE__, __LINE__); - } -} - -StaticBody::~StaticBody() { - -} - -void StaticBody::Update() -{ - // Call Baseclass update - Node::Update(); - - // Call logic updates here - - // Call Render for graphical elements - Render(); -} - -void StaticBody::Render() -{ - printf("Called static_body render\n"); - SDL_Color color = {100, 100, 100}; - Vec2 position_offset = (world_position + local_position); - printf("{%f,%f}\n", position_offset.x, position_offset.y); - GPU_Rectangle(Window::window_target, - position_offset.x, - position_offset.y, - position_offset.x + 10, - position_offset.y + 10, - color); -} \ No newline at end of file diff --git a/src/window.cpp b/src/window.cpp deleted file mode 100644 index d89de51..0000000 --- a/src/window.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include -#include - -#include "fmt/format.h" - -#include "window.h" -#include "util.h" - -// Static member declarations -SDL_Window *Window::window = NULL; -GPU_Target *Window::window_target = NULL; -int Window::window_id = -1; -bool Window::is_running = false; - - -Window::Window(int height, int width, std::string title) -{ - window_height = height; - window_width = width; - window_title = title; -} - -bool Window::Init() -{ - // Initialization flag - bool success = true; - - GPU_SetDebugLevel(GPU_DEBUG_LEVEL_MAX); - - // Initialize SDL - if (SDL_Init(SDL_INIT_VIDEO) < 0) - { - Util::Log( - ERROR, - fmt::format("[Error] Could not initialize SDL;\n\tSDL_Error: {}\n", SDL_GetError()), - __FILE__, - __LINE__ - ); - success = false; - } - else - { - // Create window - Window::window = SDL_CreateWindow( - Window::window_title.c_str(), - SDL_WINDOWPOS_UNDEFINED, - SDL_WINDOWPOS_UNDEFINED, - window_width, - window_height, - SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL); - - if (Window::window == NULL) - { - Util::Log( - ERROR, - fmt::format("Failed to create window;\n\tSDL_Error: {}\n", SDL_GetError()), - __FILE__, - __LINE__ - ); - success = false; - } - else - { - // Get window id and target window for GPU init - Window::window_id = SDL_GetWindowID(Window::window); - GPU_SetInitWindow(Window::window_id); - window_target = GPU_Init( - window_width, - window_height, - SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL | SDL_RENDERER_PRESENTVSYNC - ); - - // Set our running bool to true - Window::is_running = true; - } - } - - return success; -} - - -void Window::Close() -{ - // Deallocate any resources we have - - // Stop GPU usage and destroy window - GPU_Quit(); - SDL_DestroyWindow(Window::window); - - //Quit SDL subsystems - SDL_Quit(); -} \ No newline at end of file